trouble with TI PCI1410 on IBM G40 w/ 2.6.6
proski at gnu.org
Tue May 25 12:39:25 EDT 2004
On Tue, 25 May 2004, joshua reich wrote:
> I recently upgraded from 2.4.22 to 2.6.6 and have been having difficulties
> getting PCMCIA working. I had no problems under 2.4.22, and have no
> problems on WinXP (dual boot). Interestingly, I tried going back to 2.4.x
> and have run into similar problems.
There have been changes to deal with improperly initialized TI cards. My
patch was applied and later reverted in 2.4 series due to problems with
laptops. Another, more complicated patch was created by Daniel Ritz, and
it's now used in 2.6 kernels.
Your card doesn't appear to be one of those broken cards the patches were
meant to deal with. But it's affected nevertheless. This is a bug that
needs to be fixed.
My guess is that your original 2.4.22 kernel had my patch for TI cards
re-enabled. The new 2.4 kernel is probably unpatched.
P.S. Or maybe you added memory and hit a bug in GNU GRUB (it's fixed in
CVS version of GNU GRUB).
> Any help or pointers would be much appreciated.
> Below is the relevant(?) output:
> [root at laplap root]# uname -a
> Linux laplap 2.6.6 #4 Tue May 25 03:58:05 EST 2004 i686 i686 i386
> [root at laplap root]# cardctl status
> Socket 0:
> no card
> Linux Kernel Card Services
> options: [pci] [cardbus]
> Yenta: CardBus bridge found at 0000:02:01.0 [1014:054e]
> Yenta: adjusting diagnostic: 40 -> 60
This bit is directly related to interrupt routing. The documentation
recommends to leave it alone.
> Yenta: Using CSCINT to route CSC interrupts to PCI
> Yenta: Routing CardBus interrupts to PCI
> Yenta TI: socket 0000:02:01.0, mfunc 0x011c1112, devctl 0x64
Serialized ISA and parallel PCI interrupts, 3.3V capable.
Look reasonable to me. The card should work with serialized ISA and
parallel PCI interrupts. Both are routed properly.
> Yenta TI: socket 0000:02:01.0 probing PCI interrupt failed, trying to fix
> Yenta TI: socket 0000:02:01.0 no PCI interrupts. Fish. Please report.
> Socket status: 00200f00
The socket status looks very wrong. Bit 21 is reserved and should not be
set. Bit 9 is "bad Vcc request". Card detection bits are wrong. Looks
like a bogus number to me.
> 02:01.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus
> Controller (rev 02)
> Subsystem: IBM: Unknown device 054e
> Flags: bus master, medium devsel, latency 168, IRQ 11
> Memory at 3f6fb000 (32-bit, non-prefetchable) [size=4K]
> Bus: primary=02, secondary=03, subordinate=06, sec-latency=176
> Memory window 0: 40000000-403ff000 (prefetchable)
> Memory window 1: 40400000-407ff000
> I/O window 0: 00004000-000040ff
> I/O window 1: 00004400-000044ff
> 16-bit legacy interface ports at 0001
Maybe you have 1 Gb of memory? Similar problems have been discussed in
Possible things to try.
1) If you are using GNU GRUB to load the kernel, please use
--no-mem-option option for the kernel command:
kernel --no-mem-option (hd0,0)/boot/vmlinuz
This would fix incorrect detection of available memory and possible memory
2) Find line in drivers/pcmcia/yenta_socket.c containing
PCI_DEVICE_ID_TI_1410 and replace TI1250 with TI12XX. This would disable
adjustment of the diagnostics register.
3) Change yenta_probe_cb_irq() to return 1 always. This would check if
the interrupt probing is correct. Check some PCMCIA card to see if it
If you have further problems, following would be useful:
Full kernel log from the boot as shown by dmesg.
.config used to compile the kernel.
Description of the PCMCIA bridge card and the system (whether it's a
laptop, whether the PCMCIA bridge is integrated or it's a separate PCI
device, model numbers etc).
More information about the linux-pcmcia