Commit graph

798 commits

Author SHA1 Message Date
Kun Qin
93ee300675 ArmPkg: StandaloneMmCoreEntryPoint: Use ARM_FFA_ARGS for misc buffer
The MISC_MM_COMMUNICATE_BUFFER stored the FF-A direct message
registers in a DIRECT_MSG_ARGS structure. Populating and reading it
required manually re-indexing every register (EventSvcArgs->Arg4..Arg17
into DirectMsgArgs.Arg0..Arg13). This shifted the register positions and
left the buffer layout inconsistent with the raw FF-A argument register
file, making it error prone to correlate a slot with its architectural
register.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2026-07-30 13:46:46 +00:00
VarshitPandya
5c6e9d475f ArmPkg: Add Arm SMCCC SoC ID library
Add ArmSmcccSocIdLib to provide a shared interface for checking support
for the SMCCC Architecture SoC ID service and retrieving the JEP106
identification code and SoC revision.

Move the existing SMCCC SoC ID handling out of ProcessorSubClassDxe and
update the driver to use the new library. Continue to use the MIDR value
for the SMBIOS Processor ID when the SMCCC SoC ID service is unavailable.

This allows other SMBIOS implementations to reuse the SMCCC handling
without duplicating it or depending on the legacy ProcessorSubClassDxe
driver.

Signed-off-by: Varshit Pandya <Varshit.Pandya@arm.com>
2026-07-24 21:55:19 +00:00
Pierre Gondois
b1a2983ace ArmPkg/ArchArmTimerLib: Re-implement NanoSecondDelay()
NanoSecondDelay() currently has a microsecond rounding/precision.
Re-implement the function to have a nanosecond precision.

A MulDivWithRounding() function is added to allow ticks to
nanoseconds or nanoseconds to ticks conversions. This
function is now also used in GetTimeInNanoSecond().

MicroSecondDelay() now relies on NanoSecondDelay() to avoid
having a duplicated implementation.

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2026-06-03 18:55:50 +00:00
Qihang Gao
750c92dc8b ArmPkg: Remove redundant section name in inf file
[Packages] appears twice in ArmStandaloneMmCoreEntryPoint.inf, remove the
redundant one to make the file more concise.

Signed-off-by: Qihang Gao <gaoqihang@loongson.cn>
2026-06-03 02:18:39 +00:00
Yeoreum Yun
33cd70de1d ArmPkg/StandaloneMmMmuLib: fix reverse condition of ASSERT
In GetMemoryPermissions(), PageCount from FFA_MEM_PERM_GET couldn't
be over EFI_SIZE_TO_PAGES(Length) otherwise that's bug of SPMC.
But, current ASSERT() checks PageCount > EFI_SIZE_TO_PAGES(Length)
which is reverse condition for validation.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-06-02 11:27:15 +00:00
Yeoreum Yun
c83db74426 ArmPkg, StandaloneMmPkg: optimise memory permission change
In StandaloneMm, the allowed memory permission combinations are ROX, RO,
and RW.

At the initial stage, all regions are mapped as ROX.
When drivers are loaded for relocation, the image is first mapped as RW.

However, the current mechanism introduces significant overhead
when changing memory permissions. For example, when changing permissions
from ROX to RW, the process is performed in two steps:

  1. Clear the execute (X) permission (ROX → RO)
  2. Add the write (W) permission (RO → RW)

To execute step (1), the system first retrieves the permissions of
the target region. This may trigger multiple SMC calls,
depending on the permissions of the pages within that region.

This permission retrieval operation is redundant, as there is no need
to maintain an intermediate state. Nevertheless,
it can cause additional SMC calls and coherence operations
from the SPMC (e.g., TLB flushes).

Therefore, this redundant operation should be removed, and in most cases,
the memory permission should be updated with a single
“set memory permission” operation.

Note:
The ArmxxxMemoryRegionxxx() interfaces e.g. ArmSetMemoryRegionNoExec(),
etc. return success when the Length parameter is 0 as
the SectionHeader.Misc.VirtualSize could be 0 Length
like .reloc section:

  UpdateMmFoundationPeCoffPermissions: Section 2 of image at 0x7004000
                                       has 0x42000040 permissions
  UpdateMmFoundationPeCoffPermissions: Section 2 of image at 0x7004000
                                       has .reloc name
  api_ffa_mem_perm_set page_count 0
  ERROR: FFA_MEM_PERM_SET: page_count was zero

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-05-29 18:44:57 +00:00
Yeoreum Yun
2ce0a7e6e3 ArmPkg/ArmMmuStandaloneMmLib: add missing documentation
Some functions in ArmMmuStandaloneMmLib lack documentation.
Add appropriate documentation for each function.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-05-29 18:44:57 +00:00
Yeoreum Yun
b6c16a95be ArmPkg/StandaloneMmMmuLib: make Version parameter as optional
This is preparatory patch to optimize memory permission change
operations for StandaloneMm.

Make Version parameter of IsFfaMemoryAbiSupported() as optional.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-05-29 18:44:57 +00:00
Vishal Oliyil Kunnil
bc60347b9e Global: Merge DefaultExceptionHandlerLib into CpuExceptionHandlerLib
Merge DefaultExceptionHandlerLib into CpuExceptionHandlerLib.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Vishal Oliyil Kunnil <vishalo@qti.qualcomm.com>
2026-05-28 16:40:04 +00:00
Vishal Oliyil Kunnil
d2fc49ac55 Global: Merge ArmExceptionLib into CpuExceptionHandlerLib
Merge ArmExceptionLib into CpuExceptionHandlerLib.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Vishal Oliyil Kunnil <vishalo@qti.qualcomm.com>
2026-05-28 16:40:04 +00:00
Vishal Oliyil Kunnil
a8700d2b83 ArmPkg/ArmExceptionLib: Fix ECC error
Fix ECC error in ArmExceptionLib.

Signed-off-by: Vishal Oliyil Kunnil <vishalo@qti.qualcomm.com>
2026-05-28 16:40:04 +00:00
Yeoreum Yun
ae2d2d76c1 ArmPkg,MdePkg,MdeModulePkg: change ArmFfaLibGetVersion() with whole version
Current ArmFfaLibGetVersion()'s arguments receive two arguments
-- major version and minor version.

However, This gives some impression treating major and minor version
of the ABI as two unrelated 16-bit variables as opposed to
the upper and lower 16-bits of a 32-bit version variable.

Therefore, change the arguments with whole version and
let user to get major/minor version via ARM_FFA_MAJOR/MINOR_VERSION_GET
macros.

Also, add some useful helper to check version compatibility and
mimimum require ABI version.

Continuous-integration-options: PatchCheck.ignore-multi-package
Suggested-by: Leif Lindholm <quic_llindhol@quicinc.com>
Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-04-28 19:19:44 +02:00
Yeoreum Yun
50349c5e07 ArmPkg/Library: optimise StandaloneMmMmuLib with FF-A v1.3
commit 4ca452c ("ArmPkg/Library: Update StandaloneMmuLib with
FF-A v1.2 with page granularity") introduced page-granular memory
permission updates to fix the StandaloneMm load failure.

However, this approach results in issuing an SMC call
per page when updating permissions over a region.

Since FF-A Memory Management Protocol v1.3 [0],
FFA_MEM_PERM_GET has been updated to return the number of contiguous
pages that share the same memory permission starting from a base address.

With this change, update memory permissions in bulk
(per contiguous page range) to reduce the number of SMC calls,
leveraging FF-A Memory Management Protocol v1.3 [0].

Link: https://developer.arm.com/documentation/den0140/latest [0]
Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-04-28 19:19:44 +02:00
Oliver Smith-Denny
87148bcc25 Global: Move ArmLib to MdePkg
Per
https://edk2.groups.io/g/devel/topic/move_armlib_to_baselib/118541649,
this commit moves ArmLib to MdePkg and updates all consumers.

The only change to ArmLib itself is to remove ArmPkg.dec from
the inf.

Continuous-integration-options: PatchCheck.ignore-multi-package

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-04-17 11:42:23 +00:00
Ka-in Ng
0fe6b755f2 ArmPkg,MdePkg: Add an ASM function to read register AIDR_EL1
This provides access to the Auxilary ID register, AIDR_EL1.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Ka-in Ng <kainng@os.amperecomputing.com>
2026-03-18 05:45:01 +00:00
Aaron Pop
f3f585bd42 ArmPkg/ArmStandaloneMmCoreEntryPoint: Ensure section length alignment
ClangPdb/Msvc do not align the virtual address section lengths.
This needs to be handled by the loader to ensure that lengths are
aligned correctly.

Found while compiling Standalone Mm for a virtual platform using
ClangPdb. This has been masked in GCC/ClangDwarf builds by
GenFw conversion enforcing section alignments during conversion.

Signed-off-by: Aaron Pop <aaronpop@microsoft.com>
2026-03-13 15:48:05 +00:00
Chris Fernald
beff015bc7 ArmPkg: Fix incorrect bit width mask for SP_EL0
The current code uses `0xFUL` for stack alignment. Since this is only specified
to be an unsigned long, it may only be translated to 0xFFFFFFF0 in compilation
using LL64. In this case, if the stack resides above 4GB, the high bits of the
pointer will be truncated. This will cause a data abort immediately when
pushing to the exception stack.

This occurs specifically when using ClangPDB which uses LL64. This is not
observed in GCC because it uses LP64 where unsigned long is 64 bits.

This commit simply changes the mask to `0xFULL` to ensure that the full 64-bit
pointer is correctly masked for alignment in all configurations.

Signed-off-by: Chris Fernald <chfernal@microsoft.com>
2026-03-13 13:11:09 +00:00
Vishal Oliyil Kunnil
f09d5e6f51 ArmPkg/ArmLib: Remove unused ArmLibPrivate.h
ArmLibPrivate.h header file is unused. The header was included in
AArch64Lib.c and ArmLib.c but none of its symbols were actually used.

Remove unused private header file. No functional changes.

Signed-off-by: Vishal Oliyil Kunnil <vishalo@qti.qualcomm.com>
2026-03-10 11:14:01 +00:00
Vishal Oliyil Kunnil
33f7389070 ArmPkg: Remove branch prediction control APIs
Remove deprecated branch prediction control APIs from ArmLib and their
callers. These interfaces are not required on AArch64 and do not have
any valid in-tree consumers.

Signed-off-by: Vishal Oliyil Kunnil <vishalo@qti.qualcomm.com>
2026-03-09 19:18:00 +00:00
Aaron Pop
3f542ff572 ArmPkg: ArmStandaloneMmCoreEntryPoint add missing guid
Guid gEfiMmCommunicateHeaderV3Guid is consumed in
ValidateMmCommBufferAddr, but the Guid is not defined
in the INF guids section, resulting in a build error
of unresolved external.

Signed-off-by: Aaron Pop <aaronpop@microsoft.com>
2026-02-27 06:18:12 +00:00
Michael Kubacki
a0f4ffffff ArmPkg: Replace include guards with #pragma once
Replace traditional `#ifndef`/`#define`/`#endif` include guards with
`#pragma` once.

`#pragma once` is a widely supported preprocessor directive that
prevents header files from being included multiple times. It is
supported by all toolchains used to build edk2: GCC, Clang/LLVM, and
MSVC.

Compared to macro-based include guards, `#pragma once`:

- Eliminates the risk of macro name collisions or copy/paste errors
  where two headers inadvertently use the same guard macro.
- Eliminate inconsistency in the way include guard macros are named
  (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.).
- Reduces boilerplate (three lines replaced by one).
- Avoids polluting the macro namespace with guard symbols.
- Can improve build times as the preprocessor can skip re-opening the
  file entirely, rather than re-reading it to find the matching
  `#endif` ("multiple-include optimization").
  - Note that some compilers may already optimize traditional include
    guards, by recognzining the idiomatic pattern.

This change is made acknowledging that overall portability of the
code will technically be reduced, as `#pragma once` is not part of the
C/C++ standards.

However, this is considered acceptable given:

1. edk2 already defines a subset of supported compilers in
   BaseTools/Conf/tools_def.template, all of which have supported
   `#pragma once` for over two decades.
2. There have been concerns raised to the project about inconsistent
   include guard naming and potential macro collisions.

Approximate compiler support dates:

- MSVC: Supported since Visual C++ 4.2 (1996)
- GCC: Supported since 3.4 (2004)
  (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html)
- Clang (LLVM based): Since initial release in 2007

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2026-02-23 21:01:28 +00:00
dhiineshm
e0f8dc155f ArmPkg: Replace non-ASCII characters with ASCII
Replacing the non-ASCII characters with ASCII characters fixes build failures onWindows systems using non-English locales. These characters trigger MSVC warningC4819 (“file contains a character that cannot be represented in the current codepage”), which becomes an error when /WX is enabled.

Cc: Sachin Ganesh <sachinganesh@ami.com>
Signed-off-by: dhiineshm <dhiineshm@ami.com>
2026-02-02 03:24:17 +00:00
Levi Yun
0d6e438a6f ArmPkg/Library: separate request parsing from DelegatedEventLoop()
Separate request parsing from DelegatedEventLoop() to
improve the readibility of this function.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-01-15 21:26:20 +00:00
Levi Yun
f808bc1e60 ArmPkg/Library: introduce FmpDeviceLib using Firmware update ABI
FmpDeviceLib is platform specific library which is used to update
firmware using CapsuleUpdate framework via FmpDevicePkg in edk2.

According to Platform Security Firmware Update for A-profile:
        https://developer.arm.com/documentation/den0118/latest,
FmpPsaFwuLib is implementation of FmpDeviceLib using PsaFwuLib
implementing firmware update ABI.

Here is brief view how it works

    UEFI (Normal world)          |        StandaloneMm (Secure world)
---------------------------------|--------------------------------------
                                 |                             +-------+
                                 |                    ---------|  Fws  |
                                 |                    |        +-------+
+------------------+             |                    |       (Gpt parted)
|   FmpDevicePkg   |             |  Read /Write Image |
+------------------+             |                    |
  |                              |        +-------------------+
  |  SetTheImage and etc         |        |  FwsPlatformLib   |
  |  progress via FmpDeviceLib   |        +-------------------+
  |                              |                  |
  |                              |  Parsing Request | Access Fws via
  |                              |                  | FwsPlatformLib
  |                              |                  |
  |                              |                  |
  -> +---------------------+   PSA ABI (FF-A)    +-------------------+
     |  FmpDevicePsaFwuLib |<------------------> |     FwuSmm.c      |
     |   (FmpDeviceLib)    |   PSA Error code    +-------------------+
     +---------------------+     |

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-01-15 21:26:20 +00:00
Levi Yun
cc883371e7 ArmPkg/StandaloneMmCpu: pass ARM_MM_HANDLER_CONTEXT to MmHandler
Pass ARM_MM_HANDLER_CONTEXT to MmHandler
so it can determine:

  - whether the request came via FF-A or SPM_MM mode
  - the service type
  - whether it is a secure request or the source partition ID

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-01-15 21:26:20 +00:00
Levi Yun
f63875271d ArmPkg/Library/StandaloneMmEntryPoint: introduce IsSecureMmCommBufferAddr()
To verify whether MM communication uses a secure buffer,
introduce the IsSecureMmCommBufferAddr() function.

This is a preparatory patch for MM context generation on Arm.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-01-15 21:26:20 +00:00
Oliver Smith-Denny
237ba0204c ArmPkg: Add Required Library Classes for ArmTransferListLib
CLANGPDB catches that ArmTransferListLib does not include
all of the libraries it requires. This adds them.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-01-15 17:10:46 +00:00
Oliver Smith-Denny
de4593ca00 ArmPkg: ArmStandaloneMmCoreEntryPoint: Add CLANGPDB Support
ArmStandaloneMmCoreEntryPoint supports a scenario of building
StandaloneMmCore into OP-TEE and doing self-relocation. This
requires a PIE image, which PE targets do not support. As such,
this scenario is not supported for CLANGPDB.

This commit updates the comment and scopes -fpie to GCC/CLANGDWARF.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-01-15 17:10:46 +00:00
Oliver Smith-Denny
969879cb28 MdePkg, ArmPkg, ArmPlatformPkg: Create VECTOR_TABLE Macro
Currently, there exists VECTOR_BASE, VECTOR_ENTRY, and VECTOR_END
macros for defining things such as exception vectors. They are
intended to be used as follows:

VECTOR_BASE()
VECTOR_ENTRY()
<some code>
<more VECTOR_ENTRY() code pairings>
VECTOR_END()

This creates a non-enforceable requirement to do this, if
VECTOR_END isn't used, the vector size isn't enforced and
the image section won't be restored to .text. This commit
removes VECTOR_BASE and VECTOR_END and creates a
VECTOR_TABLE macro that encapsulates the behavior of the
two macros, sandwiching the developer provided VECTOR_ENTRY
and code pairings inbetween.

This enforces that VECTOR_BASE and VECTOR_END are used together
and correctly set up/tear down the vector area.

This commit also updates the only users of these macros at the
same time to avoid a build breakage.

Continuous-integration-options: PatchCheck.ignore-multi-package

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-01-15 17:10:46 +00:00
Oliver Smith-Denny
0478192641 ArmPkg: ArmExceptionLib: Drop ExceptionHandlersEnd
The ExceptionHandlersEnd symbol is placed in the wrong
section because it comes after the VECTOR_END macro.
However, this symbol is also completely unused, so this
commit removes it.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-01-15 17:10:46 +00:00
Gowtham M
1c74842bd0 ArmPkg/Library: fix: Incorrect SectionLength Calculation.
Ref:[059332b]
Rootcause:  The SectionLength was incorrectly computed using
the FFS_FILE_SIZE() macro. This macro operates on the
EFI_FFS_FILE_HEADER structure, which is incompatible with the
SECTION_SIZE header format.
This mismatch introduces a potential defect due to inaccurate
section size calculation.

Solution: To ensure correctness and structural alignment,
SectionLength must be computed using the SECTION_SIZE macro
defined in MdePkg\Include\Pi\PiFirmwareFile.h.
This macro performs size extraction using byte-wise access.

Cc: Sachin Ganesh <sachinganesh@ami.com>
Signed-off-by: Gowtham M <gowthamm@ami.com>
2025-11-08 00:42:20 +00:00
Gowtham M
059332bda3 ArmPkg/Library: Fix for coverity issue OVERRUN
RootCause: SectionSize, SectionLength and FileLength are declared as
UINTN, UINTN and UINT32 but are typecast to UINT32 and masked
with 0x00FFFFFF to store only the lower 24 bits.
Although this approach yields the correct result,
it introduces a potential security vulnerability due to
unsafe typecasting and dereferencing.

Solution: Using the predefined macro FFS_FILE_SIZE()
from MdePkg\Include\Pi\PiFirmwareFile.h,
which safely performs the same operation by reconstruct
the size using individual byte access.

Cc: Sachin Ganesh <sachinganesh@ami.com>
Signed-off-by: Gowtham M <gowthamm@ami.com>
2025-11-05 02:28:06 +00:00
Leif Lindholm
d52fa6da67 ArmPkg: rename ArmMtlNullLib
By edk2 convention, a NULL library should be called *LibNull.
ArmMtlNullLib did not follow this convention, so rename it
ArmMtlLibNull.

Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-10-02 15:42:07 +01:00
Sarah Walker
3916260189 ArmPkg/ArmLib: Add 52-bit VA support helper (LPA2)
Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
2025-10-01 11:14:56 +00:00
Oliver Smith-Denny
80de048c1b ArmPkg: Remove ARM32 Support
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>
2025-09-25 22:04:10 +00:00
Oliver Smith-Denny
cdc8858e19 ArmPkg: Remove ARM32 Support from ArmLib
edk2 is dropping support for the ARM32 architecture. This
commit removes ARM32 files from ArmLib.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2025-09-25 22:04:10 +00:00
Oliver Smith-Denny
4261eb1bef ArmPkg: Remove ARM32 Support from ArmHvcLib
edk2 is dropping support for the ARM32 architecture. This
commit removes ARM32 files from ArmHvcLib.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2025-09-25 22:04:10 +00:00
Oliver Smith-Denny
889676ac60 ArmPkg: Remove ARM32 Support from ArmMonitorLib
edk2 is dropping support for the ARM32 architecture. This
commit removes ARM32 files from ArmMonitorLib.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2025-09-25 22:04:10 +00:00
Oliver Smith-Denny
79e9dee6c7 ArmPkg: Remove ARM32 Support from ArmExceptionLib
edk2 is dropping support for the ARM32 architecture. This
commit removes ARM32 files from ArmExceptionLib.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2025-09-25 22:04:10 +00:00
Oliver Smith-Denny
f75198f592 ArmPkg: Remove ARM32 Support from ArmStandaloneMmCoreEntryPoint
edk2 is dropping support for the ARM32 architecture. This
commit removes ARM32 files from ArmStandaloneMmCoreEntryPoint.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2025-09-25 22:04:10 +00:00
Oliver Smith-Denny
88b5cb3e12 ArmPkg: Remove ARM32 Support from DefaultExceptionHandlerLib
edk2 is dropping support for the ARM32 architecture. This
commit removes ARM32 files from DefaultExceptionHandlerLib.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2025-09-25 22:04:10 +00:00
Oliver Smith-Denny
bacb949dd9 ArmPkg: Remove ARM32 Support from SemiHostFs
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>
2025-09-25 22:04:10 +00:00
Oliver Smith-Denny
cebf57e701 ArmPkg: Remove ARM32 Comments and Supported Arch
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>
2025-09-25 22:04:10 +00:00
Levi Yun
5025fc1eda ArmPkg/ArmTransferList: add TPM_EVENT_LOG information
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-29 17:37:43 +00:00
Levi Yun
a9cad8a1fb ArmPkg/Library/ArmTransferList: add helper to get TransferList
Add helper to get TrnasferList from HOB list.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2025-08-29 17:37:43 +00:00
Prachotan Reddy Bathi
e841099600 ArmPkg/ArmTransferListLib: Add utility functions
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-24 05:59:45 +00:00
Sarah Walker
e1ac8b32a6 ArmPkg: ArmLib: Add functions to read AA64PFR2 and check GICv5 support
Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
2025-07-15 02:10:39 +00:00
GuoMinJ
91a9ad4349 ArmPkg: Remove UGA support
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-08 15:42:03 +00:00
Ajan Zhong
5b3bb5939e ArmPkg,MdePkg,UefiCpuPkg,ArmPlatformPkg,ArmVirtPkg,UefiPayloadPkg: Move 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-04 22:39:10 +00:00
Ajan Zhong
07fc968c8f ArmPkg: Drop PcdNormalMemoryNonshareableOverride support
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-04 22:39:10 +00:00