Strange behaviour of PCMCIA

Daniel Ritz daniel.ritz at gmx.ch
Wed Sep 7 18:53:26 EDT 2005


On Thursday 08 September 2005 00.07, Stefano Negro wrote:
> Alle 22:03, mercoledì 7 settembre 2005, Daniel Ritz ha scritto:
> > hi
> >
> > please send full dmesg output, 
> [root at localhost ~]# cat /var/log/dmesg
[snip dmesg]

dmesg is missing the lines that start with "Yenta:". but it wouldn't
tell why the cardbus cards is not working anyway. lspci does that...

> 
> > lspci -vvv  
>  [root at localhost ~]# lspci -vvv
[ blablabla ]
> 00:14.4 PCI bridge: ATI Technologies Inc: Unknown device 4342 (prog-if 01 
> [Subtractive decode])
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
> Stepping- SERR+ FastB2B-
>         Status: Cap- 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
> <TAbort- <MAbort- >SERR- <PERR-
>         Latency: 64
>         Bus: primary=00, secondary=02, subordinate=02, sec-latency=32
                                         ^^^^^^^^^^^^^^
and here's the problem. subordinate bus is 2 so only bus 2 is forwarded
by the pci bridge....

>         I/O behind bridge: 0000a000-0000bfff
>         Memory behind bridge: d0000000-dfffffff
>         Prefetchable memory behind bridge: 90000000-9fffffff
>         BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> 
[ snip some more unrelated stuff ]
> 02:06.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller 
> (rev 02)
>         Subsystem: Toshiba America Info Systems: Unknown device ff10
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
> Stepping- SERR- FastB2B-
>         Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- 
> <TAbort- <MAbort- >SERR- <PERR-
>         Latency: 168, cache line size 08
>         Interrupt: pin A routed to IRQ 19
>         Region 0: Memory at 28001000 (32-bit, non-prefetchable) [size=4K]
>         Bus: primary=02, secondary=03, subordinate=06, sec-latency=176
                           ^^^^^^^^^^^^
but the cardbus bridge (which is on bus 2) forwards buses 3 to 6. the wireless
card would end up on bus 3. but that one is not reachable.

>         Memory window 0: 28400000-287ff000 (prefetchable)
>         Memory window 1: 28800000-28bff000
>         I/O window 0: 00004400-000044ff
>         I/O window 1: 00004800-000048ff
>         BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+
>         16-bit legacy interface ports at 0001
> 
>
[ snip even more ]
> 
> Thanks Daniel,
> please find here above the three files you required. I would like to add the 
> part of lilo.conf regarding the option which I use to boot, because I think 
> could be useful to know the append parameters.
> 
> ---lilo.conf---
> [cut]
> image=/boot/vmlinuz-2.6.11-12mdksmp
>         label="2611-12smp"
>         root=/dev/hda5
>         initrd=/boot/initrd-2.6.11-12mdksmp.img
>         append="splash=silent reboot=bios,warm"
>         vga=788
>         read-only
> 

so the solution is to add
	pci=assign-busses
to the kernel command line. the kernel then sets the correct subordinate
number on the PCI bridge. alternativley if you're too lazy to reboot use setpci:
	setpci -s 00:14.4 0x1a.b=0x06
(before you insert the wireless card, of course).

the unable to remove socket power message is probably just because of some
pci posted writes. if that's the case the message is completly harmless.
(see the following link for a patch that fixes it:
http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.13/2.6.13-mm1/broken-out/pcmcia-yenta-avoid-pci-write-posting-problem.patch
)

rgds
-daniel



More information about the linux-pcmcia mailing list