Opened 8 years ago

Closed 7 years ago

#7971 closed bug (fixed)

panics while trying to find IRQ routing for non existant PCI-device

Reported by: pfoetchen_ Owned by: mmlr
Priority: normal Milestone: R1
Component: System/Kernel Version: R1/Development
Keywords: pci irq routing Cc: joshua.kraemer@…
Blocked By: Blocking:
Has a Patch: no Platform: x86

Description

I tried to boot hrev42719 on this Acer Aspire 1360 and it panics early in the boot process trying to find an irq routing for PCI-device 0:17:1 and at least lspci under linux does not know anything about such a device ..

I don't know the bios password for this machine so I can't change anything in the bios..

I attached a picture of the bt (hmmm perhapse I could add a qr code generator to the debug output so that the screenshots are easyer to read by computer ;) ).

here is the lspci output:

00:00.0 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
	Latency: 8
	Region 0: Memory at d0000000 (32-bit, prefetchable) [size=256M]
	Capabilities: <access denied>
	Kernel driver in use: agpgart-amd64
	Kernel modules: amd64-agp

00:00.1 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:00.2 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:00.3 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:00.4 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:00.7 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI bridge [K8T800/K8T890 South] (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
	Memory behind bridge: c1000000-c1ffffff
	Prefetchable memory behind bridge: e0000000-efffffff
	Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel modules: shpchp

00:0b.0 CardBus bridge: Texas Instruments PCI7420 CardBus Controller
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 168, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 17
	Region 0: Memory at 30000000 (32-bit, non-prefetchable) [size=4K]
	Bus: primary=00, secondary=02, subordinate=05, sec-latency=176
	Memory window 0: 20000000-23fff000 (prefetchable)
	Memory window 1: 24000000-27fff000
	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
	Kernel driver in use: yenta_cardbus
	Kernel modules: yenta_socket

00:0b.1 CardBus bridge: Texas Instruments PCI7420 CardBus Controller
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 168, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 18
	Region 0: Memory at 30001000 (32-bit, non-prefetchable) [size=4K]
	Bus: primary=00, secondary=06, subordinate=09, sec-latency=176
	Memory window 0: 28000000-2bfff000 (prefetchable)
	Memory window 1: 2c000000-2ffff000
	I/O window 0: 00002800-000028ff
	I/O window 1: 00002c00-00002cff
	BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
	16-bit legacy interface ports at 0001
	Kernel driver in use: yenta_cardbus
	Kernel modules: yenta_socket

00:0b.2 FireWire (IEEE 1394): Texas Instruments PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller (prog-if 10 [OHCI])
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64 (500ns min, 1000ns max), Cache Line Size: 64 bytes
	Interrupt: pin C routed to IRQ 19
	Region 0: Memory at c0005000 (32-bit, non-prefetchable) [size=2K]
	Region 1: Memory at c0000000 (32-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: firewire_ohci
	Kernel modules: firewire-ohci

00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) (prog-if 00 [UHCI])
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 21
	Region 4: I/O ports at 1c00 [size=32]
	Capabilities: <access denied>
	Kernel driver in use: uhci_hcd
	Kernel modules: uhci-hcd

00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) (prog-if 00 [UHCI])
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin B routed to IRQ 21
	Region 4: I/O ports at 1c20 [size=32]
	Capabilities: <access denied>
	Kernel driver in use: uhci_hcd
	Kernel modules: uhci-hcd

00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80) (prog-if 00 [UHCI])
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin C routed to IRQ 21
	Region 4: I/O ports at 1c40 [size=32]
	Capabilities: <access denied>
	Kernel driver in use: uhci_hcd
	Kernel modules: uhci-hcd

00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82) (prog-if 20 [EHCI])
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64, Cache Line Size: 64 bytes
	Interrupt: pin D routed to IRQ 21
	Region 0: Memory at c0005800 (32-bit, non-prefetchable) [size=256]
	Capabilities: <access denied>
	Kernel driver in use: ehci_hcd
	Kernel modules: ehci-hcd

00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge
	Subsystem: VIA Technologies, Inc. VT8235 ISA Bridge
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Capabilities: <access denied>
	Kernel modules: i2c-viapro, via-ircc

00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) (prog-if 8a [Master SecP PriP])
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64
	Interrupt: pin A routed to IRQ 0
	Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
	Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
	Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
	Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable) [size=1]
	Region 4: I/O ports at 1c60 [size=16]
	Capabilities: <access denied>
	Kernel driver in use: pata_via
	Kernel modules: via82cxxx, pata_via

00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
	Subsystem: Acer Incorporated [ALI] Device 0046
	Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin C routed to IRQ 22
	Region 0: I/O ports at 1000 [size=256]
	Capabilities: <access denied>
	Kernel driver in use: VIA 82xx Audio
	Kernel modules: snd-via82xx

00:11.6 Communication controller: VIA Technologies, Inc. AC'97 Modem Controller (rev 80)
	Subsystem: Acer Incorporated [ALI] Device 0046
	Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin C routed to IRQ 22
	Region 0: I/O ports at 1400 [size=256]
	Capabilities: <access denied>
	Kernel driver in use: VIA 82xx Modem
	Kernel modules: snd-via82xx-modem

00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64 (750ns min, 2000ns max), Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 23
	Region 0: I/O ports at 1800 [size=256]
	Region 1: Memory at c0005c00 (32-bit, non-prefetchable) [size=256]
	Capabilities: <access denied>
	Kernel driver in use: via-rhine
	Kernel modules: via-rhine

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Capabilities: <access denied>

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Kernel driver in use: k8temp
	Kernel modules: k8temp

01:00.0 VGA compatible controller: nVidia Corporation NV34M [GeForce FX Go5200 64M] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: Acer Incorporated [ALI] Device 006e
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64 (1250ns min, 250ns max)
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at c1000000 (32-bit, non-prefetchable) [size=16M]
	Region 1: Memory at e0000000 (32-bit, prefetchable) [size=128M]
	Expansion ROM at e8000000 [disabled] [size=128K]
	Capabilities: <access denied>
	Kernel driver in use: nouveau
	Kernel modules: nouveau, nvidiafb

Attachments (5)

S1053981.JPG (3.1 MB ) - added by pfoetchen_ 8 years ago.
debug output during boot
out.jpg (1.8 MB ) - added by pfoetchen_ 8 years ago.
boot PCI-device dump
usb.jpg (780.9 KB ) - added by pfoetchen_ 8 years ago.
usb error
r42792_kdl.txt (12.4 KB ) - added by Mictlantecuhtli 8 years ago.
KDL in hrev42792, virtual machine
hrev44678_ThinkCentre_M51.jpg (87.5 KB ) - added by Joshua_K 7 years ago.
Early panic when booting hrev44678 on an IBM ThinkCentre M51

Change History (14)

by pfoetchen_, 8 years ago

Attachment: S1053981.JPG added

debug output during boot

comment:1 by anevilyak, 8 years ago

Component: SystemSystem/Kernel
Owner: changed from nobody to mmlr
Status: newassigned

in reply to:  description comment:2 by mmlr, 8 years ago

Replying to pfoetchen_:

I tried to boot hrev42719 on this Acer Aspire 1360 and it panics early in the boot process trying to find an irq routing for PCI-device 0:17:1 and at least lspci under linux does not know anything about such a device ..

That is not relevant, as the OS can reconfigure those and the addresses aren't necessarily structured the same.

Considering the place of the panic (ensure_all_functions_matched) it most probably is a present device. That it fails to find a match means that there is neither a routing table entry for the device nor could one be incurred from any of its parent devices, making the device unusable.

here is the lspci output:

As mentioned this one isn't really helpful. Instead please grab the initial on-screen output where the PCI devices are dumped. This one has the devices in the configuration as Haiku sees/uses them.

In either case the panic is non-fatal (the specific device just won't be able to use PCI IRQs) and you can continue out of it using the "continue" KDL command. Depending on what's going wrong exactly it's possible though that the panic reoccurs for multiple devices.

by pfoetchen_, 8 years ago

Attachment: out.jpg added

boot PCI-device dump

comment:3 by pfoetchen_, 8 years ago

Ah ok I booted it again and took some more photos ;) 17:0:1 is the IDE-controler and it seems to work after typing continue (at least it finds the hardisk)

But I can't boot from the USB-stick since it has (unrelated?) truble with the usb-controler or the usb stick. I can't boot form USB directly but chainload the USB stick from grub on the hd so it might also be that grub leaves the controler in some strange state or something like that ;).

by pfoetchen_, 8 years ago

Attachment: usb.jpg added

usb error

in reply to:  3 comment:4 by mmlr, 8 years ago

Sorry for the delay.

Replying to pfoetchen_:

But I can't boot from the USB-stick since it has (unrelated?) truble with the usb-controler or the usb stick. I can't boot form USB directly but chainload the USB stick from grub on the hd so it might also be that grub leaves the controler in some strange state or something like that ;).

It looks like the IO-APIC is actually required, or that the revert to non IO-APIC mode after the configuration failure doesn't work on this particular configuration. What you can try is disabling the IO-APIC via safemode settings in the bootloader menu instead. If it is only reverting the interrupt routing model that is not working, then that should get it going.

by Mictlantecuhtli, 8 years ago

Attachment: r42792_kdl.txt added

KDL in hrev42792, virtual machine

comment:5 by Mictlantecuhtli, 8 years ago

There's my try with hrev42792. Ran under Windows Server 2008 R2 SP1 Hyper-V session.

comment:6 by mmlr, 8 years ago

Both of these issues seem to involve a device that has no interrupt line assigned. The point of the IO-APIC routing was, to quite some degree, to enable such devices via the routing information from ACPI. However it'd seem that these devices don't actually have any routing, but instead of setting the interrupt pin to 0, it just has the interrupt line set to 0 and no routing info at all. So I'll go ahead and check for this case and assume an intentionally disabled device. From the lspci output above it looks like Linux does the same, as the controller has IRQ 0 there as well. It'd be interesting to get a full log from Linux (dmesg) to see what exactly it does, so if you can please attach such a log as well.

comment:7 by mmlr, 8 years ago

Resolution: fixed
Status: assignedclosed

I've commited the change outlined above in hrev42795 which should now make it work on both your configurations. Please test, and as mentioned, I'd still be interested in the full debug message log on Linux, just to see if it makes the same assumptions. I've checked the specs, which weren't helpful, and tried to figure it out from the Linux and FreeBSD source, where I gave up because it's just way too time consuming to sift through again without a specific clue as to where that'd happen.

Last edited 8 years ago by mmlr (previous) (diff)

by Joshua_K, 7 years ago

Early panic when booting hrev44678 on an IBM ThinkCentre M51

comment:8 by Joshua_K, 7 years ago

Cc: joshua.kraemer@… added
Resolution: fixed
Status: closedreopened

When trying to boot on an IBM ThinkCentre M51, hrev44678 panics with the above error. The only extension card attached is a PCI Express video card. When I proceed by entering "continue", everything seems to work.

Last edited 7 years ago by Joshua_K (previous) (diff)

in reply to:  8 comment:9 by mmlr, 7 years ago

Resolution: fixed
Status: reopenedclosed

Replying to Joshua_K:

When trying to boot on an IBM ThinkCentre M51, hrev44678 panics with the above error. The only extension card attached is a PCI Express video card. When I proceed by entering "continue", everything seems to work.

The symptom may be the same, but the reason cannot really be as it was fixed. Therefore please open a new ticket and attach a syslog from a full boot (with continue) from /var/log/syslog.

Note: See TracTickets for help on using tickets.