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?)
> 

Reply via email to