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.