##\r
1. Include/Guid/SmramMemoryReserve.h\r
typedef struct {\r
+ UINT32 NumberOfSmmReservedRegions;\r
...\r
} EFI_SMRAM_HOB_DESCRIPTOR_BLOCK;\r
\r
- The name of the definition is *NOT* consistent with Framework SmmCis specification 0.91, in which it's \r
+ 1) The name of the definition is *NOT* consistent with Framework SmmCis specification 0.91, in which it's \r
defined as "EFI_HOB_SMRAM_DESCRIPTOR_BLOCK" rather than "EFI_SMRAM_HOB_DESCRIPTOR_BLOCK". \r
Keeping this inconsistency for backward compatibility.\r
\r
+ 2) The definition of NumberOfSmmReservedRegions is *NOT* consistent with Framework SmmCis specification 0.91,\r
+ in which the type of this field is defined as UINTN. However, HOBs are supposed to be CPU neutral, so UINTN\r
+ is incorrect and UINT32 should be used.\r
+\r
2. Include/Guid/SmramMemoryReserve.h\r
typedef enum {\r
...\r
/// Designates the number of possible regions in the system\r
/// that can be usable for SMRAM. \r
///\r
- UINTN NumberOfSmmReservedRegions;\r
+ /// Inconsistent with specification here: \r
+ /// In Framework SMM CIS 0.91 specification, it defines the field type as UINTN.\r
+ /// However, HOBs are supposed to be CPU neutral, so UINT32 should be used instead.\r
+ ///\r
+ UINT32 NumberOfSmmReservedRegions;\r
///\r
/// Used throughout this protocol to describe the candidate\r
/// regions for SMRAM that are supported by this platform. \r