[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/4] acpi: move common parts of the SSDT to the
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 0/4] acpi: move common parts of the SSDT to the DSDT (and preview of things to come) |
Date: |
Mon, 19 Jan 2015 13:22:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 |
On 24/12/2014 14:12, Paolo Bonzini wrote:
> Right now, the SSDT/DSDT is split in three parts:
>
> - code that doesn't need patching goes in the DSDT. Furthermore,
> code in this category that is shared between PIIX4 and Q35 is
> handled via #include. There was one exception, the SMC._STA
> method is patched and is in the DSDT.
>
> - shared code that needs patching goes in the SSDT
>
> - template-based code that comes from command line arguments
> goes in the SSDT as well
>
> This series changes things to:
>
> - code that is chipset-specific goes in the DSDT first.
> Right now none of this needs patching
>
> - code that is not chipset-specific, some of which needs
> patching, goes in the DSDT second
>
> - template-based code that comes from command line arguments
> goes in the SSDT
>
> Patch 1 moves ssdt-misc ("common code that needs patching")
> to the DSDT. Patches 2-4 stop using the C preprocessor
> in the DSDTs.
>
> Patches 5-7 show why this could be useful. They add padding
> in fw_cfg after the DSDT, and in exchange stop padding the ACPI
> tables to 128K. This fixes migration problems (ROM sizes, RSDP)
> because the ACPI tables are split in two:
>
> 1) fixed tables and the DSDT can be changed freely;
>
> 2) tables that vary depending on the command-line arguments (SSDT,
> MADT, ...) are versioned and, given a machine type, they have to be
> byte-equivalent across QEMU versions >= 2.3.
>
> Patches 5 and 6 introduce a new sizing algorithm. Patch 7 use it
> to fix the migration problems.
>
> Only the first 4 or 6 patches are meant for inclusion. Patch 7 should
> only be committed after Igor's series that rewrites the templating
> mechanism in C. That makes it much simpler to track changes to the ACPI
> tables, and removes dependencies on the IASL version that could cause
> some head-scratching.
>
> The conflicts with Igor's series are nontrivial but overall
> not complicated to solve. Igor rewrote ssdt-misc in C, but those
> parts can be easily removed from his series. He has plans to
> build the DSDT from C, and if that materializes it can apply to
> acpi-dsdt-common.dsl too.
>
> Paolo
>
> Paolo Bonzini (7):
> pc: append ssdt-misc.dsl to the DSDT
> pc: rename ssdt-misc to dsdt-common
> pc: move common parts of the DSDT to dsdt-common
> pc: merge DSDT common parts into acpi-dsdt-common.dsl
> pc: introduce new ACPI table sizing algorithm
> pc: clean up pre-2.1 compatibility code
> pc: go back to smaller ACPI tables
>
> hw/i386/Makefile.objs | 2 +-
> hw/i386/acpi-build.c | 107 +++--
> hw/i386/acpi-dsdt-common.dsl | 467
> +++++++++++++++++++++
> ...ex.generated => acpi-dsdt-common.hex.generated} | 4 +-
> hw/i386/acpi-dsdt-dbug.dsl | 41 --
> hw/i386/acpi-dsdt-hpet.dsl | 48 ---
> hw/i386/acpi-dsdt-isa.dsl | 128 ------
> hw/i386/acpi-dsdt-mem-hotplug.dsl | 176 --------
> hw/i386/acpi-dsdt.dsl | 12 +-
> hw/i386/pc_piix.c | 9 +-
> hw/i386/pc_q35.c | 6 +-
> hw/i386/q35-acpi-dsdt.dsl | 9 +-
> hw/i386/ssdt-misc.dsl | 122 ------
> include/hw/i386/pc.h | 2 +
> 14 files changed, 550 insertions(+), 583 deletions(-)
> create mode 100644 hw/i386/acpi-dsdt-common.dsl
> rename hw/i386/{ssdt-misc.hex.generated => acpi-dsdt-common.hex.generated}
> (96%)
> delete mode 100644 hw/i386/acpi-dsdt-dbug.dsl
> delete mode 100644 hw/i386/acpi-dsdt-hpet.dsl
> delete mode 100644 hw/i386/acpi-dsdt-isa.dsl
> delete mode 100644 hw/i386/acpi-dsdt-mem-hotplug.dsl
> delete mode 100644 hw/i386/ssdt-misc.dsl
>
Ping (patches 1-4)?
Paolo
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH 0/4] acpi: move common parts of the SSDT to the DSDT (and preview of things to come),
Paolo Bonzini <=