<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/ArmPlatformPkg/Sec, branch dependabot/github_actions/actions/setup-python-6</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-6</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-6'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2025-07-24T05:59:45+00:00</updated>
<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>
<entry>
<title>MdePkg: Move StackCheckLibStaticInit to StackCheckLib</title>
<updated>2025-02-07T02:23:11+00:00</updated>
<author>
<name>Oliver Smith-Denny</name>
<email>osde@microsoft.com</email>
</author>
<published>2025-01-29T19:01:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=efbf5ed08c48478b51bb6b6da5670b1312755854'/>
<id>urn:sha1:efbf5ed08c48478b51bb6b6da5670b1312755854</id>
<content type='text'>
This commit oves StackCheckLib from a NULL lib to an instance of
StackCheckLib. This requires every entry point to add a library
dependency on StackCheckLib. It also requires every SEC module
to have a dependency on StackCheckLib because there is no
standard SEC entry point.

It allows for greater flexibility for a platform to apply stack
cookies and simplifies DSC logic.

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

Signed-off-by: Oliver Smith-Denny &lt;osde@microsoft.com&gt;
</content>
</entry>
<entry>
<title>ArmPlatformPkg: Honour RES1 fields in CPTR_EL2</title>
<updated>2024-11-14T06:25:27+00:00</updated>
<author>
<name>Jessica Clarke</name>
<email>jrtc27@jrtc27.com</email>
</author>
<published>2024-11-06T16:38:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=cb87aada970c68c1a210ed68a4a1ce238623e3c3'/>
<id>urn:sha1:cb87aada970c68c1a210ed68a4a1ce238623e3c3</id>
<content type='text'>
Unlike CPACR_EL1 whose reserved bits are solely RES0, CPTR_EL2 has some
RES1 bits, and so we should not clear them unless we know what they
mean. For example, when SVE was introduced, CPACR_EL1.ZEN occupied a
RES0 field and thus 0 means trap (which is what we get at EL1), but
CPTR_EL2.TZ occupied a RES1 field and thus 1 means trap, but we set it
to 0, so the environment is inconsistent between EDK2 and EL1 and EL2.
Another concrete case is for Morello, where the CEN/TC fields similarly
gate access to capability register state, but also alter exception
delivery and return, such that VBAR_ELx and ELR_ELx become capabilities.
So long as software adheres to RES0/1 this is backwards-compatible, but
since EDK2 does not do so here it inadvertently enables capability-based
exception delivery and return and thus, when run at EL2, gets stuck in a
trap loop when taking its first interrupt, but works just fine at EL1.

Fix this by setting all the RES1 fields in CPTR_EL2, following the
pattern for CPACR_EL1's non-zero initial value (due to setting FPEN so
as to not trap on SIMD/FP use), tested by running ArmVirtQemu-AARCH64
(DEBUG) on Morello QEMU with EL2 enabled.

Signed-off-by: Jessica Clarke &lt;jrtc27@jrtc27.com&gt;
</content>
</entry>
<entry>
<title>ArmPlatformPkg,MdePkg: Rename AARCH64 CPACR_CP_FULL_ACCESS</title>
<updated>2024-11-14T06:25:27+00:00</updated>
<author>
<name>Jessica Clarke</name>
<email>jrtc27@jrtc27.com</email>
</author>
<published>2024-11-06T21:26:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=ef35863880ab7728e69c690603afb77182cb14ea'/>
<id>urn:sha1:ef35863880ab7728e69c690603afb77182cb14ea</id>
<content type='text'>
CP_FULL_ACCESS is a misnomer, we only enable access to SIMD/FP state,
and although the register's mnemonic is CPACR_EL1, its full name is
"Architectural Feature Access Control Register", with AArch64 having no
coprocessors like AArch32 did, so the "CP" is also not appropriate.
Rename it to show it's the default value we use on entry, and define it
in terms of the existing CPACR_FPEN_FULL rather than a magic constant
with the same value to more clearly document that fact. Also update
comments to reflect all this (including the CPTR_EL2 case).

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Jessica Clarke &lt;jrtc27@jrtc27.com&gt;
</content>
</entry>
</feed>
