From: xli24 Date: Fri, 20 Aug 2010 17:32:04 +0000 (+0000) Subject: The definition of NumberOfSmmReservedRegions is incorrect in Framework SmmCis specifi... X-Git-Tag: edk2-stable201903~15588 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=7ae58ec2eaaad7a4a22092266c407d76c12ed69a The definition of NumberOfSmmReservedRegions is incorrect in Framework SmmCis specification 0.91, in which the type of this field is defined as UINTN. However, HOBs are supposed to be CPU neutral, so UINT32 should be used. Here the code is updated and comments in FrameworkSpecConformance.txt is added. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10813 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/IntelFrameworkPkg/FrameworkSpecConformance.txt b/IntelFrameworkPkg/FrameworkSpecConformance.txt index f70386b728..22f940dfc6 100644 --- a/IntelFrameworkPkg/FrameworkSpecConformance.txt +++ b/IntelFrameworkPkg/FrameworkSpecConformance.txt @@ -1119,13 +1119,18 @@ ## 1. Include/Guid/SmramMemoryReserve.h typedef struct { + UINT32 NumberOfSmmReservedRegions; ... } EFI_SMRAM_HOB_DESCRIPTOR_BLOCK; - The name of the definition is *NOT* consistent with Framework SmmCis specification 0.91, in which it's + 1) The name of the definition is *NOT* consistent with Framework SmmCis specification 0.91, in which it's defined as "EFI_HOB_SMRAM_DESCRIPTOR_BLOCK" rather than "EFI_SMRAM_HOB_DESCRIPTOR_BLOCK". Keeping this inconsistency for backward compatibility. + 2) The definition of NumberOfSmmReservedRegions is *NOT* consistent with Framework SmmCis specification 0.91, + in which the type of this field is defined as UINTN. However, HOBs are supposed to be CPU neutral, so UINTN + is incorrect and UINT32 should be used. + 2. Include/Guid/SmramMemoryReserve.h typedef enum { ... diff --git a/IntelFrameworkPkg/Include/Guid/SmramMemoryReserve.h b/IntelFrameworkPkg/Include/Guid/SmramMemoryReserve.h index 9edec42b9e..04589cf040 100644 --- a/IntelFrameworkPkg/Include/Guid/SmramMemoryReserve.h +++ b/IntelFrameworkPkg/Include/Guid/SmramMemoryReserve.h @@ -42,7 +42,11 @@ typedef struct { /// Designates the number of possible regions in the system /// that can be usable for SMRAM. /// - UINTN NumberOfSmmReservedRegions; + /// Inconsistent with specification here: + /// In Framework SMM CIS 0.91 specification, it defines the field type as UINTN. + /// However, HOBs are supposed to be CPU neutral, so UINT32 should be used instead. + /// + UINT32 NumberOfSmmReservedRegions; /// /// Used throughout this protocol to describe the candidate /// regions for SMRAM that are supported by this platform.