[Qemu-devel] [PATCH v2 00/10] generalize build_fadt()

Igor Mammedov posted 10 patches 7 years, 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1519827835-239519-1-git-send-email-imammedo@redhat.com
Test checkpatch passed
Test docker-build@min-glib passed
Test docker-mingw@fedora passed
Test docker-quick@centos6 passed
Test ppcbe passed
Test ppcle passed
Test s390x passed
include/hw/acpi/acpi-defs.h | 136 ++++++++----------------------
include/hw/acpi/aml-build.h |  23 ++++++
include/hw/isa/apm.h        |   3 +
Makefile                    |   1 -
hw/acpi/aml-build.c         | 140 +++++++++++++++++++++++++++++++
hw/arm/virt-acpi-build.c    |  39 ++++-----
hw/i386/acpi-build.c        | 196 ++++++++++++++------------------------------
hw/isa/apm.c                |   1 -
pc-bios/acpi-dsdt.aml       | Bin 4405 -> 0 bytes
tests/bios-tables-test.c    |  82 ++++--------------
10 files changed, 294 insertions(+), 327 deletions(-)
delete mode 100644 pc-bios/acpi-dsdt.aml
[Qemu-devel] [PATCH v2 00/10] generalize build_fadt()
Posted by Igor Mammedov 7 years, 7 months ago
v2:
  * fix typo in "acpi: remove unused acpi-dsdt.aml"
  * split ACPI_PORT_SMI_CMD into separate cleanup patch
  * s/pm1_/pm1a_/, s/c2_latency/plvl2_lat/, s/c3_latency/plvl3_lat/
    and fix conflicts in followup patches caused by renaming
  * conditional FIRMWARE_CTRL, DSDT patching is introduced in
    the patch that makes build_fadt() generic instead of earlier
    "pc: acpi: isolate FADT specific data into AcpiFadtData structure"
  * update comment to mention that build_fadt() supports 5.1 revision
  


Series first cleanups ACPI code around build_fadt() and then
converts current packed structure approach to a build_append_FOO()
API, getting rid of error prone explicit endianness conversions
in code and making build_fadt() look more like APCI table declaration
from spec, which should be easier to read/maintain. After that
build_fadt() becomes generic enough that we could drop ARM specific
implementation and reuse generic build_fadt(), reducing code
duplication.

PS: tested only x86 which has make check coverage,
    ARM was only slightly tested. 

git tree for testing:
  https://github.com/imammedo/qemu.git fadt_refactoring_v2

CC: "Michael S. Tsirkin" <mst@redhat.com> 
CC: Shannon Zhao <zhaoshenglong@huawei.com> 
CC: Auger Eric <eric.auger@redhat.com>
CC: qemu-devel@nongnu.org 
CC: qemu-arm@nongnu.org 

Igor Mammedov (10):
  acpi: remove unused acpi-dsdt.aml
  pc: replace pm object initialization with one-liner in
    acpi_get_pm_info()
  acpi: reuse AcpiGenericAddress instead of Acpi20GenericAddress
  acpi: add build_append_gas() helper for Generic Address Structure
  acpi: move ACPI_PORT_SMI_CMD define to header it belongs to
  pc: acpi: isolate FADT specific data into AcpiFadtData structure
  pc: acpi: use build_append_foo() API to construct FADT
  acpi: move build_fadt() from i386 specific to generic ACPI source
  virt_arm: acpi: reuse common build_fadt()
  tests: acpi: don't read all fields in test_acpi_fadt_table()

 include/hw/acpi/acpi-defs.h | 136 ++++++++----------------------
 include/hw/acpi/aml-build.h |  23 ++++++
 include/hw/isa/apm.h        |   3 +
 Makefile                    |   1 -
 hw/acpi/aml-build.c         | 140 +++++++++++++++++++++++++++++++
 hw/arm/virt-acpi-build.c    |  39 ++++-----
 hw/i386/acpi-build.c        | 196 ++++++++++++++------------------------------
 hw/isa/apm.c                |   1 -
 pc-bios/acpi-dsdt.aml       | Bin 4405 -> 0 bytes
 tests/bios-tables-test.c    |  82 ++++--------------
 10 files changed, 294 insertions(+), 327 deletions(-)
 delete mode 100644 pc-bios/acpi-dsdt.aml

-- 
2.7.4


Re: [Qemu-devel] [PATCH v2 00/10] generalize build_fadt()
Posted by Auger Eric 7 years, 7 months ago
Hi,

On 28/02/18 15:23, Igor Mammedov wrote:
> 
> v2:
>   * fix typo in "acpi: remove unused acpi-dsdt.aml"
>   * split ACPI_PORT_SMI_CMD into separate cleanup patch
>   * s/pm1_/pm1a_/, s/c2_latency/plvl2_lat/, s/c3_latency/plvl3_lat/
>     and fix conflicts in followup patches caused by renaming
>   * conditional FIRMWARE_CTRL, DSDT patching is introduced in
>     the patch that makes build_fadt() generic instead of earlier
>     "pc: acpi: isolate FADT specific data into AcpiFadtData structure"
>   * update comment to mention that build_fadt() supports 5.1 revision
>   
> 
> 
> Series first cleanups ACPI code around build_fadt() and then
> converts current packed structure approach to a build_append_FOO()
> API, getting rid of error prone explicit endianness conversions
> in code and making build_fadt() look more like APCI table declaration
> from spec, which should be easier to read/maintain. After that
> build_fadt() becomes generic enough that we could drop ARM specific
> implementation and reuse generic build_fadt(), reducing code
> duplication.
> 
> PS: tested only x86 which has make check coverage,
>     ARM was only slightly tested. 

Tested-by: Eric Auger <eric.auger@redhat.com>
on AArch64 with a rhel guest.

Thanks

Eric

> 
> git tree for testing:
>   https://github.com/imammedo/qemu.git fadt_refactoring_v2
> 
> CC: "Michael S. Tsirkin" <mst@redhat.com> 
> CC: Shannon Zhao <zhaoshenglong@huawei.com> 
> CC: Auger Eric <eric.auger@redhat.com>
> CC: qemu-devel@nongnu.org 
> CC: qemu-arm@nongnu.org 
> 
> Igor Mammedov (10):
>   acpi: remove unused acpi-dsdt.aml
>   pc: replace pm object initialization with one-liner in
>     acpi_get_pm_info()
>   acpi: reuse AcpiGenericAddress instead of Acpi20GenericAddress
>   acpi: add build_append_gas() helper for Generic Address Structure
>   acpi: move ACPI_PORT_SMI_CMD define to header it belongs to
>   pc: acpi: isolate FADT specific data into AcpiFadtData structure
>   pc: acpi: use build_append_foo() API to construct FADT
>   acpi: move build_fadt() from i386 specific to generic ACPI source
>   virt_arm: acpi: reuse common build_fadt()
>   tests: acpi: don't read all fields in test_acpi_fadt_table()
> 
>  include/hw/acpi/acpi-defs.h | 136 ++++++++----------------------
>  include/hw/acpi/aml-build.h |  23 ++++++
>  include/hw/isa/apm.h        |   3 +
>  Makefile                    |   1 -
>  hw/acpi/aml-build.c         | 140 +++++++++++++++++++++++++++++++
>  hw/arm/virt-acpi-build.c    |  39 ++++-----
>  hw/i386/acpi-build.c        | 196 ++++++++++++++------------------------------
>  hw/isa/apm.c                |   1 -
>  pc-bios/acpi-dsdt.aml       | Bin 4405 -> 0 bytes
>  tests/bios-tables-test.c    |  82 ++++--------------
>  10 files changed, 294 insertions(+), 327 deletions(-)
>  delete mode 100644 pc-bios/acpi-dsdt.aml
>