On Thu, 29 Nov 2018 14:24:20 +0100 Samuel Ortiz <sa...@linux.intel.com> wrote:
> This patch serie fixes a couple of RSDP checksum related issues: > > - On RSDP rev2, we are not adding the extended checksum and computing > the checksum on the full table instead of the first 20 bytes. > - On RSDP rev1, we are computing the checksum on 36 bytes instead of 20. > We're lucky enough that this is only adding zeroes to the checksum. > > A guest Linux kernel does not seem to care about RSDP checksums, so > those 2 fixes are mostly for correctness sake. > Any machine type that generates rev2 RSDP will see its RSDP table > modified but since x86 builds RSDP v1 and all ACPI tests only run on > either pc or q35, the ACPI tests tables are not affected by this fix. > > The serie also extends the ARM virt ACPI RSDP build routine to support > both RSDP v1 and v2, in order to share this code between x86 and > aarch64. While extending, we also convert the routine to the latest > build_append_foo() API. The new implementation is a closer reflection of > the ACPI spec itself, is endian agnostic and allows for getting rid of the > AcpiRsdpDescriptor structure. Series needs to fix up minor issues but otherwise it looks good. > v1 -> v2: > * Add missing SOBs. > * Rephrase some commit messages according to the maintainer's input. > * Replace ACPI spec definitions with hard coded constants. > * Replace init_rsdp_data() helper with open coded rsdp variable init. > * Rename acpi_find_[rx]sdt_address to acpi_get_[rx]sdt_address. > > Igor Mammedov (2): > hw: arm: acpi: Fix incorrect checksums in RSDP > hw: i386: Use correct RSDT length for checksum > > Samuel Ortiz (6): > hw: acpi: The RSDP build API can return void > hw: arm: Carry RSDP specific data through AcpiRsdpData > hw: arm: Convert the RSDP build to the buid_append_foo() API > hw: arm: Support both legacy and current RSDP build > hw: acpi: Export and share the ARM RSDP build > hw: acpi: Remove AcpiRsdpDescriptor and fix tests > > include/hw/acpi/acpi-defs.h | 19 ++++++-------- > include/hw/acpi/aml-build.h | 2 ++ > tests/acpi-utils.h | 5 +++- > hw/acpi/aml-build.c | 50 +++++++++++++++++++++++++++++++++++++ > hw/arm/virt-acpi-build.c | 40 +++++++---------------------- > hw/i386/acpi-build.c | 36 +++++++------------------- > tests/acpi-utils.c | 46 ++++++++++++++++++++++++++++------ > tests/bios-tables-test.c | 27 ++++++++++++++------ > tests/vmgenid-test.c | 8 +++--- > 9 files changed, 143 insertions(+), 90 deletions(-) >