From: Igor Mammedov <imammedo@redhat.com>
To: qemu-devel@nongnu.org
Cc: ehabkost@redhat.com, marcel.apfelbaum@gmail.com, mst@redhat.com
Subject: [Qemu-devel] [PATCH v2 00/51] pc: acpi: convert DSDT to AML API and drop ASL templates support
Date: Mon, 28 Dec 2015 17:57:31 +0100 [thread overview]
Message-ID: <1451321851-260744-1-git-send-email-imammedo@redhat.com> (raw)
Changelog:
v1->v2:
- rebase on top of PCI tree skipping AML API patches
as they are already applied there
- drop a_ prefix for AML variables
- use DIFF env. var. to specify diff utility to show ASL difference
- build ISA device with a function pre device type
at expence of some code duplication it makes code a little bit
more readable. Later refactoring will remove duplicated code
folding all of it into one simple function for all ISA devices.
- unfold GPE stub handlers loop and opencode it, it adds ~10 extra LOC
that will be removed at refactoring stage since stubs are not
required by spec/guest leaving only GPE handlers that are
actually doing something.
- minor cleanups to make code more readble/clear,
based on Marcel's and Michael's review.
Due to huge size, CCing only cover letter instead of individual patches.
Series converts DSDT using existing and new AML API.
Series does exact byte by byte conversion and passes ACPI tables
'make check' tests.
The conversion first moves common for PIIX4/Q35 parts, getting
rid of *.dsl includes and then converts PIIX4 and Q35 parts of DSDT.
Diff-stat looks nice but actual code base is reduced by ~2000LOC
while the rest of 10000 removals is dropping precompiled AML
templates from the tree.
There are some AML parts that could be optimized/simplified and shared
between PIIX4/Q35/ARM but doing it will break exact match with original
tests, hence it's left out for later refactoring.
git tree for testing:
https://github.com/imammedo/qemu/tree/drop_ASL_support_v2
or
github.com:imammedo/qemu.git drop_ASL_support_v2
Igor Mammedov (51):
tests: acpi: print ASL diff in verbose mode
pc: acpi: memhp: prepare context in SSDT for moving memhp DSDT code
pc: acpi: memhp: move MHPD._STA method into SSDT
pc: acpi: memhp: move MHPD.MLCK mutex into SSDT
pc: acpi: memhp: move MHPD.MSCN method into SSDT
pc: acpi: memhp: move MHPD.MRST method into SSDT
pc: acpi: memhp: move MHPD.MPXM method into SSDT
pc: acpi: memhp: move MHPD.MOST method into SSDT
pc: acpi: memhp: move MHPD.MEJ0 method into SSDT
pc: acpi: memhp: move MHPD.MCRS method into SSDT
pc: acpi: memhp: move MHPD Device into SSDT
pc: acpi: factor out memhp code from build_ssdt() into separate
function
pc: acpi: memhp: move \_GPE._E03 into SSDT
pc: acpi: memhp: drop not needed stringify(MEMORY_foo) usage
pc: acpi: drop unused CPU_STATUS_LEN from DSDT
pc: acpi: cpuhp: move CPEJ() method to SSDT
pc: acpi: cpuhp: move CPMA() method into SSDT
pc: acpi: cpuhp: move CPST() method into SSDT
pc: acpi: cpuhp: move PRSC() method into SSDT
pc: acpi: cpuhp: move \_GPE._E02() into SSDT
pc: acpi: factor out cpu hotplug code from build_ssdt() into separate
function
pc: acpi: move HPET from DSDT to SSDT
pc: acpi: move DBUG() from DSDT to SSDT
pc: acpi: move RTC device from DSDT to SSDT
pc: acpi: move KBD device from DSDT to SSDT
pc: acpi: move MOU device from DSDT to SSDT
pc: acpi: move FDC0 device from DSDT to SSDT
pc: acpi: move LPT device from DSDT to SSDT
pc: acpi: move COM devices from DSDT to SSDT
pc: acpi: move PIIX4 isa-bridge and pm devices into SSDT
pc: acpi: move remaining GPE handlers into SSDT
pc: acpi: pci: move link devices into SSDT
pc: acpi: piix4: move IQCR() into SSDT
pc: acpi: piix4: move IQST() into SSDT
pc: acpi: piix4: move PCI0._PRT() into SSDT
pc: acpi: piix4: move remaining PCI hotplug bits into SSDT
pc: acpi: piix4: acpi move PCI0 device to SSDT
pc: acpi: q35: move GSI links to SSDT
pc: acpi: q35: move link devices to SSDT
pc: acpi: q35: move IQCR() into SSDT
pc: acpi: q35: move IQST() into SSDT
pc: acpi: q35: move ISA bridge into SSDT
pc: acpi: q35: move _PRT() into SSDT
pc: acpi: q35: move PRTA routing table into SSDT
pc: acpi: q35: move PRTP routing table into SSDT
pc: acpi: q35: move _PIC() method into SSDT
pc: acpi: q35: move PCI0._OSC() method into SSDT
pc: acpi: q35: move PCI0 device definition into SSDT
pc: acpi: q35: PCST, PCSB opregions and PCIB field into SSDT
pc: acpi: switch to AML API composed DSDT
pc: acpi: remove unused ASL templates and related blobs/utils
hw/acpi/Makefile.objs | 4 +-
hw/acpi/cpu_hotplug_acpi_table.c | 135 +
hw/acpi/memory_hotplug_acpi_table.c | 262 ++
hw/i386/Makefile.objs | 30 -
hw/i386/acpi-build.c | 1367 +++++--
hw/i386/acpi-dsdt-cpu-hotplug.dsl | 90 -
hw/i386/acpi-dsdt-dbug.dsl | 41 -
hw/i386/acpi-dsdt-hpet.dsl | 48 -
hw/i386/acpi-dsdt-isa.dsl | 117 -
hw/i386/acpi-dsdt-mem-hotplug.dsl | 171 -
hw/i386/acpi-dsdt.dsl | 303 --
hw/i386/acpi-dsdt.hex.generated | 2972 --------------
hw/i386/q35-acpi-dsdt.dsl | 436 --
hw/i386/q35-acpi-dsdt.hex.generated | 7610 -----------------------------------
hw/timer/hpet.c | 2 +-
include/hw/acpi/aml-build.h | 3 +
include/hw/acpi/cpu_hotplug.h | 10 +
include/hw/acpi/memory_hotplug.h | 9 +
include/hw/acpi/pc-hotplug.h | 44 +-
include/hw/timer/hpet.h | 1 +
scripts/acpi_extract.py | 367 --
scripts/acpi_extract_preprocess.py | 51 -
scripts/update-acpi.sh | 4 -
tests/bios-tables-test.c | 16 +
24 files changed, 1599 insertions(+), 12494 deletions(-)
create mode 100644 hw/acpi/cpu_hotplug_acpi_table.c
create mode 100644 hw/acpi/memory_hotplug_acpi_table.c
delete mode 100644 hw/i386/acpi-dsdt-cpu-hotplug.dsl
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/acpi-dsdt.dsl
delete mode 100644 hw/i386/acpi-dsdt.hex.generated
delete mode 100644 hw/i386/q35-acpi-dsdt.dsl
delete mode 100644 hw/i386/q35-acpi-dsdt.hex.generated
delete mode 100755 scripts/acpi_extract.py
delete mode 100755 scripts/acpi_extract_preprocess.py
delete mode 100644 scripts/update-acpi.sh
--
1.8.3.1
next reply other threads:[~2015-12-28 16:57 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-28 16:57 Igor Mammedov [this message]
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 01/51] tests: acpi: print ASL diff in verbose mode Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 02/51] pc: acpi: memhp: prepare context in SSDT for moving memhp DSDT code Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 03/51] pc: acpi: memhp: move MHPD._STA method into SSDT Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 04/51] pc: acpi: memhp: move MHPD.MLCK mutex " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 05/51] pc: acpi: memhp: move MHPD.MSCN method " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 06/51] pc: acpi: memhp: move MHPD.MRST " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 07/51] pc: acpi: memhp: move MHPD.MPXM " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 08/51] pc: acpi: memhp: move MHPD.MOST " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 09/51] pc: acpi: memhp: move MHPD.MEJ0 " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 10/51] pc: acpi: memhp: move MHPD.MCRS " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 11/51] pc: acpi: memhp: move MHPD Device " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 12/51] pc: acpi: factor out memhp code from build_ssdt() into separate function Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 13/51] pc: acpi: memhp: move \_GPE._E03 into SSDT Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 14/51] pc: acpi: memhp: drop not needed stringify(MEMORY_foo) usage Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 15/51] pc: acpi: drop unused CPU_STATUS_LEN from DSDT Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 16/51] pc: acpi: cpuhp: move CPEJ() method to SSDT Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 17/51] pc: acpi: cpuhp: move CPMA() method into SSDT Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 18/51] pc: acpi: cpuhp: move CPST() " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 19/51] pc: acpi: cpuhp: move PRSC() " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 20/51] pc: acpi: cpuhp: move \_GPE._E02() " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 21/51] pc: acpi: factor out cpu hotplug code from build_ssdt() into separate function Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 22/51] pc: acpi: move HPET from DSDT to SSDT Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 23/51] pc: acpi: move DBUG() " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 24/51] pc: acpi: move RTC device " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 25/51] pc: acpi: move KBD " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 26/51] pc: acpi: move MOU " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 27/51] pc: acpi: move FDC0 " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 28/51] pc: acpi: move LPT " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 29/51] pc: acpi: move COM devices " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 30/51] pc: acpi: move PIIX4 isa-bridge and pm devices into SSDT Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 31/51] pc: acpi: move remaining GPE handlers " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 32/51] pc: acpi: pci: move link devices " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 33/51] pc: acpi: piix4: move IQCR() " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 34/51] pc: acpi: piix4: move IQST() " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 35/51] pc: acpi: piix4: move PCI0._PRT() " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 36/51] pc: acpi: piix4: move remaining PCI hotplug bits " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 37/51] pc: acpi: piix4: acpi move PCI0 device to SSDT Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 38/51] pc: acpi: q35: move GSI links " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 39/51] pc: acpi: q35: move link devices " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 40/51] pc: acpi: q35: move IQCR() into SSDT Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 41/51] pc: acpi: q35: move IQST() " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 42/51] pc: acpi: q35: move ISA bridge " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 43/51] pc: acpi: q35: move _PRT() " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 44/51] pc: acpi: q35: move PRTA routing table " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 45/51] pc: acpi: q35: move PRTP " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 46/51] pc: acpi: q35: move _PIC() method " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 47/51] pc: acpi: q35: move PCI0._OSC() " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 48/51] pc: acpi: q35: move PCI0 device definition " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 49/51] pc: acpi: q35: PCST, PCSB opregions and PCIB field " Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 50/51] pc: acpi: switch to AML API composed DSDT Igor Mammedov
2015-12-28 17:02 ` [Qemu-devel] [PATCH v2 51/51] pc: acpi: remove unused ASL templates and related blobs/utils 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=1451321851-260744-1-git-send-email-imammedo@redhat.com \
--to=imammedo@redhat.com \
--cc=ehabkost@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).