Qemu has versioning for sbsa-ref platform. TF-A reads data from provided DeviceTree and provides as SMC.
This change adds reading GIC base addresses into EDK2. Signed-off-by: Marcin Juszkiewicz <marcin.juszkiew...@linaro.org> --- .../SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c | 24 +++++++++++++++++++ .../SbsaQemuPlatformDxe.inf | 4 ++++ 2 files changed, 28 insertions(+) diff --git a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c index 199766c7014a..82c349971625 100644 --- a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c +++ b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c @@ -25,6 +25,8 @@ #define SIP_FUNCTION_ID(n) (SIP_FUNCTION | (n)) #define SIP_SVC_VERSION SIP_FUNCTION_ID(1) +#define SIP_SVC_GET_GICD SIP_FUNCTION_ID(2) +#define SIP_SVC_GET_GICR SIP_FUNCTION_ID(3) EFI_STATUS EFIAPI @@ -78,5 +80,27 @@ InitializeSbsaQemuPlatformDxe ( DEBUG ((DEBUG_INFO, "Platform version: %d.%d\n", Arg0, Arg1)); + Result = ArmCallSmc0 (SIP_SVC_GET_GICD, &Arg0, NULL, NULL); + if (Result == SMC_ARCH_CALL_SUCCESS) + { + Result = PcdSet32S (PcdGicDistributorBase, Arg0); + ASSERT_EFI_ERROR (Result); + } + + Arg0 = PcdGet32 (PcdGicDistributorBase); + + DEBUG ((DEBUG_INFO, "GICD base: 0x%x\n", Arg0)); + + Result = ArmCallSmc0 (SIP_SVC_GET_GICR, &Arg0, NULL, NULL); + if (Result == SMC_ARCH_CALL_SUCCESS) + { + Result = PcdSet32S (PcdGicRedistributorsBase, Arg0); + ASSERT_EFI_ERROR (Result); + } + + Arg0 = PcdGet32 (PcdGicRedistributorsBase); + + DEBUG ((DEBUG_INFO, "GICR base: 0x%x\n", Arg0)); + return EFI_SUCCESS; } diff --git a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.inf b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.inf index 1f2c8a9dd6af..545794a8c7ff 100644 --- a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.inf +++ b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.inf @@ -41,6 +41,10 @@ gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdPlatformVersionMajor gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdPlatformVersionMinor + gArmTokenSpaceGuid.PcdGicDistributorBase + gArmTokenSpaceGuid.PcdGicRedistributorsBase + + [Depex] TRUE -- 2.40.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#104706): https://edk2.groups.io/g/devel/message/104706 Mute This Topic: https://groups.io/mt/98830305/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-