[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] ACPI: Add definitions for the DBG2 table
From: |
Leif Lindholm |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] ACPI: Add definitions for the DBG2 table |
Date: |
Tue, 8 Sep 2015 14:10:07 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Sep 08, 2015 at 11:27:08AM +0800, Shannon Zhao wrote:
>
>
> 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 <address@hidden>
> > ---
> > 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.
Sure. That sounds a lot less ugly :)
I didn't quite get the interfaces, but with what you say above I think
I do. (And I think Drew suggested similarly.)
Will update and resend.
> > +} 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?
Mainly because 1.03 has been released, with no other modifications
than a license update (which has hopefully unblocked the inclusion of
DBG2/SPCR support in Linux kernel). Sorry, should have stated.
> > + * .interface_type format same as for DBG2.
> > */
> > struct AcpiSerialPortConsoleRedirection {
> > ACPI_TABLE_HEADER_DEF
> >
Thanks!
/
Leif