summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2022-11-18 15:27:55 +0100
committerGerd Hoffmann <kraxel@redhat.com>2022-11-23 09:23:30 +0100
commit61e901bbaadf63080ac6a3911bd29da1308a0751 (patch)
tree6c19a160d9515b37d97bb9c11dfa8abf0ac79a9a
parent85d56f812f4d020b3b486682aff07d9f4a4c60fe (diff)
downloadqemu-seabios-61e901bbaadf63080ac6a3911bd29da1308a0751.tar.gz
acpi: parse Alias object
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 <imammedo@redhat.com> Reported-by: Volker RĂ¼melin <vr_qemu@t-online.de> Message-Id: <20221118142755.3879231-1-imammedo@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--src/fw/dsdt_parser.c4
1 files changed, 4 insertions, 0 deletions
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);