From owner-freebsd-mobile@FreeBSD.ORG Fri Oct 28 15:48:48 2005 Return-Path: X-Original-To: freebsd-mobile@freebsd.org Delivered-To: freebsd-mobile@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AF8FF16A41F for ; Fri, 28 Oct 2005 15:48:48 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (vc4-2-0-87.dsl.netrack.net [199.45.160.85]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4935043D45 for ; Fri, 28 Oct 2005 15:48:48 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from localhost (localhost.village.org [127.0.0.1] (may be forged)) by harmony.bsdimp.com (8.13.3/8.13.3) with ESMTP id j9SFjk54059324; Fri, 28 Oct 2005 09:45:46 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Fri, 28 Oct 2005 09:45:31 -0600 (MDT) Message-Id: <20051028.094531.124922276.imp@bsdimp.com> To: vitaly.cherny@gmail.com From: "M. Warner Losh" In-Reply-To: <7bbc4caf0510271943x92ea70bl557ca9ee236acbe@mail.gmail.com> References: <7bbc4caf0510271611j71e39f83pbea0cd795cec002a@mail.gmail.com> <7bbc4caf0510271943x92ea70bl557ca9ee236acbe@mail.gmail.com> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (harmony.bsdimp.com [127.0.0.1]); Fri, 28 Oct 2005 09:45:46 -0600 (MDT) Cc: freebsd-mobile@freebsd.org Subject: Re: Texas Instruments cardbus bridge issue (PCI ID 104c:8031) X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Oct 2005 15:48:48 -0000 I think that your problem is due to the way that FreeBSD numbers, or doesn't number PCI busses. You have the right symptom set: 16-bit cards work great, 32-bit cards not at all. cbb_pcic_socket_disable # I insert and remove the D-Link G650 Cardbus card a couple of times: Status is 0x30000920 cbb0: card inserted: event=0x00000000, state=30000920 cbb0: cbb_power: 3V cbb0: cbb_power: 0V pcib2: at device 20.4 on pci0 pcib2: secondary bus 5 pcib2: subordinate bus 5 pcib2: I/O decode 0xa000-0xafff pcib2: memory decode 0xd0200000-0xd02fffff pcib2: prefetched decode 0xfff00000-0xfffff pcib2: Subtractively decoded bridge. pci5: on pcib2 cbb0: at device 9.0 on pci5 Notice that the subordinate bus number == 5. There's no way to get the config cycles to the cardbus bus. FreeBSD needs to renumber the '5' there to some larger value The cbb bridge says: 0x10: 0xd0208000 0x020000a0 0x20070605 0xfffff000 which says that the CardBus will be pci bus 6 and it can have 1 child pci bus 7. Try using pciconf to change pcib2's subordinate bus register to 7: pciconf -wb pci0:20:4 0x1a 7 This is, at best, a workaround until I can get the bus numbering code working. My laptops don't have this problem. Maybe I need to buy a new laptop. Maybe one with Express Card :-) Warner