Date: Fri, 22 Feb 2008 07:26:44 -0500 From: Greg Troxel <gdt@ir.bbn.com> To: Andreas Wetzel <mickey242@gmx.net> Cc: freebsd-mobile@freebsd.org Subject: Re: ThinkPad 600 - CardBus inoperative Message-ID: <rmiprupb2ij.fsf@fnord.ir.bbn.com> In-Reply-To: <47BE9CBC.6010500@gmx.net> (Andreas Wetzel's message of "Fri, 22 Feb 2008 10:58:20 %2B0100") References: <47BE9CBC.6010500@gmx.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?rmiprupb2ij.fsf>