Re: ThinkPad 600 - CardBus inoperative

Greg Troxel <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
I have dealt with this on NetBSD, and am posting here in the hope my
experiences are helpful.  Thinkpad 600 (2645-41U) and 600E (2645-4AU)
have different and seemingly indepdenent cbb problems, and it seems 600X
might be like 600E.  This is all from memory, so take with a grain of
salt.

600: had uninitialized irq for cbb (-1).  pcic would attach ok if cbb
not in kernel.  With PCI_INTR_FIXUP, this would get whacked to 11 and
then it works.  I'm typing this with packets being routed through a 600
with two cbb ethernets (NetBSD 4 GENERIC_LAPTOP).

600E: If one mapped cardbus space at 1 GB, cardbus cards wouldn't work.
Mapping at 0.5 GB worked.

Ruslan recommended hw.cbb.start_memory=0xd8000, which is also below 1 GB
and very likely above physical memory (my 600 has 96 and 600E 192).

So, I suspect you have an IRQ routing problem, not a memory space
problem, unless you were speaking loosely about a "600".

>From NetBSD's pci(4):

        PCI_INTR_FIXUP  Fixup PCI interrupt routing via PCIBIOS or ACPI.

                        Some i386 and amd64 BIOS implementations don't assign
                        an interrupt for some devices.

                        This option assigns an interrupt for such devices
                        instead of relying upon the BIOS to do so.

                        If a valid interrupt has already been assigned to a
                        device, this option leaves the interrupt as is.

>From NetBSD's cardbus(4):

   Memory space conflicts
     NetBSD maps memory on Cardbus and PCMCIA cards in order to access the
     cards (including reading CIS tuples on PCMCIA cards) and access the
     devices using the RBUS abstraction.  When the mapping does not work, PCM-
     CIA cards are typically ignored on insert, and Cardbus cards are recog-
     nized but nonfunctional.  On i386, the kernel has a heuristic to choose a
     memory address for mapping, defaulting to 1 GB, but choosing 0.5 GB on
     machines with less than 192 MB RAM and 2 GB on machines with more than 1
     GB of RAM.  The intent is to use an address that is larger than available
     RAM, but low enough to work; some systems seem to have trouble with
     addresses requiring more than 20 address lines.  On i386, the following
     kernel configuration line disables the heuristics and forces Cardbus mem-
     ory space to be mapped at 512M; this value makes Cardbus support (includ-
     ing PCMCIA attachment under a cbb) work on some notebook models, includ-
     ing the IBM Thinkpad 600E (2645-4AU) and the Compaq ARMADA M700:

     options RBUS_MIN_START="0x20000000"
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.