> Date: Sat, 26 Sep 2020 16:32:05 +0200 (CEST)
> From: Mark Kettenis <[email protected]>
> Cc: [email protected], [email protected]
>
> > Date: Sat, 26 Sep 2020 15:28:15 +0200 (CEST)
> > From: Mark Kettenis <[email protected]>
> >
> > > Date: Sat, 26 Sep 2020 11:55:40 +0200
> > > From: "Nicola Dell'Uomo" <[email protected]>
> > >
> > > Il giorno Tue, 22 Sep 2020 12:44:00 +0200 (CEST)
> > > Mark Kettenis <[email protected]> ha scritto:
> > >
> > > > Sorry, but we need to see the panic and subsequent acpihid(4) output.
> > > > If that output doesn't survive a reboot, please take a picture and
> > > > carefully transcribe the panic and any subsequent output.
> > > >
> > > > Thanks,
> > > >
> > > > Mark
> > >
> > > Hi,
> > >
> > > these are the screenshots of the panic message.
> >
> > ok thanks
> >
> > The problem here is that the AML is broken and calls ToHexString() on
> > a Package, which isn't allowed. Irritatingly enough, the ACPI
> > standard is very poor at describing what should be done when this
> > happens. So we panic.
>
> Actually, I take that back. The acpihid(4) passes a Buffer (which is
> ok) but somehow that gets converted into a Package.
>
> Stay tuned...
Does this change fix the issue?
Index: dev/acpi/dsdt.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
retrieving revision 1.255
diff -u -p -r1.255 dsdt.c
--- dev/acpi/dsdt.c 16 Sep 2020 11:52:17 -0000 1.255
+++ dev/acpi/dsdt.c 26 Sep 2020 16:02:56 -0000
@@ -2080,6 +2080,9 @@ aml_convert(struct aml_value *a, int cty
case AML_OBJTYPE_STRING:
aml_addref(a, "XConvert");
return a;
+ case AML_OBJTYPE_PACKAGE: /* XXX Deal with broken Lenovo X1
BIOS. */
+ c = aml_allocvalue(AML_OBJTYPE_STRING, 0, NULL);
+ break;
}
break;
}