Greetings: I'm working on getting some cardbus support into a 8540 based platform.
We're using a TI1520 cardbus controller (pci<->cardbus bridge) and compact flash. (Note: this is using 2.4.30 kernel.org kernel + some patches from the vendor) At first I was getting no interrupts when the yenta driver was starting up, but I back ported some stuff from 2.6 and now the ti1520 is routing the interrupts properly through pci: [root at mbc80-4 01]$ cat /proc/interrupts CPU0 8: 0 None Edge rtc 83: 12106 OpenPIC Edge enet_tx 84: 19011 OpenPIC Edge enet_rx 88: 0 OpenPIC Edge enet_error 90: 1805 OpenPIC Edge serial 91: 137 OpenPIC Level MPC I2C 98: 1 OpenPIC Level Texas Instruments PCI1250 PC card Cardbus Controller 99: 1 OpenPIC Level Texas Instruments PCI1250 PC card Cardbus Controller (#2) 101: 0 OpenPIC Level sb/ife0 102: 0 OpenPIC Level sbqe0 104: 0 OpenPIC Level phy_interrupt BAD: 0 I have a cf card in the second controller socket. I've strewn printk's all over and what I'm finding is that pcmcia_request_io is called with base=0 numports=0x10, ioAddrLines=4, and returns with a base of 0x8100. Here's the pci dump of both functions of the TI device (note, the card is plugged into the socket associated with func 1 not func 0): [root at mbc80-4 01]$ lspci -v -s 01:01 01:01.0 CardBus bridge: Texas Instruments PCI1250 PC card Cardbus Controller (rev 01) Flags: bus master, medium devsel, latency 168, IRQ 98 Memory at eafff000 (32-bit, non-prefetchable) [size=4K] Bus: primary=01, secondary=02, subordinate=02, sec-latency=176 Memory window 0: ea600000-ea61f000 (prefetchable) Memory window 1: ea700000-ea7ff000 I/O window 0: 00008000-000080ff I/O window 1: 00008400-000084ff 16-bit legacy interface ports at 0001 01:01.1 CardBus bridge: Texas Instruments PCI1250 PC card Cardbus Controller (rev 01) Flags: bus master, medium devsel, latency 168, IRQ 99 Memory at eabfe000 (32-bit, non-prefetchable) [size=4K] Bus: primary=01, secondary=03, subordinate=03, sec-latency=176 Memory window 0: ea620000-ea63f000 (prefetchable) Memory window 1: ea800000-ea8ff000 I/O window 0: 00008800-000088ff I/O window 1: 00008c00-00008cff 16-bit legacy interface ports at 0001 I added printks to the ide do_probe, and all hwif->INB() calls return 0. My /etc/pcmcia/config.opts adds the following lines: include port 0x0000-0xffff include memory 0xe0000000-0xeaffffff Any ideas? -travis more dumps below: [root at mbc80-4 01]$ cardctl status Socket 0: no card Socket 1: 3.3V 16-bit PC Card function 0: [ready] [root at mbc80-4 01]$ cardctl config Socket 0: not configured Socket 1: Vcc 3.3V Vpp1 3.3V Vpp2 3.3V ide_config linkio: nports: 0 baseport 0 pcmcia_request_io calling alloc io spaces BLP1 NP1 IOADDRLines: 0 10 4 alloc_io_space s->io BP NP Inuse: 8100 10 10 pcmcia_request_io called alloc io spaces BLP1 NP1 IOADDRLines: 8100 10 4 ide_config b4Config base 8100 ide_config AFConfig base 8100 SELECT_DRIVE sending a0 to 8106 SELECT_DRIVE sending b0 to 8106 SELECT_DRIVE sending a0 to 8106 probing for hda: present=0, media=32, probetype=ATA [root at mbc80-4 01]$ SELECT_DRIVE sending a0 to 8106 do_probe after select inb= 0 do_probe error reg 0 do_probe nsect reg 0 do_probe sect reg 0 do_probe lcyl reg 0 do_probe hcyl reg 0 do_probe selct reg 0 do_probe stats reg 0 do_probe cntrl reg 0 [root at mbc80-4 ~]$ dump_cis Socket 0: no CIS present Socket 1: dev_info fn_specific 120ns, 2kb common_jedec 0xdf 0x01 manfid 0x0045, 0x0401 vers_1 4.1, "SanDisk", "SDP", "5/3 0.6" funcid fixed_disk [post] disk_interface [ide] disk_features [silicon] [unique] [single] [sleep] [standby] [idle] [low power] config base 0x0200 mask 0x000f last_index 0x07 cftable_entry 0x00 [default] [rdybsy] [mwait] [pwrdown] Vcc Vnom 5V Vmin 4500mV Vmax 5500mV Ipeak 80mA memory 0x0000-0x07ff @ 0x0000 cftable_entry 0x00 Vcc Vnom 3300mV Ipeak 45mA cftable_entry 0x01 [default] [rdybsy] [pwrdown] Vcc Vnom 5V Vmin 4500mV Vmax 5500mV Ipeak 80mA io 0x0000-0x000f [lines=4] [8bit] [16bit] irq mask 0xffff [level] [pulse] [shared] cftable_entry 0x01 Vcc Vnom 3300mV Ipeak 45mA cftable_entry 0x02 [default] [rdybsy] [pwrdown] Vcc Vnom 5V Vmin 4500mV Vmax 5500mV Ipeak 80mA io 0x01f0-0x01f7, 0x03f6-0x03f7 [lines=10] [8bit] [16bit] [range] irq 14 [level] [pulse] [shared] cftable_entry 0x02 Vcc Vnom 3300mV Ipeak 45mA cftable_entry 0x03 [default] [rdybsy] [pwrdown] Vcc Vnom 5V Vmin 4500mV Vmax 5500mV Ipeak 80mA io 0x0170-0x0177, 0x0376-0x0377 [lines=10] [8bit] [16bit] [range] irq 14 [level] [pulse] [shared] cftable_entry 0x03 Vcc Vnom 3300mV Ipeak 45mA cftable_entry 0x07