On Thu, 23 Nov 2000, Linus Torvalds wrote: > That bus setup is horribly wrong, and says that the CardBus bridge no bus > numbers, which is obviously not correct. It somehow got through the bridge > scanning without being fixed up.. > > Now, the reason for why it seems to be so unhappy is apparently > > Scanning behind PCI bridge 00:08.0, config 000040, pass 1 > Scanning behind PCI bridge 00:08.1, config 000040, pass 1 > > Note the "config 000040". It basically seems to imply that the cardbus > bridge has been set up as bus 0x40, ie 64. With no secondary bus behind > it. Which looks completely and utterly bogus. > > I bet the thing works for you if you change the magic constant 0xffffff in > pci_scan_bridge() to the new magic constant 0xffff00. Basically, we don't > much care what it reports for the primary bus number: but we _do_ care > that a PCI bridge should have a secondary bus number. Two down. I no longer need the Windows by-pass surgery. Thanks! [I have attached the new dmesg and lspci output for your amusement.] Oh, I almost forgot. When the bus numbers were wrong, and I inserted a Cardbus card, I could no longer user lspci, since it tried to open a non-existing file unser /proc/bus/pci/. It did not help to eject the card, so I guess the kernel left something in a half-initialized state. Would you like me to try to find out more details, or is it a non-issue, or maybe obvious? /Tobias
00:00.0 Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 03) Subsystem: Mitac: Unknown device 7233 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- Latency: 64 Region 0: Memory at 20000000 (32-bit, prefetchable) [size=256M] Capabilities: [a0] AGP version 1.0 Status: RQ=31 SBA+ 64bit- FW- Rate=x1,x2 Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none> 00:01.0 PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 03) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap- 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=128 I/O behind bridge: 0000d000-0000dfff Memory behind bridge: e4000000-e7ffffff Prefetchable memory behind bridge: e0000000-e3ffffff BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B+ 00:07.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02) Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 00:07.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01) (prog-if 80 [Master]) Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 Region 4: I/O ports at 1100 [size=16] 00:07.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01) (prog-if 00 [UHCI]) Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin D routed to IRQ 9 Region 4: I/O ports at 1040 [size=32] 00:07.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02) Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- 00:08.0 CardBus bridge: Texas Instruments PCI1225 (rev 01) Subsystem: Mitac: Unknown device 7233 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 168, cache line size 08 Interrupt: pin A routed to IRQ 10 Region 0: Memory at 10000000 (32-bit, non-prefetchable) [size=4K] Bus: primary=00, secondary=02, subordinate=02, sec-latency=176 Memory window 0: 10400000-107ff000 (prefetchable) Memory window 1: 10800000-10bff000 I/O window 0: 00001800-000018ff I/O window 1: 00001c00-00001cff BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+ 16-bit legacy interface ports at 0001 00:08.1 CardBus bridge: Texas Instruments PCI1225 (rev 01) Subsystem: Mitac: Unknown device 7233 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 168, cache line size 08 Interrupt: pin A routed to IRQ 10 Region 0: Memory at 10001000 (32-bit, non-prefetchable) [size=4K] Bus: primary=00, secondary=06, subordinate=06, sec-latency=176 Memory window 0: 10c00000-10fff000 (prefetchable) Memory window 1: 11000000-113ff000 I/O window 0: 00002000-000020ff I/O window 1: 00002400-000024ff BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+ 16-bit legacy interface ports at 0001 00:09.0 Multimedia audio controller: ESS Technology ES1978 Maestro 2E (rev 10) Subsystem: Mitac: Unknown device 7233 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 (500ns min, 6000ns max) Interrupt: pin A routed to IRQ 5 Region 0: I/O ports at fc00 [size=256] Capabilities: [c0] Power Management version 2 Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:0a.0 Communication controller: PCTel Inc HSP MicroModem 56 (rev 01) Subsystem: Mitac: Unknown device 7233 Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin A routed to IRQ 10 Region 0: I/O ports at 1440 [size=64] Capabilities: [40] Power Management version 2 Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=55mA PME(D0+,D1-,D2+,D3hot+,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME+ 01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage LT Pro AGP-133 (rev dc) (prog-if 00 [VGA]) Subsystem: Mitac: Unknown device 7233 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 (2000ns min), cache line size 04 Interrupt: pin A routed to IRQ 0 Region 0: Memory at e4000000 (32-bit, non-prefetchable) [size=16M] Region 1: I/O ports at d000 [size=256] Region 2: Memory at e6000000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at fffe0000 [disabled] [size=128K] Capabilities: [50] AGP version 1.0 Status: RQ=255 SBA+ 64bit- FW- Rate=x1,x2 Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none> Capabilities: [5c] Power Management version 1 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RT8139 (B/C) Cardbus Fast Ethernet Adapter (rev 10) Subsystem: Argosy research Inc: Unknown device 0235 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 (8000ns min, 16000ns max) Interrupt: pin A routed to IRQ 10 Region 0: I/O ports at 1800 [size=256] Region 1: Memory at 10800000 (32-bit, non-prefetchable) [size=512] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [60] Vital Product Data
Linux version 2.4.0-test11 ([EMAIL PROTECTED]) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #26 Fri Nov 24 13:25:49 CET 2000 BIOS-provided physical RAM map: BIOS-e820: 000000000009fc00 @ 0000000000000000 (usable) BIOS-e820: 0000000000000400 @ 000000000009fc00 (reserved) BIOS-e820: 0000000000010000 @ 00000000000f0000 (reserved) BIOS-e820: 0000000009ef0000 @ 0000000000100000 (usable) BIOS-e820: 000000000000ffc0 @ 0000000009ff0000 (ACPI data) BIOS-e820: 0000000000000040 @ 0000000009ffffc0 (ACPI NVS) BIOS-e820: 0000000000040000 @ 00000000fffc0000 (reserved) On node 0 totalpages: 40944 zone(0): 4096 pages. zone(1): 36848 pages. zone(2): 0 pages. Kernel command line: auto BOOT_IMAGE=Linux ro root=303 BOOT_FILE=/boot/vmlinuz Initializing CPU#0 Detected 497.846 MHz processor. Console: colour VGA+ 80x25 Calibrating delay loop... 992.87 BogoMIPS Memory: 158400k/163776k available (1754k kernel code, 4988k reserved, 106k data, 180k init, 0k highmem) Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes) Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes) Page-cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 16384 (order: 5, 131072 bytes) CPU: Before vendor init, caps: 0383f9ff 00000000 00000000, vendor = 0 CPU: L2 cache: 256K Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. CPU: After vendor init, caps: 0383f9ff 00000000 00000000 00000000 CPU: After generic, caps: 0383f9ff 00000000 00000000 00000000 CPU: Common caps: 0383f9ff 00000000 00000000 00000000 CPU: Intel Pentium III (Coppermine) stepping 03 Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Checking 'hlt' instruction... OK. POSIX conformance testing by UNIFIX mtrr: v1.37 (20001109) Richard Gooch ([EMAIL PROTECTED]) mtrr: detected mtrr type: Intel PCI: BIOS32 Service Directory structure at 0xc00e8050 PCI: BIOS32 Service Directory entry at 0xeb350 PCI: BIOS probe returned s=00 hw=11 ver=02.10 l=01 PCI: PCI BIOS revision 2.10 entry at 0xeb390, last bus=1 PCI: Using configuration type 1 PCI: Probing PCI hardware Scanning bus 00 Found 00:00 [8086/7190] 000600 00 PCI: Calling quirk c02d80f0 for 00:00.0 Found 00:08 [8086/7191] 000604 01 PCI: Calling quirk c02d80f0 for 00:01.0 Found 00:38 [8086/7110] 000601 00 PCI: Calling quirk c02d80f0 for 00:07.0 Found 00:39 [8086/7111] 000101 00 PCI: Calling quirk c02d80f0 for 00:07.1 PCI: IDE base address fixup for 00:07.1 Found 00:3a [8086/7112] 000c03 00 PCI: Calling quirk c02d80f0 for 00:07.2 PCI: Calling quirk c02e18ec for 00:07.2 Found 00:3b [8086/7113] 000680 00 PCI: Calling quirk c02d80f0 for 00:07.3 PCI: Calling quirk c02e17f0 for 00:07.3 Found 00:40 [104c/ac1c] 000607 02 PCI: Calling quirk c02d80f0 for 00:08.0 Found 00:41 [104c/ac1c] 000607 02 PCI: Calling quirk c02d80f0 for 00:08.1 Found 00:48 [125d/1978] 000401 00 PCI: Calling quirk c02d80f0 for 00:09.0 Found 00:50 [134d/7890] 000780 00 PCI: Calling quirk c02d80f0 for 00:0a.0 Fixups for bus 00 PCI: Scanning for ghost devices on bus 0 Scanning behind PCI bridge 00:01.0, config 010100, pass 0 Scanning bus 01 Found 01:00 [1002/4c42] 000300 00 PCI: Calling quirk c02d80f0 for 01:00.0 Fixups for bus 01 PCI: Scanning for ghost devices on bus 1 Bus scan for 01 returning with max=01 Scanning behind PCI bridge 00:08.0, config 000000, pass 0 Scanning behind PCI bridge 00:08.1, config 000000, pass 0 Scanning behind PCI bridge 00:01.0, config 010100, pass 1 Scanning behind PCI bridge 00:08.0, config 000000, pass 1 Scanning behind PCI bridge 00:08.1, config 000000, pass 1 Bus scan for 00 returning with max=09 PCI: IRQ init PCI: Interrupt Routing Table found at 0xc00fe840 00:07 slot=00 0:00/0e00 1:00/0e00 2:00/0e00 3:63/1620 00:08 slot=01 0:60/0600 1:60/0600 2:00/0400 3:00/0400 00:0a slot=03 0:61/1498 1:00/0e20 2:00/0e20 3:00/0e20 00:09 slot=06 0:62/0e20 1:00/0e20 2:00/0e20 3:00/0e20 01:00 slot=09 0:60/0ca0 1:00/0ca0 2:00/0ca0 3:00/0ca0 PCI: Bus 01 already known PCI: Using IRQ router PIIX [8086/7110] at 00:07.0 PCI: IRQ fixup 00:07.2: ignoring bogus IRQ 128 01:00.0: ignoring bogus IRQ 255 IRQ for 00:07.2(3) via 00:07.2 -> PIRQ 63, mask 1620, excl 0000 ... failed IRQ for 01:00.0(0) via 00:01.0 -> not found in routing table PCI: Allocating resources PCI: Resource 20000000-2fffffff (f=1208, d=0, p=0) PCI: Resource 00001100-0000110f (f=101, d=0, p=0) PCI: Resource 00001040-0000105f (f=101, d=0, p=0) PCI: Resource 10000000-10000fff (f=200, d=0, p=0) PCI: Resource 10001000-10001fff (f=200, d=0, p=0) PCI: Resource 0000fc00-0000fcff (f=101, d=0, p=0) PCI: Resource 00001440-0000147f (f=101, d=0, p=0) PCI: Resource e4000000-e4ffffff (f=200, d=0, p=0) PCI: Resource 0000d000-0000d0ff (f=101, d=0, p=0) PCI: Resource e6000000-e6000fff (f=200, d=0, p=0) PCI: Sorting device list... PCI: Calling quirk c02e1704 for 00:00.0 Limiting direct PCI/PCI transfers. PCI: Calling quirk c02e1704 for 00:01.0 Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket apm: BIOS version 1.2 Flags 0x03 (Driver version 1.13) Starting kswapd v1.8 pty: 256 Unix98 ptys configured loop: enabling 8 loop devices Uniform Multi-Platform E-IDE driver Revision: 6.31 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx PIIX4: IDE controller on PCI bus 00 dev 39 PIIX4: chipset revision 1 PIIX4: not 100% native mode: will probe irqs later ide0: BM-DMA at 0x1100-0x1107, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0x1108-0x110f, BIOS settings: hdc:DMA, hdd:pio hda: FUJITSU MHM2100AT, ATA DISK drive hdc: CD-224E, ATAPI CDROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 ide1 at 0x170-0x177,0x376 on irq 15 hda: 19640880 sectors (10056 MB) w/2048KiB Cache, CHS=1222/255/63, UDMA(33) hdc: ATAPI 24X CD-ROM drive, 128kB Cache, DMA Uniform CD-ROM driver Revision: 3.11 Partition check: hda: hda1 hda2 hda3 hda4 Floppy drive(s): fd0 is 1.44M FDC 0 is a National Semiconductor PC87306 NTFS version 000607 udf: registering filesystem Serial driver version 5.02 (2000-08-09) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A ttyS01 at 0x02f8 (irq = 3) is a 16550A Real Time Clock Driver v1.10d Linux agpgart interface v0.99 (c) Jeff Hartmann agpgart: Maximum main memory to use for agp memory: 122M agpgart: unsupported bridge agpgart: no supported devices found. [drm] The mga drm module requires the agpgart module to function correctly Please load the agpgart module before you load the mga module Linux PCMCIA Card Services 3.1.22 options: [pci] [cardbus] [pm] usb.c: registered new driver usbdevfs usb.c: registered new driver hub IRQ for 00:07.2(3) via 00:07.2 -> PIRQ 63, mask 1620, excl 0000 -> newirq=9 -> assigning IRQ 9 ... OK PCI: Assigned IRQ 9 for device 00:07.2 uhci.c: USB UHCI at I/O 0x1040, IRQ 9 uhci.c: detected 2 ports Yenta IRQ list 0898, PCI irq10 Socket status: 30000006 Yenta IRQ list 0898, PCI irq10 Socket status: 30000006 usb.c: new USB bus registered, assigned bus number 1 hub.c: USB hub found hub.c: 2 ports detected usb.c: registered new driver hid mice: PS/2 mouse device common for all mice NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP, IGMP IP: routing cache hash table of 1024 buckets, 8Kbytes TCP: Hash tables configured (established 16384 bind 16384) IPv4 over IPv4 tunneling driver GRE over IPv4 tunneling driver NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. kmem_create: Forcing size word alignment - nfs_fh VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 180k freed Adding Swap: 136544k swap-space (priority -1) maestro: version 0.14 time 15:51:42 Nov 20 2000 maestro: Configuring ESS Maestro 2E found at IO 0xFC00 IRQ 5 maestro: subvendor id: 0x72331071 maestro: not attempting power management. maestro: AC97 Codec detected: v: 0x83847609 caps: 0x6940 pwr: 0xf maestro: 1 channels configured. cs: cb_alloc(bus 2): vendor 0x10ec, device 0x8138 Found 02:00 [10ec/8138] 000200 00 got res[1800:18ff] for resource 0 got res[10800000:108001ff] for resource 1 PCI: Enabling device 02:00.0 (0000 -> 0003) IRQ for 02:00.0(0) via 00:08.0 -> PIRQ 60, mask 0600, excl 0000 -> newirq=9 -> got IRQ 10 PCI: Found IRQ 10 for device 02:00.0 PCI: The same IRQ used for device 00:08.0 PCI: The same IRQ used for device 00:08.1 8139too Fast Ethernet driver 0.9.11 loaded PCI: Enabling bus mastering for device 02:00.0 PCI: Setting latency timer of device 02:00.0 to 64 eth0: RealTek RTL8139B PCI/CardBus at 0xca824000, 00:10:d7:09:27:9a, IRQ 10 eth0: Identified 8139 chip type 'RTL-8139B'