From: Shannon Zhao <zhaoshenglong@huawei.com>
To: "Gabriel L. Somlo" <somlo@cmu.edu>, qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, drjones@redhat.com,
matt.fleming@intel.com, ehabkost@redhat.com, mst@redhat.com,
ard.biesheuvel@linaro.org, leif.lindholm@linaro.org,
kevin@koconnor.net, kraxel@redhat.com, pbonzini@redhat.com,
imammedo@redhat.com, markmb@redhat.com, lersek@redhat.com,
rth@twiddle.net
Subject: Re: [Qemu-devel] [RFC PATCH 3/3] acpi: arm: add fw_cfg device node to dsdt
Date: Mon, 14 Sep 2015 16:36:46 +0800 [thread overview]
Message-ID: <55F6871E.3090903@huawei.com> (raw)
In-Reply-To: <1442100642-7258-4-git-send-email-somlo@cmu.edu>
On 2015/9/13 7:30, Gabriel L. Somlo wrote:
> Add a fw_cfg device node to the ACPI DSDT. This is mostly
> informational, as the authoritative fw_cfg MMIO region(s)
> are listed in the Device Tree. However, since we are building
> ACPI tables, we might as well be thorough while at it...
>
> Signed-off-by: Gabriel Somlo <somlo@cmu.edu>
> ---
>
> I used surrounding examples to create acpi_dsdt_add_fw_cfg(), and
> noticed that none add a _STA method, and many include a 0 _UID even
> for nodes with a single instance. I wonder whether 1. I really need
> the _UID,
The _UID is optional if you has other way to identify it. So for the
nodes with one instance, it's not necessary. But having this is harmless.
and 2. why would we be OK not including a _STA method ?
Look at 6.3.7 _STA (Status) in ACPI Spec 6.0, it says "OSPM evaluates
the _STA object before it evaluates a device _INI method." So if the
device doesn't have _INI method, _STA is not necessary. And "If the _STA
object does not exist for the device, the device is assumed to be both
present and functional."
>
> Is the #2 answer "because no exisging arm OSPM does in fact check,
> and/or care about the absence of _STA" ? :)
>
> Thanks,
> --Gabriel
>
> hw/arm/virt-acpi-build.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
> index 9088248..150c9f9 100644
> --- a/hw/arm/virt-acpi-build.c
> +++ b/hw/arm/virt-acpi-build.c
> @@ -110,6 +110,23 @@ static void acpi_dsdt_add_rtc(Aml *scope, const MemMapEntry *rtc_memmap,
> aml_append(scope, dev);
> }
>
> +static void acpi_dsdt_add_fw_cfg(Aml *scope, const MemMapEntry *fw_cfg_memmap)
> +{
> + Aml *dev = aml_device("FWCF");
> + aml_append(dev, aml_name_decl("_HID", aml_string("FWCF0001")));
> +
> + /* FIXME: is this necessary ? */
> + aml_append(dev, aml_name_decl("_UID", aml_int(0)));
> + /* FIXME: why doesn't a _STA get added to any other node ? */
> + aml_append(dev, aml_name_decl("_STA", aml_int(0x0B)));
> +
> + Aml *crs = aml_resource_template();
> + aml_append(crs, aml_memory32_fixed(fw_cfg_memmap->base,
> + fw_cfg_memmap->size, AML_READ_WRITE));
> + aml_append(dev, aml_name_decl("_CRS", crs));
> + aml_append(scope, dev);
> +}
> +
> static void acpi_dsdt_add_flash(Aml *scope, const MemMapEntry *flash_memmap)
> {
> Aml *dev, *crs;
> @@ -519,6 +536,7 @@ build_dsdt(GArray *table_data, GArray *linker, VirtGuestInfo *guest_info)
> (irqmap[VIRT_UART] + ARM_SPI_BASE));
> acpi_dsdt_add_rtc(scope, &memmap[VIRT_RTC],
> (irqmap[VIRT_RTC] + ARM_SPI_BASE));
> + acpi_dsdt_add_fw_cfg(scope, &memmap[VIRT_FW_CFG]);
> acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH]);
> acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO],
> (irqmap[VIRT_MMIO] + ARM_SPI_BASE), NUM_VIRTIO_TRANSPORTS);
>
--
Shannon
next prev parent reply other threads:[~2015-09-14 8:37 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-12 23:30 [Qemu-devel] [RFC PATCH 0/3] adding acpi node for fw_cfg on pc and arm Gabriel L. Somlo
2015-09-12 23:30 ` [Qemu-devel] [RFC PATCH 1/3] pc: fw_cfg: move ioport base constant to pc.h Gabriel L. Somlo
2015-09-13 10:51 ` Marc Marí
2015-09-13 17:28 ` Gabriel L. Somlo
2015-09-13 20:16 ` Marc Marí
2015-09-12 23:30 ` [Qemu-devel] [RFC PATCH 2/3] acpi: pc: add fw_cfg device node to ssdt Gabriel L. Somlo
2015-09-13 11:45 ` Michael S. Tsirkin
2015-09-13 17:07 ` Gabriel L. Somlo
2015-09-14 15:48 ` Eduardo Habkost
2015-09-12 23:30 ` [Qemu-devel] [RFC PATCH 3/3] acpi: arm: add fw_cfg device node to dsdt Gabriel L. Somlo
2015-09-14 8:36 ` Shannon Zhao [this message]
2015-09-14 8:48 ` Igor Mammedov
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=55F6871E.3090903@huawei.com \
--to=zhaoshenglong@huawei.com \
--cc=ard.biesheuvel@linaro.org \
--cc=drjones@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=kevin@koconnor.net \
--cc=kraxel@redhat.com \
--cc=leif.lindholm@linaro.org \
--cc=lersek@redhat.com \
--cc=markmb@redhat.com \
--cc=matt.fleming@intel.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=somlo@cmu.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).