| e3df3ffa | 01-Feb-2023 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes I1b092bc1,Ifc2461b4,I5176caa5 into integration
* changes: docs(rme): update RMM-EL3 Boot Manifest structure description feat(rme): read DRAM information from FVP DTB feat(rme): s
Merge changes I1b092bc1,Ifc2461b4,I5176caa5 into integration
* changes: docs(rme): update RMM-EL3 Boot Manifest structure description feat(rme): read DRAM information from FVP DTB feat(rme): set DRAM information in Boot Manifest platform data
show more ...
|
| 05c69cf7 | 03-Oct-2022 |
Jeffrey Kardatzke <jkardatzke@google.com> |
feat(optee): add loading OP-TEE image via an SMC
This adds the ability to load the OP-TEE image via an SMC called from non-secure userspace rather than loading it during boot. This should only be ut
feat(optee): add loading OP-TEE image via an SMC
This adds the ability to load the OP-TEE image via an SMC called from non-secure userspace rather than loading it during boot. This should only be utilized on platforms that can ensure security is maintained up until the point the SMC is invoked as it breaks the normal barrier between the secure and non-secure world.
Signed-off-by: Jeffrey Kardatzke <jkardatzke@google.com> Change-Id: I21cfa9699617c493fa4190f01d1cbb714e7449cc
show more ...
|
| 82685904 | 29-Dec-2022 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(rme): read DRAM information from FVP DTB
This patch builds on the previous patch by implementing support for reading NS DRAM layout of FVP model from HW_CONFIG Device tree.
Macro _RMMD_MANIFES
feat(rme): read DRAM information from FVP DTB
This patch builds on the previous patch by implementing support for reading NS DRAM layout of FVP model from HW_CONFIG Device tree.
Macro _RMMD_MANIFEST_VERSION is renamed to SET_RMMD_MANIFEST_VERSION to suppress MISRA-C "rule MC3R1.D4.5: (advisory) Identifiers in the same name space with overlapping visibility should be typographically unambiguous" warning
Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com> Change-Id: Ifc2461b4441a1efdd4b7c656ab4d15e62479f77b
show more ...
|
| aa61ff6c | 24-Jan-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "fix_misra_partition_mmc" into integration
* changes: fix(mmc): align part config type fix(mmc): do not modify r_data in mmc_send_cmd() fix(mmc): explicitly check oper
Merge changes from topic "fix_misra_partition_mmc" into integration
* changes: fix(mmc): align part config type fix(mmc): do not modify r_data in mmc_send_cmd() fix(mmc): explicitly check operators precedence fix(partition): add U suffix for unsigned numbers fix(partition): add missing curly braces
show more ...
|
| ed804406 | 11-Nov-2022 |
Rohit Mathew <rohit.mathew@arm.com> |
fix(mpam): run-time checks for mpam save/restore routines
With "ENABLE_MPAM_FOR_LOWER_ELS" and "CTX_INCLUDE_EL2_REGS" build options enabled, MPAM EL2 registers would be saved/restored as part of con
fix(mpam): run-time checks for mpam save/restore routines
With "ENABLE_MPAM_FOR_LOWER_ELS" and "CTX_INCLUDE_EL2_REGS" build options enabled, MPAM EL2 registers would be saved/restored as part of context management. Context save/restore routines as of now would proceed to access all of MPAM EL2 registers without any runtime checks. MPAM specification states that MPAMHCR_EL2 should only be accessed if MPAMIDR_EL1.HAS_HCR is "1". Likewise, MPAMIDR_EL1.VPMR_MAX has to be probed to obtain the maximum supported MPAMVPM<x>_EL2 before accessing corresponding MPAMVPM<x>_EL2 registers. Since runtime checks are not being made, an exception would be raised if the platform under test doesn't support one of the registers. On Neoverse reference design platforms, an exception is being raised while MPAMVPM2_EL2 or above are accessed. Neoverse reference design platforms support only registers till MPAMVPM1_EL2 at this point.
To resolve this, add sufficient runtime checks in MPAM EL2 context save/restore routines. As part of the new save/restore routines, MPAMIDR_EL1.HAS_HCR and MPAMIDR_EL1.VPMR_MAX are probed for the right set of registers to be saved and restored.
CC: Davidson Kumaresan <davidson.kumaresan@arm.com> Signed-off-by: Rohit Mathew <rohit.mathew@arm.com> Change-Id: I2e3affd23091023b287b2bd5057a4a549037b611
show more ...
|
| 982f8e19 | 20-Jan-2023 |
Bipin Ravi <bipin.ravi@arm.com> |
Merge changes from topic "srm/errata" into integration
* changes: fix(cpus): workaround for Neoverse V1 errata 2779461 fix(cpus): workaround for Cortex-A78 erratum 2779479 |
| acf455b4 | 20-Jan-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "fix_sparse_warnings" into integration
* changes: fix(libc): remove __putchar alias fix(console): correct scopes for console symbols fix(auth): use NULL instead of 0 f
Merge changes from topic "fix_sparse_warnings" into integration
* changes: fix(libc): remove __putchar alias fix(console): correct scopes for console symbols fix(auth): use NULL instead of 0 for pointer check fix(io): compare function pointers with NULL fix(fdt-wrappers): use correct prototypes
show more ...
|
| 2757da06 | 11-Jan-2023 |
Sona Mathew <SonaRebecca.Mathew@arm.com> |
fix(cpus): workaround for Neoverse V1 errata 2779461
Neoverse V1 erratum 2779461 is a Cat B erratum that applies to all revisions <=r1p2 and is still open.
The workaround sets CPUACTLR3_EL1[47] bit
fix(cpus): workaround for Neoverse V1 errata 2779461
Neoverse V1 erratum 2779461 is a Cat B erratum that applies to all revisions <=r1p2 and is still open.
The workaround sets CPUACTLR3_EL1[47] bit to 1. Setting this bit might have a small impact on power and negligible impact on performance.
SDEN documentation:https://developer.arm.com/documentation/SDEN1401781/latest
Change-Id: I367cda1779684638063d7292fda20ca6734e6f10 Signed-off-by: Sona Mathew <SonaRebecca.Mathew@arm.com>
show more ...
|
| 7d1700c4 | 11-Jan-2023 |
Sona Mathew <SonaRebecca.Mathew@arm.com> |
fix(cpus): workaround for Cortex-A78 erratum 2779479
Cortex-A78 erratum 2779479 is a Cat B erratum that applies to all revisions <= r1p2 and is still open.
The workaround is to set the CPUACTLR3_EL
fix(cpus): workaround for Cortex-A78 erratum 2779479
Cortex-A78 erratum 2779479 is a Cat B erratum that applies to all revisions <= r1p2 and is still open.
The workaround is to set the CPUACTLR3_EL1[47] bit to 1. Setting this bit might have a small impact on power and negligible impact on performance.
SDEN documentation: https://developer.arm.com/documentation/SDEN1401784/latest
Change-Id: I3779fd1eff3017c5961ffa101b357918070b3b36 Signed-off-by: Sona Mathew <SonaRebecca.Mathew@arm.com>
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 ...
|
| 5c5ea616 | 18-Jan-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "fix: add parenthesis for tests in MIN, MAX and CLAMP macros" into integration |
| a97bfa5f | 14-Dec-2022 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(rme): set DRAM information in Boot Manifest platform data
This patch adds support for setting configuration of DRAM banks for FVP model in RMM-EL3 Boot Manifest structure. Structure 'rmm_manife
feat(rme): set DRAM information in Boot Manifest platform data
This patch adds support for setting configuration of DRAM banks for FVP model in RMM-EL3 Boot Manifest structure. Structure 'rmm_manifest' is extended with 'plat_dram' structure which contains information about platform's DRAM layout: - number of DRAM banks; - pointer to 'dram_bank[]' array; - check sum: two's complement 64-bit value of the sum of data in 'plat_dram' and 'dram_bank[] array. Each 'dram_bank' structure holds information about DRAM bank base address and its size. This values must be aligned to 4KB page size. The patch increases Boot Manifest minor version to 2 and removes 'typedef rmm_manifest_t' as per "3.4.15.1. Avoid anonymous typedefs of structs/enums in headers" of https://trustedfirmware-a.readthedocs.io/en/latest/process/coding-style.html
Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com> Change-Id: I5176caa5780e27d1e0daeb5dea3e40cf6ad5fd12
show more ...
|
| 01855239 | 16-Jan-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "ti-k3-checks-and-refactor" into integration
* changes: fix(ti): fix typo in boot authentication message name refactor(ti): remove empty validate_ns_entrypoint function
Merge changes from topic "ti-k3-checks-and-refactor" into integration
* changes: fix(ti): fix typo in boot authentication message name refactor(ti): remove empty validate_ns_entrypoint function refactor(ti): use console_set_scope() rather than empty function hack refactor(ti): factor out common board code into common files feat(ti): add PSCI system_off support feat(ti): do not handle EAs in EL3 feat(ti): set snoop-delayed exclusive handling on A72 cores feat(ti): disable L2 dataless UniqueClean evictions feat(ti): set L2 cache ECC and and parity on A72 cores feat(ti): set L2 cache data ram latency on A72 cores to 4 cycles
show more ...
|
| 7f31629d | 16-Jan-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "deprecate_io_drivers" into integration
* changes: refactor(st): remove unused io_mmc driver docs: deprecate io_dummy driver |
| 5668db72 | 12-Jan-2023 |
Andrew Davis <afd@ti.com> |
feat(ti): set snoop-delayed exclusive handling on A72 cores
Snoop requests should not be responded to during atomic operations. This can be handled by the interconnect using its global monitor or by
feat(ti): set snoop-delayed exclusive handling on A72 cores
Snoop requests should not be responded to during atomic operations. This can be handled by the interconnect using its global monitor or by the core's SCU delaying to check for the corresponding atomic monitor state.
TI SoCs take the second approach. Set the snoop-delayed exclusive handling bit to inform the core it needs to delay responses to perform this check.
As J784s4 is currently the only SoC with multiple A72 clusters, limit this delay to only that device.
Signed-off-by: Andrew Davis <afd@ti.com> Change-Id: I875f64e4f53d47a9a0ccbf3415edc565be7f84d9
show more ...
|
| 81858a35 | 10-Jan-2023 |
Andrew Davis <afd@ti.com> |
feat(ti): set L2 cache ECC and and parity on A72 cores
The Cortex-A72 based cores on K3 platforms have cache ECC and parity protection, enable these.
Signed-off-by: Andrew Davis <afd@ti.com> Change
feat(ti): set L2 cache ECC and and parity on A72 cores
The Cortex-A72 based cores on K3 platforms have cache ECC and parity protection, enable these.
Signed-off-by: Andrew Davis <afd@ti.com> Change-Id: Icd00bc4aa9c1c48f0fb2a10ea66e75e0b146ef3c
show more ...
|
| aee2f33a | 10-Jan-2023 |
Andrew Davis <afd@ti.com> |
feat(ti): set L2 cache data ram latency on A72 cores to 4 cycles
The Cortex-A72 based cores on K3 platforms can be clocked fast enough that an extra latency cycle is needed to ensure correct L2 acce
feat(ti): set L2 cache data ram latency on A72 cores to 4 cycles
The Cortex-A72 based cores on K3 platforms can be clocked fast enough that an extra latency cycle is needed to ensure correct L2 access. Set the latency here for all A72 cores.
Signed-off-by: Andrew Davis <afd@ti.com> Change-Id: I639091dd0d2de09572bf0f73ac404e306e336883
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 ...
|
| bb7b85a3 | 10-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(context-mgmt): move FEAT_FGT save/restore code into C
At the moment we do the EL2 context save/restore sequence in assembly, where it is just guarded by #ifdef statement for the build time
refactor(context-mgmt): move FEAT_FGT save/restore code into C
At the moment we do the EL2 context save/restore sequence in assembly, where it is just guarded by #ifdef statement for the build time flags. This does not cover the FEAT_STATE_CHECK case, where we need to check for the runtime availability of a feature.
To simplify this extension, and to avoid writing too much code in assembly, move that sequence into C: it is called from C context anyways.
This protects the C code with the new version of the is_xxx_present() check, which combines both build time and runtime check, as necessary, and allows the compiler to optimise the calls aways, if we don't need them.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: I7c91bec60efcc00a43429dc0381f7e1c203be780
show more ...
|
| f0deb4c8 | 10-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(amu): convert FEAT_AMUv1 to new scheme
For the FGT context save/restore operation, we need to look at the AMUv1 feature, so migrate this one over to the new scheme. This uses the generic ch
refactor(amu): convert FEAT_AMUv1 to new scheme
For the FGT context save/restore operation, we need to look at the AMUv1 feature, so migrate this one over to the new scheme. This uses the generic check function in feat_detect.c, and splits the feature check into two functions, as was done before for FEAT_FGT.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: I95ad797f15001b2c9d1800c9d4af33fba79e136f
show more ...
|
| ce485955 | 10-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): decouple FGT feature detection and build flags
Split the feature check for FEAT_FGT into two parts: - A boolean function that just evaluates whether the feature is usable. This
refactor(cpufeat): decouple FGT feature detection and build flags
Split the feature check for FEAT_FGT into two parts: - A boolean function that just evaluates whether the feature is usable. This takes build time flags into account, and only evaluates the CPU feature ID registers when the flexible FEAT_STATE_CHECK method is used. - A "raw" function that returns the unfiltered CPU feature ID register.
Change the callers where needed, to give them the version they actually want.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: I9a041132d280451f5d9f653a62904f603b2a916d
show more ...
|
| 69c17f52 | 14-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): move helpers into .c file, rename FEAT_STATE_
The FEATURE_DETECTION functionality had some definitions in a header file, although they were only used internally in the .c file. Mo
refactor(cpufeat): move helpers into .c file, rename FEAT_STATE_
The FEATURE_DETECTION functionality had some definitions in a header file, although they were only used internally in the .c file. Move them over there, since there are of no interest to other users.
Also use the opportuntiy to rename the less telling FEAT_STATE_[12] names, and let the "0" case join the game. We use DISABLED, ALWAYS, and CHECK now, so that the casual reader has some idea what those numbers are supposed to mean.
feature_panic() becomes "static inline", since disabling all features makes it unused, so the compiler complains otherwise.
Finally add a new category "cpufeat" to cover CPU feature related changes.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: If0c8ba91ad22440260ccff383c33bdd055eefbdc
show more ...
|
| c2fb8ef6 | 14-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
feat(aarch64): make ID system register reads non-volatile
Our system register access function wrappers are using "volatile" inline assembly instructions. On the first glance this is a good idea, sin
feat(aarch64): make ID system register reads non-volatile
Our system register access function wrappers are using "volatile" inline assembly instructions. On the first glance this is a good idea, since many system registers have side effects, and we don't want the compiler to optimise or reorder them (what "volatile" prevents).
However this also naturally limits the compiler's freedom to optimise code better, and those volatile properties don't apply to every type of system register. One example are the CPU ID registers, which have constant values, are side-effect free and read-only.
Introduce a new wrapper type that drops the volatile keyword, and use that for the wrappers instantiating ID register accessors.
This allows the compiler to freely optimise those instructions away, if their result isn't actually used, which can trigger further optimisations.
Change-Id: I3c64716ae4f4bf603f0ea57b652bd50bcc67bb0e Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 03bd4810 | 09-Dec-2022 |
Yann Gautier <yann.gautier@st.com> |
fix(console): correct scopes for console symbols
console_state is only used in multi_console.c, it is then declared as static. console_list is used by several files, declare it as extern. This corre
fix(console): correct scopes for console symbols
console_state is only used in multi_console.c, it is then declared as static. console_list is used by several files, declare it as extern. This corrects the 2 sparse warnings: drivers/console/multi_console.c:13:11: warning: symbol 'console_list' was not declared. Should it be static? drivers/console/multi_console.c:14:9: warning: symbol 'console_state' was not declared. Should it be static?
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: Id1891595906c258e8cb8aa325226f0a43723ca0e
show more ...
|