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>
This commit is contained in:
Igor Mammedov 2022-11-18 15:27:55 +01:00 committed by Gerd Hoffmann
parent 85d56f812f
commit 61e901bbaa
1 changed files with 4 additions and 0 deletions

View File

@ -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);