On Sun, Nov 13, 2022 at 04:25:00PM +1100, ja...@tubnor.net wrote: > > > > -----Original Message----- > > From: Mark Kettenis <mark.kette...@xs4all.nl> > > Sent: Saturday, 12 November 2022 11:00 PM > > To: ja...@tubnor.net > > Cc: bugs@openbsd.org > > Subject: Re: ACPI 6.4 Could not convert 1 to 4 panic > > > > > > Could you boot a normal kernel (i.e. not a ramdisk kernel) without > > Mikhail's diff and show me the output? A screen image is ok. > > No problems. This was a sysupgrade to the latest -current from the patched > to unpatched GENERIC.MP kernel. Offending code is in SSDT.8:
Scope (\_SB.PC00.PEG0) { [...] Method (_STA, 0, NotSerialized) // _STA: Status { If ((PG0E == One)) { Return (0x0F) } Return (Zero) } [...] } PG0E is defined as External/UnknownObj, the problem is that in DSDT we have two definition of PG0E - one is the field unit under "DefinitionBlock" root, another one as a package under "Scope (_SB)". My suspicion is that they meant "\PG0E" and simply forgot to define scope explicitly, because comparing package to One doesn't make sense. So the patch I sent works, but whole situation looks like not as a bug or not implemented functionality in OpenBSD, but as a bug in the vendor's ASL, and I am not sure what is the policy for including such workarounds into the tree.