term/ns8250-spcr: Add one more 16550 debug type

Type 0x01 was introduced with the ACPI DBGP table and type 0x12 was introduced
with the ACPI DBG2 table. Type 0x12 is used by the ACPI SPCR table on recent
AWS bare-metal instances (c6i/c7i). Also give each debug type a proper name.

Signed-off-by: Udo Steinberg <udo@hypervisor.org>
Reviewed-by: Glenn Washburn <development@efficientek.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Udo Steinberg 2024-06-07 23:44:43 +02:00 committed by Daniel Kiper
parent 8abec8e153
commit 13b315c0a5
2 changed files with 5 additions and 3 deletions

View File

@ -38,7 +38,8 @@ grub_ns8250_spcr_init (void)
grub_dprintf ("serial", "SPCR table revision %d < 2, continuing anyway\n",
(int) spcr->hdr.revision);
if (spcr->intf_type != GRUB_ACPI_SPCR_INTF_TYPE_16550 &&
spcr->intf_type != GRUB_ACPI_SPCR_INTF_TYPE_16550X)
spcr->intf_type != GRUB_ACPI_SPCR_INTF_TYPE_16550_DBGP &&
spcr->intf_type != GRUB_ACPI_SPCR_INTF_TYPE_16550_DBG2)
return NULL;
/* For now, we only support byte accesses. */
if (spcr->base_addr.access_size != GRUB_ACPI_GENADDR_SIZE_BYTE &&

View File

@ -200,8 +200,9 @@ struct grub_acpi_genaddr {
struct grub_acpi_spcr {
struct grub_acpi_table_header hdr;
grub_uint8_t intf_type;
#define GRUB_ACPI_SPCR_INTF_TYPE_16550 0x00
#define GRUB_ACPI_SPCR_INTF_TYPE_16550X 0x01
#define GRUB_ACPI_SPCR_INTF_TYPE_16550 0x00
#define GRUB_ACPI_SPCR_INTF_TYPE_16550_DBGP 0x01
#define GRUB_ACPI_SPCR_INTF_TYPE_16550_DBG2 0x12
grub_uint8_t reserved_0[3];
struct grub_acpi_genaddr base_addr;
grub_uint8_t interrupt_type;