summaryrefslogtreecommitdiff
path: root/ArmPkg
AgeCommit message (Collapse)AuthorFilesLines
32 hoursArmPkg: Remove ARM32 SupportOliver Smith-Denny4-63/+4
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 code from the remaining parts of ArmPkg. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove Incorrect ArmPkg.dsc SectionsOliver Smith-Denny1-2/+0
Components.common.module_type is not correct DSC syntax. This removes the two instances from ArmPkg.dsc to conform to correct DSC syntax. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Support from ArmLibOliver Smith-Denny7-716/+0
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 files from ArmLib. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Support from ArmHvcLibOliver Smith-Denny2-48/+0
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 files from ArmHvcLib. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Support from ArmMonitorLibOliver Smith-Denny3-54/+0
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 files from ArmMonitorLib. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Support from SMBIOSOliver Smith-Denny2-99/+0
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 files from SMBIOS. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Support from ArmExceptionLibOliver Smith-Denny3-342/+0
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 files from ArmExceptionLib. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Support from CpuDxeOliver Smith-Denny2-678/+0
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 files from CpuDxe. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Support from ArmStandaloneMmCoreEntryPointOliver Smith-Denny3-233/+6
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 files from ArmStandaloneMmCoreEntryPoint. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Support from DefaultExceptionHandlerLibOliver Smith-Denny2-291/+0
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 files from DefaultExceptionHandlerLib. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Support from ArmGicDxeOliver Smith-Denny2-100/+0
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 files from ArmGicDxe. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Support from SemiHostFsOliver Smith-Denny6-155/+6
edk2 is dropping support for the ARM32 architecture. This commit removes ARM32 files from SemiHostLib and SemiHostFs. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
32 hoursArmPkg: Remove ARM32 Comments and Supported ArchOliver Smith-Denny10-18/+16
edk2 is dropping support for the ARM32 architecture. This commit removes comments mentioning ARM32 and ARM32 as a supported arch in ArmPkg. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
10 daysArmPkg: ArmPsciMpServicesDxe: Fix MPIDR usage from CoreInfoShriram Masanamuthu Chinnathurai1-1/+1
The `GET_MPIDR_AFFINITY_BITS` macro masks MT_BIT in ArmReadMpidr (), but `CoreInfo[Index].Mpidr` wasn't masked by the same macro which causes a mismatch even if it is the same MPIDR value. This change uses the same `GET_MPIDR_AFFINITY_BITS` macro for `CoreInfo[Index].Mpidr` to fix the core index searching logic. Signed-off-by: Kun Qin <kuqin@microsoft.com>
10 daysArmPkg: ArmPsciMpServicesDxe: Fix core disable/enable if the timer expiresKun Qin1-1/+3
When an AP is waken up to perform some operation with a time out period specified, the expired timer will put the core into `CpuStateFinished` state. This will make the subsequent enable/disable AP core fail to proceed, which is unexpected and inconsistent with the rest of the handling in this module (`CpuStateIdle` and `CpuStateFinished` are generally treated the same). This change extends the accepted state of CPU to `CpuStateFinished` for AP enable/disable interface to fix calls on timer expired APs. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-09-08Global: fix ArmFfaLibRun() caller couldn't get ret-argsLevi Yun2-2/+2
When ArmFfaLibDirectMsgReq(2) is preempted, caller of these functions should resume it works via ArmFfaLibRun() and the secure partition will be return with FFA_DIRECT_MSG_RESP(2) with return arguments. However, since ArmFfaLibRun() gets its return in its stack variable, So caller of ArmFfaLibRun() doesn't get the return arguments from secure partition. To resolve this, add output parameter to ArmFfaLibRun() to receive return arguments. Continuous-integration-options: PatchCheck.ignore-multi-package Fixes: 5d1b38dd07c4 ("ArmPkg: Add ArmFfaLib used in Dxe driver") Reported-by: Mariam Elshakfy <Mariam.Elshakfy@arm.com> Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2025-08-29ArmPkg/ArmTransferList: add TPM_EVENT_LOG informationLevi Yun3-0/+92
Add TRANSFER_EVENT_LOG information according to firmware hand-off spec[0]. and related helper. Links: https://github.com/FirmwareHandoff/firmware_handoff/blob/main/source/transfer_list.rst#tpm-event-log-table-entry-layout-xferlist_evlog Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2025-08-29ArmPkg/Library/ArmTransferList: add helper to get TransferListLevi Yun3-0/+57
Add helper to get TrnasferList from HOB list. Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2025-07-24ArmPkg: Add gArmTransferListPpiGuidPrachotan Bathi1-0/+1
ArmTransferListHobGuid will hold the TransferList base address https://firmwarehandoff.github.io/firmware_handoff SEC platforms can utilise this PPI to build the TransferList HOB Signed-off-by: Prachotan Bathi <prachotan.bathi@arm.com>
2025-07-24ArmPkg: Add ArmTransferListHob GuidPrachotan Reddy Bathi2-0/+25
ArmTransferListHobGuid will hold the TransferList base address https://firmwarehandoff.github.io/firmware_handoff Signed-off-by: Prachotan Reddy Bathi <Prachotan.Bathi@arm.com>
2025-07-24ArmPkg/ArmTransferListLib: Add utility functionsPrachotan Reddy Bathi3-4/+222
Added functionality TransferList Library TransferListVerifyChecksum - Verify TransferList CheckSum TransferListCheckHeader - Check if TransferList header is valid, return suitable opcodes validating the header TransferListFindEntry - Find a specific entry on the TransferList using the TagId TransferListDump - Dump the contents of the TransferList header and the entry headers Signed-off-by: Prachotan Reddy Bathi <Prachotan.Bathi@arm.com>
2025-07-15ArmPkg: TimerDxe: Add support for GICv5 PPIsSarah Walker2-4/+38
GICv5 uses a different ID scheme for interrupt numbers to previous GICs; the top bits indicate the type of interrupt (PPI/SPI/LPI). Update TimerDxe to use the new ID scheme for GICv5. As the timer PPIs are architected for GICv5 they should be the same on all GICv5 platforms. Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
2025-07-15ArmPkg: ArmGicDxe: Add support for GICv5Ard Biesheuvel11-1/+1047
Add initial driver support for GICv5. This initial driver supports Private Peripheral Interrupts (PPIs) and Shared Peripheral Interrupts (SPIs). Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com> [ardb: Merge v5 support into GicV3Dxe] Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2025-07-15ArmPkg: ArmLib: Add functions to read AA64PFR2 and check GICv5 supportSarah Walker4-0/+39
Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
2025-07-15ArmPkg/ArmGicV3Dxe: Make v3 driver AArch64-onlyArd Biesheuvel2-6/+1
Before extending the GicV3Dxe driver with support for GICv5, make the driver AArch64-only to avoid the need for adding support to the 32-bit build, which would be rather pointless. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2025-07-08ArmPkg: Remove UGA supportGuoMinJ2-4/+1
The Universal Graphics Adapter (UGA) is a graphic abstraction. The UGA I/O and Draw protocols are deprecated since UEFI 2.0 was introduced. Cf. the UEFI spec v2.9: "Appendix L - EFI 1.10 Protocol Changes and Deprecation List" section L.2 "Deprecated Protocols" Remove the UGA support. Signed-off-by: GuoMinJ <newexplorerj@gmail.com> Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-07-04ArmPkg,MdePkg,UefiCpuPkg,ArmPlatformPkg,ArmVirtPkg,UefiPayloadPkg: Move ↵Ajan Zhong11-2066/+1
ArmMmuLib Move ArmMmuLib from ArmPkg to UefiCpuPkg for easy maintaining. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
2025-07-04ArmPkg: Drop PcdNormalMemoryNonshareableOverride supportAjan Zhong4-72/+10
There are no upstream platforms sets this Pcd, this Pcd was introduced by ArmVExpress-CTA15-A7. Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
2025-07-04ArmPkg,ArmPlatformPkg,ArmVirtPkg: Add UefiCpuPkg to AcceptableDependenciesAjan Zhong1-1/+2
Since ArmMmuLib.h has been moved to UefiCpuPkg, add corresponding dec file to AcceptableDependencies to ArmPkg, ArmPlatformPkg and ArmVirtPkg. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
2025-07-04ArmPkg,ArmPlatformPkg,ArmVirtPkg,UefiCpuPkg: Move ArmMmuLib.h to UefiCpuPkgAjan Zhong10-80/+8
Move the ArmMmuLib interface definition to UefiCpuPkg, with this change, MMU libraries for ARM, AARCH64, RiscV, LongArch64 architectures all reside in UefiCpuPkg. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
2025-06-26ArmPkg: StandaloneMmCpu: Add MM communicate v3 supportKun Qin2-16/+51
As the standalone MM core begins supporting MM Communicate v3, this update extends its functionality to incorporate MM Communicate v3 headers format, enabling compatibility with the new protocol. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26ArmPkg: ArmStandaloneMmCoreEntryPoint: Add MM communicate v3 supportKun Qin2-9/+44
As the standalone MM core begins supporting MM Communicate v3, this update extends its functionality to incorporate MM Communicate v3 headers, enabling compatibility with the new protocol. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26ArmPkg: MmCommunicationPei: Add MM communicate v3Kun Qin2-55/+181
As MM cores start to support MM communciate v3. This change moves the MM communicate driver to produce MM communicate v3 PPI. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-26ArmPkg: MmCommunicationDxe: Add MM communicate v3Kun Qin2-25/+134
As MM cores start to support MM communciate v3. This change moves the MM communicate driver to produce MM communicate v3 protocol. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-25ArmPkg: StMM: Use x24 register to store stack addressMohamed Gamal Morsy1-4/+4
Now that the use of 18 registers for FF-A is supported. Registers from x0-x17 can be used by FF-A to return call results. StMM also uses registers x19-x23 to store SPMC boot information. Use the x24 register to store the stack address instead of x12 to avoid it being clobbered by FF-A calls. Signed-off-by: Mohamed Gamal Morsy <mohamed.morsy@arm.com>
2025-06-06ArmPkg/Include: fix usage of wrong macro in ArmGicv3Dxelevi.yun1-1/+1
To get a SPI_MAX_INTID, interrupt controller type Register should be masked with ARM_GIC_ICDICTR_GET_SPI_RANGE. However, since ARM_GIC_ICDICTR_SPI_RANGE_TO_MAX_INTID macro uses ARM_GIC_ICDICTR_GET_EXT_SPI_RANGE mask, it returns wrong SPI_MAX_INITID. This makes a failure of loading GenericWatchDog in FVP RevC model. Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com> Fixes: d6d2f68e3801 ("ArmPkg/Drivers/ArmGicDxe: ...")
2025-06-05ArmPkg: ArmStandaloneMmCoreEntryPoint: Use common UUID conversion routineKun Qin1-47/+1
As new interfaces are made available to support UUID-GUID conversion, this change is made to leverage new interfaces and remove the locally duplicated code. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-03ArmPkg/Drivers/ArmGicDxe: Add Extended SPI support for GICv3Nick Graves5-199/+585
This commit enables extended SPI support for GicV3. GicV3 must decide, based on the source intid, whether to access the SPI-range registers, PPI-range registers in the redistributor, or the extended SPI-range registers. The protocol interfaces must also support registering an interrupt handler with an extended SPI intid. To save ~24KB of memory, handler allocation and access is delegated to GicV2 and GicV3. GicV2 retains the existing handler mapping scheme using intids literally. GicV3 remaps extended SPI intids to be immediately after the highest SPI intids. Tested on qemu with the BSA test suite. Signed-off-by: Nick Graves <nicholasgraves@google.com>
2025-05-30ArmPkg: Add HobLib to ArmStandaloneMmCoreEntryPoint.Aaron Pop1-0/+1
ArmStandaloneMmCoreEntryPoint makes use of GetNextHob which comes from HobLib. The inf does not specify HobLib has one of its library classes. Specify HobLib in the LibraryClasses section of the inf. Signed-off-by: Aaron Pop <aaronpop@microsoft.com>
2025-05-28ArmPkg: ArmPsciResetSystemLib: PSCI warm reset fixJohn Schock1-1/+4
The current warm reset implementation attempts the PSCI SYSTEM_RESET2 command twice without clearing the local variable used for Arg1. This can result in passing a random value as the reset type, which may cause the PSCI call to behave unexpectedly and fall back to a cold reset. This change addresses the issue by: - Correcting the monitor call function ID. - Explicitly zeroing the reset type field before invoking the PSCI interface. The updated warm reset flow has been tested and confirmed to invoke SYSTEM_RESET2 as expected. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-05-26ArmPkg: Fix typosMichael Kubacki4-6/+6
Corrects some typos. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2025-04-25ArmPkg/ArmScmiDxe: Use array indexing to access adjacent buffersArd Biesheuvel1-7/+4
MessageParams1 and MessageParams2 always point to adjacent slots in the payload buffer, so no need to keep two separate pointers. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2025-04-22ArmPkg/ArmScmiDxe: Fix SCMI param overwrite in multi-transaction scenarioJohnny.Fan2-8/+12
Fix an issue where input parameters in SCMI messages may be overwritten by return values during repeated transactions when retrieving large data sets. This issue affects: 1. ClockDescribeRates: when the number of clock rates exceeds the transfer limit. According to the SCMI specification (Section 4.6.2.5), the first and second parameters are initially used to pass clock_id and rate_index. However, due to SCMI’s shared memory communication mechanism, these same memory locations are later reused to return status and num_rate_flags. 2. PerformanceDescribeLevels: when the number of performance levels is too large to return in a single response. As described in Section 4.5.3.5, the first and second parameters are initially used for domain_id and level_index, but are overwritten with status and num_levels in the return. Because SCMI reuses the same shared memory buffer for both input and output, the return values can override input parameters if the buffer is not properly re-initialized before each request. This patch ensures that the first and second parameters are correctly set before every transaction to preserve input integrity and ensure correct protocol behavior. Signed-off-by: jie.fu <jie.fu@cixtech.com>
2025-04-11ArmPkg,ArmVirtPkg,UefiPayloadPkg: make PcdVFPEnabled ARM-onlyLeif Lindholm1-4/+4
AArch64 no longer uses PcdVFPEnabled, so make the definition ARM-specific and stop explicitly setting it for AArch64 platforms. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-04-11ArmPkg/CpuDxe: drop unused PcdVFPEnabled declarationLeif Lindholm1-1/+0
CpuDxe no longer uses PcdVFPEnabled, so drop the dependency declaration before turning that Pcd ARM-only. Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-04-11ArmPkg/ArmLib: don't check for FP support on AArch64Leif Lindholm1-11/+2
UEFI defines that FP support is required, so skip the runtime check in ArmEnableVFP(). Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-04-10ArmPkg: ArmFfaLib: Move ArmFfaLib implementation to MdeModulePkgKun Qin13-1756/+2
ArmFfaLib is an implementation of an industry specification-defined interface with UEFI specific method of handling Rx/Tx buffer sharing across multiple boot phases, which is more appropriately placed in MdeModulePkg. This update relocates the implementation of ArmFfaLib to MdeModulePkg, thereby supporting the FFA call primitives for all other packages that depend on this interface. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-04-10ArmPkg: ArmFfaLib.h: Move to MdePkgKun Qin2-324/+0
As a set of definitions from an industry specification-defined interface, ArmFfaLib.h is more appropriately placed in MdePkg. This update relocates both the header definition of ArmFfaLib to MdePkg, thereby supporting the monitor call primitives for all other packages that depend on this interface. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-04-10ArmPkg: ArmSvcLib: Move ArmSvcLib to MdePkgKun Qin6-174/+1
As an implementation of an industry specification-defined interface, ArmSvcLib is more appropriately placed in MdePkg. This update relocates both the header definition and the implementation of ArmSvcLib to MdePkg, thereby supporting the supervisor call primitives for all other packages that depend on this interface. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-04-10ArmPkg: ArmSmcLibNull: Move ArmSmcLibNull to MdePkgKun Qin3-126/+0
ArmSmcLibNull is a null implementation of an industry specification- defined interface, which is defined in MdePkg. This update relocates the null implementation of ArmSmcLib to MdePkg, thereby supporting the monitor call primitives for ARM platforms that does not have SMC capabilities. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Kun Qin <kun.qin@microsoft.com>