1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /*++
- 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
|