Ne2000: Difference between revisions

m
→‎External Links: I'm not sure anymore if this was the NE2000 spec
[unchecked revision][unchecked revision]
No edit summary
m (→‎External Links: I'm not sure anymore if this was the NE2000 spec)
 
(5 intermediate revisions by 3 users not shown)
Line 2:
It is a good first network card to program because it follows a simple design (making it helpful for learning), they're probably dirt-cheap, and it is supported by most PC emulators. Both [[Bochs]] and [[QEMU]] provide ISA and PCI implementations.
 
Ne2000 is not technically a card, it is a standard that several implementors follow. The best available description of the initial standard was located [http://www.national.com/pf/DP/DP8390D.html DP8390D/NS32490D NIC Network Interface Controller] ([https://web.archive.org/web/20010612150713/http://www.national.com/ds/DP/DP8390D.pdf archive]) and was published by National Semiconductor.
 
== Quick Overview of the NIC design ==
Line 68:
 
nif->iobase = nif->pcidev->bar[0] & ~0x3;
outb(nif->iobase + 0x1F, inb(nif->iobase + 0x1F)); // write the value of RESET into the RESET register
while ((inb(nif->iobase + 0x07) & 0x80) == 0); // wait for the RESET to complete
outb(nif->iobase + 0x07, 0xFF); // mask interrupts
 
uint8_t prom[32];
outb(nif->iobase, (1 << 5) | 1); // page 0, no DMA, stop
Line 87:
outb(nif->iobase + 0x09, 0); // start DMA high
outb(nif->iobase, 0x0A); // start the read
int i;
for (i=0; i<32; i++)
Line 93:
prom[i] = inb(nif->iobase + 0x10);
};
 
// program the PAR0..PAR5 registers to listen for packets to our MAC address!
for (i=0; i<6; i++)
Line 131:
==See Also==
===External Links===
* [https://web.archive.org/web/20010612150713/http://www.national.com/ds/DP/DP8390D.pdf DP8390D/NS32490D NIC Network Interface Controller (PDF)] datasheet for the 8390 chip on the NE2000
* https://bitsavers.org/components/national/_dataBooks/1988_National_Data_Communications_Local_Area_Networks_UARTs_Handbook.pdf, early description of NE1000(?) boards (including PROM and memory map), starting on page 124 ("DP839EB Network Evaluation Board - Application Note 479")
* [https://web.archive.org/web/20091223070134/http://www.national.com/pf/DP/DP8390D.html#Documents DP8390D Additional application notes] from NatSemi
* http://www.ethernut.de/pdf/8019asds.pdf, the RTL8019 is one of the PCI-based NE2K compliant cards.
* http://www.bcgreen.com/gnu-linux/ne2k-diag.c, a diagnostic tool that needs to be inspected to see if it helps in understanding the manuals
* http://www.cs.usfca.edu/~cruse/cs326/RTL8139_ProgrammersGuide.pdf, saved here for later use.
* https://github.com/torokernel/torokernel/blob/7d6df4c40fa4cc85febd5fd5799404592ffdff53/rtl/drivers/Ne2000.pas, example of a driver for Ne2000 in Freepascal.
 
[[Category:Network Hardware]]
Anonymous user