[edk2-devel] [PATCH v1] ShellPkg: Update Acpiview HMAT parser to ACPI spec version 6.4

Sami Mujawar sami.mujawar at arm.com
Wed Aug 18 11:08:47 UTC 2021


Hi Chris,

This patch looks good to me.

Reviewed-by: Sami Mujawar <sami.mujawar at arm.com>

Regards,

Sami Mujawar

On 18/08/2021, 11:09, "Chris Jones" <christopher.jones at arm.com> wrote:

    Bugzilla: 3570 (https://bugzilla.tianocore.org/show_bug.cgi?id=3570)

    Add parser support for the new "MinTransferSize" field of the System
    Locality, Latency and Bandwidth structure, introduced by the ACPI
    specification version 6.4.

    Also update the HMAT parser to use the newer ACPI version 6.4
    definitions.

    Signed-off-by: Chris Jones <christopher.jones at arm.com>
    ---
     ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c     | 19 ++++++++++---------
     ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c |  2 +-
     2 files changed, 11 insertions(+), 10 deletions(-)

    diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c
    index 1d1bc4bdc343e65a8c2fd5f983b2078311452329..cf4432c654da36e02c75bc9f4acf512be2276066 100644
    --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c
    +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c
    @@ -30,7 +30,7 @@ STATIC CONST UINT32*  HmatStructureLength;
     STATIC CONST UINT32*  NumberInitiatorProximityDomain;
     STATIC CONST UINT32*  NumberTargetProximityDomain;
     STATIC CONST
    -EFI_ACPI_6_3_HMAT_STRUCTURE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO_FLAGS*
    +EFI_ACPI_6_4_HMAT_STRUCTURE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO_FLAGS*
     SllbiFlags;

     STATIC CONST UINT8*   SllbiDataType;
    @@ -65,11 +65,11 @@ ValidateCacheAttributes (
       IN VOID*  Context
       )
     {
    -  EFI_ACPI_6_3_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*
    +  EFI_ACPI_6_4_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*
       Attributes;

       Attributes =
    -    (EFI_ACPI_6_3_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*)Ptr;
    +    (EFI_ACPI_6_4_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*)Ptr;

       if (Attributes->TotalCacheLevels > 0x3) {
         IncrementErrorCount ();
    @@ -115,11 +115,11 @@ DumpCacheAttributes (
       IN UINT8*        Ptr
       )
     {
    -  EFI_ACPI_6_3_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*
    +  EFI_ACPI_6_4_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*
       Attributes;

       Attributes =
    -    (EFI_ACPI_6_3_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*)Ptr;
    +    (EFI_ACPI_6_4_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*)Ptr;

       Print (L"\n");
       PrintFieldName (4, L"Total Cache Levels");
    @@ -178,7 +178,8 @@ STATIC CONST ACPI_PARSER SllbiParser[] = {
       {L"Length", 4, 4, L"%d", NULL, NULL, NULL, NULL},
       {L"Flags", 1, 8, L"0x%x", NULL, (VOID**)&SllbiFlags, NULL, NULL},
       {L"Data type", 1, 9, L"0x%x", NULL, (VOID**)&SllbiDataType, NULL, NULL},
    -  {L"Reserved", 2, 10, L"0x%x", NULL, NULL, NULL, NULL},
    +  {L"Min Transfer Size", 1, 10, L"%d", NULL, NULL, NULL, NULL},
    +  {L"Reserved", 1, 11, L"0x%x", NULL, NULL, NULL, NULL},
       {L"Initiator Proximity Dom Count", 4, 12, L"%d", NULL,
         (VOID**)&NumberInitiatorProximityDomain, NULL, NULL},
       {L"Target Proximity Dom Count", 4, 16, L"%d", NULL,
    @@ -615,19 +616,19 @@ ParseAcpiHmat (
         }

         switch (*HmatStructureType) {
    -      case EFI_ACPI_6_3_HMAT_TYPE_MEMORY_PROXIMITY_DOMAIN_ATTRIBUTES:
    +      case EFI_ACPI_6_4_HMAT_TYPE_MEMORY_PROXIMITY_DOMAIN_ATTRIBUTES:
             DumpMpda (
               HmatStructurePtr,
               *HmatStructureLength
               );
             break;
    -      case EFI_ACPI_6_3_HMAT_TYPE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO:
    +      case EFI_ACPI_6_4_HMAT_TYPE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO:
             DumpSllbi (
               HmatStructurePtr,
               *HmatStructureLength
               );
             break;
    -      case EFI_ACPI_6_3_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO:
    +      case EFI_ACPI_6_4_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO:
              DumpMsci (
               HmatStructurePtr,
               *HmatStructureLength
    diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c
    index b30ed3fc8597b229dd15b6ad4f2aab2e3d0ca583..f639ab22aa4d9b669f6626b4d582c3e103477f95 100644
    --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c
    +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c
    @@ -55,7 +55,7 @@ ACPI_TABLE_PARSER ParserList[] = {
       {EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, ParseAcpiFacs},
       {EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiFadt},
       {EFI_ACPI_6_2_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiGtdt},
    -  {EFI_ACPI_6_3_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_SIGNATURE, ParseAcpiHmat},
    +  {EFI_ACPI_6_4_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_SIGNATURE, ParseAcpiHmat},
       {EFI_ACPI_6_2_IO_REMAPPING_TABLE_SIGNATURE, ParseAcpiIort},
       {EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiMadt},
       {EFI_ACPI_6_2_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE,
    -- 
    Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#79489): https://edk2.groups.io/g/devel/message/79489
Mute This Topic: https://groups.io/mt/84968868/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