acpi: Add struct for SPCR table
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Change-Id: I46d5caa0af95ec27fd49b0cf8fa704d656c89e7e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/75684
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/include/acpi/acpi.h b/src/include/acpi/acpi.h
index 78a6005..548b4c3 100644
--- a/src/include/acpi/acpi.h
+++ b/src/include/acpi/acpi.h
@@ -1298,6 +1298,36 @@
acpi_einj_action_table_t action_table[ACTION_COUNT];
} __packed acpi_einj_t;
+/* SPCR (Serial Port Console Redirection Table) */
+typedef struct acpi_spcr {
+ acpi_header_t header;
+ uint8_t interface_type;
+ uint8_t reserved[3];
+ acpi_addr_t base_address;
+ uint8_t interrupt_type;
+ uint8_t irq;
+ uint32_t global_system_interrupt;
+ uint8_t configured_baudrate;
+ uint8_t parity;
+ uint8_t stop_bits;
+ uint8_t flow_control;
+ uint8_t terminal_type;
+ uint8_t language;
+ uint16_t pci_did;
+ uint16_t pci_vid;
+ uint8_t pci_bus;
+ uint8_t pci_dev;
+ uint8_t pci_fun;
+ uint32_t pci_flags;
+ uint8_t pci_segment;
+ uint32_t uart_clock;
+ uint32_t precise_baud_rate;
+ uint16_t namespace_string_length;
+ uint16_t namespace_string_offset;
+ char namespacestring[];
+} __packed acpi_spcr_t;
+_Static_assert(sizeof(acpi_spcr_t) == 88, "acpi_spcr_t must have an 88 byte size\n");
+
uintptr_t get_coreboot_rsdp(void);
void acpi_create_einj(acpi_einj_t *einj, uintptr_t addr, u8 actions);