audk/ArmPkg/Include/Library
Ard Biesheuvel b1bce5e564 ArmPkg/ArmMonitorLib: Implement SMCCC protocol correctly and directly
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-25 14:41:09 +00:00
..
ArmDisassemblerLib.h ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmGenericTimerCounterLib.h ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmGicArchLib.h ArmPkg/ArmGicArchLib: Add macros for SPI and extended SPI ranges 2024-03-04 09:58:10 +00:00
ArmGicLib.h ArmPkg: Fix return type for ArmGicGetInterfaceIdentification 2023-06-01 15:52:01 +00:00
ArmHvcLib.h ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmMmuLib.h ArmPkg: Drop individual memory permission helpers 2023-06-27 16:40:07 +00:00
ArmMonitorLib.h ArmPkg/ArmMonitorLib: Implement SMCCC protocol correctly and directly 2024-07-25 14:41:09 +00:00
ArmMtlLib.h ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmSmcLib.h ArmPkg: Add SMC helper functions 2021-12-14 11:30:26 +00:00
ArmSvcLib.h ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
DefaultExceptionHandlerLib.h ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
OemMiscLib.h ArmPkg/SmbiosMiscDxe: Get SMBIOS information from OemMiscLib 2022-09-23 14:39:10 +00:00
OpteeLib.h ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
SemihostLib.h ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
StandaloneMmMmuLib.h ArmPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00