On Wed, 7 Sep 2016, Johan Huldtgren wrote:
> > Synopsis: Boot fails on i386 -current
...
> > Description:
> boot fails with the following:
> acpicpu0 at acpi0unable to find cpu -
...
> dmesg:
> OpenBSD 6.0 (GENERIC) #1911: Mon Jul 25 17:31:41 MDT 2016
> [email protected]:/usr/src/sys/arch/i386/compile/GENERIC
> cpu0: Intel(R) Pentium(R) 4 Mobile CPU 1.70GHz ("GenuineIntel" 686-class) 1.20
> GHz
> cpu0:
> FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PERF
> real mem = 536240128 (511MB)
> avail mem = 513314816 (489MB)
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: date 01/07/04, BIOS32 rev. 0 @ 0xffe90, SMBIOS rev. 2.3 @
> 0xf76b0 (62 entries)
> bios0: vendor Dell Computer Corporation version "A11" date 01/07/2004
> bios0: Dell Computer Corporation Inspiron 8200
> acpi0 at bios0: rev 0
> acpi0: sleep states S0 S1 S3 S4 S5
> acpi0: tables DSDT FACP
> acpi0: wakeup devices LID_(S3) PBTN(S4) PCI0(S3) UAR1(S3) USB0(S1) USB1(S1)
> USB2(S1) MODM(S3) PCIE(S3) MPCI(S3)
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus 1 (AGP_)
> acpiprt2 at acpi0: bus 2 (PCIE)
> acpiprt3 at acpi0: bus -1 (MPCI)
> acpicpu0 at acpi0acpicpu0: struck PSS entry, core frequency equals last
> acpicpu0: struck PSS entry, core frequency equals last
> acpicpu0: invalid _PSS length
> : !C2(@50 io@0x8e4), C1(@1 halt!)
Aaaaah, this machine doesn't have an APIC table so acpimadt doesn't
attach and cpu0's cpu_acpi_proc_id is thus the default 0 when acpicpu0,
which has proc_id == 1, tried to attach.
It looks like we need to make sure cpus are attached before acpicpu is
attached. I'm not sure how to do that, so in the mean time, Johan, can
you try applying the diff below and rebuilding the kernel and see if it
boots? This is just a revert of acpicpu.c rev 1.75 back to the old unit#
based matching.
Philip Guenther
Index: dev/acpi/acpicpu.c
===================================================================
RCS file: /data/src/openbsd/src/sys/dev/acpi/acpicpu.c,v
retrieving revision 1.76
diff -u -p -r1.76 acpicpu.c
--- dev/acpi/acpicpu.c 2 Sep 2016 13:59:51 -0000 1.76
+++ dev/acpi/acpicpu.c 8 Sep 2016 04:18:04 -0000
@@ -675,7 +675,7 @@ acpicpu_attach(struct device *parent, st
/* link in the matching cpu_info */
CPU_INFO_FOREACH(cii, ci)
- if (ci->ci_acpi_proc_id == sc->sc_cpu) {
+ if (ci->ci_cpuid == sc->sc_dev.dv_unit) {
ci->ci_acpicpudev = self;
sc->sc_ci = ci;
break;