Using the 3c523 under Linux

The 3Com 3c523 is an MCA Ethernet card, probably related to 3Com's early ISA-bus Ethernet cards. There are two versions, one made in 1987 and another a few years later. The 1987 version will not work in 486 (or above) based PS/2s, but it does work in an 8580 which was upgraded with the 486-clone Blue Lightning processor (the 8580 originally used a 386DX).

Kernel patch

Anyway, this card is supported in 2.2 and above Linux kernels, but you may need to apply a patch. The driver may have timing problems, which show up as not being able to find the adaptor's memory when it is detected at boot time. It seems to be a matter of luck (and the arrangement of cards in your system) whether you hit this problem.

The patch is as follows: edit the file 3c523.c and find the line that says:
#define DELAY_16(); { __delay( (loops_per_sec>>16)+1 ); }
and change the second 16 to 15 or 14. Another change, which may or may not be needed as well, is to find the lines:
/* apparently, you sometimes have to kick the 82586 twice... */
elmc_id_attn586();

and add a line DELAY(2); immediately underneath.

I don't claim any credit for these fixes, I just wanted to make sure they were 'out there'. I believe a chap named Ernst denBroeder wrote them originally. Perhaps these changes are no longer necessary with later kernel versions. But for me, in both a Model 80 and Model 55SX, they were exactly what was needed.

Intermittent freezes on some machines

On the 55SX the card still didn't work perfectly; it would freeze up about once every minute for about ten seconds, then unfreeze and start working again. I couldn't find a cure for this. I don't believe that the machine's CPU couldn't keep up, since the freezes occur even with just one ping a second. It might be another timing problem.

Use of an external transceiver

The 3c523 (or at least the 1987 version) has AUI and BNC connectors, but no twisted-pair (10baseT) support. You can however plug a 10baseT transceiver into the AUI port. I've had success with the two types of transceiver I've tried.


Edward Avis
Last modified: Sat Jan 27 19:08:24 GMT 2001