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

Can anyone get their hands on a Surecom EP-427X?


 Can anyone borrow a Surecom EP-427X fast ethernet PC card to try a quick
experiment on for me?  I'm trying to get Linux to support this NIC (it's an
ne2000 clone, so it should require only a bit of hacking...) I want to see
whether the problem I'm seeing is my laptop's fault, or what.

 I've never used any other pc cards with my laptop (an old used AST Ascentia
810N, which has a Cirrus Logic PD6720 pc card controller.).  I don't know if
my laptop's pc card hardware even works totally right, since I got it second
hand.  I was able to use a DOS boot disk to run the enabler and packet
driver from the disk that came with the NIC, and run a packet driver test
program to ping another computer on my LAN with the card, so obviously
it is possible to make it work.

 This card is a 10/100baseT 16bit pc card NIC, from Surecom.  Note that this
is not the same as the EP-427 or EP-427T.  They are 10baseT only, and are
already supposed to be supported by linux.

 I've got one of these cards, and the driver floppy includes a "linux"
directory, with a patched copy of pcmcia-cs.c, and 8390.c, and instructions
to use this with a 2.0.30 kernel!  I've figured out some stuff about how it
works, and figured out that the change Surecom made was adding:
    { /* SURECOM EP-427X */ 0x01c8, 0x00, 0x00, 0x21, 0 }
to the hw_info array.  Using the memory-cs driver, and dd /dev/mem0a, as
described in the PCMCIA-HOWTO, the 0x01c8 offset does indeed point to the
card's ethernet MAC address.

 The problem is that pcnet_cs.o says:
pcnet_cs: GetFirstTuple: No more items, and refuses to load.  Another weird
thing that happened is that the linux info from surecom says the right
config for the card is:

card "SURECOM EP-427X 10/100M PCMCIA Adapter"
  version "PCMCIA", "100BASE"
  bind "pcnet_cs"

 However, when I run /etc/init.d/pcmcia start, the drivers read the card's
CIS info as:  "PCMCIA", "1".  I changed the version line in the config file
to match that, so it would try to load pcnet_cs.  I think my laptop is
having problems reading from the CIS on the card, since the tuples are
stored there, and so is the version string stuff, and my laptop had trouble
with both.  The other possibility is that the card has some lame CIS that
linux doesn't like :(  By having somebody else test it, I hope to find out
which it is.

 It would be great if someone could stick one of these NICs in their linux
laptop and tell me what it says for version, ("PCMCIA", "100BASE"), or
("PCMCIA", "1").  Also likely to be helpful would be setting up config to
load memory_cs instead of pcnet_cs, and running
dd if=/dev/mem0a count=20 | od -Ax -t x1 > ep427x.dump
and sending me the dump, along with what the MAC address if you have it.
(This is described in the PCMCIA-HOWTO.)

 If you want to try to get the card actually working, patch pcnet_cs.c like

--- old-pcnet_cs.c  Wed Nov 22 19:05:45 2000
+++ pcnet_cs.c   Fri Feb 23 18:54:21 2001
@@ -199,6 +199,8 @@
     { /* Socket EA */ 0x4000, 0x00, 0xc0, 0x1b,
     { /* SuperSocket RE450T */ 0x0110, 0x00, 0xe0, 0x98, 0 },
+    { /* SURECOM EP-427X */ 0x01c8, 0x00, 0x00, 0x21, 0 },
     { /* Volktek NPL-402CT */ 0x0060, 0x00, 0x40, 0x05, 0 },
     { /* NEC PC-9801N-J12 */ 0x0ff0, 0x00, 0x00, 0x4c, 0 },

(the line numbers are probably messed up, so patch(1) probably won't apply
this cleanly.  Just add the line with the + in front of it by using a text

 Recompile it and see if it works.


#define X(x,y) x##y
Peter Cordes ;  e-mail: X(peter@llama.nslug. , ns.ca)

"The gods confound the man who first found out how to distinguish the hours!
 Confound him, too, who in this place set up a sundial, to cut and hack
 my day so wretchedly into small pieces!" -- Plautus, 200 BCE

Reply to: