TianoCore EDK2 master
Loading...
Searching...
No Matches
FaultTolerantWriteTraditionalMm.c File Reference

Go to the source code of this file.

Functions

BOOLEAN FtwSmmIsPrimaryBufferValid (IN EFI_PHYSICAL_ADDRESS Buffer, IN UINT64 Length)
 
UINT32 FtwCalculateCrc32 (IN VOID *Buffer, IN UINTN Length)
 
VOID FtwNotifySmmReady (VOID)
 
EFI_STATUS EFIAPI SmmFaultTolerantWriteInitialize (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
 

Detailed Description

Parts of the SMM/MM implementation that are specific to traditional MM

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

Definition in file FaultTolerantWriteTraditionalMm.c.

Function Documentation

◆ FtwCalculateCrc32()

UINT32 FtwCalculateCrc32 ( IN VOID *  Buffer,
IN UINTN  Length 
)

Internal implementation of CRC32. Depending on the execution context (traditional SMM or DXE vs standalone MM), this function is implemented via a call to the CalculateCrc32 () boot service, or via a library call.

If Buffer is NULL, then ASSERT(). If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().

Parameters
[in]BufferA pointer to the buffer on which the 32-bit CRC is to be computed.
[in]LengthThe number of bytes in the buffer Data.
Return values
Crc32The 32-bit CRC was computed for the data buffer.

Definition at line 54 of file FaultTolerantWriteTraditionalMm.c.

◆ FtwNotifySmmReady()

VOID FtwNotifySmmReady ( VOID  )

Notify the system that the SMM FTW driver is ready.

Definition at line 72 of file FaultTolerantWriteTraditionalMm.c.

◆ FtwSmmIsPrimaryBufferValid()

BOOLEAN FtwSmmIsPrimaryBufferValid ( IN EFI_PHYSICAL_ADDRESS  Buffer,
IN UINT64  Length 
)

This function checks if the Primary Buffer is valid per processor architecture and does not overlap with SMRAM.

Parameters
BufferThe buffer start address to be checked.
LengthThe buffer length to be checked.
Return values
TRUEThis buffer is valid per processor architecture and does not overlap with SMRAM.
FALSEThis buffer is not valid per processor architecture or overlaps with SMRAM.

Definition at line 29 of file FaultTolerantWriteTraditionalMm.c.

◆ SmmFaultTolerantWriteInitialize()

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

This function is the entry point of the Fault Tolerant Write driver.

Parameters
[in]ImageHandleA handle for the image that is initializing this driver
[in]SystemTableA pointer to the EFI system table
Return values
EFI_SUCCESSThe initialization finished successfully.
EFI_OUT_OF_RESOURCESAllocate memory error
EFI_INVALID_PARAMETERWorkspace or Spare block does not exist

Definition at line 102 of file FaultTolerantWriteTraditionalMm.c.