<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/ArmPlatformPkg/Sec, branch dependabot/github_actions/actions/setup-python-7</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-02-23T21:01:28+00:00</updated>
<entry>
<title>ArmPlatformPkg: Replace include guards with #pragma once</title>
<updated>2026-02-23T21:01:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2026-02-03T17:22:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c61d1c275368ca651c8638d193c5d326869fdd84'/>
<id>urn:sha1:c61d1c275368ca651c8638d193c5d326869fdd84</id>
<content type='text'>
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 &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdePkg, ArmPkg, ArmPlatformPkg: Create VECTOR_TABLE Macro</title>
<updated>2026-01-15T17:10:46+00:00</updated>
<author>
<name>Oliver Smith-Denny</name>
<email>osde@microsoft.com</email>
</author>
<published>2026-01-09T18:43:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=969879cb28d15a4de562ad9b63b0f6b72b8cb7c2'/>
<id>urn:sha1:969879cb28d15a4de562ad9b63b0f6b72b8cb7c2</id>
<content type='text'>
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()
&lt;some code&gt;
&lt;more VECTOR_ENTRY() code pairings&gt;
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 &lt;osde@microsoft.com&gt;
</content>
</entry>
<entry>
<title> ArmPlatformPkg: Remove ARM32 Support from Sec</title>
<updated>2025-09-25T22:04:10+00:00</updated>
<author>
<name>Oliver Smith-Denny</name>
<email>osde@microsoft.com</email>
</author>
<published>2025-09-22T18:06:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=dc1ccc9daf56f41f6a60be2df4f78cc629054c76'/>
<id>urn:sha1:dc1ccc9daf56f41f6a60be2df4f78cc629054c76</id>
<content type='text'>
edk2 is dropping support for the ARM32 architecture. This
commit removes ARM32 files from Sec.

Signed-off-by: Oliver Smith-Denny &lt;osde@microsoft.com&gt;
</content>
</entry>
<entry>
<title>ArmPlatformPkg: Introduce gArmTransferListPpiGuid</title>
<updated>2025-07-24T05:59:45+00:00</updated>
<author>
<name>Prachotan Bathi</name>
<email>prachotan.bathi@arm.com</email>
</author>
<published>2025-07-16T18:50:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c1e3e71643db005a0bd9bd173333b68a1643ad74'/>
<id>urn:sha1:c1e3e71643db005a0bd9bd173333b68a1643ad74</id>
<content type='text'>
Populate the gArmTransferListPpiGuid with the TransferList
base address.
Place the Ppi at the end of the PpiList
For platforms with no TransferList support,
boot continues without any errors.
https://firmwarehandoff.github.io/firmware_handoff

Signed-off-by: Prachotan Bathi &lt;prachotan.bathi@arm.com&gt;
</content>
</entry>
<entry>
<title>ArmPlatformPkg: Capture TransferList Information for SEC</title>
<updated>2025-07-24T05:59:45+00:00</updated>
<author>
<name>Prachotan Bathi</name>
<email>prachotan.bathi@arm.com</email>
</author>
<published>2025-07-01T16:28:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=6a329eb853d177a8ba608d3503f394b906e9e6a8'/>
<id>urn:sha1:6a329eb853d177a8ba608d3503f394b906e9e6a8</id>
<content type='text'>
Capture TransferList address from register x3
Refer to section 3 of the FW Handoff Specification
https://firmwarehandoff.github.io/firmware_handoff
The TransferList header is present at the base address
captured by this variable.
For platforms with no TransferList support,
boot continues without any errors.

Signed-off-by: Prachotan Bathi &lt;prachotan.bathi@arm.com&gt;
</content>
</entry>
<entry>
<title>ArmPlatformPkg/Sec: Re-use SetupExceptionLevel1 when running VHE at EL2</title>
<updated>2025-05-28T19:09:22+00:00</updated>
<author>
<name>Ard Biesheuvel</name>
<email>ardb@kernel.org</email>
</author>
<published>2025-05-27T15:52:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=5b80d7944d197494a84de42a5ba084769865a3d8'/>
<id>urn:sha1:5b80d7944d197494a84de42a5ba084769865a3d8</id>
<content type='text'>
Given that CPACR_EL1 is aliased to CPTR_EL2 when running at EL2 with VHE
enabled, we can just fall back to SetupExceptionLevel1() instead of
fiddling with the init values for CPTR_EL2.

While at it, use the existing define to refer to the E2H bit in HCR_EL2.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>ArmPlatformPkg/Sec: Simplify SetupExceptionLevel1() using a tail call</title>
<updated>2025-05-28T19:09:22+00:00</updated>
<author>
<name>Ard Biesheuvel</name>
<email>ardb@kernel.org</email>
</author>
<published>2025-05-27T15:19:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=9cd4328f5ea59859e66e6052acb904e3eb1ea042'/>
<id>urn:sha1:9cd4328f5ea59859e66e6052acb904e3eb1ea042</id>
<content type='text'>
Avoid a call and use a jump instead, so that the LR value does not
need to be recorded in a different register. This is generally neater,
but it also avoids potential confusion in the debugger, given that no
frame record is created for this call.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>ArmPlatformPkg/Sec: Remove EL1 timer setup when booting at EL2</title>
<updated>2025-05-28T19:09:22+00:00</updated>
<author>
<name>Ard Biesheuvel</name>
<email>ardb@kernel.org</email>
</author>
<published>2025-05-27T15:45:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=81549ad5e59ff247355f22aa8addd825e89c49c7'/>
<id>urn:sha1:81549ad5e59ff247355f22aa8addd825e89c49c7</id>
<content type='text'>
Even though the UEFI spec mentions that the EL1PCTEN and EL1PCEN bits in
CNTHCTL_EL2 must be set, this is not a requirement that applies to the
UEFI implementation, but a requirement that applies to the firmware
running at EL2 in cases where UEFI executes at EL1. (Note that the same
paragraphs mentions that CNTFRQ must be programmed with the timer
frequency, and this is only permitted at EL3).

Setting these bits has no effect when executing at EL2, and it is the
OS's job to reason about how to configure lower exception levels.

So drop the initialization of CNTHCTL_EL2.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>ArmPlatformPkg/Sec: Deal with entry at EL2 with VHE enabled</title>
<updated>2025-05-27T15:12:31+00:00</updated>
<author>
<name>Ard Biesheuvel</name>
<email>ardb@kernel.org</email>
</author>
<published>2025-05-27T14:06:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=9c58104ba8732747f0238a178dfe99c6d59b37f7'/>
<id>urn:sha1:9c58104ba8732747f0238a178dfe99c6d59b37f7</id>
<content type='text'>
The architecture now permits HCR_EL2.E2H to be RES1, and so even though
the UEFI spec is silent on the matter, entering at EL2 with VHE enabled
is a condition that needs to be dealt with. In particular, virtual
machines running under nested virtualization on Apple M2 or newer will
enter in this manner

In this case, the CPTR_EL2 system register needs to be treated as if its
layout is identical to CPACR_EL1. Not doing so may result in all kinds
of surprises, but the most noticeable is an early crash on the use of
FP/SIMD registers, which get disabled inadvertently by this code.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>ArmPlatformPkg/Sec: clean up FP enabling code</title>
<updated>2025-04-11T12:48:56+00:00</updated>
<author>
<name>Leif Lindholm</name>
<email>leif.lindholm@oss.qualcomm.com</email>
</author>
<published>2025-04-08T17:18:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=6952d1fa901a9053abe46c317ee820fc28a2835d'/>
<id>urn:sha1:6952d1fa901a9053abe46c317ee820fc28a2835d</id>
<content type='text'>
UEFI defines that FP support is required on AArch64, whereas many
platforms enable it anyway on Arm. But when it's enabled, C code can
generate instructions targeting FP registers, so:

- move ArmEnableVFP call to asm
- make it unconditional on AArch64

Signed-off-by: Leif Lindholm &lt;leif.lindholm@oss.qualcomm.com&gt;
</content>
</entry>
</feed>
