<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm63xx/atf/bl31, branch master</title>
<subtitle>Broadcom-s Trusted Firmware A</subtitle>
<id>https://git.openwrt.org/project/bcm63xx/atf/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/bcm63xx/atf/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/'/>
<updated>2021-12-24T12:15:12Z</updated>
<entry>
<title>Add Broadcom's code for bcm63xx support</title>
<updated>2021-12-24T12:15:12Z</updated>
<author>
<name>Rafał Miłecki</name>
</author>
<published>2021-12-24T12:15:12Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/commit/?id=e6d46baf3fae79f693f90bf34f7284c3dfc64aef'/>
<id>urn:sha1:e6d46baf3fae79f693f90bf34f7284c3dfc64aef</id>
<content type='text'>
This includes all bcm63xx families (some of them don't follow that
naming schema - like BCM4908). All that code has been extracted from the
RAXE500_RAXE450-V1.0.8.70_GPL_release.zip .

Signed-off-by: Rafał Miłecki &lt;rafal@milecki.pl&gt;
</content>
</entry>
<entry>
<title>Neoverse N1 Errata Workaround 1542419</title>
<updated>2019-10-04T16:31:24Z</updated>
<author>
<name>laurenw-arm</name>
</author>
<published>2019-08-20T20:51:24Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/commit/?id=80942622fe760c23f0a677eac48aff37e90f4251'/>
<id>urn:sha1:80942622fe760c23f0a677eac48aff37e90f4251</id>
<content type='text'>
Coherent I-cache is causing a prefetch violation where when the core
executes an instruction that has recently been modified, the core might
fetch a stale instruction which violates the ordering of instruction
fetches.

The workaround includes an instruction sequence to implementation
defined registers to trap all EL0 IC IVAU instructions to EL3 and a trap
handler to execute a TLB inner-shareable invalidation to an arbitrary
address followed by a DSB.

Signed-off-by: Lauren Wehrmeister &lt;lauren.wehrmeister@arm.com&gt;
Change-Id: Ic3b7cbb11cf2eaf9005523ef5578a372593ae4d6
</content>
</entry>
<entry>
<title>Refactor ARMv8.3 Pointer Authentication support code</title>
<updated>2019-09-13T13:11:59Z</updated>
<author>
<name>Alexei Fedorov</name>
</author>
<published>2019-09-13T13:11:59Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/commit/?id=ed108b56051de5da8024568a06781ce287e86c78'/>
<id>urn:sha1:ed108b56051de5da8024568a06781ce287e86c78</id>
<content type='text'>
This patch provides the following features and makes modifications
listed below:
- Individual APIAKey key generation for each CPU.
- New key generation on every BL31 warm boot and TSP CPU On event.
- Per-CPU storage of APIAKey added in percpu_data[]
  of cpu_data structure.
- `plat_init_apiakey()` function replaced with `plat_init_apkey()`
  which returns 128-bit value and uses Generic timer physical counter
  value to increase the randomness of the generated key.
  The new function can be used for generation of all ARMv8.3-PAuth keys
- ARMv8.3-PAuth specific code placed in `lib\extensions\pauth`.
- New `pauth_init_enable_el1()` and `pauth_init_enable_el3()` functions
  generate, program and enable APIAKey_EL1 for EL1 and EL3 respectively;
  pauth_disable_el1()` and `pauth_disable_el3()` functions disable
  PAuth for EL1 and EL3 respectively;
  `pauth_load_bl31_apiakey()` loads saved per-CPU APIAKey_EL1 from
  cpu-data structure.
- Combined `save_gp_pauth_registers()` function replaces calls to
  `save_gp_registers()` and `pauth_context_save()`;
  `restore_gp_pauth_registers()` replaces `pauth_context_restore()`
  and `restore_gp_registers()` calls.
- `restore_gp_registers_eret()` function removed with corresponding
  code placed in `el3_exit()`.
- Fixed the issue when `pauth_t pauth_ctx` structure allocated space
  for 12 uint64_t PAuth registers instead of 10 by removal of macro
  CTX_PACGAKEY_END from `include/lib/el3_runtime/aarch64/context.h`
  and assigning its value to CTX_PAUTH_REGS_END.
- Use of MODE_SP_ELX and MODE_SP_EL0 macro definitions
  in `msr	spsel`  instruction instead of hard-coded values.
- Changes in documentation related to ARMv8.3-PAuth and ARMv8.5-BTI.

Change-Id: Id18b81cc46f52a783a7e6a09b9f149b6ce803211
Signed-off-by: Alexei Fedorov &lt;Alexei.Fedorov@arm.com&gt;
</content>
</entry>
<entry>
<title>Add UBSAN support and handlers</title>
<updated>2019-09-11T13:15:54Z</updated>
<author>
<name>Justin Chadwell</name>
</author>
<published>2019-08-20T10:01:52Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/commit/?id=1f4619796af5baf4b41b5723bbf708355f8597fa'/>
<id>urn:sha1:1f4619796af5baf4b41b5723bbf708355f8597fa</id>
<content type='text'>
This patch adds support for the Undefined Behaviour sanitizer. There are
two types of support offered - minimalistic trapping support which
essentially immediately crashes on undefined behaviour and full support
with full debug messages.

The full support relies on ubsan.c which has been adapted from code used
by OPTEE.

Change-Id: I417c810f4fc43dcb56db6a6a555bfd0b38440727
Signed-off-by: Justin Chadwell &lt;justin.chadwell@arm.com&gt;
</content>
</entry>
<entry>
<title>Move assembly newline function into common debug code</title>
<updated>2019-08-29T12:00:59Z</updated>
<author>
<name>Justin Chadwell</name>
</author>
<published>2019-08-20T09:58:49Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/commit/?id=53d7e003fef908db02bc78fb889aa4ab58c9af25'/>
<id>urn:sha1:53d7e003fef908db02bc78fb889aa4ab58c9af25</id>
<content type='text'>
Printing a newline is a relatively common functionality for code to want
to do. Therefore, this patch now moves this function into a common part
of the code that anyone can use.

Change-Id: I2cad699fde00ef8d2aabf8bf35742ddd88d090ba
Signed-off-by: Justin Chadwell &lt;justin.chadwell@arm.com&gt;
</content>
</entry>
<entry>
<title>Merge "AArch64: Disable Secure Cycle Counter" into integration</title>
<updated>2019-08-23T11:26:57Z</updated>
<author>
<name>Paul Beesley</name>
</author>
<published>2019-08-23T11:26:57Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/commit/?id=30560911ddd08880f8a2c8142ce8c69975976adc'/>
<id>urn:sha1:30560911ddd08880f8a2c8142ce8c69975976adc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>AArch64: Disable Secure Cycle Counter</title>
<updated>2019-08-21T14:43:24Z</updated>
<author>
<name>Alexei Fedorov</name>
</author>
<published>2019-08-13T14:17:53Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/commit/?id=e290a8fcbc836d51566da1607add8a320d0f1a20'/>
<id>urn:sha1:e290a8fcbc836d51566da1607add8a320d0f1a20</id>
<content type='text'>
This patch fixes an issue when secure world timing information
can be leaked because Secure Cycle Counter is not disabled.
For ARMv8.5 the counter gets disabled by setting MDCR_El3.SCCD
bit on CPU cold/warm boot.
For the earlier architectures PMCR_EL0 register is saved/restored
on secure world entry/exit from/to Non-secure state, and cycle
counting gets disabled by setting PMCR_EL0.DP bit.
'include\aarch64\arch.h' header file was tided up and new
ARMv8.5-PMU related definitions were added.

Change-Id: I6f56db6bc77504634a352388990ad925a69ebbfa
Signed-off-by: Alexei Fedorov &lt;Alexei.Fedorov@arm.com&gt;
</content>
</entry>
<entry>
<title>AArch64: Align crash reporting output</title>
<updated>2019-08-15T14:23:27Z</updated>
<author>
<name>Alexei Fedorov</name>
</author>
<published>2019-07-29T12:34:07Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/commit/?id=6c6a470fc1c2e1a516214f1f6dbe00ef045d1d0f'/>
<id>urn:sha1:6c6a470fc1c2e1a516214f1f6dbe00ef045d1d0f</id>
<content type='text'>
This patch modifies crash reporting for AArch64 to provide
aligned output of register dump and GIC registers.

Change-Id: I8743bf1d2d6d56086e735df43785ef28051c5fc3
Signed-off-by: Alexei Fedorov &lt;Alexei.Fedorov@arm.com&gt;
</content>
</entry>
<entry>
<title>Fix BL31 crash reporting on AArch64 only machines</title>
<updated>2019-07-22T12:55:34Z</updated>
<author>
<name>Imre Kis</name>
</author>
<published>2019-07-22T09:56:45Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/commit/?id=c424b91eb69802918620aee8404791c3301618f2'/>
<id>urn:sha1:c424b91eb69802918620aee8404791c3301618f2</id>
<content type='text'>
The AArch32 system registers are not listed if the platform supports
AArch64 only.

Change-Id: I087a10ae6e7cad1bb52775a344635dbac1f12679
Signed-off-by: Imre Kis &lt;imre.kis@arm.com&gt;
</content>
</entry>
<entry>
<title>Add support for Branch Target Identification</title>
<updated>2019-05-24T13:44:45Z</updated>
<author>
<name>Alexei Fedorov</name>
</author>
<published>2019-05-24T11:17:09Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/atf/commit/?id=9fc59639e649f614318f78ae2ca103fe102405ec'/>
<id>urn:sha1:9fc59639e649f614318f78ae2ca103fe102405ec</id>
<content type='text'>
This patch adds the functionality needed for platforms to provide
Branch Target Identification (BTI) extension, introduced to AArch64
in Armv8.5-A by adding BTI instruction used to mark valid targets
for indirect branches. The patch sets new GP bit [50] to the stage 1
Translation Table Block and Page entries to denote guarded EL3 code
pages which will cause processor to trap instructions in protected
pages trying to perform an indirect branch to any instruction other
than BTI.
BTI feature is selected by BRANCH_PROTECTION option which supersedes
the previous ENABLE_PAUTH used for Armv8.3-A Pointer Authentication
and is disabled by default. Enabling BTI requires compiler support
and was tested with GCC versions 9.0.0, 9.0.1 and 10.0.0.
The assembly macros and helpers are modified to accommodate the BTI
instruction.
This is an experimental feature.
Note. The previous ENABLE_PAUTH build option to enable PAuth in EL3
is now made as an internal flag and BRANCH_PROTECTION flag should be
used instead to enable Pointer Authentication.
Note. USE_LIBROM=1 option is currently not supported.

Change-Id: Ifaf4438609b16647dc79468b70cd1f47a623362e
Signed-off-by: Alexei Fedorov &lt;Alexei.Fedorov@arm.com&gt;
</content>
</entry>
</feed>
