[edk2-devel] [PATCH v1-resend 1/1] ShellPkg: Add revision check for DSDT Header on Arm

Edward Pickup edward.pickup at arm.com
Tue Aug 23 09:44:06 UTC 2022


Hi Zhichao,

Would it be possible to get some feedback on this patch?

Regards,

Edward

On 20/07/2022 09:59, Edward Pickup via groups.io wrote:
> Bugzilla: 3995 (https://bugzilla.tianocore.org/show_bug.cgi?id=3995)
>
> ACPI 6.4 spec states that if the revision field in the DSDT header is less
> than 2, then all integers are restricted in width to 32 bits, including in
> SSDTs.
>
> Arm Base boot requirements state that platforms must conform to ACPI 6.3
> or later, and that legacy tables are not supported.
>
> Adds a check for this field and raise warning if revision is less
> than 2 on arm.
>
> Signed-off-by: Edward Pickup <edward.pickup at arm.com>
> ---
>
> The changes can be seen at https://github.com/edpickup/edk2/tree/2073_add_DSDT_revision_check_v1_resend
>
> Notes:
>      v1:
>        - Resending with rebase and bugzilla id
>        - No code changes since previous submit.
>          Ref: https://edk2.groups.io/g/devel/message/89378
>
>   ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser.c | 18 +++++++++++++++++-
>   1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser.c
> index e75e4622239ed03b171adc92d32b5eeb75a8edef..7f30a8409bb711d4edf77ed04319c628ef8aea73 100644
> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser.c
> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dsdt/DsdtParser.c
> @@ -1,7 +1,7 @@
>   /** @file
>
>     DSDT table parser
>
>   
>
> -  Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.
>
> +  Copyright (c) 2016 - 2022, ARM Limited. All rights reserved.
>
>     SPDX-License-Identifier: BSD-2-Clause-Patent
>
>   
>
>     @par Reference(s):
>
> @@ -39,4 +39,20 @@ ParseAcpiDsdt (
>     }
>
>   
>
>     DumpAcpiHeader (Ptr);
>
> +
>
> +  // As per 19.6.29 in the version 6.4 of the ACPI spec, a revision less than 2
>
> +  // restricts integers to 32 bit width. This may not be intended, raise a
>
> +  // warning
>
> + #if defined (MDE_CPU_AARCH64) || defined (MDE_CPU_ARM)
>
> +  if (AcpiTableRevision < 2) {
>
> +    IncrementWarningCount ();
>
> +    Print (
>
> +      L"WARNING: DSDT Table Revision less than 2. Integer width restricted to "
>
> +      L"32 bits. Table Revision = %d.\n",
>
> +      AcpiTableRevision
>
> +      );
>
> +    return;
>
> +  }
>
> +
>
> + #endif
>
>   }
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92665): https://edk2.groups.io/g/devel/message/92665
Mute This Topic: https://groups.io/mt/93200697/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list