mirror of https://github.com/acidanthera/audk.git
84 lines
1.5 KiB
C
84 lines
1.5 KiB
C
|
|
/*++
|
|
|
|
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
|