| #
7303319b |
| 08-Nov-2025 |
Chris Kay <chris.kay@arm.com> |
Merge changes from topic "NUMA_AWARE_PER_CPU" into integration
* changes: docs(maintainers): add per-cpu framework into maintainers.rst feat(per-cpu): add documentation for per-cpu framework f
Merge changes from topic "NUMA_AWARE_PER_CPU" into integration
* changes: docs(maintainers): add per-cpu framework into maintainers.rst feat(per-cpu): add documentation for per-cpu framework feat(rdv3): enable numa aware per-cpu for RD-V3-Cfg2 feat(per-cpu): migrate amu_ctx to per-cpu framework feat(per-cpu): migrate spm_core_context to per-cpu framework feat(per-cpu): migrate psci_ns_context to per-cpu framework feat(per-cpu): migrate psci_cpu_pd_nodes to per-cpu framework feat(per-cpu): migrate rmm_context to per-cpu framework feat(per-cpu): integrate per-cpu framework into BL31/BL32 feat(per-cpu): introduce framework accessors/definers feat(per-cpu): introduce linker changes for NUMA aware per-cpu framework docs(changelog): add scope for per-cpu framework
show more ...
|
| #
962958d3 |
| 29-Jan-2025 |
Rohit Mathew <rohit.mathew@arm.com> |
feat(per-cpu): introduce framework accessors/definers
Introduce per-cpu framework definers and accessors for allocation and access of per-cpu objects. The accessors support "per_cpu_cur" variants fo
feat(per-cpu): introduce framework accessors/definers
Introduce per-cpu framework definers and accessors for allocation and access of per-cpu objects. The accessors support "per_cpu_cur" variants for access on the calling CPU as well as "per_cpu_by_index" variants for access on any CPU. Additionally, the framework supports NUMA-aware allocation, allowing the per-cpu data to be distributed across different memory nodes. This enables the system to allocate per-cpu data on memory nodes closest to the respective CPU, optimising memory access and performance.
Signed-off-by: Sammit Joshi <sammit.joshi@arm.com> Signed-off-by: Rohit Mathew <rohit.mathew@arm.com> Change-Id: I8361602ff626dcfe9405e7e2a28c5d143aaac574
show more ...
|
| #
dfdb73f7 |
| 16-Sep-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "bk/no_blx_setup" into integration
* changes: fix: replace stray BL2_AT_EL3 with RESET_TO_BL2 refactor(aarch64): move BL31 specific setup out of the PSCI entrypoint re
Merge changes from topic "bk/no_blx_setup" into integration
* changes: fix: replace stray BL2_AT_EL3 with RESET_TO_BL2 refactor(aarch64): move BL31 specific setup out of the PSCI entrypoint refactor: unify blx_setup() and blx_main() fix(bl2): unify the BL2 EL3 and RME entrypoints
show more ...
|
| #
d158d425 |
| 13-Aug-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor: unify blx_setup() and blx_main()
All BLs have a bl_setup() for things that need to happen early, a fall back into assembly and then bl_main() for the main functionality. This was necessary
refactor: unify blx_setup() and blx_main()
All BLs have a bl_setup() for things that need to happen early, a fall back into assembly and then bl_main() for the main functionality. This was necessary in order to fiddle with PAuth related things that tend to break C calls. Since then PAuth's enablement has seen a lot of refactoring and this is now worked around cleanly so the distinction can be removed. The only tradeoff is that this requires pauth to not be used for the top-level main function.
There are two main benefits to doing this: First, code is easier to understand as it's all together and the entrypoint is smaller. Second, the compiler gets to see more of the code and apply optimisations (importantly LTO).
Change-Id: Iddb93551115a2048988017547eb7b8db441dbd37 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
ee656609 |
| 16-Apr-2025 |
André Przywara <andre.przywara@arm.com> |
Merge changes Id942c20c,Idd286bea,I8917a26e,Iec8c3477,If3c25dcd, ... into integration
* changes: feat(cpufeat): enable FEAT_PAuth to FEAT_STATE_CHECKED perf(cpufeat): centralise PAuth key saving
Merge changes Id942c20c,Idd286bea,I8917a26e,Iec8c3477,If3c25dcd, ... into integration
* changes: feat(cpufeat): enable FEAT_PAuth to FEAT_STATE_CHECKED perf(cpufeat): centralise PAuth key saving refactor(cpufeat): convert FEAT_PAuth setup to C refactor(cpufeat): prepare FEAT_PAuth for FEATURE_DETECTION chore(cpufeat): remove PAuth presence checks feat(cpufeat): enable FEAT_BTI to FEAT_STATE_CHECKED
show more ...
|
| #
f8138056 |
| 02-Apr-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(cpufeat): convert FEAT_PAuth setup to C
An oversimplified view of FEAT_PAuth is that it's a symmetric encryption of the LR. PAC instructions execute as NOPs until explicitly turned on. So i
refactor(cpufeat): convert FEAT_PAuth setup to C
An oversimplified view of FEAT_PAuth is that it's a symmetric encryption of the LR. PAC instructions execute as NOPs until explicitly turned on. So in a function that turns PAuth on, the signing would have executed as a NOP and the authentication will encrypt the address, leading to a failure. That's why enablement is in assembly - we have full control of when pointer authentications happen.
However, assembly is hard to read, is opaque to the compiler for optimisations, and we need to call into C anyway for the platform hook to get the key. So convert it to C. We can instruct the compiler to not generate branch protection for the enable function only and as long as the caller doesn't do branch protection (and all callers are entrypoints written in assembly) everything will work.
Change-Id: I8917a26e1293033c910e3058664e3ca9207359b7 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
e3108fad |
| 10-Apr-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "lto-by-default" into integration
* changes: fix(libc): make sure __init functions are garbage collected fix(platforms): remove platform_core_pos_helper()
|
| #
53644fa8 |
| 07-Apr-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(libc): make sure __init functions are garbage collected
RECLAIM_INIT_CODE is useful to remove code that is only necessary during boot. However, these functions are generally called once and as s
fix(libc): make sure __init functions are garbage collected
RECLAIM_INIT_CODE is useful to remove code that is only necessary during boot. However, these functions are generally called once and as such prime candidates for inlining. When building with LTO, the compiler is pretty good at inlining every single one, making this option pointless.
So tell the compiler to not inline these functions. This ensures they are kept separate and they can be garbage collected later. This is expected to cost a little bit of speed due to the extra branching.
Change-Id: Ie83a9ec8db03cb42139742fc6d728d12ce8549d3 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
6db9aac6 |
| 12-Feb-2025 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
Merge changes from topic "mb/drtm" into integration
* changes: fix(drtm): fix DLME data size check fix(drtm): sort the address-map in ascending order feat(libc): import qsort implementation
|
| #
277713e0 |
| 21-Jan-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(libc): import qsort implementation
Import qsort implementation from FreeBSD[1] to libc.
[1]: https://cgit.freebsd.org/src/tree/lib/libc/stdlib/qsort.c
Change-Id: Ia0d8e2d1c40c679844c0746db1b6
feat(libc): import qsort implementation
Import qsort implementation from FreeBSD[1] to libc.
[1]: https://cgit.freebsd.org/src/tree/lib/libc/stdlib/qsort.c
Change-Id: Ia0d8e2d1c40c679844c0746db1b669cda672a482 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| #
72e8f245 |
| 08-Aug-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "chore: update to use Arm word across TF-A" into integration
|
| #
4c700c15 |
| 01-Aug-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
chore: update to use Arm word across TF-A
Align entire TF-A to use Arm in copyright header.
Change-Id: Ief9992169efdab61d0da6bd8c5180de7a4bc2244 Signed-off-by: Govindraj Raja <govindraj.raja@arm.co
chore: update to use Arm word across TF-A
Align entire TF-A to use Arm in copyright header.
Change-Id: Ief9992169efdab61d0da6bd8c5180de7a4bc2244 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| #
7419b7a7 |
| 20-Mar-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "feat_state_part3" into integration
* changes: refactor(cpufeat): enable FEAT_VHE for FEAT_STATE_CHECKED refactor(mpam): enable FEAT_MPAM for FEAT_STATE_CHECKED feat(l
Merge changes from topic "feat_state_part3" into integration
* changes: refactor(cpufeat): enable FEAT_VHE for FEAT_STATE_CHECKED refactor(mpam): enable FEAT_MPAM for FEAT_STATE_CHECKED feat(libc): add support for fallthrough statement refactor(spe): enable FEAT_SPE for FEAT_STATE_CHECKED refactor(cpufeat): rename ENABLE_SPE_FOR_LOWER_ELS to ENABLE_SPE_FOR_NS fix(spe): drop SPE EL2 context switch code
show more ...
|
| #
023f1bed |
| 21-Feb-2023 |
Andre Przywara <andre.przywara@arm.com> |
feat(libc): add support for fallthrough statement
Modern C compilers warn about unannotated switch/case fallthrough code, and require either a comment with some magic words, or an explicit compiler
feat(libc): add support for fallthrough statement
Modern C compilers warn about unannotated switch/case fallthrough code, and require either a comment with some magic words, or an explicit compiler attribute. Since some TF-A static analysis CI check suggests having a "fallthrough;" statement instead of a comment, introduce a macro that implements that statement, and emits the proper compiler attribute.
Change-Id: Ib34e615fb48d0f4a340aabfad4472e08d5c70248 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
7805999e |
| 05-Sep-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "st-nand-updates" into integration
* changes: feat(stm32mp1): allow to override MTD base offset feat(stm32mp1): manage second NAND OTP on STM32MP13 feat(stm32mp1): add
Merge changes from topic "st-nand-updates" into integration
* changes: feat(stm32mp1): allow to override MTD base offset feat(stm32mp1): manage second NAND OTP on STM32MP13 feat(stm32mp1): add define for external scratch buffer for nand devices feat(mtd): add platform function to allow using external buffer feat(libc): introduce __maybe_unused
show more ...
|
| #
351f9cd8 |
| 29-Aug-2022 |
Yann Gautier <yann.gautier@st.com> |
feat(libc): introduce __maybe_unused
Checkpatch script doesn't support __unused macro. To avoid errors, add __maybe_unused macro, which is supported.
Signed-off-by: Yann Gautier <yann.gautier@st.co
feat(libc): introduce __maybe_unused
Checkpatch script doesn't support __unused macro. To avoid errors, add __maybe_unused macro, which is supported.
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: I795134fb152991f2bc804a6b3be2fd1da7032758
show more ...
|
| #
7e0a38a4 |
| 04-Oct-2018 |
Soby Mathew <soby.mathew@arm.com> |
Merge pull request #1603 from antonio-nino-diaz-arm/db/reclaim-init
Reclaim BL31 initialization code memory for runtime data
|
| #
1dcc28cf |
| 18-Sep-2018 |
Daniel Boulby <daniel.boulby@arm.com> |
Introduce RECLAIM_INIT_CODE build flag
This patch introduces a build flag "RECLAIM_INIT_CODE" to mark boot time code which allows platforms to place this memory in an appropriate section to be recla
Introduce RECLAIM_INIT_CODE build flag
This patch introduces a build flag "RECLAIM_INIT_CODE" to mark boot time code which allows platforms to place this memory in an appropriate section to be reclaimed later. This features is primarily targeted for BL31. Appropriate documentation updates are also done.
Change-Id: If0ca062851614805d769c332c771083d46599194 Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
show more ...
|
| #
6d4f6aea |
| 22-Aug-2018 |
Dimitris Papastamos <dimitris.papastamos@arm.com> |
Merge pull request #1528 from antonio-nino-diaz-arm/an/libc
libc: Cleanup library
|
| #
8bb6de15 |
| 13-Aug-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
libc: Introduce cdefs.h, assert.h and strlen.c
Change-Id: I76091d52571f1950111c4b1670d5fc3883607715 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
|