Since QEMU commit dbce582a119 (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 --- 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 eb5496f3..2ac82821 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);