[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 2/8] acpi: Add SPCR and generic address definitions
From: |
Benjamin Herrenschmidt |
Subject: |
[PATCH v2 2/8] acpi: Add SPCR and generic address definitions |
Date: |
Thu, 22 Dec 2022 17:12:51 +1100 |
This adds the definition of the two ACPI tables according to
the spec.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
include/grub/acpi.h | 51 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/include/grub/acpi.h b/include/grub/acpi.h
index 8c126b2b9..17aadb802 100644
--- a/include/grub/acpi.h
+++ b/include/grub/acpi.h
@@ -179,6 +179,57 @@ enum
GRUB_ACPI_MADT_ENTRY_SAPIC_FLAGS_ENABLED = 1
};
+struct grub_acpi_genaddr {
+ grub_uint8_t space_id;
+#define GRUB_ACPI_GENADDR_MEM_SPACE 0x00
+#define GRUB_ACPI_GENADDR_IO_SPACE 0x01
+ grub_uint8_t bit_width;
+ grub_uint8_t bit_offset;
+ grub_uint8_t access_size;
+#define GRUB_ACPI_GENADDR_SIZE_LGCY 0x00
+#define GRUB_ACPI_GENADDR_SIZE_BYTE 0x01
+#define GRUB_ACPI_GENADDR_SIZE_WORD 0x02
+#define GRUB_ACPI_GENADDR_SIZE_DWORD 0x03
+#define GRUB_ACPI_GENADDR_SIZE_QWORD 0x04
+ grub_uint64_t addr;
+} GRUB_PACKED;
+
+#define GRUB_ACPI_SPCR_SIGNATURE "SPCR"
+
+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
+ grub_uint8_t reserved_0[3];
+ struct grub_acpi_genaddr base_addr;
+ grub_uint8_t interrupt_type;
+ grub_uint8_t irq;
+ grub_uint32_t gsi;
+ grub_uint8_t baud_rate;
+#define GRUB_ACPI_SPCR_BAUD_CURRENT 0x00
+#define GRUB_ACPI_SPCR_BAUD_9600 0x03
+#define GRUB_ACPI_SPCR_BAUD_19200 0x04
+#define GRUB_ACPI_SPCR_BAUD_57600 0x06
+#define GRUB_ACPI_SPCR_BAUD_115200 0x07
+ grub_uint8_t parity;
+ grub_uint8_t stop_bits;
+ grub_uint8_t flow_control;
+#define GRUB_ACPI_SPCR_FC_DCD_TX (1 << 0)
+#define GRUB_ACPI_SPCR_FC_RTSCTS (1 << 1)
+#define GRUB_ACPI_SPCR_FC_XONXOFF (1 << 2)
+ grub_uint8_t terminal_type;
+ grub_uint8_t language;
+ grub_uint16_t pci_device_id;
+ grub_uint16_t pci_vendor_id;
+ grub_uint8_t pci_bus;
+ grub_uint8_t pci_device;
+ grub_uint8_t pci_function;
+ grub_uint32_t pci_flags;
+ grub_uint8_t pci_segment;
+ grub_uint32_t reserved_1;
+} GRUB_PACKED;
+
#ifndef GRUB_DSDT_TEST
struct grub_acpi_rsdp_v10 *grub_acpi_get_rsdpv1 (void);
struct grub_acpi_rsdp_v20 *grub_acpi_get_rsdpv2 (void);
--
2.34.1
- [PATCH v2 0/8] serial: Add MMIO & SPCR support, Benjamin Herrenschmidt, 2022/12/22
- [PATCH v2 1/8] acpi: Export a generic grub_acpi_find_table, Benjamin Herrenschmidt, 2022/12/22
- [PATCH v2 2/8] acpi: Add SPCR and generic address definitions,
Benjamin Herrenschmidt <=
- [PATCH v2 3/8] ns8250: Add base support for MMIO UARTs, Benjamin Herrenschmidt, 2022/12/22
- [PATCH v2 5/8] ns8250: Add configuration parameter when adding ports, Benjamin Herrenschmidt, 2022/12/22
- [PATCH v2 4/8] ns8250: Move base clock definition to a header, Benjamin Herrenschmidt, 2022/12/22
- [PATCH v2 8/8] serial: Add ability to specify MMIO ports via 'serial', Benjamin Herrenschmidt, 2022/12/22
- [PATCH v2 6/8] ns8250: Use ACPI SPCR table when available to configure serial, Benjamin Herrenschmidt, 2022/12/22
- [PATCH v2 7/8] ns8250: Support more MMIO access sizes, Benjamin Herrenschmidt, 2022/12/22