hw: acpi: RSDP fixes and refactoring
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest8 patches 9 repliesIn review
- v38 patches 8 repliesSuperseded
- v28 patches 21 repliesSuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 | 8 patches | 16 replies | Superseded |
Changes in v4 from the cover letter
* Add missing Reviewed-Bys from Igor and Andrew.
* Removed unneeded white space addition.
* Added 16 bytes padding to revision 0 RSDP structures for legacy (2.2 and older) machine types.
* Fixed a missing break in an ACPI RSDP test switch.
Patches in v4 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/8 | hw: acpi: The RSDP build API can return voidhw/ hw/ | +2 | 0 replies | |
| 2/8 | hw: arm: acpi: Fix incorrect checksums in RSDPhw/ | +6 | 0 replies | |
| 3/8 | hw: i386: Use correct RSDT length for checksumhw/ | +6 | 0 replies | |
| 4/8 | hw: arm: Carry RSDP specific data through AcpiRsdpDatahw/ include/ | +21 | 0 replies | |
| 5/8 | hw: arm: Convert the RSDP build to the buid_append_foo() APIhw/ | +23 | 0 replies | |
| 6/8 | hw: arm: Support both legacy and current RSDP buildhw/ | +33 | 0 replies | |
| 7/8 | hw: acpi: Export and share the ARM RSDP buildhw/ hw/ hw/ +1 more | +89 | 10 replies | |
| 8/8 | hw: acpi: Remove AcpiRsdpDescriptor and fix testsinclude/ tests/ tests/ +2 more | +63 | 0 replies |
Reviews trailers per patch
All 8 patches have a Reviewed-by or Acked-by.
| Patch | Igor Mammedov | Andrew Jones | Philippe Mathieu-Daudé | Samuel Ortiz | Thomas Huth |
|---|---|---|---|---|---|
| 1/8 | R-b | R-b | R-b T-b | R-b | |
| 2/8 | R-b | R-b | |||
| 3/8 | R-b | ||||
| 4/8 | R-b | R-b | |||
| 5/8 | R-b | R-b | |||
| 6/8 | R-b | R-b | |||
| 7/8 | R-b R-b R-b R-b | R-b R-b | R-b T-b | ||
| 8/8 | R-b | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.
Cover letter [Qemu-devel] [PATCH v4 0/8] hw: acpi: RSDP fixes and refactoring
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.
V3 -> V4:
* Add missing Reviewed-Bys from Igor and Andrew.
* Removed unneeded white space addition.
* Added 16 bytes padding to revision 0 RSDP structures for legacy (2.2 and older) machine types.
* Fixed a missing break in an ACPI RSDP test switch.
V2 -> V3:
* Add Reviewed-Bys from Igor and Andrew.
* Check for valid RSDP and XSDT pointers depending on the revision.
* Use RSDP initial table len as offset for checksum and pointer insertion.
* Do not explictly pass RSDP revision as the RSDP table parsing test utility.
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 | 4 ++- hw/acpi/aml-build.c | 68 +++++++++++++++++++++++++++++++++++++ hw/arm/virt-acpi-build.c | 40 +++++----------------- hw/i386/acpi-build.c | 46 +++++++++++-------------- tests/acpi-utils.c | 46 ++++++++++++++++++++----- tests/bios-tables-test.c | 22 +++++++++--- tests/vmgenid-test.c | 8 +++-- 9 files changed, 168 insertions(+), 87 deletions(-)
Signature · 1 line
2.19.2