On Fri, Sep 26, 2014 at 06:01:35PM -0400, [email protected] wrote: > >Synopsis: recent RAMDISK_CD kernels fail to boot on some systems > >Category: kernel > >Environment: > System : OpenBSD 5.6 > Details : OpenBSD 5.6-current (GENERIC) #317: Wed Sep 10 17:49:59 > MDT 2014 > > [email protected]:/usr/src/sys/arch/i386/compile/GENERIC > > Architecture: OpenBSD.i386 > Machine : i386 > >Description: > -current RAMDISK_CD kernels have been failing to boot on a compaq > pressario. the kernel never even reaches a point where it can panic. > 5.5-release works fine, and -current works on another system. i found > a snapshot from 26 Jul that has the problem behaviour. the first dmesg > below shows that -current GENERIC works on the problem system. later > dmesgs show the problem & 'solution'. > >How-To-Repeat: > just boot -current bsd.rd (on the right hardware) > >Fix: > i found a partial (ugly) solution (patch at end, for what its worth) > > more details are in the various dmesgs below.
This seems odd: acpi at bios0 function 0x0 not configured >From one of the working configs, can you see if you can get an acpidump? -ml > > dmesg (working system): > OpenBSD 5.6-current (GENERIC) #317: Wed Sep 10 17:49:59 MDT 2014 > [email protected]:/usr/src/sys/arch/i386/compile/GENERIC > cpu0: Intel(R) Celeron(R) CPU 2.80GHz ("GenuineIntel" 686-class) 2.81 GHz > cpu0: > FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,CNXT-ID,xTPR,PERF > real mem = 527921152 (503MB) > avail mem = 506892288 (483MB) > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: AT/286+ BIOS, date 02/25/04, BIOS32 rev. 0 @ 0xfb940, > SMBIOS rev. 2.3 @ 0xf0000 (40 entries) > bios0: vendor Phoenix Technologies, LTD version "3.08" date 02/25/2004 > bios0: Compaq Presario 061 DW263A-ABA S7300CL NA510 > acpi at bios0 function 0x0 not configured > mpbios0 at bios0: Intel MP Specification 1.4 > cpu0 at mainbus0: apid 0 (boot processor) > mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges > cpu0: apic clock running at 100MHz > mpbios0: bus 0 is type PCI > mpbios0: bus 1 is type PCI > mpbios0: bus 2 is type ISA > ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins > pcibios0 at bios0: rev 2.1 @ 0xf0000/0xdbb4 > pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfdae0/192 (10 entries) > pcibios0: PCI Exclusive IRQs: 3 5 9 10 11 > pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82371SB ISA" rev 0x00) > pcibios0: PCI bus #1 is the last bus > bios0: ROM list: 0xc0000/0xb400 0xcc000/0x8000! > pci0 at mainbus0 bus 0: configuration mode 1 (bios) > pchb0 at pci0 dev 0 function 0 "Intel 82845G Host" rev 0x03 > vga1 at pci0 dev 2 function 0 "Intel 82845G Video" rev 0x03 > intagp0 at vga1 > agp0 at intagp0: aperture at 0xd0000000, size 0x8000000 > inteldrm0 at vga1 > drm0 at inteldrm0 > drm: applying pipe a force quirk > error: [drm:pid0:drm_edid_block_valid] *ERROR* EDID checksum is invalid, > remainder is 130 > Raw EDID: > > 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > error: [drm:pid0:drm_edid_block_valid] *ERROR* EDID checksum is invalid, > remainder is 130 > Raw EDID: > > 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > error: [drm:pid0:drm_edid_block_valid] *ERROR* EDID checksum is invalid, > remainder is 130 > Raw EDID: > > 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > error: [drm:pid0:drm_edid_block_valid] *ERROR* EDID checksum is invalid, > remainder is 130 > Raw EDID: > > 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff > VGA-1: EDID block 0 invalid. > inteldrm0: 1024x768 > wsdisplay0 at vga1 mux 1: console (std, vt100 emulation) > wsdisplay0: screen 1-5 added (std, vt100 emulation) > uhci0 at pci0 dev 29 function 0 "Intel 82801DB USB" rev 0x02: apic 2 int 16 > uhci1 at pci0 dev 29 function 1 "Intel 82801DB USB" rev 0x02: apic 2 int 19 > uhci2 at pci0 dev 29 function 2 "Intel 82801DB USB" rev 0x02: apic 2 int 18 > ehci0 at pci0 dev 29 function 7 "Intel 82801DB USB" rev 0x02: apic 2 int 23 > usb0 at ehci0: USB revision 2.0 > uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1 > ppb0 at pci0 dev 30 function 0 "Intel 82801BA Hub-to-PCI" rev 0x82 > pci_intr_map: bus 0 dev 30 func 0 pin 1; line 5 > pci_intr_map: no MP mapping found > pci_intr_map: bus 0 dev 30 func 0 pin 2; line 3 > pci_intr_map: no MP mapping found > pci_intr_map: bus 0 dev 30 func 0 pin 3; line 9 > pci_intr_map: no MP mapping found > pci_intr_map: bus 0 dev 30 func 0 pin 4; line 11 > pci_intr_map: no MP mapping found > pci1 at ppb0 bus 1 > fxp0 at pci1 dev 9 function 0 "Intel 8255x" rev 0x05, i82558: apic 2 int 21, > address 00:90:27:1a:2b:80 > inphy0 at fxp0 phy 1: i82555 10/100 PHY, rev. 0 > rl0 at pci1 dev 12 function 0 "Realtek 8139" rev 0x10: apic 2 int 23, address > 00:0c:76:e0:e9:bd > rlphy0 at rl0 phy 0: RTL internal PHY > ichpcib0 at pci0 dev 31 function 0 "Intel 82801DB LPC" rev 0x02: 24-bit timer > at 3579545Hz > pciide0 at pci0 dev 31 function 1 "Intel 82801DB IDE" rev 0x02: DMA, channel > 0 configured to compatibility, channel 1 configured to compatibility > wd0 at pciide0 channel 0 drive 0: > wd0: 16-sector PIO, LBA48, > wd1 at pciide0 channel 0 drive 1: > wd1: 16-sector PIO, LBA, > wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5 > wd1(pciide0:0:1): using PIO mode 4, Ultra-DMA mode 5 > wd2 at pciide0 channel 1 drive 0: > wd2: 16-sector PIO, LBA, > atapiscsi0 at pciide0 channel 1 drive 1 > scsibus1 at atapiscsi0: 2 targets > cd0 at scsibus1 targ 0 lun 0: <HP, DVD Writer 630c, AH26> ATAPI 5/cdrom > removable > wd2(pciide0:1:0): using PIO mode 0, DMA mode 1 > cd0(pciide0:1:1): using PIO mode 4, Ultra-DMA mode 2 > ichiic0 at pci0 dev 31 function 3 "Intel 82801DB SMBus" rev 0x02: apic 2 int > 17 > iic0 at ichiic0 > iic0: addr 0x2f 00=01 01=07 02=01 03=00 04=07 05=00 06=08 07=00 14=14 15=62 > 16=03 17=02 words 00=01ff 01=07ff 02=01ff 03=00ff 04=07ff 05=00ff 06=08ff > 07=00ff > spdmem0 at iic0 addr 0x50: 512MB DDR SDRAM non-parity PC2700CL2.5 > auich0 at pci0 dev 31 function 5 "Intel 82801DB AC97" rev 0x02: apic 2 int > 17, ICH4 AC97 > ac97: codec id 0x414c4780 (Avance Logic ALC658 rev 0) > ac97: codec features 20 bit DAC, 18 bit ADC, No 3D Stereo > audio0 at auich0 > usb1 at uhci0: USB revision 1.0 > uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1 > usb2 at uhci1: USB revision 1.0 > uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1 > usb3 at uhci2: USB revision 1.0 > uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1 > isa0 at ichpcib0 > isadma0 at isa0 > com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo > pckbc0 at isa0 port 0x60/5 > pckbd0 at pckbc0 (kbd slot) > pckbc0: using irq 1 for kbd slot > wskbd0 at pckbd0: console keyboard, using wsdisplay0 > pms0 at pckbc0 (aux slot) > pckbc0: using irq 12 for aux slot > wsmouse0 at pms0 mux 0 > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > lpt0 at isa0 port 0x378/4 irq 7 > wbsio0 at isa0 port 0x2e/2: W83627THF rev 0x83 > lm1 at wbsio0 port 0x290/8: W83627THF > npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16 > fdc0 at isa0 port 0x3f0/6 irq 6 drq 2 > fd0 at fdc0 drive 0: 2.88MB 80 cyl, 2 head, 36 sec > vscsi0 at root > scsibus3 at vscsi0: 256 targets > softraid0 at root > scsibus4 at softraid0: 256 targets > sd1 at scsibus4 targ 1 lun 0: <OPENBSD, SR CRYPTO, 005> SCSI2 0/direct fixed > sd1: 38161MB, 512 bytes/sector, 78155633 sectors > root on sd1a (516e5d9810b12925.a) swap on sd1b dump on sd1b > > usbdevs: > Controller /dev/usb0: > addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), > Intel(0x8086), rev 1.00 > port 1 powered > port 2 powered > port 3 powered > port 4 powered > port 5 powered > port 6 powered > Controller /dev/usb1: > addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), > Intel(0x8086), rev 1.00 > port 1 powered > port 2 powered > Controller /dev/usb2: > addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), > Intel(0x8086), rev 1.00 > port 1 powered > port 2 powered > Controller /dev/usb3: > addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), > Intel(0x8086), rev 1.00 > port 1 powered > port 2 powered > > > dmesg (problem kernel): > OpenBSD 5.6-beta (RAMDISK_CD) #239: Fri Jul 25 11:56:02 MDT 2014 > [email protected]:/usr/src/sys/arch/i386/compile/RAMDISK_CD > cpu0: Intel(R) Celeron(R) CPU 2.80GHz ("GenuineIntel" 686-class) 2.81 GHz > cpu0: > FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,CNXT-ID,xTPR,PERF > real mem = 527953920 (503MB) > avail mem = 511660032 (487MB) > mainbus0 at root > bios0 at mainbus0: AT/286+ BIOS, date 02/25/04, BIOS32 rev. 0 @ 0xfb940, > SMBIOS rev. 2.3 @ 0xf0000 (40 entries) > bios0: vendor Phoenix Technologies, LTD version "3.08" date 02/25/2004 > bios0: Compaq Presario 061 DW263A-ABA S7300CL NA510 > acpi at bios0 function 0x0 not configured > mpbios0 at bios0: Intel MP Specification 1.4 > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: apic clock running at 100MHz > mpbios0: bus 0 is type PCI > mpbios0: bus 1 is type PCI > mpbios0: bus 2 is type ISA > ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins > panic: bus_space_map: bad bus space tag > > The operating system has halted. > Please press any key to reboot. > > > well, i tried to track it down, and found it was in sys/arch/i386/pci. i > placed > some printf()s before every bus_space_map() and rebuilt, and found the error > was occuring in a call to piix_init(). more tracing led to pci_intr_fixup.c, > where i placed some more printf()s. strangely, one of them solved the problem > (see string 'DEBUG' in dmesg below). > > > dmesg of a working RAMDISK_CD kernel, with a printf("DEBUG ..."): > OpenBSD 5.6-current (RAMDISK_CD) #2: Fri Sep 26 08:59:33 EDT 2014 > root@node02:/usr/src/sys/arch/i386/compile/RAMDISK_CD > cpu0: Intel(R) Celeron(R) CPU 2.80GHz ("GenuineIntel" 686-class) 2.81 GHz > cpu0: > FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,CNXT-ID,xTPR,PERF > real mem = 527953920 (503MB) > avail mem = 511668224 (487MB) > mainbus0 at root > bios0 at mainbus0: AT/286+ BIOS, date 02/25/04, BIOS32 rev. 0 @ 0xfb940, > SMBIOS rev. 2.3 @ 0xf0000 (40 entries) > bios0: vendor Phoenix Technologies, LTD version "3.08" date 02/25/2004 > bios0: Compaq Presario 061 DW263A-ABA S7300CL NA510 > acpi at bios0 function 0x0 not configured > mpbios0 at bios0: Intel MP Specification 1.4 > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: apic clock running at 100MHz > mpbios0: bus 0 is type PCI > mpbios0: bus 1 is type PCI > mpbios0: bus 2 is type ISA > ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins > pcibios0 at bios0: rev 2.1 @ 0xf0000/0xdbb4 > pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfdae0/192 (10 entries) > pcibios0: PCI Exclusive IRQs: 3 5 9 10 11 > pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82371SB ISA" rev 0x00) > DEBUG pci_intr_fixup() - init pci icu (pre) > pcibios0: PCI bus #1 is the last bus > bios0: ROM list: 0xc0000/0xb400 0xcc000/0x8000! > pci0 at mainbus0 bus 0: configuration mode 1 (bios) > pchb0 at pci0 dev 0 function 0 "Intel 82845G Host" rev 0x03 > vga1 at pci0 dev 2 function 0 "Intel 82845G Video" rev 0x03 > wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) > uhci0 at pci0 dev 29 function 0 "Intel 82801DB USB" rev 0x02: apic 2 int 16 > uhci1 at pci0 dev 29 function 1 "Intel 82801DB USB" rev 0x02: apic 2 int 19 > uhci2 at pci0 dev 29 function 2 "Intel 82801DB USB" rev 0x02: apic 2 int 18 > ehci0 at pci0 dev 29 function 7 "Intel 82801DB USB" rev 0x02: apic 2 int 23 > usb0 at ehci0: USB revision 2.0 > uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1 > ppb0 at pci0 dev 30 function 0 "Intel 82801BA Hub-to-PCI" rev 0x82 > pci_intr_map: bus 0 dev 30 func 0 pin 1; line 5 > pci_intr_map: no MP mapping found > pci_intr_map: bus 0 dev 30 func 0 pin 2; line 3 > pci_intr_map: no MP mapping found > pci_intr_map: bus 0 dev 30 func 0 pin 3; line 9 > pci_intr_map: no MP mapping found > pci_intr_map: bus 0 dev 30 func 0 pin 4; line 11 > pci_intr_map: no MP mapping found > pci1 at ppb0 bus 1 > fxp0 at pci1 dev 9 function 0 "Intel 8255x" rev 0x05, i82558: apic 2 int 21, > address 00:90:27:1a:2b:80 > inphy0 at fxp0 phy 1: i82555 10/100 PHY, rev. 0 > rl0 at pci1 dev 12 function 0 "Realtek 8139" rev 0x10: apic 2 int 23, address > 00:0c:76:e0:e9:bd > rlphy0 at rl0 phy 0: RTL internal PHY > pcib0 at pci0 dev 31 function 0 "Intel 82801DB LPC" rev 0x02 > pciide0 at pci0 dev 31 function 1 "Intel 82801DB IDE" rev 0x02: DMA, channel > 0 configured to compatibility, channel 1 configured to compatibility > wd0 at pciide0 channel 0 drive 0: > wd0: 16-sector PIO, LBA48, > wd1 at pciide0 channel 0 drive 1: > wd1: 16-sector PIO, LBA, > wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5 > wd1(pciide0:0:1): using PIO mode 4, Ultra-DMA mode 5 > wd2 at pciide0 channel 1 drive 0: > wd2: 16-sector PIO, LBA, > atapiscsi0 at pciide0 channel 1 drive 1 > scsibus0 at atapiscsi0: 2 targets > cd0 at scsibus0 targ 0 lun 0: <HP, DVD Writer 630c, AH26> ATAPI 5/cdrom > removable > wd2(pciide0:1:0): using PIO mode 0, DMA mode 1 > cd0(pciide0:1:1): using PIO mode 4, Ultra-DMA mode 2 > "Intel 82801DB SMBus" rev 0x02 at pci0 dev 31 function 3 not configured > "Intel 82801DB AC97" rev 0x02 at pci0 dev 31 function 5 not configured > usb1 at uhci0: USB revision 1.0 > uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1 > usb2 at uhci1: USB revision 1.0 > uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1 > usb3 at uhci2: USB revision 1.0 > uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1 > isa0 at pcib0 > isadma0 at isa0 > com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo > pckbc0 at isa0 port 0x60/5 > pckbd0 at pckbc0 (kbd slot) > pckbc0: using irq 1 for kbd slot > wskbd0 at pckbd0: console keyboard, using wsdisplay0 > npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16 > fdc0 at isa0 port 0x3f0/6 irq 6 drq 2 > fd0 at fdc0 drive 0: 2.88MB 80 cyl, 2 head, 36 sec > softraid0 at root > scsibus2 at softraid0: 256 targets > root on rd0a swap on rd0b dump on rd0b > syncing disks... done > rebooting... > > i rebuilt multiple times, with and without. this one statement seems to be > the particular one to affect it. i deleted the other printf()s, just one > mattered (the one right before the piix_init() call). > > patch for /usr/src/sys/arch/i386/pci/pci_intr_fixup.c > > --- pci_intr_fixup.c.orig Sun Dec 7 09:33:26 2008 > +++ pci_intr_fixup.c Fri Sep 26 08:47:22 2014 > @@ -860,6 +860,10 @@ pci_intr_fixup(struct pcibios_softc *sc, pci_chipset_t > /* > * Initialize the PCI ICU. > */ > + > + /* TEST */ > + printf("DEBUG pci_intr_fixup() - init pci icu (pre)\n"); > + > if ((*piit->piit_init)(pc, iot, icutag, &pciintr_icu_tag, > &pciintr_icu_handle) != 0) > return (-1); /* non-fatal */ > > > just this one statement. one before it and one after it had no effect. > > i think i am out of my depth now. there is something more internal going on > (why should printf() fix it?) >
