qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]