From: "Michael S. Tsirkin" <mst@redhat.com>
To: Andrew Jones <drjones@redhat.com>
Cc: peter.maydell@linaro.org, al.stone@linaro.org,
qemu-devel@nongnu.org, Leif Lindholm <leif.lindholm@linaro.org>,
shannon.zhao@linaro.org, Igor Mammedov <imammedo@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 1/2] ACPI: Add definitions for the DBG2 table
Date: Thu, 10 Sep 2015 11:19:09 +0300 [thread overview]
Message-ID: <20150910111637-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <20150907155150.GG3014@hawk.localdomain>
On Mon, Sep 07, 2015 at 05:51:50PM +0200, Andrew Jones wrote:
> On Mon, Sep 07, 2015 at 03:23:45PM +0100, 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.lindholm@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];
>
> Not sure we want to limit the number of addresses. Non ARM (non PL011)
> users of this table may not find one address sufficient.
>
> > + uint32_t address_size[1];
> > + uint8_t namespace_string[2];
> > + } QEMU_PACKED debug_devices[1];
>
> I'm guessing it's unlikely we'll ever want more than one debug port. So
> can we just drop the debug_devices array, flatting the table? OTOH, this
> is generic acpi table generation code here, and maybe x86 will want to
> use more than one port? In that case we should pull the debug device
> structure definition out, and then properly handle the variable length
> array. But this is where Igor and mst will suggest just using aml_appends,
> instead of defining these structures at all :-)
Yes - structures are fine when they are static, but for dynamic
stuff, aml_append wins hands down.
You simply add comments in code documenting each field as
it's added.
Igor actually likes aml_append for static things as well
but it's a matter of taste.
> > +} QEMU_PACKED;
> > +typedef struct AcpiDebugPort2
> > + AcpiDebugPort2;
> > +
> > +/*
> > + * Serial Port Console Redirection Table (SPCR), Rev. 1.03
> > + *
> > + * .interface_type format same as for DBG2.
> > */
> > struct AcpiSerialPortConsoleRedirection {
> > ACPI_TABLE_HEADER_DEF
> > --
> > 2.1.4
> >
next prev parent reply other threads:[~2015-09-10 8:19 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-07 14:23 [Qemu-devel] [PATCH 0/2] ACPI/arm-virt: add DBG2 Leif Lindholm
2015-09-07 14:23 ` [Qemu-devel] [PATCH 1/2] ACPI: Add definitions for the DBG2 table Leif Lindholm
2015-09-07 15:51 ` Andrew Jones
2015-09-10 8:19 ` Michael S. Tsirkin [this message]
2015-09-10 10:08 ` Igor Mammedov
2015-09-08 3:27 ` Shannon Zhao
2015-09-08 13:10 ` Leif Lindholm
2015-09-07 14:23 ` [Qemu-devel] [PATCH 2/2] hw/arm/virt-acpi-build: Add " Leif Lindholm
2015-09-07 15:59 ` Andrew Jones
2015-09-08 3:18 ` [Qemu-devel] [PATCH 0/2] ACPI/arm-virt: add DBG2 Shannon Zhao
2015-09-08 13:04 ` Leif Lindholm
2015-09-09 4:25 ` Shannon Zhao
2015-09-09 5:52 ` Andrew Jones
2015-09-09 21:23 ` Al Stone
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150910111637-mutt-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=al.stone@linaro.org \
--cc=drjones@redhat.com \
--cc=imammedo@redhat.com \
--cc=leif.lindholm@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=shannon.zhao@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.