Netboot Mailing List (by thread)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: LNE100TX v4.0




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.