PROBLEM: non-transparent Intel 82801BAM/CAM PCI-to-PCI bridge (rev. 81 chip, in IBM T40 2373-92U 4/2003 laptop)

From: Mitch Sukalski (mwsukal@ca.sandia.gov)
Date: Fri Jun 27 2003 - 14:19:39 EST


If you have a new IBM T40 (mine is a model 2372-92U, build 4/03, 2GB RAM), the
latest 2.4.21 kernel (and 2.4.20 as well), and PCMCIA support is broken, then
you may have the same problem that I've just isolated. My symptoms included
crazy values for socket status, and many "timed out during reset" messages
(see dmesg output below).

Jun 12 15:00:36 juggler kernel: Yenta IRQ list 0000, PCI irq11
Jun 12 15:00:36 juggler kernel: Socket status: 080c2420
Jun 12 15:00:36 juggler kernel: Yenta IRQ list 0000, PCI irq11
Jun 12 15:00:36 juggler kernel: Socket status: 000dd9e2
Jun 12 15:00:39 juggler kernel: cs: socket f74a8000 timed out during reset.
Try increasing setup_delay.
<last line repeated...>

The root of the problem is that PCI fixup code currently assumes that all
Intel 82801 family PCI bridge chips operate in transparent mode, no matter
what they self-report or how they are configured. With that assumption, the
Cardbus controller will have its I/O regions fortuitously mapped into the
right space (at least on my machine), but the memory regions are mapped right
at the end of RAM (instead of memory the bridge is configured to access).

If you remove the next-to-last entry for pcibios_fixup[] in file
arch/i386/kernel/pci-pc.c for pci_fixup_transparent_bridge() and recompile,
then everything will be mapped correctly. I realize that this is not a
general fix, since many 82801 chips are broken. Still, I thought the user
community might want this information to save time in tracking down this
problem. I've attached "/sbin/lspci -vv -x" output running under this
modified working kernel for the experts.

Cheers,

Mitch

-- 
Mitch Sukalski <mwsukal@ca.sandia.gov> 
HPC and Networking Research (8961) 
Sandia National Laboratories 
P.O. Box 969, Mail Stop 9915, Livermore, CA. 94551-0969 
phone: (925) 294-4713 
fax: (925) 294-2776


- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jun 30 2003 - 22:00:27 EST