From 61e901bbaadf63080ac6a3911bd29da1308a0751 Mon Sep 17 00:00:00 2001 From: Igor Mammedov Date: Fri, 18 Nov 2022 15:27:55 +0100 Subject: [PATCH] acpi: parse Alias object MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Since QEMU commit 47a373faa6 (acpi: pc/q35: drop ad-hoc PCI-ISA bridge AML routines and let bus ennumeration generate AML) SeaBIOS fails to parse ISA bridge AML with: parse_termlist: parse error, skip from 92/517 ... ACPI: no PS/2 keyboard present due to Alias term in DSDT which isn't handled by SeaBIOS properly. Add dumb Alias parsing which just skips over term, so the rest of AML could be parsed successfully. Signed-off-by: Igor Mammedov Reported-by: Volker Rümelin Message-Id: <20221118142755.3879231-1-imammedo@redhat.com> Signed-off-by: Gerd Hoffmann --- src/fw/dsdt_parser.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/fw/dsdt_parser.c b/src/fw/dsdt_parser.c index eb5496f..2ac8282 100644 --- a/src/fw/dsdt_parser.c +++ b/src/fw/dsdt_parser.c @@ -417,6 +417,10 @@ static int parse_termobj(struct parse_state *s, break; case 0x01: /* one */ break; + case 0x06: /* AliasOp */ + offset += parse_namestring(s, ptr + offset, "SourceObject"); + offset += parse_namestring(s, ptr + offset, "AliasObject"); + break; case 0x08: /* name op */ offset += parse_namestring(s, ptr + offset, "name"); offset += parse_termobj(s, ptr + offset); -- 2.39.5