Hello all, I happened to be a "Best Buy" department store last night looking for a belt case for my Palm III, when I happened to spot an LNE100TX v4.x card. I know Jim and probably others were needing Etherboot support for the card, so I wrote a quick patch. I'll put something fancier on the Thinguin site when I get a moment, but this should get you going. Let's see, basically, in the src directory I changed NIC, config.c, pci.h, and tulip.c. Roms probably doesn't have to be changed, since I think it regenerates from NIC. To patch an Etherboot distribution with this patch, you'd do something like: - Copy the patch into a file using cut and paste or whatever works. - cd to your Etherboot directory (e.g cd /home/fred/etherboot-4.6.3) - apply the patch with something like: $ patch -p1 < /home/fred/admdiffs.txt (you could also just apply the patches by hand, since they're small...) You should now have a patched Etherboot distribution. To compile new rom files you'll need to do something like: $ cd src $ make clean $ make bin32/admtek0985.lzfd0 # make a floppy for LNE100TX v4.x or $ make bin32/admtek0985.lzrom # make a ROM file for LNE100TX v4.x I hope this helps out. Sorry I don't have time to do anything fancier at the moment. I have tested this from floppy, but have not burned a ROM yet, but it should work. Let me know :-) Regards, Marty P.S. Jim, you still owe me dinner :-) ------ patch begins on next line ----- diff -Nuar etherboot-4.6.3-orig/src/NIC etherboot-4.6.3/src/NIC --- etherboot-4.6.3-orig/src/NIC Wed Jul 5 09:43:50 2000 +++ etherboot-4.6.3/src/NIC Sun Jul 16 08:03:04 2000 @@ -80,6 +80,8 @@ lc82c115 tulip 0x11ad,0xc115 # Netgear FA310TX and other NICs using this Tulip clone chip lc82c168 tulip 0x11ad,0x0002 +# Tulip clones based on the ADMtek Centaur-P +admtek0985 tulip 0x1317,0x0985 # Tulip clones based on the Macronix 987x5 mx987x5 tulip 0x10d9,0x0553 # Davicom DM9102 diff -Nuar etherboot-4.6.3-orig/src/Roms etherboot-4.6.3/src/Roms --- etherboot-4.6.3-orig/src/Roms Wed Jul 5 09:43:53 2000 +++ etherboot-4.6.3/src/Roms Sun Jul 16 08:03:59 2000 @@ -56,6 +56,7 @@ BINS32 += bin32/3c905b-tpo.rom bin32/3c905b-tpo.lzrom BINS32 += bin32/3c905b-tpo100.rom bin32/3c905b-tpo100.lzrom BINS32 += bin32/3c905c-tpo.rom bin32/3c905c-tpo.lzrom +BINS32 += bin32/admtek0985.rom bin32/admtek0985.lzrom BINS32 += bin32/compexrl2000.rom bin32/compexrl2000.lzrom BINS32 += bin32/davicom.rom bin32/davicom.lzrom BINS32 += bin32/dlink-530tx.rom bin32/dlink-530tx.lzrom @@ -479,6 +480,14 @@ bin32/3c905c-tpo.lzrom: bin32/3c90x.huf $(PRZLOADER) cat $(PRZLOADER) $< > $@ bin/makerom $(MAKEROM_$*) -p 0x10b7,0x9200 -i$(IDENT32) $@ + +bin32/admtek0985.rom: bin32/tulip.img $(PRLOADER) + cat $(PRLOADER) $< > $@ + bin/makerom $(MAKEROM_$*) -p 0x1317,0x0985 -i$(IDENT32) $@ + +bin32/admtek0985.lzrom: bin32/tulip.huf $(PRZLOADER) + cat $(PRZLOADER) $< > $@ + bin/makerom $(MAKEROM_$*) -p 0x1317,0x0985 -i$(IDENT32) $@ bin32/compexrl2000.rom: bin32/ns8390.img $(PRLOADER) cat $(PRLOADER) $< > $@ diff -Nuar etherboot-4.6.3-orig/src/config.c etherboot-4.6.3/src/config.c --- etherboot-4.6.3-orig/src/config.c Wed Jul 5 09:41:24 2000 +++ etherboot-4.6.3/src/config.c Sun Jul 16 08:01:45 2000 @@ -112,6 +112,8 @@ "Netgear FA310TX", 0, 0, 0}, { PCI_VENDOR_ID_DAVICOM, PCI_DEVICE_ID_DM9102, "Davicom 9102", 0, 0, 0}, + { PCI_VENDOR_ID_ADMTEK, PCI_DEVICE_ID_ADMTEK_0985, + "ADMtek Centaur-P", 0, 0, 0}, #endif #ifdef INCLUDE_VIA_RHINE { PCI_VENDOR_ID_VIATEC, PCI_DEVICE_ID_VIA_RHINE_I, diff -Nuar etherboot-4.6.3-orig/src/pci.h etherboot-4.6.3/src/pci.h --- etherboot-4.6.3-orig/src/pci.h Wed Jul 5 09:41:24 2000 +++ etherboot-4.6.3/src/pci.h Sun Jul 16 10:08:10 2000 @@ -94,6 +94,8 @@ #define restore_flags(x) \ __asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory") +#define PCI_VENDOR_ID_ADMTEK 0x1317 +#define PCI_DEVICE_ID_ADMTEK_0985 0x0985 #define PCI_VENDOR_ID_REALTEK 0x10ec #define PCI_DEVICE_ID_REALTEK_8029 0x8029 #define PCI_DEVICE_ID_REALTEK_8139 0x8139 diff -Nuar etherboot-4.6.3-orig/src/tulip.c etherboot-4.6.3/src/tulip.c --- etherboot-4.6.3-orig/src/tulip.c Wed Jul 5 09:57:59 2000 +++ etherboot-4.6.3/src/tulip.c Sun Jul 16 10:28:52 2000 @@ -40,6 +40,10 @@ /*********************************************************************/ /* + 16 Jul 2000 mdc 0.75b11 + Added support for ADMtek 0985 Centaur-P, a "Comet" tulip clone + which is used on the LinkSYS LNE100TX v4.x cards. We already + support LNE100TX v2.0 cards, which use a different controller. 04 Jul 2000 jam ? Added test of status after receiving a packet from the card. Also uncommented the tulip_disable routine. Stray packets @@ -413,6 +417,7 @@ static void tulip_reset(struct nic *nic) { unsigned long to, csr6; + u32 addr_low, addr_high; whereami("tulip_reset\n"); @@ -447,6 +452,10 @@ } else if (vendor == PCI_VENDOR_ID_DEC && dev_id == PCI_DEVICE_ID_DEC_21142) { /* nothing */ + + } else if (vendor == PCI_VENDOR_ID_ADMTEK && dev_id == PCI_DEVICE_ID_ADMTEK_0985) { + /* nothing */ + } else { /* If we don't know what to do with the card, set to 10Mbps half-duplex */ @@ -472,6 +481,18 @@ /* set up transmit and receive descriptors */ tulip_init_ring(nic); + /* set up multicast hash address for Comet (ADKTEK 0985) */ + /* possibly not needed for Etherboot, but seems to do no harm -mdc */ + if (vendor == PCI_VENDOR_ID_ADMTEK && dev_id == PCI_DEVICE_ID_ADMTEK_0985) { + addr_low = nic->node_addr[0] + (nic->node_addr[1] << 8) + + (nic->node_addr[2] << 16) + (nic->node_addr[3] << 24); + addr_high = nic->node_addr[4] + (nic->node_addr[5] << 8); + outl(addr_low, ioaddr + 0xA4); + outl(addr_high, ioaddr + 0xA8); + outl(0, ioaddr + 0xAC); + outl(0, ioaddr + 0xB0); + } + /* Point to receive descriptor */ outl((unsigned long)&rxd[0], ioaddr + CSR3); outl((unsigned long)&txd , ioaddr + CSR4); @@ -517,6 +538,10 @@ outl(0x180, ioaddr + CSR12); /* Let bit 7 output port */ outl(0x80, ioaddr + CSR12); /* RESET DM9102 phyxcer */ outl(0x0, ioaddr + CSR12); /* Clear RESET signal */ + + } else if (vendor == PCI_VENDOR_ID_ADMTEK && dev_id == PCI_DEVICE_ID_ADMTEK_0985) { + /* nothing */ + } /* set the chip's operating mode */ @@ -654,6 +679,7 @@ struct pci_device *pci) { unsigned int i; + u32 l1, l2; whereami("tulip_probe\n"); @@ -686,6 +712,16 @@ nic->node_addr[i*2] = (u8)((value >> 8) & 0xFF); nic->node_addr[i*2 + 1] = (u8)( value & 0xFF); } + } else if (vendor == PCI_VENDOR_ID_ADMTEK && + dev_id == PCI_DEVICE_ID_ADMTEK_0985) { + l1 = inl(ioaddr + 0xA4); + l2 = inl(ioaddr + 0xA8); + nic->node_addr[0] = (l1 ) & 0xFF; + nic->node_addr[1] = (l1 >> 8) & 0xFF; + nic->node_addr[2] = (l1 >> 16) & 0xFF; + nic->node_addr[3] = (l1 >> 24) & 0xFF; + nic->node_addr[4] = (l2 ) & 0xFF; + nic->node_addr[5] = (l2 >> 8) & 0xFF; } else { /* read EEPROM data */ for (i = 0; i < sizeof(ee_data)/2; i++) ------- patch ends with the previous line ----- --- Name: Martin D. Connor US Mail: Entity Cyber, Inc.; P.O. Box 391827; Cambridge, MA 02139; USA Voice: (617) 491-6935, Fax: (617) 491-7046 Email: mdc@thinguin.org Web: http://www.thinguin.org/ =========================================================================== This Mail was sent to netboot mailing list by: Marty Connor <mdc@thinguin.org> To get help about this list, send a mail with 'help' as the only string in it's body to majordomo@baghira.han.de. If you have problems with this list, send a mail to netboot-owner@baghira.han.de.
For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.