From 70079b676a77f4dff43ea73fce82cc3e1aff6cc0 Mon Sep 17 00:00:00 2001 From: Scalpel_cp <165da7fc5536ee16440a98f161bfa866a8b94595G55xazV5> Date: Tue, 29 Jul 2008 20:51:01 +0000 Subject: [PATCH] RTL8139Test now kills Qemu. --- .../Network/Devices/RTL8139/RTL8139.cs | 9 ++- source/FrodeTest/Program.cs | 4 +- source/FrodeTest/Test/RTL8139Test.cs | 67 +++++++++---------- 3 files changed, 37 insertions(+), 43 deletions(-) diff --git a/source/Cosmos/Cosmos.Hardware/Network/Devices/RTL8139/RTL8139.cs b/source/Cosmos/Cosmos.Hardware/Network/Devices/RTL8139/RTL8139.cs index 5e9f74ea9..92eecf09a 100644 --- a/source/Cosmos/Cosmos.Hardware/Network/Devices/RTL8139/RTL8139.cs +++ b/source/Cosmos/Cosmos.Hardware/Network/Devices/RTL8139/RTL8139.cs @@ -342,12 +342,11 @@ namespace Cosmos.Hardware.Network.Devices.RTL8139 WriteAddressToPCI(ref TxBuffer3, (byte)Register.MainRegister.Bit.TSAD3); var tsd = Register.TransmitStatusDescriptor.Load(mem); - Console.WriteLine("Telling NIC to send " + aData.Length + " bytes."); + //Console.WriteLine("Telling NIC to send " + aData.Length + " bytes."); tsd.Size = aData.Length; - //Console.WriteLine("TransmitStatusDescriptor contains size of" + tsd.Size + " bytes."); - //Console.WriteLine("TDS : " + tsd.ToString()); - tsd.OWN = false; //Begins sending - //Console.WriteLine("TDS : " + tsd.ToString()); + + tsd.OWN = false; //Begins sending - causes QEMU to DIE (Frode, 29.july)! + Register.TransmitStatusDescriptor.IncrementTSDescriptor(); return true; diff --git a/source/FrodeTest/Program.cs b/source/FrodeTest/Program.cs index 192aba44f..ff6e0c520 100644 --- a/source/FrodeTest/Program.cs +++ b/source/FrodeTest/Program.cs @@ -38,12 +38,14 @@ namespace FrodeTest //Test.TransmitStatusDescriptorTest.RunTest(); //Test.PacketHeaderTest.RunTest(); //Test.RAMBusTest.RunTest(); - //Test.RTL8139Test.RunTest(); //Test.NumberSystemTest.RunTest(); //Test.IPv4Test.RunTest(); //Test.UDPTest.RunTest(); //Test.MACAddressTest.RunTest(); //Test.LinqTest.RunTest(); + + //Tests ready for Matthijs to fix ;) + Test.RTL8139Test.RunTest(); Test.ExceptionTest.RunTest(); //Done diff --git a/source/FrodeTest/Test/RTL8139Test.cs b/source/FrodeTest/Test/RTL8139Test.cs index 9336927e8..c64a99939 100644 --- a/source/FrodeTest/Test/RTL8139Test.cs +++ b/source/FrodeTest/Test/RTL8139Test.cs @@ -1,43 +1,36 @@ -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Cosmos.Hardware.Network.Devices.RTL8139; +using System; +using System.Collections.Generic; +using System.Text; +using Cosmos.Hardware.Network.Devices.RTL8139; +using Cosmos.Sys.Network; -//namespace FrodeTest.Test -//{ -// public class RTL8139Test -// { -// [Obsolete] -// public static void RunTest() -// { -// // Testing RTL8139 PCI networkcard -// //Load card -// var nics = RTL8139.FindAll(); +namespace FrodeTest.Test +{ + public class RTL8139Test + { + [Obsolete] + public static void RunTest() + { + // Testing RTL8139 PCI networkcard + //Load card + var xNics = RTL8139.FindAll(); -// if (nics.Count == 0) -// { -// Console.WriteLine("No Realtek 8139 network card found!!"); -// return; -// } + if (xNics.Count == 0) + { + Console.WriteLine("No Realtek 8139 network card found!!"); + return; + } -// Console.WriteLine(nics.Count + " network cards found"); -// var nic = (RTL8139)nics[0]; + Console.WriteLine(xNics.Count + " network cards found"); + var xNic = (RTL8139)xNics[0]; -// Console.WriteLine("Network card: " + nic.Name); -// Console.WriteLine("HW Revision: " + nic.HardwareRevision); -// Console.WriteLine("MAC address: " + nic.MACAddress.ToString()); + xNic.Enable(); + xNic.InitializeDriver(); -// //Console.WriteLine("BaseAddress0 is : " + pciNic.BaseAddress0); -// Console.WriteLine("BaseAddress1 is : " + nic.PCICard.BaseAddress1); -// Console.WriteLine("Enabling card..."); -// nic.Enable(); -// Console.WriteLine("Initializing driver..."); -// nic.InitializeDriver(); + byte[] xPingData = { (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f' }; + var xPingOut = new ICMPPacket(1, 2, ICMPPacket.ICMPType.EchoRequest, xPingData, 0); -// var head = new PacketHeader(0xFF); -// byte[] data = Mock.FakeBroadcastPacket.GetFakePacketAllHigh(); -// var packet = new Packet(head, data); -// nic.Transmit(packet); -// } -// } -//} + xNic.TransmitBytes(xPingOut.GetData()); + } + } +}