<feed xmlns='http://www.w3.org/2005/Atom'>
<title>software/arm-trusted-firmware.git/include/lib/cpus/aarch64/cpu_macros.S, branch master</title>
<subtitle>Trusted Firmware-A</subtitle>
<id>https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/atom?h=master</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/'/>
<updated>2026-06-30T14:56:12+00:00</updated>
<entry>
<title>feat: place errata into their own section</title>
<updated>2026-06-30T14:56:12+00:00</updated>
<author>
<name>John Powell</name>
<email>john.powell@arm.com</email>
</author>
<published>2026-06-22T21:54:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=8e41e5c6e976b4a8ede38a3932a6d89dc0259842'/>
<id>urn:sha1:8e41e5c6e976b4a8ede38a3932a6d89dc0259842</id>
<content type='text'>
This patch moves CPU reset functions and reset errata workarounds
into their own linker subsections .text.errata and .rodata.errata,
as well as modifies CPU macros to allow this.

When BL31 LFA is integrated later, this allows these subsections
to be grouped together and padded, allowing them to be updated
during live activation without affectinn the rest of the BL31
image.

Signed-off-by: John Powell &lt;john.powell@arm.com&gt;
Change-Id: Id6f248fa796a998152e4e0b946fa3717cb0cfbf6
</content>
</entry>
<entry>
<title>fix(cpus): check __clang_major__ is defined</title>
<updated>2026-06-22T17:42:36+00:00</updated>
<author>
<name>Yann Gautier</name>
<email>yann.gautier@st.com</email>
</author>
<published>2026-05-22T15:15:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=1266b4492d33780d5cf075b5cf028fc238022da8'/>
<id>urn:sha1:1266b4492d33780d5cf075b5cf028fc238022da8</id>
<content type='text'>
First check __clang_major__ is defined, before checking its value. This
is done the same way in lib/compiler-rt/builtins/int_types.h.
This corrects a compiler warning with -Wundef.

Change-Id: Ibd8b1014542e787eece799934b9c8bf8f93bb21a
Signed-off-by: Yann Gautier &lt;yann.gautier@st.com&gt;
</content>
</entry>
<entry>
<title>feat(cpus): add sysreg_lazy_* macros for batched read-modify-write</title>
<updated>2026-04-23T17:47:39+00:00</updated>
<author>
<name>Varun Wadekar</name>
<email>vwadekar@nvidia.com</email>
</author>
<published>2026-04-17T10:21:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=b5b57691b917056bbfb78770d79dca639b70617c'/>
<id>urn:sha1:b5b57691b917056bbfb78770d79dca639b70617c</id>
<content type='text'>
This patch introduces five assembly macros that collapse multiple
bit-manipulation operations on the same system register into a
single mrs/msr pair:

  sysreg_lazy_start  _reg   -- read register into x1
  sysreg_lazy_set    _bit   -- ORR bit into x1 (any 64-bit mask)
  sysreg_lazy_clear  _bit   -- BIC bit from x1 (any 64-bit mask)
  sysreg_lazy_insert _src, _lsb, _width -- BFI into x1
  sysreg_lazy_commit _reg   -- write x1 back to register

Each sysreg_bit_set / sysreg_bit_clear / sysreg_bitfield_insert call
issues its own mrs+msr pair.  When several of those target the same
register the reads and writes are redundant.  The lazy helpers
replace N reads and N writes with one read and one write.

x1 holds the accumulated register value between start and commit.
x0 is used as a scratch register by sysreg_lazy_set,
sysreg_lazy_clear, and sysreg_lazy_insert.  mov_imm is used for bit
values to support arbitrary 64-bit masks, consistent with the
existing hand-written mrs/mov_imm/orr/msr patterns in CPU files.

Change-Id: Iaaf0e4bd7ba85c69d9063b012a9066b3ba40b58e
Signed-off-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
</content>
</entry>
<entry>
<title>perf(cpus): reduce the footprint of errata reporting</title>
<updated>2026-01-08T09:28:54+00:00</updated>
<author>
<name>Boyan Karatotev</name>
<email>boyan.karatotev@arm.com</email>
</author>
<published>2025-12-19T10:45:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=9718d0db921139854e617d1791c6949489c45430'/>
<id>urn:sha1:9718d0db921139854e617d1791c6949489c45430</id>
<content type='text'>
Since the advent of spin_trylock() it's possible to combine the spinlock
with the errata_reported field. If the spinlock is only acquired with a
non-blocking call then a successful call means reporting should be done
and an unsuccessful one means that reporting would have been done by
whoever acquired it. This relies on the lock never being released which
this patch does. The effect is a smaller memory footprint and a smaller
runtime.

Change-Id: I215a84bd2c91e33703349c41fc59f654f7764b2f
Signed-off-by: Boyan Karatotev &lt;boyan.karatotev@arm.com&gt;
</content>
</entry>
<entry>
<title>feat(psci): check that CPUs handled a pabandon</title>
<updated>2025-07-25T09:37:03+00:00</updated>
<author>
<name>Boyan Karatotev</name>
<email>boyan.karatotev@arm.com</email>
</author>
<published>2025-03-25T12:03:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=461b62b548cf57e97b22081d889ebec1b8c71a82'/>
<id>urn:sha1:461b62b548cf57e97b22081d889ebec1b8c71a82</id>
<content type='text'>
Up to now PSCI assumed that if a pabandon happened then the CPU driver
will have handled it. This patch adds a simple protocol to make sure
that this is indeed the case. The chosen method is with a return value
that is highly unlikely on cores that are unaware of pabandon (x0 will
be primed with 1 and if used should be overwritten with the value of
CPUPWRCTLR_EL1 which should have its last bit set to power off and its
top bits RES0; the ACK value is chosen to be the exact opposite). An
alternative method would have been to add a field in cpu_ops, however
that would have required more major refactoring across many cpus and
would have taken up more memory on older platforms, so it was not
chosen.

Change-Id: I5826c0e4802e104d295c4ecbd80b5f676d2cd871
Signed-off-by: Boyan Karatotev &lt;boyan.karatotev@arm.com&gt;
</content>
</entry>
<entry>
<title>feat(cpus): update cpu_check_csv2 check</title>
<updated>2025-06-04T15:08:37+00:00</updated>
<author>
<name>Arvind Ram Prakash</name>
<email>arvind.ramprakash@arm.com</email>
</author>
<published>2025-06-02T21:53:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=2b43216593f10ca55ba64d4990d1079083448835'/>
<id>urn:sha1:2b43216593f10ca55ba64d4990d1079083448835</id>
<content type='text'>
Update the cpu_check_csv2 logic to allow ID_AA64PFR0_EL1.CSV2
values up to 3. With the introduction of FEAT_CSV2_3,
the architectural limit for CSV2 has been extended,
making values from 0 to 3 valid.

Signed-off-by: Arvind Ram Prakash &lt;arvind.ramprakash@arm.com&gt;
Change-Id: I8473047ed4ad759b7b506161a76774ac21555d31
</content>
</entry>
<entry>
<title>Merge changes I005586ef,I0d4d74bc into integration</title>
<updated>2025-04-25T14:09:02+00:00</updated>
<author>
<name>Govindraj Raja</name>
<email>govindraj.raja@arm.com</email>
</author>
<published>2025-04-25T14:09:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=b1e1f42ebdddb988674c911179b0fa61f34ec65b'/>
<id>urn:sha1:b1e1f42ebdddb988674c911179b0fa61f34ec65b</id>
<content type='text'>
* changes:
  fix(cpufeat): replace "bti" mnemonic with hint instructions
  fix(cpufeat): improve xpaci wrapper
</content>
</entry>
<entry>
<title>fix(cpufeat): replace "bti" mnemonic with hint instructions</title>
<updated>2025-04-25T14:08:06+00:00</updated>
<author>
<name>Andre Przywara</name>
<email>andre.przywara@arm.com</email>
</author>
<published>2025-04-15T12:24:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=bdac600bc8c61e2facdd0b872cacfb7a24045fe4'/>
<id>urn:sha1:bdac600bc8c61e2facdd0b872cacfb7a24045fe4</id>
<content type='text'>
Older GNU binutils version require to specify at least "armv8.5-a" for
the ARM architecture revision to accept "bti" instructions in the
assembly code. Binutils v2.35 have relaxed this, since "bti" is in the
hint space, so is ignored on older cores and does NOT require a BTI
enabled core to execute.

To not exclude those older binutils versions (as shipped with Ubuntu
20.04), use the "hint" encoding for the "bti" instructions, which are
accepted regardless of the minimum architecture revision. Hide this
encoding in a macro, to make the "bti" usage more readable in the
source code.

Change-Id: I005586efd8974a3f2c7202896c881bb5fed07eea
Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
</content>
</entry>
<entry>
<title>refactor(cpus): optimize CVE checking</title>
<updated>2025-04-23T14:57:01+00:00</updated>
<author>
<name>Arvind Ram Prakash</name>
<email>arvind.ramprakash@arm.com</email>
</author>
<published>2025-04-04T19:19:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=fd04156eb792963cb21144063e421d074efa6386'/>
<id>urn:sha1:fd04156eb792963cb21144063e421d074efa6386</id>
<content type='text'>
This patch replaces the use of EXTRA functions
with using erratum entries check
to verify CVE mitigation application for some of
the SMCCC_ARCH_WORKAROUND_* calls.

Previously, EXTRA functions were individually implemented for
each SMCCC_ARCH_WORKAROUND_*, an approach that becomes unmanageable
with the increasing number of workarounds.
By looking up erratum entries for CVE check, the process is streamlined,
reducing overhead associated with creating and
maintaining EXTRA functions for each new workaround.

New Errata entries are created for SMC workarounds and
that is used to target cpus that are uniquely impacted
by SMC workarounds.

Signed-off-by: Arvind Ram Prakash &lt;arvind.ramprakash@arm.com&gt;
Change-Id: I873534e367a35c99461d0a616ff7bf856a0000af
</content>
</entry>
<entry>
<title>fix(cpus): fix clang compilation issue</title>
<updated>2025-04-08T15:47:17+00:00</updated>
<author>
<name>Govindraj Raja</name>
<email>govindraj.raja@arm.com</email>
</author>
<published>2025-04-03T17:57:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/arm/software/arm-trusted-firmware.git/commit/?id=bdaf0d9ba71c1fd17f5d35f8fd2a6205136116a3'/>
<id>urn:sha1:bdaf0d9ba71c1fd17f5d35f8fd2a6205136116a3</id>
<content type='text'>
A potential problem with clang version &lt; 17 can cause resolving nested
'cfi_startproc' to fail compilation.

So add a variant of check_errara/reset_macros that is compatible with
clang version &lt; 17 to ignore `cfi_startproc` and `cfi_endproc`.

This wouldn't cause any performance issue and will not affect any
functional behaviour.

Change-Id: I46147af2dd0accd5be14ddb26dea03bb2f87cba8
Signed-off-by: Govindraj Raja &lt;govindraj.raja@arm.com&gt;
</content>
</entry>
</feed>
