ICH7 and TI PCIxx12 Cardbus Controller

Edouard TISSERANT edouard.tisserant at lolitech.fr
Sat Jan 6 13:49:18 EST 2007


Dear list.

I've already post a similar message 2 weeks ago, but message subject was 
only about "Sierra Wireless Card", and the ones that may be concerned by 
the bug may simply have discarded the message.

THIS MESSAGE IS NOT ABOUT SUPPORT REQUEST FOR USING A SPECIFIC CARD. I 
CAN USE THE PCMCIA CARD ON ANOTHER LAPTOP WITH EXACTLY THE SAME 
CONFIGURATION, BUT WITH DIFFERENT CONTROLER. THIS IS NOT A CONFIGURATION 
PROBLEM !!

The problem has very similar symptoms to the Yenta TI/ICH6 problem
(bugzilla.kernel.org : 2944). I have ICH7 based laptop (Acer Aspire
9814WKMi).

I've checked that the bug #2944 "parent subordinate# fixup" patch
provided was already present in my kernel (2.6.19). It does not work,
even with this patch.

I've tried to track bug into the 2.6.19 kernel, without success. Here is
the scenario :
    - serial_cs cannot get good parameters for serial port. port, ttyS1,
is then badly configured. UART is not detected.
    - in simple_config, line 479, pcmcia_get_configuration_info retur
successfull, but (config.Attributes & CONF_VALID_CLIENT) is False !!
    - this mean that for my device
(pcmcia_device->function_config->state & CONFIG_LOCKED) is true. I
tested it.
    - I could not figure why. I disabled this check, so that
pccard_get_configuration_info execution reach bottom of the function,
thinking that CONFIG_LOCKED is "accidental".
    - It didn't changed anything... I stopped tracking bug here. I'm
sorry, but I do not well understand PCMCIA/PCI tricks, and code lacks of
comments :-)

Then I tried kernel 2.6.20-rc1-mm1, which embed last git pcmcia code. It
seems better:
    - Setserial /dev/ttyS1 tells me serial port IRQ is #21, as in
windows XP, instead of 3, totaly wrong
    - UART is not detected.
    - (pcmcia_device->function_config->state & CONFIG_LOCKED) is still 
true...

Here is interesting parts of my dmesg:

[when yenta modul is loaded]
bus pci: add driver yenta_cardbus
pci: Matched Device 0000:09:06.0 with Driver yenta_cardbus
pci: Probing driver yenta_cardbus with device 0000:09:06.0
Yenta: CardBus bridge found at 0000:09:06.0 [1025:006c]
Yenta: Enabling burst memory read transactions
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0000:09:06.0, mfunc 0x01a61b22, devctl 0x66

[...]
Yenta: ISA IRQ mask 0x0c78, PCI irq 21
Socket status: 30000006
[here, you can see the bug #2944 patch doing is job]
Yenta: Raising subordinate bus# of parent bus (#09) from #09 to #0d
pcmcia: parent PCI bridge I/O window: 0x7000 - 0x7fff
pcmcia: parent PCI bridge Memory window: 0xd2000000 - 0xd20fffff
pcmcia: parent PCI bridge Memory window: 0x88000000 - 0x89ffffff
CLASS: registering class device: ID = 'pcmcia_socket0'
class_uevent - name = pcmcia_socket0
bound device '0000:09:06.0' to driver 'yenta_cardbus'
pci: Bound Device 0000:09:06.0 to Driver yenta_cardbus

[later, when inserting card]
pccard: PCMCIA card inserted into slot 0
cs: memory probe 0x0c0000-0x0fffff: excluding 0xc0000-0xcffff
0xdc000-0xfffff
cs: memory probe 0x60000000-0x60ffffff: excluding 0x60000000-0x60ffffff
cs: memory probe 0x88000000-0x89ffffff: excluding 0x88000000-0x89ffffff
cs: memory probe 0xa0000000-0xa0ffffff: clean.
cs: memory probe 0xd2000000-0xd20fffff: excluding 0xd2000000-0xd200ffff
pcmcia: registering new device pcmcia0.0
DEV: registering device: ID = '0.0'
PM: Adding info for pcmcia:0.0
bus pcmcia: add device 0.0
bus pcmcia: add driver serial_cs
DEV: registering device: ID = '0.0'
PM: Adding info for No Bus:0.0
dev_uevent - dev_uevent() returned -19
DEV: Unregistering device. ID = '0.0'
PM: Removing info for No Bus:0.0
pcmcia: Matched Device 0.0 with Driver serial_cs
pcmcia: Probing driver serial_cs with device 0.0
pcmcia: request for exclusive IRQ could not be fulfilled.
pcmcia: the driver needs updating to supported shared IRQ lines.
DEV: Unregistering device. ID = 'ttyS1'
PM: Removing info for No Bus:ttyS1
device_create_release called for ttyS1
DEV: registering device: ID = 'ttyS1'
PM: Adding info for No Bus:ttyS1
bound device '0.0' to driver 'serial_cs'
pcmcia: Bound Device 0.0 to Driver serial_cs

# setserial /dev/ttyS1
/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 21

By the way, the all-in-one card reader does not work. dmesg tells many
IO errors when trying to access the inserted SD card. I think both
problems have same origin : IO mapping.

Sorry for the long post.

I'm waiting your instructions to definitively track and kill those bugs.

Regards,

Edouard



Here is my lspci:

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and
945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and
945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High
Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express
Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express
Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express
Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express
Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI
#1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI
#2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI
#3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI
#4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI
Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GHM (ICH7-M DH) LPC Interface
Bridge (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family)
Serial ATA Storage Controller IDE (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller
(rev 02)
01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce Go
7600] (rev a1)
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8055 PCI-E
Gigabit Ethernet Controller (rev 12)
07:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG
Network Connection (rev 02)
09:04.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135
Video Broadcast Decoder (rev d1)
09:06.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller
09:06.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant
IEEE 1394 Host Controller
09:06.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia
Card Reader (SD/MMC/MS/MS PRO/xD)
09:06.3 Class 0805: Texas Instruments PCIxx12 SDA Standard Compliant SD
Host Controller




More information about the linux-pcmcia mailing list