TianoCore EDK2 master
Loading...
Searching...
No Matches
NullMemoryTest.h File Reference

Go to the source code of this file.

Macros

#define EFI_MEMORY_PRESENT   0x0100000000000000ULL
 
#define EFI_MEMORY_INITIALIZED   0x0200000000000000ULL
 
#define EFI_MEMORY_TESTED   0x0400000000000000ULL
 

Functions

EFI_STATUS EFIAPI InitializeMemoryTest (IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, IN EXTENDMEM_COVERAGE_LEVEL Level, OUT BOOLEAN *RequireSoftECCInit)
 
EFI_STATUS EFIAPI GenPerformMemoryTest (IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, IN OUT UINT64 *TestedMemorySize, OUT UINT64 *TotalMemorySize, OUT BOOLEAN *ErrorOut, IN BOOLEAN TestAbort)
 
EFI_STATUS EFIAPI GenMemoryTestFinished (IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This)
 
EFI_STATUS EFIAPI GenCompatibleRangeTest (IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, IN EFI_PHYSICAL_ADDRESS StartAddress, IN UINT64 Length)
 

Detailed Description

Include file of the NULL memory test driver.

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

Definition in file NullMemoryTest.h.

Macro Definition Documentation

◆ EFI_MEMORY_INITIALIZED

#define EFI_MEMORY_INITIALIZED   0x0200000000000000ULL

Definition at line 26 of file NullMemoryTest.h.

◆ EFI_MEMORY_PRESENT

#define EFI_MEMORY_PRESENT   0x0100000000000000ULL

Definition at line 25 of file NullMemoryTest.h.

◆ EFI_MEMORY_TESTED

#define EFI_MEMORY_TESTED   0x0400000000000000ULL

Definition at line 27 of file NullMemoryTest.h.

Function Documentation

◆ GenCompatibleRangeTest()

EFI_STATUS EFIAPI GenCompatibleRangeTest ( IN EFI_GENERIC_MEMORY_TEST_PROTOCOL This,
IN EFI_PHYSICAL_ADDRESS  StartAddress,
IN UINT64  Length 
)

Provide capability to test compatible range which used by some special driver required using memory range before BDS perform memory test.

This function implements EFI_GENERIC_MEMORY_TEST_PROTOCOL.CompatibleRangeTest. It simply set the memory range to system memory.

Parameters
ThisProtocol instance pointer.
StartAddressThe start address of the memory range.
LengthThe memory range's length.
Return values
EFI_SUCCESSThe compatible memory range pass the memory test.
EFI_INVALID_PARAMETERThe compatible memory range must be below 16M.

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

Parameters
[in]ThisThe protocol instance pointer.
[in]StartAddressThe start address of the compatible memory range that must be below 16M.
[in]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.

Provide capability to test compatible range which used by some special driver required using memory range before BDS perform memory test.

This function implements EFI_GENERIC_MEMORY_TEST_PROTOCOL.CompatibleRangeTest. It simply sets the memory range to system memory.

Parameters
ThisProtocol instance pointer.
StartAddressThe start address of the memory range.
LengthThe memory range's length.
Return values
EFI_SUCCESSThe compatible memory range pass the memory test.
EFI_INVALID_PARAMETERThe compatible memory range must be below 16M.

Definition at line 727 of file LightMemoryTest.c.

◆ GenMemoryTestFinished()

EFI_STATUS EFIAPI GenMemoryTestFinished ( IN EFI_GENERIC_MEMORY_TEST_PROTOCOL This)

The memory test finished.

This function implements EFI_GENERIC_MEMORY_TEST_PROTOCOL.Finished. It simply returns EFI_SUCCESS.

Parameters
ThisProtocol instance pointer.
Return values
EFI_SUCCESSSuccessful free all the generic memory test driver allocated resource and notify to platform memory test driver that memory test finished.

Finish the memory test.

Parameters
[in]ThisThe protocol instance pointer.
Return values
EFI_SUCCESSSuccess. All resources used in the memory test are freed.

Definition at line 683 of file LightMemoryTest.c.

◆ GenPerformMemoryTest()

EFI_STATUS EFIAPI GenPerformMemoryTest ( IN EFI_GENERIC_MEMORY_TEST_PROTOCOL This,
IN OUT UINT64 *  TestedMemorySize,
OUT UINT64 *  TotalMemorySize,
OUT BOOLEAN *  ErrorOut,
IN BOOLEAN  TestAbort 
)

Perform the memory test.

This function implements EFI_GENERIC_MEMORY_TEST_PROTOCOL.PerformMemoryTest. It simply returns EFI_NOT_FOUND.

Parameters
ThisProtocol instance pointer.
TestedMemorySizeReturn the tested extended memory size.
TotalMemorySizeReturn the whole system physical memory size, this value may be changed if in some case some error DIMMs be disabled.
ErrorOutAny time the memory error occurs, this will be TRUE.
IfTestAbortIndicate if the user press "ESC" to skip the memory test.
Return values
EFI_SUCCESSOne block of memory test ok, the block size is hide internally.
EFI_NOT_FOUNDIndicate all the non-tested memory blocks have already go through.
EFI_DEVICE_ERRORMis-compare error, and no agent can handle it

Definition at line 177 of file NullMemoryTest.c.

◆ InitializeMemoryTest()

EFI_STATUS EFIAPI InitializeMemoryTest ( IN EFI_GENERIC_MEMORY_TEST_PROTOCOL This,
IN EXTENDMEM_COVERAGE_LEVEL  Level,
OUT BOOLEAN *  RequireSoftECCInit 
)

Initialize the generic memory test.

This function implements EFI_GENERIC_MEMORY_TEST_PROTOCOL.MemoryTestInit. It simply promotes untested reserved memory to system memory without real test.

Parameters
ThisProtocol instance pointer.
LevelThe coverage level of the memory test.
RequireSoftECCInitIndicate if the memory need software ECC init.
Return values
EFI_SUCCESSThe generic memory test initialized correctly.
EFI_NO_MEDIAThere is not any non-tested memory found, in this function if not any non-tesed memory found means that the memory test driver have not detect any non-tested extended memory of current system.

Initialize the generic memory test.

Parameters
[in]ThisThe protocol instance pointer.
[in]LevelThe coverage level of the memory test.
[out]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.

Definition at line 460 of file LightMemoryTest.c.