ACK: [PATCH 1/3] acpi: acpidump: add SPCR table (LP: #1260351)
Keng-Yu Lin
kengyu at canonical.com
Fri Dec 20 09:10:34 UTC 2013
On Mon, Dec 16, 2013 at 9:46 AM, IvanHu <ivan.hu at canonical.com> wrote:
> On 12/12/2013 10:57 PM, Colin King wrote:
>>
>> From: Colin Ian King <colin.king at canonical.com>
>>
>> Add support for the Serial Port Console Redirection Table
>>
>> Signed-off-by: Colin Ian King <colin.king at canonical.com>
>> ---
>> src/acpi/acpidump/acpidump.c | 35 +++++++++++++++++++++++++++++++++++
>> src/lib/include/fwts_acpi.h | 24 ++++++++++++++++++++++++
>> 2 files changed, 59 insertions(+)
>>
>> diff --git a/src/acpi/acpidump/acpidump.c b/src/acpi/acpidump/acpidump.c
>> index 240f6a9..2114134 100644
>> --- a/src/acpi/acpidump/acpidump.c
>> +++ b/src/acpi/acpidump/acpidump.c
>> @@ -1679,6 +1679,40 @@ static void acpidump_pcct(fwts_framework *fw, const
>> fwts_acpi_table_info *table)
>> }
>> }
>>
>> +/*
>> + * acpidump_spcr()
>> + * dump spcr, Serial Port Console Redirection Table
>> + */
>> +static void acpidump_spcr(fwts_framework *fw, const fwts_acpi_table_info
>> *table)
>> +{
>> + static const fwts_acpidump_field spcr_fields[] = {
>> + FIELD_UINT("Interface Type",
>> fwts_acpi_table_spcr, interface_type),
>> + FIELD_UINT("Reserved",
>> fwts_acpi_table_spcr, reserved1),
>> + FIELD_GAS ("Base Address",
>> fwts_acpi_table_spcr, base_address),
>> + FIELD_UINT("Interrupt Type",
>> fwts_acpi_table_spcr, interrupt_type),
>> + FIELD_UINT("IRQ",
>> fwts_acpi_table_spcr, irq),
>> + FIELD_UINT("Global System Interrupt",
>> fwts_acpi_table_spcr, gsi),
>> + FIELD_UINT("Baud Rate",
>> fwts_acpi_table_spcr, baud_rate),
>> + FIELD_UINT("Parity",
>> fwts_acpi_table_spcr, parity),
>> + FIELD_UINT("Stop Bits",
>> fwts_acpi_table_spcr, stop_bits),
>> + FIELD_UINT("Flow Control",
>> fwts_acpi_table_spcr, flow_control),
>> + FIELD_UINT("Terminal Type",
>> fwts_acpi_table_spcr, terminal_type),
>> + FIELD_UINT("Reserved",
>> fwts_acpi_table_spcr, reserved2),
>> + FIELD_UINT("PCI Device ID",
>> fwts_acpi_table_spcr, pci_device_id),
>> + FIELD_UINT("PCI Vendor ID",
>> fwts_acpi_table_spcr, pci_vendor_id),
>> + FIELD_UINT("PCI Bus Number",
>> fwts_acpi_table_spcr, pci_bus_number),
>> + FIELD_UINT("PCI Device Number",
>> fwts_acpi_table_spcr, pci_device_number),
>> + FIELD_UINT("PCI Function Number",
>> fwts_acpi_table_spcr, pci_function_number),
>> + FIELD_UINT("PCI Flags",
>> fwts_acpi_table_spcr, pci_flags),
>> + FIELD_UINT("PCI Segment",
>> fwts_acpi_table_spcr, pci_segment),
>> + FIELD_UINT("Reserved",
>> fwts_acpi_table_spcr, reserved3),
>> + FIELD_END
>> + };
>> +
>> + acpi_dump_table_fields(fw, table->data, spcr_fields, 0,
>> table->length);
>> +}
>> +
>> +
>> typedef struct {
>> const char *name;
>> void (*func)(fwts_framework *fw, const fwts_acpi_table_info
>> *table);
>> @@ -1718,6 +1752,7 @@ static const acpidump_table_vec table_vec[] = {
>> { "RSDT", acpidump_rsdt, 1 },
>> { "RSD PTR ", acpidump_rsdp, 0 },
>> { "SBST", acpidump_sbst, 1 },
>> + { "SPCR", acpidump_spcr, 1 },
>> { "SSDT", acpidump_amlcode, 1 },
>> { "SLIT", acpidump_slit, 1 },
>> { "SLIC", acpidump_slic, 1 },
>> diff --git a/src/lib/include/fwts_acpi.h b/src/lib/include/fwts_acpi.h
>> index d466d32..171bdc4 100644
>> --- a/src/lib/include/fwts_acpi.h
>> +++ b/src/lib/include/fwts_acpi.h
>> @@ -681,6 +681,30 @@ typedef struct {
>> uint16_t min_request_turnaround_time;
>> } __attribute__ ((packed)) fwts_acpi_table_pcct_subspace_type_0;
>>
>> +typedef struct {
>> + fwts_acpi_table_header header;
>> + uint8_t interface_type;
>> + uint8_t reserved1[3];
>> + fwts_acpi_gas base_address;
>> + uint8_t interrupt_type;
>> + uint8_t irq;
>> + uint32_t gsi;
>> + uint8_t baud_rate;
>> + uint8_t parity;
>> + uint8_t stop_bits;
>> + uint8_t flow_control;
>> + uint8_t terminal_type;
>> + uint8_t reserved2;
>> + uint16_t pci_device_id;
>> + uint16_t pci_vendor_id;
>> + uint8_t pci_bus_number;
>> + uint8_t pci_device_number;
>> + uint8_t pci_function_number;
>> + uint32_t pci_flags;
>> + uint8_t pci_segment;
>> + uint32_t reserved3;
>> +} __attribute__ ((packed)) fwts_acpi_table_spcr;
>> +
>> void fwts_acpi_table_get_header(fwts_acpi_table_header *hdr, uint8_t
>> *data);
>>
>> #endif
>>
>
> Acked-by: Ivan Hu <ivan.hu at canonical.com>
>
Acked-by: Keng-Yu Lin <kengyu at canonical.com>
More information about the fwts-devel
mailing list