From 843f4fd60d0299412ac81900e09888ca2add70e7 Mon Sep 17 00:00:00 2001 From: Levi Yun Date: Mon, 5 Aug 2024 17:36:10 +0100 Subject: ArmPkg: Add FF-A related dynamic Pcd and Guid To communicate with spmc or spmd, UEFI needs to map the Rx/Tx buffer (which is a global resource in a partition) by getting the required information from the partition descriptor. for this, Define ArmFfaLib related Pcd and Guid. Pcd: - PcdFfaLibConduitSmc conudit to use ArmFfaLib. - PcdFfaTxBufeer address of Tx buffer. - PcdFfaRxBuffer: address of Rx buffer. - PcdTxRxPageCount: specify buffer size with EFI_PAGE_SIZE unit. - PcdFfaExitBootEventRegistered: check exit boot event registered to unmap rx/tx buffer. Guid: - gArmFfaRxTxBufferInfoGuid: This is used in Hob to get Rx/Tx buffer information to pass Rx/Tx buffer information via HobList if Rx/Tx Buffer mapped in PEI phase. Signed-off-by: Levi Yun --- ArmPkg/ArmPkg.dec | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'ArmPkg') diff --git a/ArmPkg/ArmPkg.dec b/ArmPkg/ArmPkg.dec index 112187fc46..67afd5953f 100644 --- a/ArmPkg/ArmPkg.dec +++ b/ArmPkg/ArmPkg.dec @@ -107,6 +107,8 @@ gArmMmuReplaceLiveTranslationEntryFuncGuid = { 0xa8b50ff3, 0x08ec, 0x4dd3, {0xbf, 0x04, 0x28, 0xbf, 0x71, 0x75, 0xc7, 0x4a} } + gArmFfaRxTxBufferInfoGuid = { 0x96fd3d26, 0x6fb1, 0x11ef, { 0x8c, 0x11, 0xf3, 0xc9, 0xc5, 0x02, 0x31, 0xab } } + [Protocols.common] ## Arm System Control and Management Interface(SCMI) Base protocol ## ArmPkg/Include/Protocol/ArmScmiBaseProtocol.h @@ -318,6 +320,12 @@ gArmTokenSpaceGuid.PcdSystemBiosRelease|0xFFFF|UINT16|0x30000058 gArmTokenSpaceGuid.PcdEmbeddedControllerFirmwareRelease|0xFFFF|UINT16|0x30000059 + # + # Define the conduit to use ArmFfalib. + # Default PcdFfaLibConduitSmc == TRUE, conduit = SMC + # If PcdFfaLibConduitSvc == FALSE, conduit = SVC + gArmTokenSpaceGuid.PcdFfaLibConduitSmc|TRUE|BOOLEAN|0x00000063 + [PcdsFixedAtBuild.common, PcdsDynamic.common] # ARM Architectural Timer Interrupt(GIC PPI) numbers gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|29|UINT32|0x00000035 @@ -408,3 +416,7 @@ # the LinuxBoot payload. # gArmTokenSpaceGuid.PcdLinuxBootFileGuid|{0x0}|VOID*|0x0000005C + gArmTokenSpaceGuid.PcdFfaTxBuffer|0x00|UINT64|0x0000005F + gArmTokenSpaceGuid.PcdFfaRxBuffer|0x00|UINT64|0x00000060 + gArmTokenSpaceGuid.PcdFfaTxRxPageCount|1|UINT64|0x00000061 + gArmTokenSpaceGuid.PcdFfaExitBootEventRegistered|FALSE|BOOLEAN|0x00000062 -- cgit