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.

Reply via email to