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

Go to the source code of this file.

Functions

STATIC EFI_STATUS EFIAPI SecTemporaryRamSupport (IN CONST EFI_PEI_SERVICES **PeiServices, IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase, IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase, IN UINTN CopySize)
 
STATIC VOID CreatePpiList (OUT UINTN *PpiListSize, OUT EFI_PEI_PPI_DESCRIPTOR **PpiList, IN VOID *TransferListBase)
 
STATIC VOID PrintFirmwareVersion (VOID)
 
STATIC VOID EFIAPI SecMain (IN EFI_PEI_CORE_ENTRY_POINT PeiCoreEntryPoint, IN UINTN TransferListBaseAddr)
 
VOID CEntryPoint (IN EFI_PEI_CORE_ENTRY_POINT PeiCoreEntryPoint, IN UINTN TransferListBaseAddr)
 

Variables

STATIC CONST EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI mTemporaryRamSupportPpi
 
STATIC CONST EFI_PEI_PPI_DESCRIPTOR gCommonPpiTable []
 

Detailed Description

Generic SEC driver for ARM platforms

Copyright (c) 2011 - 2022, ARM Limited. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Sec.c.

Function Documentation

◆ CEntryPoint()

VOID CEntryPoint ( IN EFI_PEI_CORE_ENTRY_POINT  PeiCoreEntryPoint,
IN UINTN  TransferListBaseAddr 
)

Module C entrypoint.

Parameters
[in]PeiCoreEntryPointAddress in ram of the entrypoint of the PEI core
[in]TransferListBaseAddrAddress of the Transfer List base address

Definition at line 235 of file Sec.c.

◆ CreatePpiList()

STATIC VOID CreatePpiList ( OUT UINTN *  PpiListSize,
OUT EFI_PEI_PPI_DESCRIPTOR **  PpiList,
IN VOID *  TransferListBase 
)

Construct a PPI list from the PPIs provided in this file and the ones provided by the platform code.

Parameters
[out]PpiListSizeSize of the PPI list in bytes
[out]PpiListPointer to the constructed PPI list
[in]TransferListBasePointer to the Transfer List base

Definition at line 93 of file Sec.c.

◆ PrintFirmwareVersion()

STATIC VOID PrintFirmwareVersion ( VOID  )

Prints firmware version and build time to serial console.

Definition at line 139 of file Sec.c.

◆ SecMain()

STATIC VOID EFIAPI SecMain ( IN EFI_PEI_CORE_ENTRY_POINT  PeiCoreEntryPoint,
IN UINTN  TransferListBaseAddr 
)

SEC main routine.

Parameters
[in]PeiCoreEntryPointAddress in ram of the entrypoint of the PEI core
[in]TransferListBaseAddrAddress of the Transfer List base address

Definition at line 172 of file Sec.c.

◆ SecTemporaryRamSupport()

STATIC EFI_STATUS EFIAPI SecTemporaryRamSupport ( IN CONST EFI_PEI_SERVICES **  PeiServices,
IN EFI_PHYSICAL_ADDRESS  TemporaryMemoryBase,
IN EFI_PHYSICAL_ADDRESS  PermanentMemoryBase,
IN UINTN  CopySize 
)

This service of the EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI that migrates temporary RAM into permanent memory.

Parameters
PeiServicesPointer to the PEI Services Table.
TemporaryMemoryBaseSource Address in temporary memory from which the SEC or PEIM will copy the Temporary RAM contents.
PermanentMemoryBaseDestination Address in permanent memory into which the SEC or PEIM will copy the Temporary RAM contents.
CopySizeAmount of memory to migrate from temporary to permanent memory.
Return values
EFI_SUCCESSThe data was successfully returned.
EFI_INVALID_PARAMETERPermanentMemoryBase + CopySize > TemporaryMemoryBase when TemporaryMemoryBase > PermanentMemoryBase.

Definition at line 35 of file Sec.c.

Variable Documentation

◆ gCommonPpiTable

STATIC CONST EFI_PEI_PPI_DESCRIPTOR gCommonPpiTable[]
Initial value:
= {
{
EFI_PEI_PPI_DESCRIPTOR_PPI,
&gEfiTemporaryRamSupportPpiGuid,
(VOID *)&mTemporaryRamSupportPpi
}
}
#define VOID
Definition: Base.h:269

Definition at line 75 of file Sec.c.

◆ mTemporaryRamSupportPpi

Initial value:
= {
}
STATIC EFI_STATUS EFIAPI SecTemporaryRamSupport(IN CONST EFI_PEI_SERVICES **PeiServices, IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase, IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase, IN UINTN CopySize)
Definition: Sec.c:35

Definition at line 71 of file Sec.c.