| #
679e27ce |
| 19-Mar-2025 |
Chris Kay <chris.kay@arm.com> |
build(poetry): install SP dependencies with `--no-root`
Change-Id: I2981cb438be6f4569d069203b555310588db2627 Signed-off-by: Chris Kay <chris.kay@arm.com>
|
| #
36e3d877 |
| 28-Aug-2024 |
Abhi.Singh <abhi.singh@arm.com> |
feat(tpm): add tpm drivers and framework
Add tpm2 drivers to tf-a with adequate framework -implement a fifo spi interface that works with discrete tpm chip. -implement tpm command layer interfaces
feat(tpm): add tpm drivers and framework
Add tpm2 drivers to tf-a with adequate framework -implement a fifo spi interface that works with discrete tpm chip. -implement tpm command layer interfaces that are used to initialize, start and make measurements and close the interface. -tpm drivers are built using their own make file to allow for ease in porting across platforms, and across different interfaces.
Signed-off-by: Tushar Khandelwal <tushar.khandelwal@arm.com> Signed-off-by: Abhi Singh <abhi.singh@arm.com> Change-Id: Ie1a189f45c80f26f4dea16c3bd71b1503709e0ea
show more ...
|
| #
4e2a88a5 |
| 17-Mar-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "fix(cpufeat): add feat_hcx check before enabling FEAT_MOPS" into integration
|
| #
484befbf |
| 12-Mar-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpufeat): add feat_hcx check before enabling FEAT_MOPS
This patch also checks for FEAT_HCX before enabling FEAT_MOPS when INIT_UNUSED_NS_EL1 = 1 and adds build dependency check.
Signed-off-by:
fix(cpufeat): add feat_hcx check before enabling FEAT_MOPS
This patch also checks for FEAT_HCX before enabling FEAT_MOPS when INIT_UNUSED_NS_EL1 = 1 and adds build dependency check.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Iff4a068aa392fc8d29e2e4da7a2e7df0b3104e65
show more ...
|
| #
c5ea3fac |
| 12-Mar-2025 |
Soby Mathew <soby.mathew@arm.com> |
Merge "feat(rmmd): add FEAT_MEC support" into integration
|
| #
7e84f3cf |
| 15-Mar-2024 |
Tushar Khandelwal <tushar.khandelwal@.com> |
feat(rmmd): add FEAT_MEC support
This patch provides architectural support for further use of Memory Encryption Contexts (MEC) by declaring the necessary registers, bits, masks, helpers and values a
feat(rmmd): add FEAT_MEC support
This patch provides architectural support for further use of Memory Encryption Contexts (MEC) by declaring the necessary registers, bits, masks, helpers and values and modifying the necessary registers to enable FEAT_MEC.
Signed-off-by: Tushar Khandelwal <tushar.khandelwal@arm.com> Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com> Change-Id: I670dbfcef46e131dcbf3a0b927467ebf6f438fa4
show more ...
|
| #
5488b945 |
| 10-Mar-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "build(poetry): install dependencies with `--no-root`" into integration
|
| #
c25405d6 |
| 10-Mar-2025 |
Chris Kay <chris.kay@arm.com> |
build(poetry): install dependencies with `--no-root`
More recent versions of Poetry introduced the `package-mode` key to configure whether the project should be used for dependency management only,
build(poetry): install dependencies with `--no-root`
More recent versions of Poetry introduced the `package-mode` key to configure whether the project should be used for dependency management only, but this is incompatible with the earlier versions of Poetry that we still support.
Instead, we rely on installing with the `--no-root` flag, which behaves similarly. Installing without passing the `--no-root` flag is deprecated, and in recent versions of Poetry has become a hard error.
This change ensures that the build system always installs dependencies with the required flag.
Change-Id: Ic1543511314dcd20c00b73fd9e8cfae3dd034a41 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| #
ee5915e2 |
| 05-Mar-2025 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "kc/stmm" into integration
* changes: fix(build): run sp_mk_gen.py with poetry feat(sptool): add StMM memory region descriptor feat(sptool): specify endianness for HOB
Merge changes from topic "kc/stmm" into integration
* changes: fix(build): run sp_mk_gen.py with poetry feat(sptool): add StMM memory region descriptor feat(sptool): specify endianness for HOB bin feat(fvp): increase cactus-tertiary size feat(sptool): include HOB file in the TL pkg feat(sptool): invoke the HOB list creation code feat(sptool): add the HOB list creation script chore: add fdt dependencies to poetry
show more ...
|
| #
dd816235 |
| 13-Feb-2025 |
Kathleen Capella <kathleen.capella@arm.com> |
fix(build): run sp_mk_gen.py with poetry
If Poetry is available in the build environment, use Poetry when running sp_mk_gen.py script. This ensures dependencies that are needed to run the script are
fix(build): run sp_mk_gen.py with poetry
If Poetry is available in the build environment, use Poetry when running sp_mk_gen.py script. This ensures dependencies that are needed to run the script are accounted for.
Needed to successfully run the following config: spm-l2-boot-tests/fvp-default,fvp-spm-optee-sp,fvp-default: \ fvp-spm.optee.sp
Change-Id: Icca4249dab929f1bcf5f4454d472cf6923e3ee17 Signed-off-by: Kathleen Capella <kathleen.capella@arm.com>
show more ...
|
| #
bbfcaeef |
| 04-Mar-2025 |
Mark Dykes <mark.dykes@arm.com> |
Merge "build: ensure dependencies are installed for `memmap` target" into integration
|
| #
61c70c17 |
| 04-Mar-2025 |
Chris Kay <chris.kay@arm.com> |
build: ensure dependencies are installed for `memmap` target
The `memmap` build system target was recently migrated over to an independent Poetry project, but its build system target was not updated
build: ensure dependencies are installed for `memmap` target
The `memmap` build system target was recently migrated over to an independent Poetry project, but its build system target was not updated to install its dependencies.
Change-Id: If46e2a4609d47467cac07426c1cde65e2e0944cb Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| #
183f2ea2 |
| 04-Mar-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes I0396b597,I326f920f,I0437eec8,Ieadf01fc,I4e1d8c24, ... into integration
* changes: feat(fvp): set defaults for build commandline docs(arm): enable Linux boot from fip as BL33 fea
Merge changes I0396b597,I326f920f,I0437eec8,Ieadf01fc,I4e1d8c24, ... into integration
* changes: feat(fvp): set defaults for build commandline docs(arm): enable Linux boot from fip as BL33 feat(arm): enable Linux boot from fip as BL33 docs(fvp): update fvp build time options docs(arm): add initrd props to dtb at build time feat(arm): add initrd props to dtb at build time
show more ...
|
| #
1c08ff32 |
| 12-Dec-2024 |
Salman Nabi <salman.nabi@arm.com> |
feat(arm): add initrd props to dtb at build time
Add initrd properties to the device tree blob at build time, giving users the ability to run a linux kernel and successfully boot it to the terminal.
feat(arm): add initrd props to dtb at build time
Add initrd properties to the device tree blob at build time, giving users the ability to run a linux kernel and successfully boot it to the terminal. Users can boot a linux kernel in a normal flow as well as in RESET_TO_BL31. This function is an extension of the build time option "ARM_LINUX_KERNEL_AS_BL33=1".
The build time options INITRD_SIZE or INITRD_PATH will trigger the insertion of initrd properties in to the DTB. If both options are provided then the INITRD_SIZE will take precedence.
The available options are: INITRD_SIZE: Provide the initrd size in dec or hex (hex format must precede with '0x'. Example: INITRD_SIZE=0x1000000
INITRD_PATH: Provide an initrd path for the build time to find its exact size.
INITRD_BASE: A required build time option that sets the initrd base address in hex format. A default value can be set by the platform. Example: INITRD_BASE=0x90000000
Change-Id: Ief8de5f00c453509bcc6e978e0a95d768f1f509c Signed-off-by: Salman Nabi <salman.nabi@arm.com>
show more ...
|
| #
a1094e32 |
| 03-Mar-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "refactor(memmap): migrate to Poetry" into integration
|
| #
1dd6f3ec |
| 27-Feb-2025 |
Mark Dykes <mark.dykes@arm.com> |
Merge changes from topic "gr/build_fix_spmd" into integration
* changes: fix(rdv3): handle invalid build combination fix(build): handle invalid spd build options
|
| #
ed0c801f |
| 28-Jan-2025 |
Chris Kay <chris.kay@arm.com> |
refactor(memmap): migrate to Poetry
This change refactors the memmap tool into a Poetry project, with its own dependencies. You can continue to run it manually with:
poetry run memory <args>
C
refactor(memmap): migrate to Poetry
This change refactors the memmap tool into a Poetry project, with its own dependencies. You can continue to run it manually with:
poetry run memory <args>
Change-Id: I346283df1b8bfad4babc1f5a3861dab94d4a006a Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| #
a0effb91 |
| 20-Feb-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
fix(build): handle invalid spd build options
Currently the top level Makefile checks any invalid SPD build flags before parsing platform makefile thus any invalid combination enabled in platform mak
fix(build): handle invalid spd build options
Currently the top level Makefile checks any invalid SPD build flags before parsing platform makefile thus any invalid combination enabled in platform makefile will go unnoticed.
Move handling of all invalid SPD build option checks after platform level makefile is parsed.
Change-Id: Ib3b384ca99403ebaf34f6ce662c93480827e2136 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| #
2e0354f5 |
| 25-Feb-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes I3d950e72,Id315a8fe,Ib62e6e9b,I1d0475b2 into integration
* changes: perf(cm): drop ZCR_EL3 saving and some ISBs and replace them with root context perf(psci): get PMF timestamps wi
Merge changes I3d950e72,Id315a8fe,Ib62e6e9b,I1d0475b2 into integration
* changes: perf(cm): drop ZCR_EL3 saving and some ISBs and replace them with root context perf(psci): get PMF timestamps with no cache flushes if possible perf(amu): greatly simplify AMU context management perf(mpmm): greatly simplify MPMM enablement
show more ...
|
| #
83ec7e45 |
| 06-Nov-2024 |
Boyan Karatotev <boyan.karatotev@arm.com> |
perf(amu): greatly simplify AMU context management
The current code is incredibly resilient to updates to the spec and has worked quite well so far. However, recent implementations expose a weakness
perf(amu): greatly simplify AMU context management
The current code is incredibly resilient to updates to the spec and has worked quite well so far. However, recent implementations expose a weakness in that this is rather slow. A large part of it is written in assembly, making it opaque to the compiler for optimisations. The future proofness requires reading registers that are effectively `volatile`, making it even harder for the compiler, as well as adding lots of implicit barriers, making it hard for the microarchitecutre to optimise as well.
We can make a few assumptions, checked by a few well placed asserts, and remove a lot of this burden. For a start, at the moment there are 4 group 0 counters with static assignments. Contexting them is a trivial affair that doesn't need a loop. Similarly, there can only be up to 16 group 1 counters. Contexting them is a bit harder, but we can do with a single branch with a falling through switch. If/when both of these change, we have a pair of asserts and the feature detection mechanism to guard us against pretending that we support something we don't.
We can drop contexting of the offset registers. They are fully accessible by EL2 and as such are its responsibility to preserve on powerdown.
Another small thing we can do, is pass the core_pos into the hook. The caller already knows which core we're running on, we don't need to call this non-trivial function again.
Finally, knowing this, we don't really need the auxiliary AMUs to be described by the device tree. Linux doesn't care at the moment, and any information we need for EL3 can be neatly placed in a simple array.
All of this, combined with lifting the actual saving out of assembly, reduces the instructions to save the context from 180 to 40, including a lot fewer branches. The code is also much shorter and easier to read.
Also propagate to aarch32 so that the two don't diverge too much.
Change-Id: Ib62e6e9ba5be7fb9fb8965c8eee148d5598a5361 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
2590e819 |
| 25-Nov-2024 |
Boyan Karatotev <boyan.karatotev@arm.com> |
perf(mpmm): greatly simplify MPMM enablement
MPMM is a core-specific microarchitectural feature. It has been present in every Arm core since the Cortex-A510 and has been implemented in exactly the s
perf(mpmm): greatly simplify MPMM enablement
MPMM is a core-specific microarchitectural feature. It has been present in every Arm core since the Cortex-A510 and has been implemented in exactly the same way. Despite that, it is enabled more like an architectural feature with a top level enable flag. This utilised the identical implementation.
This duality has left MPMM in an awkward place, where its enablement should be generic, like an architectural feature, but since it is not, it should also be core-specific if it ever changes. One choice to do this has been through the device tree.
This has worked just fine so far, however, recent implementations expose a weakness in that this is rather slow - the device tree has to be read, there's a long call stack of functions with many branches, and system registers are read. In the hot path of PSCI CPU powerdown, this has a significant and measurable impact. Besides it being a rather large amount of code that is difficult to understand.
Since MPMM is a microarchitectural feature, its correct placement is in the reset function. The essence of the current enablement is to write CPUPPMCR_EL3.MPMM_EN if CPUPPMCR_EL3.MPMMPINCTL == 0. Replacing the C enablement with an assembly macro in each CPU's reset function achieves the same effect with just a single close branch and a grand total of 6 instructions (versus the old 2 branches and 32 instructions).
Having done this, the device tree entry becomes redundant. Should a core that doesn't support MPMM arise, this can cleanly be handled in the reset function. As such, the whole ENABLE_MPMM_FCONF and platform hooks mechanisms become obsolete and are removed.
Change-Id: I1d0475b21a1625bb3519f513ba109284f973ffdf Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
af8947fe |
| 22-Jan-2025 |
Yann Gautier <yann.gautier@st.com> |
fix(build): update clang target for aarch64
With the LLVM toolchain delivered by Arm [1], the target aarch64-elf which is defaulting to aarch64-unknown-unknown-elf is now unknown. Replace it with aa
fix(build): update clang target for aarch64
With the LLVM toolchain delivered by Arm [1], the target aarch64-elf which is defaulting to aarch64-unknown-unknown-elf is now unknown. Replace it with aarch64-unknown-none-elf.
[1]: https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/tag/release-19.1.5
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: I5a0fad1ee29838ef2c3a1bc8ecfba05aacf0a6d6
show more ...
|
| #
fcb80d7d |
| 11-Feb-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes I765a7fa0,Ic33f0b6d,I8d1a88c7,I381f96be,I698fa849, ... into integration
* changes: fix(cpus): clear CPUPWRCTLR_EL1.CORE_PWRDN_EN_BIT on reset chore(docs): drop the "wfi" from `pwr_
Merge changes I765a7fa0,Ic33f0b6d,I8d1a88c7,I381f96be,I698fa849, ... into integration
* changes: fix(cpus): clear CPUPWRCTLR_EL1.CORE_PWRDN_EN_BIT on reset chore(docs): drop the "wfi" from `pwr_domain_pwr_down_wfi` chore(psci): drop skip_wfi variable feat(arm): convert arm platforms to expect a wakeup fix(cpus): avoid SME related loss of context on powerdown feat(psci): allow cores to wake up from powerdown refactor: panic after calling psci_power_down_wfi() refactor(cpus): undo errata mitigations feat(cpus): add sysreg_bit_toggle
show more ...
|
| #
b9315f50 |
| 06-Feb-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "feat(cpus): add ENABLE_ERRATA_ALL flag" into integration
|
| #
593ae354 |
| 22-Mar-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(cpus): add ENABLE_ERRATA_ALL flag
Now that all errata flags are all conveniently in a single list we can make sweeping decisions about their values. The first use-case is to enable all errata i
feat(cpus): add ENABLE_ERRATA_ALL flag
Now that all errata flags are all conveniently in a single list we can make sweeping decisions about their values. The first use-case is to enable all errata in TF-A. This is useful for CI runs where it is impractical to list every single one. This should help with the long standing issue of errata not being built or tested.
Also add missing CPUs with errata to `ENABLE_ERRATA_ALL` to enable all errata builds in CI.
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I2b456d304d7bf3215c7c4f4fd70b56ecbcb09979
show more ...
|