TianoCore EDK2 master
Loading...
Searching...
No Matches
NullMemoryTest.c File Reference
#include "NullMemoryTest.h"

Go to the source code of this file.

Functions

EFI_STATUS EFIAPI GenericMemoryTestEntryPoint (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
 
EFI_STATUS ConvertToTestedMemory (IN UINT64 BaseAddress, IN UINT64 Length, IN UINT64 Capabilities)
 
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)
 

Variables

UINT64 mTestedSystemMemory = 0
 
UINT64 mTotalSystemMemory = 0
 
EFI_HANDLE mGenericMemoryTestHandle
 
EFI_GENERIC_MEMORY_TEST_PROTOCOL mGenericMemoryTest
 

Detailed Description

Implementation of Generic Memory Test Protocol which does not perform real memory test.

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

Definition in file NullMemoryTest.c.

Function Documentation

◆ ConvertToTestedMemory()

EFI_STATUS ConvertToTestedMemory ( IN UINT64  BaseAddress,
IN UINT64  Length,
IN UINT64  Capabilities 
)

Convert the memory range to tested.

Parameters
BaseAddressBase address of the memory range.
LengthLength of the memory range.
CapabilitiesCapabilities of the memory range.
Return values
EFI_SUCCESSThe memory range is converted to tested.
othersError happens.

Definition at line 65 of file NullMemoryTest.c.

◆ 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 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 231 of file NullMemoryTest.c.

◆ GenericMemoryTestEntryPoint()

EFI_STATUS EFIAPI GenericMemoryTestEntryPoint ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE SystemTable 
)

Entry point of the NULL memory test driver.

This function is the entry point of the NULL memory test driver. It simply installs the Generic Memory Test Protocol.

Parameters
ImageHandleThe firmware allocated handle for the EFI image.
SystemTableA pointer to the EFI System Table.
Return values
EFI_SUCCESSGeneric Memory Test Protocol is successfully installed.

Definition at line 36 of file NullMemoryTest.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.

Definition at line 207 of file NullMemoryTest.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.

Definition at line 110 of file NullMemoryTest.c.

Variable Documentation

◆ mGenericMemoryTest

Initial value:
= {
}
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 InitializeMemoryTest(IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, IN EXTENDMEM_COVERAGE_LEVEL Level, OUT BOOLEAN *RequireSoftECCInit)
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)

Definition at line 15 of file NullMemoryTest.c.

◆ mGenericMemoryTestHandle

EFI_HANDLE mGenericMemoryTestHandle

Definition at line 13 of file NullMemoryTest.c.

◆ mTestedSystemMemory

UINT64 mTestedSystemMemory = 0

Definition at line 11 of file NullMemoryTest.c.

◆ mTotalSystemMemory

UINT64 mTotalSystemMemory = 0

Definition at line 12 of file NullMemoryTest.c.