ACK: [PATCH 1/2] acpi: rsdp: don't fail if RSDT and XSDT are both defined and different
ivanhu
ivan.hu at canonical.com
Mon Jul 25 06:09:15 UTC 2016
On 2016年07月22日 01:02, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> relax the rsdp test, don't consider it a failure case if both RSDT
> and XSDT are defined. Instead, warn about this, it may be legitmate
> for both these to be defined and different if an ACPI 1.0 OS uses
> the RSDT while one supporting > ACPI 1.0 can use a different 64 bit
> XSDT.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
> src/acpi/rsdp/rsdp.c | 35 ++++++++---------------------------
> 1 file changed, 8 insertions(+), 27 deletions(-)
>
> diff --git a/src/acpi/rsdp/rsdp.c b/src/acpi/rsdp/rsdp.c
> index 92b9753..f7e10bb 100644
> --- a/src/acpi/rsdp/rsdp.c
> +++ b/src/acpi/rsdp/rsdp.c
> @@ -123,33 +123,14 @@ static int rsdp_test1(fwts_framework *fw)
> "RSDP: at least one of RsdtAddress or XsdtAddress "
> "is non-zero.");
>
> - if (rsdp->rsdt_address != 0 && rsdp->xsdt_address != 0)
> - if ((uint64_t)rsdp->rsdt_address == rsdp->xsdt_address) {
> - fwts_warning(fw,
> - "Both RSDT and XSDT addresses are set. "
> - "Since they are the same address, this "
> - "is unambiguous to the OS.");
> - fwts_advice(fw,
> - "Set only one of the 32-bit RSDT or the "
> - "64-bit XSDT addresses. Recent versions "
> - "of the spec require that only one of "
> - "these be used but as a practical matter, "
> - "many vendors do use both. If both "
> - "fields must be used, make sure they at "
> - "least contain the same value so that "
> - "the OS can unambiguously determine "
> - "which address is the correct one.");
> - } else {
> - fwts_failed(fw, LOG_LEVEL_MEDIUM,
> - "RSDPBothAddressesFound",
> - "RSDP: only one of RsdtAddress or "
> - "XsdtAddress should be non-zero. Both "
> - "fields are non-zero.");
> - }
> - else
> - fwts_passed(fw,
> - "RSDP: only one of RsdtAddress or XsdtAddress "
> - "is non-zero.");
> + if (rsdp->rsdt_address && rsdp->xsdt_address) {
> + fwts_log_warning(fw, "NOTE: The RSDT and XSDT are both "
> + "defined. An operating system supporting ACPI "
> + "1.0 should use the RSDT, otherwise it will "
> + "use the XSDT. RSDT = 0x%" PRIu32 ", "
> + "XSDT = 0x%" PRIu64,
> + rsdp->rsdt_address, rsdp->xsdt_address);
> + }
>
> passed = false;
> switch (fw->target_arch) {
>
Acked-by: Ivan Hu <ivan.hu at canonical.com>
More information about the fwts-devel
mailing list