From 99182958d6e499bf78e5c496db45a7bfffba4504 Mon Sep 17 00:00:00 2001 From: Joshua Wise Date: Sun, 5 Oct 2008 01:07:52 -0400 Subject: [PATCH] Successfully transmit HARBL ... twice. Then hang. --- net/3c90x.c | 2 +- net/net.c | 29 +++++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/net/3c90x.c b/net/3c90x.c index 4d60327..b0e5d6f 100644 --- a/net/3c90x.c +++ b/net/3c90x.c @@ -428,7 +428,7 @@ static void a3c90x_reset(void) #endif /** Send the reset command to the card **/ - outputf("Issuing RESET:"); + outputf("3c90x: issuing RESET"); a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdGlobalReset, 0); /** wait for reset command to complete **/ diff --git a/net/net.c b/net/net.c index 575b5e4..13c16f2 100644 --- a/net/net.c +++ b/net/net.c @@ -7,10 +7,35 @@ static struct nic *_nic = 0x0; extern struct pci_driver a3c90x_driver; +static char test[1024] = {0}; + void eth_poll() { - if (_nic) - _nic->poll(_nic, 0); + int i; + static int c; + + if (!_nic) + return; + + _nic->poll(_nic, 0); + + if ((c++) % 60) + return; + + for (i = 0; i < 1024; i++) + { + switch(i%5) + { + case 0: test[i] = 'H'; break; + case 1: test[i] = 'A'; break; + case 2: test[i] = 'R'; break; + case 3: test[i] = 'B'; break; + case 4: test[i] = 'L'; break; + } + } + outputf("eth_poll: Attempting to tx"); + _nic->transmit("\x00\x03\x93\x87\x84\x8C", 0x1337, 1024, test); + outputf("eth_poll: tx complete"); } int eth_register(struct nic *nic) -- 2.43.0