All of lore.kernel.org
 help / color / mirror / Atom feed
From: "chenxiang (M)" via <qemu-devel@nongnu.org>
To: Eric Auger <eric.auger@redhat.com>, <eric.auger.pro@gmail.com>,
	<imammedo@redhat.com>, <philmd@redhat.com>,
	<peter.maydell@linaro.org>, <shannon.zhaosl@gmail.com>,
	<shameerali.kolothum.thodi@huawei.com>, <ardb@kernel.org>,
	<jean-philippe@linaro.org>, <qemu-arm@nongnu.org>,
	<qemu-devel@nongnu.org>, <drjones@redhat.com>
Cc: <gshan@redhat.com>, "linuxarm@huawei.com" <linuxarm@huawei.com>
Subject: Re: [RFC v2 1/2] hw/pci-host/gpex: Allow to generate preserve boot config DSM #5
Date: Wed, 29 Dec 2021 15:13:41 +0800	[thread overview]
Message-ID: <97906621-e6e1-67ec-a3a2-26e5fd07f1a6@hisilicon.com> (raw)
In-Reply-To: <20211005085313.493858-2-eric.auger@redhat.com>

Hi Eric,


在 2021/10/5 16:53, Eric Auger 写道:
> Add a 'preserve_config' field in struct GPEXConfig and
> if set generate the DSM #5 for preserving PCI boot configurations.
> The DSM presence is needed to expose RMRs.
>
> At the moment the DSM generation is not yet enabled.
>
> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> ---
>   include/hw/pci-host/gpex.h |  1 +
>   hw/pci-host/gpex-acpi.c    | 12 ++++++++++++
>   2 files changed, 13 insertions(+)
>
> diff --git a/include/hw/pci-host/gpex.h b/include/hw/pci-host/gpex.h
> index fcf8b63820..3f8f8ec38d 100644
> --- a/include/hw/pci-host/gpex.h
> +++ b/include/hw/pci-host/gpex.h
> @@ -64,6 +64,7 @@ struct GPEXConfig {
>       MemMapEntry pio;
>       int         irq;
>       PCIBus      *bus;
> +    bool        preserve_config;
>   };
>   
>   int gpex_set_irq_num(GPEXHost *s, int index, int gsi);
> diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
> index e7e162a00a..7dab259379 100644
> --- a/hw/pci-host/gpex-acpi.c
> +++ b/hw/pci-host/gpex-acpi.c
> @@ -164,6 +164,12 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
>                   aml_append(dev, aml_name_decl("_PXM", aml_int(numa_node)));
>               }
>   
> +            if (cfg->preserve_config) {
> +                method = aml_method("_DSM", 5, AML_SERIALIZED);

I notice there is a ACPI BIOS Error when booting virtual machine which 
seems be caused by this patch as I add this patchset in my branch to 
test the function of vsmmu.
It seems that it requires only 4 parameter for method _DSM, but use 5 
parameters here.
The error log is as following:

[    2.355459] ACPI BIOS Error (bug): Failure creating named object 
[\_SB.PCI0._DSM], AE_ALREADY_EXISTS (20210930/dswload2-327)
[    2.355467] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog 
(20210930/psobject-221)
[    2.355470] ACPI: Skipping parse of AML opcode: OpcodeName 
unavailable (0x0014)
[    2.355657] ACPI: 1 ACPI AML tables successfully acquired and loaded
[    2.356321] ACPI: Interpreter enabled
[    2.356323] ACPI: Using GIC for interrupt routing
[    2.356333] ACPI: MCFG table detected, 1 entries
[    2.361359] ARMH0011:00: ttyAMA0 at MMIO 0x9000000 (irq = 16, 
base_baud = 0) is a SBSA
[    2.619805] printk: console [ttyAMA0] enabled
[    2.622114] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    2.622788] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM 
ClockPM Segments MSI HPX-Type3]
[    2.623776] acpi PNP0A08:00: _OSC: platform does not support [LTR]
[    2.624600] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug PME 
AER PCIeCapability]
[    2.625721] acpi PNP0A08:00: ECAM area [mem 
0x4010000000-0x401fffffff] reserved by PNP0C02:00
[    2.626645] acpi PNP0A08:00: ECAM at [mem 0x4010000000-0x401fffffff] 
for [bus 00-ff]
[    2.627450] ACPI: Remapped I/O 0x000000003eff0000 to [io 
0x0000-0xffff window]
[    2.628229] ACPI BIOS Error (bug): \_SB.PCI0._DSM: Excess arguments - 
ASL declared 5, ACPI requires 4 (20210930/nsarguments-166)
[    2.629576] PCI host bridge to bus 0000:00
[    2.630008] pci_bus 0000:00: root bus resource [mem 
0x10000000-0x3efeffff window]
[    2.630747] pci_bus 0000:00: root bus resource [io  0x0000-0xffff window]
[    2.631405] pci_bus 0000:00: root bus resource [mem 
0x8000000000-0xffffffffff window]
[    2.632177] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.632731] ACPI BIOS Error (bug): \_SB.PCI0._DSM: Excess arguments - 
ASL declared 5, ACPI requires 4 (20210930/nsarguments-166)


> +                aml_append(method, aml_return(aml_int(0)));
> +                aml_append(dev, method);
> +            }
> +
>               acpi_dsdt_add_pci_route_table(dev, cfg->irq);
>   
>               /*
> @@ -191,6 +197,12 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
>       aml_append(dev, aml_name_decl("_STR", aml_unicode("PCIe 0 Device")));
>       aml_append(dev, aml_name_decl("_CCA", aml_int(1)));
>   
> +    if (cfg->preserve_config) {
> +        method = aml_method("_DSM", 5, AML_SERIALIZED);
> +        aml_append(method, aml_return(aml_int(0)));
> +        aml_append(dev, method);
> +    }
> +
>       acpi_dsdt_add_pci_route_table(dev, cfg->irq);
>   
>       method = aml_method("_CBA", 0, AML_NOTSERIALIZED);



  parent reply	other threads:[~2021-12-29  7:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-05  8:53 [RFC v2 0/2] hw/arm/virt-acpi-build: Add IORT RMR regions to handle MSI nested binding Eric Auger
2021-10-05  8:53 ` [RFC v2 1/2] hw/pci-host/gpex: Allow to generate preserve boot config DSM #5 Eric Auger
2021-10-11 15:15   ` Igor Mammedov
2021-12-29  7:13   ` chenxiang (M) via [this message]
2022-01-06 11:00     ` Eric Auger
2022-01-06 11:16       ` chenxiang (M) via
2021-10-05  8:53 ` [RFC v2 2/2] hw/arm/virt-acpi-build: Add IORT RMR regions to handle MSI nested binding Eric Auger

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=97906621-e6e1-67ec-a3a2-26e5fd07f1a6@hisilicon.com \
    --to=qemu-devel@nongnu.org \
    --cc=ardb@kernel.org \
    --cc=chenxiang66@hisilicon.com \
    --cc=drjones@redhat.com \
    --cc=eric.auger.pro@gmail.com \
    --cc=eric.auger@redhat.com \
    --cc=gshan@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=jean-philippe@linaro.org \
    --cc=linuxarm@huawei.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=shannon.zhaosl@gmail.com \
    /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.