/*++ Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved SPDX-License-Identifier: BSD-2-Clause-Patent Module Name: MemInfo.h Abstract: This protocol provides the memory information data, such as total physical memory size, memory frequency, memory size of each dimm and rank. This protocol is EFI compatible. --*/ #ifndef _MEM_INFO_PROTOCOL_H_ #define _MEM_INFO_PROTOCOL_H_ // // Define the protocol GUID // #define MEM_INFO_PROTOCOL_GUID \ { \ 0x6f20f7c8, 0xe5ef, 0x4f21, 0x8d, 0x19, 0xed, 0xc5, 0xf0, 0xc4, 0x96, 0xae \ } // // Extern the GUID for protocol users. // extern EFI_GUID gMemInfoProtocolGuid; // // Forward reference for ANSI C compatibility // typedef struct _MEM_INFO_PROTOCOL MEM_INFO_PROTOCOL; // // Protocol definitions // #define CH_NUM 2 #define DIMM_NUM 1 #define RANK_NUM 2 #pragma pack(1) typedef struct { UINT32 memSize; UINT8 ddrFreq; UINT8 ddrType; BOOLEAN EccSupport; UINT16 dimmSize[CH_NUM * DIMM_NUM]; UINT8 reserved; UINT16 reserved2; } MEMORY_INFO_DATA; #pragma pack() /*++ Data definition: memSize Total physical memory size ddrFreq DDR Frequency EccSupport ECC Support dimmSize Dimm Size DimmExist Dimm Present or not RankInDimm No. of ranks in a dimm --*/ // // Protocol definition // struct _MEM_INFO_PROTOCOL { MEMORY_INFO_DATA MemInfoData; }; #endif