Making the "PCMCIAs Fast Ethernet+56K ComboCard" work in Debian GNU/Linux 6.0 Note written on 2011-09-23 by Göran Weinholt. Keywords: pcmcia, linux, pcnet_cs, pcnet_reset_8390 I recently got a PC Card with two functions: FastEthernet and a 56K modem. It didn't work straight away in Linux, so I am writing this to let others know how I got it working on my IBM ThinkPad R50e. First of all one needs to have pcmciautils installed. When I first plugged in the card, this appeared in dmesg: [22726702.412176] pccard: PCMCIA card inserted into slot 0 [22726702.437450] cs: memory probe 0xf0000000-0xf7ffffff: excluding 0xf0000000-0xf7ffffff [22726702.469352] cs: memory probe 0xd0200000-0xdfffffff: excluding 0xd0200000-0xd11fffff 0xd1a00000-0xd21fffff 0xd2a00000-0xd31fffff 0xd3a00000-0xd81fffff 0xd8a00000-0xd91fffff 0xd9a00000-0xda1fffff 0xdaa00000-0xdb1fffff 0xdba00000-0xdc1fffff 0xdca00000-0xdd1fffff 0xdda00000-0xde1fffff 0xdea00000-0xdf1fffff 0xdfa00000-0xe01fffff [22726702.596414] pcmcia: registering new device pcmcia0.0 [22726702.872045] eth%d: pcnet_reset_8390() did not complete. [22726702.911079] pcnet_cs: unable to read hardware net address for io base 0x3300 Here's the initial output from lspcmcia -vv: Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:02:00.0) Configuration: state: on ready: yes Voltage: 5.0V Vcc: 5.0V Vpp: 5.0V Available IRQs: 3, 4, 6, 10 Available ioports: 0x00000100 - 0x000003af 0x000003e0 - 0x000004cf 0x000004d8 - 0x000004ff 0x00000820 - 0x000008ff 0x00000a00 - 0x00000aff 0x00000c00 - 0x00000cf7 0x00003000 - 0x00007fff Available iomem: 0x000c0000 - 0x000fffff 0xd1200000 - 0xd19fffff 0xd2200000 - 0xd29fffff 0xd3200000 - 0xd39fffff 0xd8200000 - 0xd89fffff 0xd9200000 - 0xd99fffff 0xda200000 - 0xda9fffff 0xdb200000 - 0xdb9fffff 0xdc200000 - 0xdc9fffff 0xdd200000 - 0xdd9fffff 0xde200000 - 0xde9fffff 0xdf200000 - 0xdf9fffff Socket 0 Device 0: [-- no driver --] (bus ID: 0.0) Configuration: state: on Product Name: PCMCIAs Fast Ethernet+56K ComboCard Identification: manf_id: 0x0143 card_id: 0xc0ab function: 0 (multifunction) prod_id(1): "PCMCIAs" (0xdcfe12d3) prod_id(2): "Fast Ethernet+56K ComboCard" (0x615f1bfd) prod_id(3): --- (---) prod_id(4): --- (---) So apparently the pcnet_cs driver could not communicate with the network chip. Some googling indicated that these cards do not decode the whole I/O port range. To fix this it is possible to exclude I/O ranges with /etc/pcmcia/config.opts. So I promptly added this in config.opts: exclude port 0x3000-0x7fff I tried to eject and insert the card. This doesn't work. Don't even bother. You have to run this program: /lib/udev/pcmcia-socket-startup But it still didn't work. So on a hunch I commented out this line: #include port 0xa00-0xaff And then I reran /lib/udev/pcmcia-socket-startup. Now this appeared in dmesg: [22746170.116048] eth2: NE2000 (DL10019 rev 05): io 0x300, irq 3, hw_addr xx:xx:xx:xx:xx:xx [22746170.176075] pcmcia: registering new device pcmcia0.1 [22746170.228077] 0.1: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A Here's the new output from lspcmcia -vv: Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:02:00.0) Configuration: state: on ready: yes Voltage: 5.0V Vcc: 5.0V Vpp: 0.0V Available IRQs: 3, 4, 6, 10 Available ioports: 0x00000100 - 0x000003af 0x000003e0 - 0x000004cf 0x000004d8 - 0x000004ff 0x00000820 - 0x000008ff 0x00000a00 - 0x00000aff 0x00000c00 - 0x00000cf7 Available iomem: 0x000c0000 - 0x000fffff 0x60000000 - 0x60ffffff 0xa0000000 - 0xa0ffffff 0xd1200000 - 0xd19fffff 0xd2200000 - 0xd29fffff 0xd3200000 - 0xd39fffff 0xd8200000 - 0xd89fffff 0xd9200000 - 0xd99fffff 0xda200000 - 0xda9fffff 0xdb200000 - 0xdb9fffff 0xdc200000 - 0xdc9fffff 0xdd200000 - 0xdd9fffff 0xde200000 - 0xde9fffff 0xdf200000 - 0xdf9fffff Socket 0 Device 0: [pcnet_cs] (bus ID: 0.0) Configuration: state: on Product Name: PCMCIAs Fast Ethernet+56K ComboCard Identification: manf_id: 0x0143 card_id: 0xc0ab function: 0 (multifunction) prod_id(1): "PCMCIAs" (0xdcfe12d3) prod_id(2): "Fast Ethernet+56K ComboCard" (0x615f1bfd) prod_id(3): --- (---) prod_id(4): --- (---) Socket 0 Device 1: [serial_cs] (bus ID: 0.1) Configuration: state: on Product Name: PCMCIAs Fast Ethernet+56K ComboCard Identification: manf_id: 0x0143 card_id: 0xc0ab function: 0 (multifunction) prod_id(1): "PCMCIAs" (0xdcfe12d3) prod_id(2): "Fast Ethernet+56K ComboCard" (0x615f1bfd) prod_id(3): --- (---) prod_id(4): --- (---) So to summarize: edit /etc/pcmcia/config.opts and add "exclude port 0x3000-0x7fff" and remove "include port 0xa00-0xaff". The excluded port range might be different if you have a different machine. I have no idea why it was necessary to remove the 0xa00 ports. --