mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-31 01:24:12 +02:00
StandaloneMmCpu driver is only used for Arm architecture and StandaloneMmCoreEntryPointLib for Arm has specific implementation with StandaloneMmCpu driver. Move StandaloneMmCpu Driver and StandaloneMmCoreEntryPointLib for Arm to ArmPkg. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Levi Yun <yeoreum.yun@arm.com>
61 lines
2.0 KiB
C
61 lines
2.0 KiB
C
/** @file
|
|
This file describes the PiMm Cpu Driver Entry Point Protocol.
|
|
the protocol is for defining handler for mm communication request event
|
|
according to cpu driver.
|
|
|
|
Copyright (c) 2024, Arm Limited. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef PI_MM_CPU_DRIVER_EP_H_
|
|
#define PI_MM_CPU_DRIVER_EP_H_
|
|
|
|
#include <PiMm.h>
|
|
|
|
#define EDKII_PI_MM_CPU_DRIVER_EP_GUID { \
|
|
0x6ecbd5a1, 0xc0f8, 0x4702, { 0x83, 0x01, 0x4f, 0xc2, 0xc5, 0x47, 0x0a, 0x51 } \
|
|
}
|
|
|
|
/**
|
|
The PI Standalone MM entry point for handling mm communication request
|
|
Here is an example of how the EDKII_PI_MM_CPU_DRIVER_EP_PROTOCOL
|
|
is utilized in ARM:
|
|
1. StandaloneMmCoreEntryPoint loads StandaloneMmCore.
|
|
2. StandaloneMmCore dispatches all MM drivers,
|
|
including the StandaloneMmCpu driver.
|
|
3. The StandaloneMmCpu driver declares its MMI CPU entry point through
|
|
the PI_MM_CPU_DRIVER_EP_PROTOCOL.
|
|
4. After all drivers have been dispatched,
|
|
StandaloneMmCoreEntryPoint retrieves the MMI CPU entry point
|
|
by locating the protocol.
|
|
5. The DelegatedEventLoop then calls the MM CPU entry point.
|
|
|
|
See StandaloneMmPkg/StandaloneMmCoreEntryPoint/Arm/StandaloneMmCoreEntryPoint.c
|
|
|
|
@param [in] EventId The event Id based on firmware.
|
|
@param [in] CommBufferAddr Address of the communication buffer.
|
|
|
|
@retval EFI_SUCCESS Success.
|
|
@retval EFI_INVALID_PARAMETER A parameter was invalid.
|
|
@retval EFI_ACCESS_DENIED Access not permitted.
|
|
@retval EFI_OUT_OF_RESOURCES Out of resources.
|
|
@retval EFI_UNSUPPORTED Operation not supported.
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EDKII_PI_MM_CPU_DRIVER_ENTRYPOINT)(
|
|
IN UINTN EventId,
|
|
IN UINTN CommBufferAddr
|
|
);
|
|
|
|
typedef struct _EDKII_PI_MM_CPU_DRIVER_EP_PROTOCOL EDKII_PI_MM_CPU_DRIVER_EP_PROTOCOL;
|
|
|
|
struct _EDKII_PI_MM_CPU_DRIVER_EP_PROTOCOL {
|
|
EDKII_PI_MM_CPU_DRIVER_ENTRYPOINT PiMmCpuDriverEntryPoint;
|
|
};
|
|
|
|
extern EFI_GUID gEdkiiPiMmCpuDriverEpProtocolGuid;
|
|
|
|
#endif
|