Subject: IBM Credit Card Ethernet Adapter Problem.
To: None <perry@piermont.com>
From: Deng Hongwei <dhongwei@sz.cei.go.cn>
List: port-i386
Date: 01/09/1998 14:27:45
I wrote:
> Now I have another problem with a IBM Credit Card Ethernet Adapter.
> 
> Here is the Dmesg:
> 
> ...
> pcic0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
> pcic0: controlller 0 (Intel 82365SL Revision 1) has socket A and B
> pcmcia0 at pcic0 controller 0 socket 0
> pcmcia1 at pcic0 controller 0 socket 1
> pcmcia1: CIS checksum failed
> pcmcia1: CIS version 2.0 or 2.01
> pcmcia1: CIS info: IBM Corp., Ethernet, 0934214, PC-NIC ENCC 990010...
> pcmcia1: Manufacture code 0xa4, product 0x2
> pcmcia1: function 0: network adapter, ccr addr 20000 mask b
> pcmcia1: function 0, config table entry 1: I/O card; irq mask ffff;
> iomask 5, iospace 0-1f; mwait_required rdybsy_active wp_active
> bvd_active io16 irqpulse iqrlevel
> ne0 at pcmcia1 function 0 port 0x3c0-0x3cf port 0x3d0-0x3df
> ne0: IBM CCAE Ethernet
> ne0: where did the card go?
> ....
> 
> I've modified if_ne_pcmcia.c(/sys/dev/pcmcia) to add my card's info as
> 
> /*
>    { "National Semiconductor InfoMover",
>      0x00a4, 0x0002, NULL, NULL, 0,
>      0x0ff0, { 0x08, 0x00, 0x5a } },
> */
>    { "IBM CCAE",
>      0x00a4, 0x0002, "IBM Corp.", "Ethernet", 0,
>      0x0ff0, { 0x00, 0x04, 0xac } },
> 
> The "National Semecondution InfoMover" is commented, or the if_ne_pcmcia
> will recognize my card as it first (because the same Manufactor code and
> productor code), and complain : "0x00,0x04,0xac" should be "0x08,0x00,
> 0x5a".
> 
> >From the dmesg's "ne0: where did the card go?" , I traced the ne2000.c
> code(/sys/dev/ic), and found my card failed at:
> 
>    tmp = bus_space_read_1(nict, nich, ED_P0_ISR);
>    if ((tmp & ED_ISR_RST) != ED_ISR_RST)
>       goto out;                            --- it then goto out here.
> 
> I know my card is really a ne2000 compatible card. It can be recognized
> as a NE2000 Compatible PCMCIA Ethernet card by FreeBSD and OpenBSD.
> 

I've just tested the ne2000.c code, and found in:

    tmp = bus_space_read_1(nict, nich, ED_P0_ISR);
    if ((tmp & ED_ISR_RST) != ED_ISR_RST)
       goto out;                            --- it then goto out here.

the 'tmp' returns 0x03, which should be ED_ISR_RST = 0x80.

Then I tried another PCMCIA Ethernet Card: 3COM 3C589D, it failed on
my NetBSD box too.