123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- /*++
- Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef __PEI_PLATFORM_H__
- #define __PEI_PLATFORM_H__
- #define PEI_STALL_RESOLUTION 1
- #define STALL_PEIM_SIGNATURE SIGNATURE_32('p','p','u','s')
- typedef struct {
- UINT32 Signature;
- EFI_FFS_FILE_HEADER *FfsHeader;
- EFI_PEI_NOTIFY_DESCRIPTOR StallNotify;
- } STALL_CALLBACK_STATE_INFORMATION;
- #define STALL_PEIM_FROM_THIS(a) CR (a, STALL_CALLBACK_STATE_INFORMATION, StallNotify, STALL_PEIM_SIGNATURE)
- /**
- Peform the boot mode determination logic
- If the box is closed, then
- 1. If it's first time to boot, it's boot with full config .
- 2. If the ChassisIntrution is selected, force to be a boot with full config
- 3. Otherwise it's boot with no change.
- @param PeiServices General purpose services available to every PEIM.
- @param BootMode The detected boot mode.
- @retval EFI_SUCCESS if the boot mode could be set
- **/
- EFI_STATUS
- UpdateBootMode (
- IN CONST EFI_PEI_SERVICES **PeiServices
- );
- /**
- This function reset the entire platform, including all processor and devices, and
- reboots the system.
-
- Declaration of this function goes to MdeModulePkg/Include/Library/ResetSystemLib.h
- @param PeiServices General purpose services available to every PEIM.
- @retval EFI_SUCCESS if it completed successfully.
- **/
- // EFI_STATUS
- // EFIAPI
- // ResetSystem (
- // IN CONST EFI_PEI_SERVICES **PeiServices
- // );
- /**
- This function will be called when MRC is done.
- @param PeiServices General purpose services available to every PEIM.
- @param NotifyDescriptor Information about the notify event..
- @param Ppi The notify context.
- @retval EFI_SUCCESS If the function completed successfully.
- **/
- EFI_STATUS
- EFIAPI
- MemoryDiscoveredPpiNotifyCallback (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
- IN VOID *Ppi
- );
- /**
- This is the callback function notified by FvFileLoader PPI, it depends on FvFileLoader PPI to load
- the PEIM into memory.
- @param PeiServices General purpose services available to every PEIM.
- @param NotifyDescriptor The context of notification.
- @param Ppi The notify PPI.
- @retval EFI_SUCCESS if it completed successfully.
- **/
- EFI_STATUS
- EFIAPI
- FvFileLoaderPpiNotifyCallback (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
- IN VOID *Ppi
- );
- /**
- This function provides a blocking stall for reset at least the given number of microseconds
- stipulated in the final argument.
- @param PeiServices General purpose services available to every PEIM.
- @param this Pointer to the local data for the interface.
- @param Microseconds number of microseconds for which to stall.
- @retval EFI_SUCCESS the function provided at least the required stall.
- **/
- EFI_STATUS
- EFIAPI
- Stall (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN CONST EFI_PEI_STALL_PPI *This,
- IN UINTN Microseconds
- );
- /**
- This function initialize recovery functionality by installing the recovery PPI.
- @param PeiServices General purpose services available to every PEIM.
- @retval EFI_SUCCESS If the interface could be successfully installed.
- **/
- EFI_STATUS
- EFIAPI
- InitializeRecovery (
- IN EFI_PEI_SERVICES **PeiServices
- );
- /**
- This function
- 1. Calling MRC to initialize memory.
- 2. Install EFI Memory.
- 3. Capsule coalesce if capsule boot mode.
- 4. Create HOB of system memory.
- @param PeiServices Pointer to the PEI Service Table
- @retval EFI_SUCCESS If it completes successfully.
- **/
- EFI_STATUS
- MemoryInit (
- IN EFI_PEI_SERVICES **PeiServices
- );
- /**
- This function provides the implementation of AtaController PPI Enable Channel function.
- @param PeiServices General purpose services available to every PEIM.
- @param this Pointer to the local data for the interface.
- @param ChannelMask This parameter is used to specify primary or slavery IDE channel.
- @retval EFI_SUCCESS Procedure returned successfully.
- **/
- EFI_STATUS
- EnableAtaChannel (
- IN EFI_PEI_SERVICES **PeiServices,
- IN PEI_ATA_CONTROLLER_PPI *This,
- IN UINT8 ChannelMask
- );
- /**
- This function provides the implementation of AtaController PPI Get IDE channel Register Base Address
- @param PeiServices General purpose services available to every PEIM.
- @param this Pointer to the local data for the interface.
- @param IdeRegsBaseAddr Pointer to IDE_REGS_BASE_ADDR struct, which is used to record
- IDE Command and Control regeisters Base Address.
- @retval EFI_SUCCESS Procedure returned successfully.
- **/
- EFI_STATUS
- GetIdeRegsBaseAddr (
- IN EFI_PEI_SERVICES **PeiServices,
- IN PEI_ATA_CONTROLLER_PPI *This,
- IN IDE_REGS_BASE_ADDR *IdeRegsBaseAddr
- );
- /**
- This function provides the implementation to properly setup both LM & PDM functionality.
- @param PeiServices General purpose services available to every PEIM.
- @retval EFI_SUCCESS Procedure returned successfully.
- **/
- EFI_STATUS
- ConfigureLM(
- IN EFI_PEI_SERVICES **PeiServices
- );
- #include <Ppi/VlvMmioPolicy.h>
- BOOLEAN
- EFIAPI
- IsFastBootEnabled (
- IN CONST EFI_PEI_SERVICES **PeiServices
- );
- EFI_STATUS
- PrioritizeBootMode (
- IN OUT EFI_BOOT_MODE *CurrentBootMode,
- IN EFI_BOOT_MODE NewBootMode
- );
- EFI_STATUS
- EFIAPI
- CapsulePpiNotifyCallback (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
- IN VOID *Ppi
- );
- #endif
|