From: Shannon Zhao <zhaoshenglong@huawei.com>
To: Laszlo Ersek <lersek@redhat.com>, qemu-devel@nongnu.org
Cc: Aleksei Kovura <alex3kov@zoho.com>,
Xiao Guangrong <guangrong.xiao@linux.intel.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Steven Newbury <steve@snewbury.org.uk>,
Michael Tokarev <mjt@tls.msk.ru>,
"Richard W.M. Jones" <rjones@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Igor Mammedov <imammedo@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 1/4] acpi: take oem_id in build_header(), optionally
Date: Tue, 19 Jan 2016 11:27:13 +0800 [thread overview]
Message-ID: <569DAD11.8030006@huawei.com> (raw)
In-Reply-To: <1453126333-19474-2-git-send-email-lersek@redhat.com>
On 2016/1/18 22:12, Laszlo Ersek wrote:
> This patch is the continuation of commit 8870ca0e94f2 ("acpi: support
> specified oem table id for build_header"). It will allow us to control the
> OEM ID field too in the SDT header.
>
> Cc: "Michael S. Tsirkin" <mst@redhat.com> (supporter:ACPI/SMBIOS)
> Cc: Igor Mammedov <imammedo@redhat.com> (supporter:ACPI/SMBIOS)
> Cc: Xiao Guangrong <guangrong.xiao@linux.intel.com> (maintainer:NVDIMM)
> Cc: Shannon Zhao <zhaoshenglong@huawei.com> (maintainer:ARM ACPI Subsystem)
> Cc: Paolo Bonzini <pbonzini@redhat.com> (maintainer:X86)
> Cc: Richard W.M. Jones <rjones@redhat.com>
> Cc: Aleksei Kovura <alex3kov@zoho.com>
> Cc: Michael Tokarev <mjt@tls.msk.ru>
> Cc: Steven Newbury <steve@snewbury.org.uk>
> RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1248758
> LP: https://bugs.launchpad.net/qemu/+bug/1533848
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Shannon Zhao <shannon.zhao@linaro.org>
> ---
>
> Notes:
> v2:
> - no change
>
> include/hw/acpi/aml-build.h | 2 +-
> hw/acpi/aml-build.c | 11 ++++++++---
> hw/acpi/nvdimm.c | 4 ++--
> hw/arm/virt-acpi-build.c | 12 ++++++------
> hw/i386/acpi-build.c | 20 ++++++++++----------
> 5 files changed, 27 insertions(+), 22 deletions(-)
>
> diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h
> index 6d6f705..c460bdd 100644
> --- a/include/hw/acpi/aml-build.h
> +++ b/include/hw/acpi/aml-build.h
> @@ -357,7 +357,7 @@ Aml *aml_sizeof(Aml *arg);
> void
> build_header(GArray *linker, GArray *table_data,
> AcpiTableHeader *h, const char *sig, int len, uint8_t rev,
> - const char *oem_table_id);
> + const char *oem_id, const char *oem_table_id);
> void *acpi_data_push(GArray *table_data, unsigned size);
> unsigned acpi_data_len(GArray *table);
> void acpi_add_table(GArray *table_offsets, GArray *table_data);
> diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
> index 78e1290..05b8bd0 100644
> --- a/hw/acpi/aml-build.c
> +++ b/hw/acpi/aml-build.c
> @@ -1430,12 +1430,17 @@ Aml *aml_alias(const char *source_object, const char *alias_object)
> void
> build_header(GArray *linker, GArray *table_data,
> AcpiTableHeader *h, const char *sig, int len, uint8_t rev,
> - const char *oem_table_id)
> + const char *oem_id, const char *oem_table_id)
> {
> memcpy(&h->signature, sig, 4);
> h->length = cpu_to_le32(len);
> h->revision = rev;
> - memcpy(h->oem_id, ACPI_BUILD_APPNAME6, 6);
> +
> + if (oem_id) {
> + strncpy((char *)h->oem_id, oem_id, sizeof h->oem_id);
> + } else {
> + memcpy(h->oem_id, ACPI_BUILD_APPNAME6, 6);
> + }
>
> if (oem_table_id) {
> strncpy((char *)h->oem_table_id, oem_table_id, sizeof(h->oem_table_id));
> @@ -1510,5 +1515,5 @@ build_rsdt(GArray *table_data, GArray *linker, GArray *table_offsets)
> sizeof(uint32_t));
> }
> build_header(linker, table_data,
> - (void *)rsdt, "RSDT", rsdt_len, 1, NULL);
> + (void *)rsdt, "RSDT", rsdt_len, 1, NULL, NULL);
> }
> diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c
> index df1b176..73749aa 100644
> --- a/hw/acpi/nvdimm.c
> +++ b/hw/acpi/nvdimm.c
> @@ -365,7 +365,7 @@ static void nvdimm_build_nfit(GSList *device_list, GArray *table_offsets,
>
> build_header(linker, table_data,
> (void *)(table_data->data + header), "NFIT",
> - sizeof(NvdimmNfitHeader) + structures->len, 1, NULL);
> + sizeof(NvdimmNfitHeader) + structures->len, 1, NULL, NULL);
> g_array_free(structures, true);
> }
>
> @@ -470,7 +470,7 @@ static void nvdimm_build_ssdt(GSList *device_list, GArray *table_offsets,
> g_array_append_vals(table_data, ssdt->buf->data, ssdt->buf->len);
> build_header(linker, table_data,
> (void *)(table_data->data + table_data->len - ssdt->buf->len),
> - "SSDT", ssdt->buf->len, 1, "NVDIMM");
> + "SSDT", ssdt->buf->len, 1, NULL, "NVDIMM");
> free_aml_allocator();
> }
>
> diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
> index 0d5c635..985fca4 100644
> --- a/hw/arm/virt-acpi-build.c
> +++ b/hw/arm/virt-acpi-build.c
> @@ -407,7 +407,7 @@ build_spcr(GArray *table_data, GArray *linker, VirtGuestInfo *guest_info)
> spcr->pci_vendor_id = 0xffff; /* PCI Vendor ID: not a PCI device */
>
> build_header(linker, table_data, (void *)spcr, "SPCR", sizeof(*spcr), 2,
> - NULL);
> + NULL, NULL);
> }
>
> static void
> @@ -426,7 +426,7 @@ build_mcfg(GArray *table_data, GArray *linker, VirtGuestInfo *guest_info)
> mcfg->allocation[0].end_bus_number = (memmap[VIRT_PCIE_ECAM].size
> / PCIE_MMCFG_SIZE_MIN) - 1;
>
> - build_header(linker, table_data, (void *)mcfg, "MCFG", len, 1, NULL);
> + build_header(linker, table_data, (void *)mcfg, "MCFG", len, 1, NULL, NULL);
> }
>
> /* GTDT */
> @@ -452,7 +452,7 @@ build_gtdt(GArray *table_data, GArray *linker)
>
> build_header(linker, table_data,
> (void *)(table_data->data + gtdt_start), "GTDT",
> - table_data->len - gtdt_start, 2, NULL);
> + table_data->len - gtdt_start, 2, NULL, NULL);
> }
>
> /* MADT */
> @@ -514,7 +514,7 @@ build_madt(GArray *table_data, GArray *linker, VirtGuestInfo *guest_info,
>
> build_header(linker, table_data,
> (void *)(table_data->data + madt_start), "APIC",
> - table_data->len - madt_start, 3, NULL);
> + table_data->len - madt_start, 3, NULL, NULL);
> }
>
> /* FADT */
> @@ -539,7 +539,7 @@ build_fadt(GArray *table_data, GArray *linker, unsigned dsdt)
> sizeof fadt->dsdt);
>
> build_header(linker, table_data,
> - (void *)fadt, "FACP", sizeof(*fadt), 5, NULL);
> + (void *)fadt, "FACP", sizeof(*fadt), 5, NULL, NULL);
> }
>
> /* DSDT */
> @@ -578,7 +578,7 @@ build_dsdt(GArray *table_data, GArray *linker, VirtGuestInfo *guest_info)
> g_array_append_vals(table_data, dsdt->buf->data, dsdt->buf->len);
> build_header(linker, table_data,
> (void *)(table_data->data + table_data->len - dsdt->buf->len),
> - "DSDT", dsdt->buf->len, 2, NULL);
> + "DSDT", dsdt->buf->len, 2, NULL, NULL);
> free_aml_allocator();
> }
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 78758e2..e1ebd07 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -358,7 +358,7 @@ build_fadt(GArray *table_data, GArray *linker, AcpiPmInfo *pm,
> fadt_setup(fadt, pm);
>
> build_header(linker, table_data,
> - (void *)fadt, "FACP", sizeof(*fadt), 1, NULL);
> + (void *)fadt, "FACP", sizeof(*fadt), 1, NULL, NULL);
> }
>
> static void
> @@ -428,7 +428,7 @@ build_madt(GArray *table_data, GArray *linker, AcpiCpuInfo *cpu,
>
> build_header(linker, table_data,
> (void *)(table_data->data + madt_start), "APIC",
> - table_data->len - madt_start, 1, NULL);
> + table_data->len - madt_start, 1, NULL, NULL);
> }
>
> /* Assign BSEL property to all buses. In the future, this can be changed
> @@ -2197,7 +2197,7 @@ build_ssdt(GArray *table_data, GArray *linker,
> g_array_append_vals(table_data, ssdt->buf->data, ssdt->buf->len);
> build_header(linker, table_data,
> (void *)(table_data->data + table_data->len - ssdt->buf->len),
> - "SSDT", ssdt->buf->len, 1, NULL);
> + "SSDT", ssdt->buf->len, 1, NULL, NULL);
> free_aml_allocator();
> }
>
> @@ -2213,7 +2213,7 @@ build_hpet(GArray *table_data, GArray *linker)
> hpet->timer_block_id = cpu_to_le32(0x8086a201);
> hpet->addr.address = cpu_to_le64(HPET_BASE);
> build_header(linker, table_data,
> - (void *)hpet, "HPET", sizeof(*hpet), 1, NULL);
> + (void *)hpet, "HPET", sizeof(*hpet), 1, NULL, NULL);
> }
>
> static void
> @@ -2236,7 +2236,7 @@ build_tpm_tcpa(GArray *table_data, GArray *linker, GArray *tcpalog)
> sizeof(tcpa->log_area_start_address));
>
> build_header(linker, table_data,
> - (void *)tcpa, "TCPA", sizeof(*tcpa), 2, NULL);
> + (void *)tcpa, "TCPA", sizeof(*tcpa), 2, NULL, NULL);
>
> acpi_data_push(tcpalog, TPM_LOG_AREA_MINIMUM_SIZE);
> }
> @@ -2253,7 +2253,7 @@ build_tpm2(GArray *table_data, GArray *linker)
> tpm2_ptr->start_method = cpu_to_le32(TPM2_START_METHOD_MMIO);
>
> build_header(linker, table_data,
> - (void *)tpm2_ptr, "TPM2", sizeof(*tpm2_ptr), 4, NULL);
> + (void *)tpm2_ptr, "TPM2", sizeof(*tpm2_ptr), 4, NULL, NULL);
> }
>
> typedef enum {
> @@ -2367,7 +2367,7 @@ build_srat(GArray *table_data, GArray *linker, PcGuestInfo *guest_info)
> build_header(linker, table_data,
> (void *)(table_data->data + srat_start),
> "SRAT",
> - table_data->len - srat_start, 1, NULL);
> + table_data->len - srat_start, 1, NULL, NULL);
> }
>
> static void
> @@ -2396,7 +2396,7 @@ build_mcfg_q35(GArray *table_data, GArray *linker, AcpiMcfgInfo *info)
> } else {
> sig = "MCFG";
> }
> - build_header(linker, table_data, (void *)mcfg, sig, len, 1, NULL);
> + build_header(linker, table_data, (void *)mcfg, sig, len, 1, NULL, NULL);
> }
>
> static void
> @@ -2420,7 +2420,7 @@ build_dmar_q35(GArray *table_data, GArray *linker)
> drhd->address = cpu_to_le64(Q35_HOST_BRIDGE_IOMMU_ADDR);
>
> build_header(linker, table_data, (void *)(table_data->data + dmar_start),
> - "DMAR", table_data->len - dmar_start, 1, NULL);
> + "DMAR", table_data->len - dmar_start, 1, NULL, NULL);
> }
>
> static void
> @@ -2529,7 +2529,7 @@ build_dsdt(GArray *table_data, GArray *linker,
> g_array_append_vals(table_data, dsdt->buf->data, dsdt->buf->len);
> build_header(linker, table_data,
> (void *)(table_data->data + table_data->len - dsdt->buf->len),
> - "DSDT", dsdt->buf->len, 1, NULL);
> + "DSDT", dsdt->buf->len, 1, NULL, NULL);
> free_aml_allocator();
> }
>
>
--
Shannon
next prev parent reply other threads:[~2016-01-19 3:28 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-18 14:12 [Qemu-devel] [PATCH v2 0/4] set the OEM fields in the RSDT and the FADT from the SLIC Laszlo Ersek
2016-01-18 14:12 ` [Qemu-devel] [PATCH v2 1/4] acpi: take oem_id in build_header(), optionally Laszlo Ersek
2016-01-19 3:27 ` Shannon Zhao [this message]
2016-01-18 14:12 ` [Qemu-devel] [PATCH v2 2/4] acpi: expose oem_id and oem_table_id in build_rsdt() Laszlo Ersek
2016-01-19 3:29 ` Shannon Zhao
2016-01-18 14:12 ` [Qemu-devel] [PATCH v2 3/4] acpi: add function to extract oem_id and oem_table_id from the user's SLIC Laszlo Ersek
2016-01-18 14:12 ` [Qemu-devel] [PATCH v2 4/4] pc: set the OEM fields in the RSDT and the FADT from the SLIC Laszlo Ersek
2016-01-19 7:35 ` [Qemu-devel] [PATCH v2 0/4] " Steven Newbury
2016-01-19 7:40 ` Steven Newbury
2016-01-27 18:31 ` Laszlo Ersek
2016-02-03 18:51 ` Laszlo Ersek
2016-02-03 19:02 ` Michael Tokarev
2016-02-03 19:45 ` Laszlo Ersek
2016-02-03 20:37 ` Richard W.M. Jones
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=569DAD11.8030006@huawei.com \
--to=zhaoshenglong@huawei.com \
--cc=alex3kov@zoho.com \
--cc=guangrong.xiao@linux.intel.com \
--cc=imammedo@redhat.com \
--cc=lersek@redhat.com \
--cc=mjt@tls.msk.ru \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rjones@redhat.com \
--cc=steve@snewbury.org.uk \
/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.