MdeModulePkg[all]  0.98
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
GenericMemoryTest.h File Reference

Data Structures

struct  _EFI_GENERIC_MEMORY_TEST_PROTOCOL
 

Macros

#define EFI_GENERIC_MEMORY_TEST_PROTOCOL_GUID   { 0x309de7f1, 0x7f5e, 0x4ace, {0xb4, 0x9c, 0x53, 0x1b, 0xe5, 0xaa, 0x95, 0xef} }
 

Typedefs

typedef struct
_EFI_GENERIC_MEMORY_TEST_PROTOCOL 
EFI_GENERIC_MEMORY_TEST_PROTOCOL
 
typedef EFI_STATUS(EFIAPI * EFI_MEMORY_TEST_INIT )(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, IN EXTENDMEM_COVERAGE_LEVEL Level, OUT BOOLEAN *RequireSoftECCInit)
 
typedef EFI_STATUS(EFIAPI * EFI_PERFORM_MEMORY_TEST )(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, OUT UINT64 *TestedMemorySize, OUT UINT64 *TotalMemorySize, OUT BOOLEAN *ErrorOut, IN BOOLEAN IfTestAbort)
 
typedef EFI_STATUS(EFIAPI * EFI_MEMORY_TEST_FINISHED )(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This)
 
typedef EFI_STATUS(EFIAPI * EFI_MEMORY_TEST_COMPATIBLE_RANGE )(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, IN EFI_PHYSICAL_ADDRESS StartAddress, IN UINT64 Length)
 

Enumerations

enum  EXTENDMEM_COVERAGE_LEVEL {
  IGNORE, QUICK, SPARSE, EXTENSIVE,
  MAXLEVEL
}
 

Variables

EFI_GUID gEfiGenericMemTestProtocolGuid
 

Detailed Description

This protocol defines the generic memory test interfaces in Dxe phase.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define EFI_GENERIC_MEMORY_TEST_PROTOCOL_GUID   { 0x309de7f1, 0x7f5e, 0x4ace, {0xb4, 0x9c, 0x53, 0x1b, 0xe5, 0xaa, 0x95, 0xef} }

Typedef Documentation

typedef EFI_STATUS(EFIAPI * EFI_MEMORY_TEST_COMPATIBLE_RANGE)(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, IN EFI_PHYSICAL_ADDRESS StartAddress, IN UINT64 Length)

Provides the capability to test the compatible range used by some special drivers.

Parameters
ThisThe protocol instance pointer.
StartAddressThe start address of the compatible memory range that must be below 16M.
LengthThe compatible memory range's length.
Return values
EFI_SUCCESSThe compatible memory range pass the memory test.
EFI_INVALID_PARAMETERThe compatible memory range are not below Low 16M.
typedef EFI_STATUS(EFIAPI * EFI_MEMORY_TEST_FINISHED)(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This)

Finish the memory test.

Parameters
ThisThe protocol instance pointer.
Return values
EFI_SUCCESSSuccess. All resources used in the memory test are freed.
typedef EFI_STATUS(EFIAPI * EFI_MEMORY_TEST_INIT)(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, IN EXTENDMEM_COVERAGE_LEVEL Level, OUT BOOLEAN *RequireSoftECCInit)

Initialize the generic memory test.

Parameters
ThisThe protocol instance pointer.
LevelThe coverage level of the memory test.
RequireSoftECCInitIndicate if the memory need software ECC init.
Return values
EFI_SUCCESSThe generic memory test is initialized correctly.
EFI_NO_MEDIAThe system had no memory to be tested.
typedef EFI_STATUS(EFIAPI * EFI_PERFORM_MEMORY_TEST)(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, OUT UINT64 *TestedMemorySize, OUT UINT64 *TotalMemorySize, OUT BOOLEAN *ErrorOut, IN BOOLEAN IfTestAbort)

Perform the memory test.

Parameters
ThisThe protocol instance pointer.
TestedMemorySizeReturn the tested extended memory size.
TotalMemorySizeReturn the whole system physical memory size. The total memory size does not include memory in a slot with a disabled DIMM.
ErrorOutTRUE if the memory error occurred.
IfTestAbortIndicates that the user pressed "ESC" to skip the memory test.
Return values
EFI_SUCCESSOne block of memory passed the test.
EFI_NOT_FOUNDAll memory blocks have already been tested.
EFI_DEVICE_ERRORMemory device error occurred, and no agent can handle it.

Enumeration Type Documentation

Memory test coverage level. Ignore chooses not to test memory. Quick and Sparse test some memory, and Extensive performs a detailed memory test.

Enumerator
IGNORE 
QUICK 
SPARSE 
EXTENSIVE 
MAXLEVEL 

Variable Documentation

EFI_GUID gEfiGenericMemTestProtocolGuid