vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hello gurus, After I had fixed booting of uniprocessor kernel on my crappy hw, I've tried to boot MP kernel and it crashed at isa_intr_establish() [in this case acpi driver is left disabled]: [ using 611304 bytes of bsd ELF symbol table ] Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2007 OpenBSD. All rights reserved. http://www.OpenBSD.org OpenBSD 4.2-current (GENERIC.MP) #0: Mon Sep 3 20:31:05 MSD 2007 root@fort.crypt.org.ru:/usr/src/sys/...ile/GENERIC.MP real mem = 2128576512 (2029MB) avail mem = 2055720960 (1960MB) RTC BIOS diagnostic error 80<clock_battery> mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xe4380 (35 entries) bios0: vendor Intel Corp. version "BX97520J.86A.2777.2007.0805.1747" date 08/05/2007 bios0: Intel Corporation D975XBX2 acpi at mainbus0 not configured mainbus0: Intel MP Specification (Version 1.4) cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz, 2333.39 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,P GE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE, SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,CX16,xTPR,NXE,LONG cpu0: 4MB 64b/line 16-way L2 cache cpu0: apic clock running at 333MHz pci0 at mainbus0 bus 0: configuration mode 1 pchb0 at pci0 dev 0 function 0 "Intel 82975X MCH" rev 0x00 ppb0 at pci0 dev 1 function 0 "Intel 82975X PCIE" rev 0x00 pci1 at ppb0 bus 1 vga1 at pci1 dev 0 function 0 "NVIDIA GeForce 7600 GS" rev 0xa1 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) azalia0 at pci0 dev 27 function 0 "Intel 82801GB HD Audio" rev 0x01pci_intr_map: bus 0 dev 27 func 0 pin 1; line 9 pci_intr_map: no MP mapping found : irq 9 azalia0: host: High Definition Audio rev. 1.0 azalia0: codec: 0x8384/0x7621 (rev. 2.1), HDA version 1.0 audio0 at azalia0 ppb1 at pci0 dev 28 function 0 "Intel 82801GB PCIE" rev 0x01 pci2 at ppb1 bus 2 ppb2 at pci0 dev 28 function 5 "Intel 82801G PCIE" rev 0x01 pci3 at ppb2 bus 3 em0 at pci3 dev 0 function 0 "Intel PRO/1000MT (82573L)" rev 0x00pci_intr_map: bus 3 dev 0 func 0 pin 1; line 10 pci_intr_map: no MP mapping found : irq 10, address 00:19:d1:2a:5e:f3 uhci0 at pci0 dev 29 function 0 "Intel 82801GB USB" rev 0x01pci_intr_map: bus 0 dev 29 func 0 pin 1; line 11 pci_intr_map: no MP mapping found : irq 11 uhci1 at pci0 dev 29 function 1 "Intel 82801GB USB" rev 0x01pci_intr_map: bus 0 dev 29 func 1 pin 2; line 9 pci_intr_map: no MP mapping found : irq 9 uhci2 at pci0 dev 29 function 2 "Intel 82801GB USB" rev 0x01pci_intr_map: bus 0 dev 29 func 2 pin 3; line 10 pci_intr_map: no MP mapping found : irq 10 uhci3 at pci0 dev 29 function 3 "Intel 82801GB USB" rev 0x01pci_intr_map: bus 0 dev 29 func 3 pin 4; line 11 pci_intr_map: no MP mapping found : irq 11 ehci0 at pci0 dev 29 function 7 "Intel 82801GB USB" rev 0x01pci_intr_map: bus 0 dev 29 func 7 pin 1; line 11 pci_intr_map: no MP mapping found : irq 11 usb0 at ehci0: USB revision 2.0 uhub0 at usb0: Intel EHCI root hub, rev 2.00/1.00, addr 1 ppb3 at pci0 dev 30 function 0 "Intel 82801BA AGP" rev 0xe1 pci4 at ppb3 bus 4 pcib0 at pci0 dev 31 function 0 "Intel 82801GH LPC" rev 0x01 pciide0 at pci0 dev 31 function 1 "Intel 82801GB IDE" rev 0x01: DMA, channel 0 configured to compatibility, channel 1 configured to compatibility panic: no isa bus Stopped at Debugger+0x5: leave Debugger() at Debugger+0x5 panic() at panic+0x12a isa_intr_establish() at isa_intr_establish+0x7c pciide_machdep_compat_intr_establish() at pciide_machdep_compat_intr_establish+ 0x32 pciide_map_compat_intr() at pciide_map_compat_intr+0x52 piix_chip_map() at piix_chip_map+0x1e4 pciide_attach() at pciide_attach+0xb6 config_attach() at config_attach+0x11b pci_probe_device() at pci_probe_device+0x20e pci_enumerate_bus() at pci_enumerate_bus+0x104 end trace frame: 0xffffffff80bc8da0, count: 0 RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC! DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION! ddb{0}> trace Debugger() at Debugger+0x5 panic() at panic+0x12a isa_intr_establish() at isa_intr_establish+0x7c pciide_machdep_compat_intr_establish() at pciide_machdep_compat_intr_establish+ 0x32 pciide_map_compat_intr() at pciide_map_compat_intr+0x52 piix_chip_map() at piix_chip_map+0x1e4 pciide_attach() at pciide_attach+0xb6 config_attach() at config_attach+0x11b pci_probe_device() at pci_probe_device+0x20e pci_enumerate_bus() at pci_enumerate_bus+0x104 config_attach() at config_attach+0x11b mainbus_attach() at mainbus_attach+0x16d config_attach() at config_attach+0x11b cpu_configure() at cpu_configure+0x1c main() at main+0x3ad end trace frame: 0x0, count: -15 ddb{0}> ps PID PPID PGRP UID S FLAGS WAIT COMMAND * 0 -1 0 0 7 0x80200 swapper So I've done some debugging on it and have figured out some details. "no isa bus" panic happens when mp_isa_bus is NULL. This can happen if only mpbios_bus() is not called with the appropriate argument (and actually it doesn't get called at all). So if it isn't called it means that mpbios_scan() doesn't come across the MPS_MCT_BUS case. So I've put a bunch of printfs in mpbios_scan() and mpbios_search() to understand what stands behind this. It turned out that the mpbios code finds a MP Configuration Table with only one entry of zero type (the CPU). So it configures cpu0. No ioapics and no busses. In my case this code gets called in order to find and map the MP Floating Pointer Structure: mp_fps = mpbios_search(self, BIOS_BASE, BIOS_COUNT, &mp_fp_map); I've reprogrammed the mpbios_search logic to do a complete search up to the end and print out search results. This got me nowhere. There was only one match which was used before. So my question is: is there any other address space to search for the MP Floating Pointer Structure? Maybe you can suggest me something to try or find out? Thanks. As a side note: I've also tried acpi-enabled kernel. In this case kernel finds cpu0 & cpu1, ioapic, and crashes in AML parser trying to figure out the PCI buses... The dmesg: [ using 611304 bytes of bsd ELF symbol table ] Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2007 OpenBSD. All rights reserved. http://www.OpenBSD.org OpenBSD 4.2-current (GENERIC.MP) #0: Mon Sep 3 20:31:05 MSD 2007 root@fort.crypt.org.ru:/usr/src/sys/...ile/GENERIC.MP real mem = 2128576512 (2029MB) avail mem = 2055720960 (1960MB) RTC BIOS diagnostic error 80<clock_battery> mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xe4380 (35 entries) bios0: vendor Intel Corp. version "BX97520J.86A.2777.2007.0805.1747" date 08/05/2007 bios0: Intel Corporation D975XBX2 acpi0 at mainbus0: rev 0 acpi0: tables DSDT FACP APIC WDDT MCFG ASF! SSDT SSDT SSDT SSDT SSDT acpitimer at acpi0 not configured acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz, 2333.41 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,P GE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE, SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,CX16,xTPR,NXE,LONG cpu0: 4MB 64b/line 16-way L2 cache cpu0: apic clock running at 333MHz cpu1 at mainbus0: apid 1 (application processor) cpu1: Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz, 2333.07 MHz cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,P GE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE, SSE2,SS,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,VMX,EST,TM2,CX16,xTPR,NXE,LONG cpu1: 4MB 64b/line 16-way L2 cache ioapic0 at mainbus0 apid 2 pa 0xfec00000, version 20, 24 pins ioapic0: misconfigured as apic 0, remapped to apid 2 acpiprt0 at acpi0index.buf out of bounds: 6/6 07a2 Called: \_SB_.PCI0.EROM local0: 0xffff800000030020 cnt:00 stk:60 integer: c local1: 0xffff800000030060 cnt:00 stk:61 integer: 6 local2: 0xffff8000000300a0 cnt:00 stk:62 integer: 3 068b Called: \_SB_.PCI0._CRS panic: aml_die aml_derefvalue:1366 Stopped at Debugger+0x5: leave Debugger() at Debugger+0x5 panic() at panic+0x12a _aml_die() at _aml_die+0xdc aml_derefvalue() at aml_derefvalue+0x26f aml_evalterm() at aml_evalterm+0x32 aml_parseterm() at aml_parseterm+0x48 aml_parseref() at aml_parseref+0x11d aml_parseop() at aml_parseop+0xb4 aml_parseterm() at aml_parseterm+0x3a aml_parsewhile() at aml_parsewhile+0x4e end trace frame: 0xffffffff80bc8850, count: 0 RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC! DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION! ddb{0}> trace Debugger() at Debugger+0x5 panic() at panic+0x12a _aml_die() at _aml_die+0xdc aml_derefvalue() at aml_derefvalue+0x26f aml_evalterm() at aml_evalterm+0x32 aml_parseterm() at aml_parseterm+0x48 aml_parseref() at aml_parseref+0x11d aml_parseop() at aml_parseop+0xb4 aml_parseterm() at aml_parseterm+0x3a aml_parsewhile() at aml_parsewhile+0x4e aml_parseop() at aml_parseop+0xb4 aml_parseterm() at aml_parseterm+0x3a aml_callmethod() at aml_callmethod+0x3a aml_evalmethod() at aml_evalmethod+0x59 aml_derefvalue() at aml_derefvalue+0x7e aml_derefvalue() at aml_derefvalue+0x118 aml_evalterm() at aml_evalterm+0x32 aml_parseterm() at aml_parseterm+0x48 aml_callmethod() at aml_callmethod+0x3a aml_evalmethod() at aml_evalmethod+0x59 aml_evalnode() at aml_evalnode+0xd9 acpiprt_getpcibus() at acpiprt_getpcibus+0xd9 acpiprt_attach() at acpiprt_attach+0x28 config_attach() at config_attach+0x11b acpi_foundprt() at acpi_foundprt+0x4f aml_find_node() at aml_find_node+0x75 aml_find_node() at aml_find_node+0x58 aml_find_node() at aml_find_node+0x58 acpi_attach() at acpi_attach+0x3ea config_attach() at config_attach+0x11b mainbus_attach() at mainbus_attach+0x226 config_attach() at config_attach+0x11b cpu_configure() at cpu_configure+0x1c main() at main+0x3ad end trace frame: 0x0, count: -34 ddb{0}> ps PID PPID PGRP UID S FLAGS WAIT COMMAND * 0 -1 0 0 7 0x80200 swapper ddb{0}> |