| #
72ac9810 |
| 08-May-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "css_refactor_arm" into integration
* changes: refactor(console): consolidate console runtime switch refactor(synquacer): console runtime switch on bl31 exit refactor(
Merge changes from topic "css_refactor_arm" into integration
* changes: refactor(console): consolidate console runtime switch refactor(synquacer): console runtime switch on bl31 exit refactor(nxp): console runtime switch on bl31 exit refactor(nvidia): console runtime switch on bl31 exit refactor(hisilicon): console runtime switch on bl31 exit refactor(xilinx): console runtime switch on bl31 exit refactor(mediatek): console runtime switch on bl31 exit refactor(armada): console runtime switch on bl31 exit refactor(imx): console runtime switch on bl31 exit refactor(brcm): console runtime switch on bl31 exit
show more ...
|
| #
af3e8e63 |
| 21-Feb-2024 |
Salman Nabi <salman.nabi@arm.com> |
refactor(console): consolidate console runtime switch
Refactor console_flush() and console_switch_state(CONSOLE_FLAG_RUNTIME) to bl31_main(). This has been done per the recommendation in TF-A mailin
refactor(console): consolidate console runtime switch
Refactor console_flush() and console_switch_state(CONSOLE_FLAG_RUNTIME) to bl31_main(). This has been done per the recommendation in TF-A mailing list. These calls need to be the last calls, after any runtime initialization has been done, before BL31 exits.
All platforms that override the generic implementation of bl31_plat_runtime_setup() have been refactored. The console_flush() and console_switch_state() calls have been removed as they become part of bl31_main() function.
Any platform that don't need to make any change to the generic (weak) implementation of bl31_plat_runtime_setup() don't need to override it in their platforms.
Change-Id: I6d04d6daa9353daeaa7e3df9e9adf6f322a917b8 Signed-off-by: Salman Nabi <salman.nabi@arm.com>
show more ...
|
| #
ee9cfacc |
| 07-May-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "makefile-cleanup" into integration
* changes: build: improve diagnostics for unrecognized toolchain tools build(rzg): separate BL2 and BL31 SREC generation build(rcar
Merge changes from topic "makefile-cleanup" into integration
* changes: build: improve diagnostics for unrecognized toolchain tools build(rzg): separate BL2 and BL31 SREC generation build(rcar): separate BL2 and BL31 SREC generation build: separate preprocessing from DTB compilation build: remove `MAKE_BUILD_STRINGS` function
show more ...
|
| #
758ccb80 |
| 08-Mar-2024 |
Chris Kay <chris.kay@arm.com> |
build: remove `MAKE_BUILD_STRINGS` function
This function causes the build message to be generated and compiled in two different ways, with one way done inside `build_macros.mk` and the other done i
build: remove `MAKE_BUILD_STRINGS` function
This function causes the build message to be generated and compiled in two different ways, with one way done inside `build_macros.mk` and the other done inside `windows.mk`, mostly because it's done by generating the C file on the command line.
We can instead replace this whole build message generation sequence with a simple standard C compilation command and a normal C file.
Change-Id: I8bc136380c9585ddeec9a11154ee39ef70526f81 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| #
ae770fed |
| 16-Jan-2024 |
Yann Gautier <yann.gautier@st.com> |
feat(console): introduce EARLY_CONSOLE
This is a generic porting of what was done on ST platforms with flag STM32MP_EARLY_CONSOLE. It creates the flag and the prototype for plat_setup_early_console(
feat(console): introduce EARLY_CONSOLE
This is a generic porting of what was done on ST platforms with flag STM32MP_EARLY_CONSOLE. It creates the flag and the prototype for plat_setup_early_console(). This function depends on platform implementation. This function call is added at the beginning of each BL image early setup function. The patch also introduce an extra log macro: EARLY_ERROR. This can replace ERROR macro in code that will only be executed before the default console is enabled, and will do nothing when the EARLY_CONSOLE is not enabled. This can then save some space in memory.
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: I77bf0a0c4289b4c7df94e4bfb783a938e05bf023
show more ...
|
| #
fba343b0 |
| 07-Mar-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix(misra): fix MISRA defects" into integration
|
| #
c42d0d87 |
| 04-Mar-2024 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(misra): fix MISRA defects
This patch resolves the MISRA issues reported in mailing list. It addresses the following MISRA Rules violations - Rule 15.7 and Rule 2.4.
* As per Rule 15.7, All if..
fix(misra): fix MISRA defects
This patch resolves the MISRA issues reported in mailing list. It addresses the following MISRA Rules violations - Rule 15.7 and Rule 2.4.
* As per Rule 15.7, All if.. else if constructs should be terminated with an else statement and hence the conditional block has been changed to switch..case. Updated get_el_str() to include all EL cases.
* As per Rule 2.4, A project should not contain unused tag declarations, hence intr_type_desc tag is removed.
* bl31_lib_init is only used in translation unit and hence it's declaration is removed from bl31.h and the definition is made static to maintain visibility.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Ica1d3041566baf51befcad5fd3714189117ba193
show more ...
|
| #
928d737c |
| 02-Jan-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(context-mgmt): report context memory usage" into integration
|
| #
bfef8b90 |
| 08-Nov-2023 |
Juan Pablo Conde <juanpablo.conde@arm.com> |
feat(context-mgmt): report context memory usage
This patch provides a reporting functionality to display the memory consumed by the context in each security state and for each exception level. Flag
feat(context-mgmt): report context memory usage
This patch provides a reporting functionality to display the memory consumed by the context in each security state and for each exception level. Flag PLATFORM_REPORT_CTX_MEM_USE enables or disables this feature.
Change-Id: I1515366bf87561dcedf2b3206be167804df681d4 Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com> Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| #
95620113 |
| 31-Oct-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "refactor(cm): move EL3 registers to global context" into integration
|
| #
461c0a5d |
| 18-Jul-2023 |
Elizabeth Ho <elizabeth.ho@arm.com> |
refactor(cm): move EL3 registers to global context
Currently, EL3 context registers are duplicated per-world per-cpu. Some registers have the same value across all CPUs, so this patch moves these re
refactor(cm): move EL3 registers to global context
Currently, EL3 context registers are duplicated per-world per-cpu. Some registers have the same value across all CPUs, so this patch moves these registers out into a per-world context to reduce memory usage.
Change-Id: I91294e3d5f4af21a58c23599af2bdbd2a747c54a Signed-off-by: Elizabeth Ho <elizabeth.ho@arm.com> Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| #
e29693d9 |
| 11-Sep-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "feat(fvp): capture timestamps in bl stages" into integration
|
| #
ed8f06dd |
| 12-Jul-2023 |
thagon01-arm <Thaddeus.Gonzalez-Serna@arm.com> |
feat(fvp): capture timestamps in bl stages
When ENABLE_RUNTIME_INSTRUMENTATION flag is set timestamps are captured and output to the fvp console at various boot stages using the PMF library (which a
feat(fvp): capture timestamps in bl stages
When ENABLE_RUNTIME_INSTRUMENTATION flag is set timestamps are captured and output to the fvp console at various boot stages using the PMF library (which are based on aarch timers).
Timestamps are captured at entry and exit points for Bl1, Bl2 and, Bl3 respectively.
Change-Id: I7c0c502e5dbf73d711700b2fe0085ca3eb9346d2 Signed-off-by: Thaddeus Serna <Thaddeus.Gonzalez-Serna@arm.com>
show more ...
|
| #
6babc466 |
| 07-Sep-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "xlnx_zynqmp_console" into integration
* changes: fix(bl31): resolve runtime console garbage in next stage fix(cadence): update console flush uart driver
|
| #
889e3d1c |
| 14-Aug-2023 |
Prasad Kummari <prasad.kummari@amd.com> |
fix(bl31): resolve runtime console garbage in next stage
When BL31 software is sending data through a communication channel, there's a chance that the final portion of the data could become disrupte
fix(bl31): resolve runtime console garbage in next stage
When BL31 software is sending data through a communication channel, there's a chance that the final portion of the data could become disrupted, if another software (BL32/RMM) starts setting up the channel at the same time. To solve this issue, make sure to flush the console data from BL31, before initializing BL32/RMM. This makes sure that the communication stays reliable.
Signed-off-by: Prasad Kummari <prasad.kummari@amd.com> Change-Id: Icb8003e068b0b93bc4672e05f69001d9694a175c
show more ...
|
| #
26d67076 |
| 29-Jun-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "bk/context_refactor" into integration
* changes: refactor(pmu): convert FEAT_MTPMU to C and move to persistent register init feat(pmu): introduce pmuv3 lib/extensions f
Merge changes from topic "bk/context_refactor" into integration
* changes: refactor(pmu): convert FEAT_MTPMU to C and move to persistent register init feat(pmu): introduce pmuv3 lib/extensions folder fix(pmu): make MDCR_EL3.MTPME=1 out of reset refactor(cm): introduce a real manage_extensions_nonsecure()
show more ...
|
| #
24a70738 |
| 08-Mar-2023 |
Boyan Karatotev <boyan.karatotev@arm.com> |
refactor(cm): introduce a real manage_extensions_nonsecure()
manage_extensions_nonsecure() is problematic because it updates both context and in-place registers (unlike its secure/realm counterparts
refactor(cm): introduce a real manage_extensions_nonsecure()
manage_extensions_nonsecure() is problematic because it updates both context and in-place registers (unlike its secure/realm counterparts). The in-place register updates make it particularly tricky, as those never change for the lifetime of TF-A. However, they are only set when exiting to NS world. As such, all of TF-A's execution before that operates under a different context. This is inconsistent and could cause problems.
This patch Introduce a real manage_extensions_nonsecure() which only operates on the context structure. It also introduces a cm_manage_extensions_el3() which only operates on register in-place that are not context switched. It is called in BL31's entrypoints so that all of TF-A executes with the same environment once all features have been converted.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: Ic579f86c41026d2054863ef44893e0ba4c591da9
show more ...
|
| #
344e5e81 |
| 19-Jan-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "feat_state_rework" into integration
* changes: feat(fvp): enable FEAT_HCX by default refactor(context-mgmt): move FEAT_HCX save/restore into C refactor(cpufeat): conv
Merge changes from topic "feat_state_rework" into integration
* changes: feat(fvp): enable FEAT_HCX by default refactor(context-mgmt): move FEAT_HCX save/restore into C refactor(cpufeat): convert FEAT_HCX to new scheme feat(fvp): enable FEAT_FGT by default refactor(context-mgmt): move FEAT_FGT save/restore code into C refactor(amu): convert FEAT_AMUv1 to new scheme refactor(cpufeat): decouple FGT feature detection and build flags refactor(cpufeat): check FEAT_FGT in a new way refactor(cpufeat): move helpers into .c file, rename FEAT_STATE_ feat(aarch64): make ID system register reads non-volatile
show more ...
|
| #
c5a3ebbd |
| 15-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(context-mgmt): move FEAT_HCX save/restore into C
At the moment we save and restore the HCRX_EL2 register in assembly, and just depend on the build time flags. To allow runtime checking, and
refactor(context-mgmt): move FEAT_HCX save/restore into C
At the moment we save and restore the HCRX_EL2 register in assembly, and just depend on the build time flags. To allow runtime checking, and to avoid too much code in assembly, move that over to C, and use the new combined build/runtime feature check.
This also allows to drop the assert, since this should now be covered by the different FEAT_STATE_x options.
Change-Id: I3e20b9ba17121d423cd08edc20bbf4e7ae7c0178 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
d242128c |
| 15-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): convert FEAT_HCX to new scheme
Use the generic check function in feat_detect.c, and split the feature check into two functions, as done for FEAT_FGT before.
Signed-off-by: Andre
refactor(cpufeat): convert FEAT_HCX to new scheme
Use the generic check function in feat_detect.c, and split the feature check into two functions, as done for FEAT_FGT before.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: I0a4f973427c10d5d15c414ff5e12b18b7e645fae
show more ...
|
| #
86329689 |
| 12-Apr-2022 |
Joanna Farley <joanna.farley@arm.com> |
Merge "refactor(context mgmt): add cm_prepare_el3_exit_ns function" into integration
|
| #
8b95e848 |
| 31-Jan-2022 |
Zelalem Aweke <zelalem.aweke@arm.com> |
refactor(context mgmt): add cm_prepare_el3_exit_ns function
As part of the RFC: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/13651, this patch adds the 'cm_prepare_el3_exit_ns' fun
refactor(context mgmt): add cm_prepare_el3_exit_ns function
As part of the RFC: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/13651, this patch adds the 'cm_prepare_el3_exit_ns' function. The function is a wrapper to 'cm_prepare_el3_exit' function for Non-secure state.
When EL2 sysregs context exists (CTX_INCLUDE_EL2_REGS is enabled) EL1 and EL2 sysreg values are restored from the context instead of directly updating the registers.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I9b071030576bb05500d54090e2a03b3f125d1653
show more ...
|
| #
f6ca81dd |
| 07-Apr-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "jc/detect_feat" into integration
* changes: docs(build): update the feature enablement flags refactor(el3-runtime): replace ARM_ARCH_AT_LEAST macro with FEAT flags re
Merge changes from topic "jc/detect_feat" into integration
* changes: docs(build): update the feature enablement flags refactor(el3-runtime): replace ARM_ARCH_AT_LEAST macro with FEAT flags refactor(el3-runtime): add arch-features detection mechanism
show more ...
|
| #
6a0da736 |
| 17-Jan-2022 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
refactor(el3-runtime): add arch-features detection mechanism
This patch adds architectural features detection procedure to ensure features enabled are present in the given hardware implementation.
refactor(el3-runtime): add arch-features detection mechanism
This patch adds architectural features detection procedure to ensure features enabled are present in the given hardware implementation.
It verifies whether the architecture build flags passed during compilation match the respective features by reading their ID registers. It reads through all the enabled feature specific ID registers at once and panics in case of mismatch(feature enabled but not implemented in PE).
Feature flags are used at sections (context_management, save and restore routines of registers) during context switch. If the enabled feature flag is not supported by the PE, it causes an exception while saving or restoring the registers guarded by them.
With this mechanism, the build flags are validated at an early phase prior to their usage, thereby preventing any undefined action under their control.
This implementation is based on tristate approach for each feature and currently FEAT_STATE=0 and FEAT_STATE=1 are covered as part of this patch. FEAT_STATE=2 is planned for phase-2 implementation and will be taken care separately.
The patch has been explicitly tested, by adding a new test_config with build config enabling majority of the features and detected all of them under FVP launched with parameters enabling v8.7 features.
Note: This is an experimental procedure and the mechanism itself is guarded by a macro "FEATURE_DETECTION", which is currently being disabled by default.
The "FEATURE_DETECTION" macro is documented and the platforms are encouraged to make use of this diagnostic tool by enabling this "FEATURE_DETECTION" flag explicitly and get used to its behaviour during booting before the procedure gets mandated.
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Change-Id: Ia23d95430fe82d417a938b672bfb5edc401b0f43
show more ...
|
| #
1d651211 |
| 06-Oct-2021 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes from topic "za/feat_rme" into integration
* changes: refactor(gpt): productize and refactor GPT library feat(rme): disable Watchdog for Arm platforms if FEAT_RME enabled docs(rme
Merge changes from topic "za/feat_rme" into integration
* changes: refactor(gpt): productize and refactor GPT library feat(rme): disable Watchdog for Arm platforms if FEAT_RME enabled docs(rme): add build and run instructions for FEAT_RME fix(plat/fvp): bump BL2 stack size fix(plat/fvp): allow changing the kernel DTB load address refactor(plat/arm): rename ARM_DTB_DRAM_NS region macros refactor(plat/fvp): update FVP platform DTS for FEAT_RME feat(plat/arm): add GPT initialization code for Arm platforms feat(plat/fvp): add memory map for FVP platform for FEAT_RME refactor(plat/arm): modify memory region attributes to account for FEAT_RME feat(plat/fvp): add RMM image support for FVP platform feat(rme): add GPT Library feat(rme): add ENABLE_RME build option and support for RMM image refactor(makefile): remove BL prefixes in build macros feat(rme): add context management changes for FEAT_RME feat(rme): add Test Realm Payload (TRP) feat(rme): add RMM dispatcher (RMMD) feat(rme): run BL2 in root world when FEAT_RME is enabled feat(rme): add xlat table library changes for FEAT_RME feat(rme): add Realm security state definition feat(rme): add register definitions and helper functions for FEAT_RME
show more ...
|