Re: cardbus trouble

From: M. Warner Losh <imp_at_bsdimp.com>
Date: Sun, 09 May 2004 08:06:00 -0600 (MDT)
In message: <409E0D5A.19164.559D04D_at_localhost>
            "Dylan Wylie" <d.wylie_at_hccnet.nl> writes:
: Yes, it used to work perfectly.

I was afraid that you were going to say that :-(.

: The dmesg with both cardbus and cbb debuging enabled is included below.
: Again, it shows insertion of the cardbus card which fails, followed by the pccard 
: card, which succeedes.
: I also don't remember any 'lazy allocation' with the working builds.

The lazy allocation is fine, I'm pretty sure.  Let's look at things in
more detail, and I think the debug shows where we go off the rails:

: pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0

host bridge.

: pci0: <ACPI PCI bus> on pcib0

pci bus 0.

: agp0: <VIA Generic host to PCI bridge> mem 0xf8000000-0xfbffffff at device 0.0 on pci0
: agp0: Reserved 0x4000000 bytes for rid 0x10 type 3 at 0xf8000000

agp0 at pci0.0.0.


: pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
: pcib1: could not get PCI interrupt routing table for \\_SB_.PCI0.AGP_ - 
: AE_NOT_FOUND
: pci1: <ACPI PCI bus> on pcib1
: pci1: <display, VGA> at device 0.0 (no driver attached)

VGA at pci1.0.0.

: cbb0: <TI1211 PCI-CardBus Bridge> at device 10.0 on pci0

cbb is at pci0.10.0.

: cbb0: Secondary bus is 0
: cbb0: Secondary bus set to 1 subbus 2

DANGER WILL ROBINSON.  Secondary bus is now being set to 1.  Before I
think we kludged it to 2 always, but I might be mistaken.  However,
this is clearly the problem reguardless of what we used to do.

: cardbus0: <display, VGA> at device 0.0 (no driver attached)

Hmmm, odd that it is now being probed just like the device at
pci1.0.0, don't you think?

So, give the following patch a spin.  Try 3 and 4 if this fails.
Clearly this is a bogus patch from a generic point of view, but it is
good for testing.

Warner

Index: pccbb.c
===================================================================
RCS file: /cache/ncvs/src/sys/dev/pccbb/pccbb.c,v
retrieving revision 1.110
diff -u -r1.110 pccbb.c
--- pccbb.c	4 May 2004 02:25:00 -0000	1.110
+++ pccbb.c	9 May 2004 14:01:37 -0000
_at__at_ -683,7 +683,7 _at__at_
 static int
 cbb_attach(device_t brdev)
 {
-	static int curr_bus_number = 1; /* XXX EVILE BAD (see below) */
+	static int curr_bus_number = 2; /* XXX EVILE BAD (see below) */
 	struct cbb_softc *sc = (struct cbb_softc *)device_get_softc(brdev);
 	int rid, bus, pribus;
 	device_t parent;
Received on Sun May 09 2004 - 06:35:22 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:53 UTC