summaryrefslogtreecommitdiff
path: root/ArmPkg/Library/ArmMonitorLib
AgeCommit message (Collapse)AuthorFilesLines
2025-09-26ArmPkg: Remove ARM32 Support from ArmMonitorLibOliver Smith-Denny2-52/+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>
2024-09-12MdePkg: Move AsmMacroIoLib*.h from ArmPkgOliver Smith-Denny2-2/+2
AsmMacroIoLib.h and AsmMacroIoLibV8.h are used by the CompilerIntrinsicsLib, which is moving to MdePkg. These functions provide standard definitions for ARM/AARCH64 assembly code, respectively, and so are moved to the arch directories in MdePkg to avoid MdePkg having a dependency on ArmPkg. Now that the files are in Arm/ and AArch64/ directories, the filenames are changed to AsmMacroLib.h as we can distinguish the architecture from the path. AsmMacroIoLib.inc is unused and so is removed. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
2024-07-25ArmPkg/ArmMonitorLib: Implement SMCCC protocol correctly and directlyArd Biesheuvel4-40/+133
The SMCCC protocol stipulates the following: - on AARCH64, 18 arguments can be passed, and 18 values can be returned, via registers X0-x17; - on ARM, 8 arguments can be passed, and 8 values can be returned. This makes ArmSmcLib and ArmHvcLib as implemented currently unsuitable for use with SMCCC services in general, although for PSCI in particular, they work fine. The dependency on both ArmSmcLib and ArmHvcLib is also impractical because it requires every platform that consumes ArmMonitorLib to provide resolutions for each, even though most platforms will only ever need one of these (and the choice is made at compile time) So let's drop these dependencies, and re-implement the asm helpers from scratch. Note that the only difference is the actual instruction used -HVC vs SMC- and so all other code can be shared. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2024-07-25ArmPkg: Convert PcdMonitorConduitHvc to FixedAtBuildArd Biesheuvel1-1/+1
Feature PCDs and fixed-at-build PCDs are identical in concept, but the latter are accessible from assembler, whereas the former are not. So convert the SMCCC conduit selection PCD to fixed-at-build so we can make use of this in a subsequent patch. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2024-07-24ArmPkg: Disable AuditOnly mode for uncrustifyArd Biesheuvel1-1/+1
Fix up a handful of uncrustify infractions and drop the AuditOnly override for uncrustify so we get the same uncrustify CI coverage as other packages. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2024-06-10ArmPkg: Revert "Allow SMC/HVC monitor conduit to be specified at runtime"Ard Biesheuvel1-1/+1
This reverts commit 32460bb5b17b5caec29037a4e9462ca149a190e6, which is no longer needed as ArmVirtQemu now has its own special implementation for ArmMonitorLib. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2024-05-24ArmPkg: Allow SMC/HVC monitor conduit to be specified at runtimeArd Biesheuvel1-1/+1
ArmVirtQemu may execute at EL2, in which case monitor calls are generally made using SMC instructions instead of HVC instructions. Whether or not this is the case can only be decided at runtime, and so the associated PCD needs to be settable at runtime, if the platform definition chooses so. This implies a boolean PCD, given that a feature PCD is build-time configurable only. Cc: Leif Lindholm <quic_llindhol@quicinc.com> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Sami Mujawar <sami.mujawar@arm.com> Committed-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Doug Flick [MSFT] <doug.edk2@gmail.com> Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
2022-11-06ArmPkg/ArmMonitorLib: Add ArmMonitorLibPierre Gondois2-0/+63
The ArmMonitorLib provides an abstract interface to issue an HyperVisor Call (HVC) or System Monitor Call (SMC) depending on the default conduit. The PcdMonitorConduitHvc PCD allows to select the default conduit. Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com> Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>