On 2015/9/7 22:23, Leif Lindholm wrote: > The DBG2 table can be considered a "companion" to SPCR - it points out > debug consoles available in the system. > > Signed-off-by: Leif Lindholm <leif.lindh...@linaro.org> > --- > include/hw/acpi/acpi-defs.h | 37 +++++++++++++++++++++++++++++++++++-- > 1 file changed, 35 insertions(+), 2 deletions(-) > > diff --git a/include/hw/acpi/acpi-defs.h b/include/hw/acpi/acpi-defs.h > index 2b431e6..af062a7 100644 > --- a/include/hw/acpi/acpi-defs.h > +++ b/include/hw/acpi/acpi-defs.h > @@ -197,10 +197,43 @@ enum { > }; > > /* > - * Serial Port Console Redirection Table (SPCR), Rev. 1.02 > + * Debug Port Table 2 (DBG2) > * > * For .interface_type see Debug Port Table 2 (DBG2) serial port > - * subtypes in Table 3, Rev. May 22, 2012 > + * subtypes in Table 3, Rev. Aug 10, 2015 > + * > + * The specification permits multiple ports with multiple addresses, but this > + * implementation is limited to one port with one address. > + */ > +struct AcpiDebugPort2 { > + ACPI_TABLE_HEADER_DEF > + uint32_t debug_devices_offset; > + uint32_t number_debug_devices; > + struct { > + uint8_t revision; > + uint16_t length; > + uint8_t number_generic_address_registers; > + uint16_t namespace_string_length; > + uint16_t namespace_string_offset; > + uint16_t oem_data_length; > + uint16_t oem_data_offset; > + uint16_t port_type; > + uint16_t port_subtype; > + uint8_t reserved1[2]; > + uint16_t base_address_register_offset; > + uint16_t address_size_offset; > + struct AcpiGenericAddress base_address[1]; > + uint32_t address_size[1]; > + uint8_t namespace_string[2]; > + } QEMU_PACKED debug_devices[1];
This debug_device should be defined alone. And use acpi_data_push to add multiple debug_devices structures according to the number of debug device. > +} QEMU_PACKED; > +typedef struct AcpiDebugPort2 > + AcpiDebugPort2; > + > +/* > + * Serial Port Console Redirection Table (SPCR), Rev. 1.03 > + * Why do you change the revision of SPCR from 1.02 to 1.03? > + * .interface_type format same as for DBG2. > */ > struct AcpiSerialPortConsoleRedirection { > ACPI_TABLE_HEADER_DEF > -- Shannon