All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Chao Peng <chao.p.peng@linux.intel.com>, qemu-devel@nongnu.org
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	gor Mammedov <imammedo@redhat.com>,
	Xiao Guangrong <guangrong.xiao@linux.intel.com>,
	Richard Henderson <rth@twiddle.net>,
	Eduardo Habkost <ehabkost@redhat.com>,
	Haozhong Zhang <haozhong.zhang@intel.com>
Subject: Re: [Qemu-devel] [RFC PATCH v2 05/12] acpi: build static _PRT
Date: Mon, 29 Aug 2016 19:06:40 +0200	[thread overview]
Message-ID: <7891da7e-4bc3-a5cc-b532-059bdb805520@redhat.com> (raw)
In-Reply-To: <1472120105-29235-6-git-send-email-chao.p.peng@linux.intel.com>



On 25/08/2016 12:14, Chao Peng wrote:
> ...to reduce the interpretation burden for guest ACPI component.
> 
> Signed-off-by: Chao Peng <chao.p.peng@linux.intel.com>
> ---
>  hw/i386/acpi-build.c | 31 ++++++++++++++++++++++++++++++-
>  hw/i386/pc.c         |  1 +
>  include/hw/i386/pc.h |  2 ++
>  3 files changed, 33 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index a26a4bb..60c0896 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -1772,6 +1772,31 @@ static void build_q35_pci0_int(Aml *table)
>      aml_append(table, sb_scope);
>  }
>  
> +static void build_static_q35_pci0_int(Aml *table)
> +{
> +    int i, j;
> +    Aml *method, *res, *pkg;
> +    Aml *sb_scope = aml_scope("_SB");
> +    Aml *pci0_scope = aml_scope("PCI0");
> +
> +    method = aml_method("_PRT", 0, AML_NOTSERIALIZED);
> +    res = aml_package(128);
> +    for (i = 0; i < 32; i++) {
> +        for (j = 0; j < 4; j++) {
> +            pkg = aml_package(4);
> +            aml_append(pkg, aml_int((i << 16) | 0xffff));
> +            aml_append(pkg, aml_int(j));
> +            aml_append(pkg, aml_int(0));
> +            aml_append(pkg, aml_int(0x10 + j));
> +            aml_append(res, pkg);
> +        }
> +    }
> +
> +    aml_append(method, aml_return(res));
> +    aml_append(pci0_scope, method);
> +    aml_append(sb_scope, pci0_scope);
> +}
> +
>  static void build_q35_isa_bridge(Aml *table)
>  {
>      Aml *dev;
> @@ -2007,7 +2032,11 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
>          build_hpet_aml(dsdt);
>          build_q35_isa_bridge(dsdt);
>          build_isa_devices_aml(dsdt);
> -        build_q35_pci0_int(dsdt);
> +        if (pcms->static_prt) {
> +            build_static_q35_pci0_int(dsdt);
> +        } else {
> +            build_q35_pci0_int(dsdt);
> +        }
>      }
>  
>      if (pcmc->legacy_cpu_hotplug) {
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 1d62957..f479697 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -2196,6 +2196,7 @@ static void pc_machine_initfn(Object *obj)
>      PC_MACHINE_DEFINE_PROP_BOOL(pcms, PC_MACHINE_SATA, sata, true);
>      PC_MACHINE_DEFINE_PROP_BOOL(pcms, PC_MACHINE_PIC, pic, true);
>      PC_MACHINE_DEFINE_PROP_BOOL(pcms, PC_MACHINE_PIT, pit, true);
> +    PC_MACHINE_DEFINE_PROP_BOOL(pcms, PC_MACHINE_STATIC_PRT, static_prt, false);
>  }
>  
>  static void pc_machine_reset(void)
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 1dc7954..55ab09a 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -81,6 +81,7 @@ struct PCMachineState {
>      bool sata;
>      bool pic;
>      bool pit;
> +    bool static_prt;
>  };
>  
>  #define PC_MACHINE_ACPI_DEVICE_PROP "acpi-device"
> @@ -93,6 +94,7 @@ struct PCMachineState {
>  #define PC_MACHINE_SATA             "sata"
>  #define PC_MACHINE_PIC              "pic"
>  #define PC_MACHINE_PIT              "pit"
> +#define PC_MACHINE_STATIC_PRT       "static-prt"
>  
>  /**
>   * PCMachineClass:
> 

You can do this unconditionally, but it should match the contents of the
q35 PRT.

Paolo

  reply	other threads:[~2016-08-29 17:06 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-25 10:14 [Qemu-devel] [RFC PATCH v2 00/12] Guest startup time optimization Chao Peng
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 01/12] pc: make smbus configurable Chao Peng
2016-09-06 20:18   ` Eduardo Habkost
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 02/12] pc: make sata configurable Chao Peng
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 03/12] pc: make pic configurable Chao Peng
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 04/12] pc: make pit configurable Chao Peng
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 05/12] acpi: build static _PRT Chao Peng
2016-08-29 17:06   ` Paolo Bonzini [this message]
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 06/12] acpi: expose data structurs and functions of BIOS linker loader Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 07/12] acpi: expose acpi_checksum() Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 08/12] acpi: patch guest ACPI when there is no firmware Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 09/12] ich9: enable pm registers " Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 10/12] q35: initialize MMCFG base " Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 11/12] pc: support direct loading protected/long mode kernel Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 12/12] pc: skip firmware Chao Peng
2016-08-29 17:08   ` Paolo Bonzini
2016-09-02 11:08 ` [Qemu-devel] [RFC PATCH v2 00/12] Guest startup time optimization Paolo Bonzini
2016-09-05  2:37   ` Michael S. Tsirkin
2016-09-06 10:48   ` Chao Peng
2016-09-06 11:53     ` Michael S. Tsirkin
2016-09-06 14:28       ` Chao Peng
2016-09-12 15:15         ` Gerd Hoffmann
2016-09-12 17:57           ` [Qemu-devel] [SeaBIOS] " Peter Stuge
2016-09-06 14:21     ` [Qemu-devel] " Paolo Bonzini
2016-09-06 14:31       ` Chao Peng
2016-09-06 14:45       ` Michael S. Tsirkin

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=7891da7e-4bc3-a5cc-b532-059bdb805520@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=chao.p.peng@linux.intel.com \
    --cc=ehabkost@redhat.com \
    --cc=guangrong.xiao@linux.intel.com \
    --cc=haozhong.zhang@intel.com \
    --cc=imammedo@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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.