On Sun, Nov 13, 2022 at 04:25:00PM +1100, [email protected] wrote:
>
>
> > -----Original Message-----
> > From: Mark Kettenis <[email protected]>
> > Sent: Saturday, 12 November 2022 11:00 PM
> > To: [email protected]
> > Cc: [email protected]
> > 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.