| fd1dd4cb | 25-Jan-2023 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): wrap CPU ID register field isolation
Some MISRA test complains about our code to isolate CPU ID register fields: the ID registers (and associated masks) are 64 bits wide, but the
refactor(cpufeat): wrap CPU ID register field isolation
Some MISRA test complains about our code to isolate CPU ID register fields: the ID registers (and associated masks) are 64 bits wide, but the eventual field is always 4 bits wide only, so we use an unsigned int to represent that. MISRA dislikes the differing width here.
Since the code to extract a feature field from a CPU ID register is very schematic already, provide a wrapper macro to make this more readable, and do the proper casting in one central place on the way.
While at it, use the same macro for the AArch32 feature detection side.
Change-Id: Ie102a9e7007a386f5879ec65e159ff041504a4ee Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 55a32830 | 27-Feb-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes I960771e6,I291dc627,I57f31664 into integration
* changes: fix(ufs): set the PRDT length field properly fix(ufs): flush the entire PRDT fix(ufs): only allow using one slot |
| 766d78b1 | 27-Feb-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "mbedtls3_support" into integration
* changes: feat(stm32mp1): add mbedtls-3.3 support config refactor(fvp): minor cleanup with TRUSTED_BOARD_BOOT style(crypto): add b
Merge changes from topic "mbedtls3_support" into integration
* changes: feat(stm32mp1): add mbedtls-3.3 support config refactor(fvp): minor cleanup with TRUSTED_BOARD_BOOT style(crypto): add braces for if statement feat(fvp): increase BL1_RW and BL2 size feat(mbedtls): add support for mbedtls-3.3 refactor(crypto): avoid using struct mbedtls_pk_rsassa_pss_options refactor(mbedtls): avoid including MBEDTLS_CONFIG_FILE
show more ...
|
| 20fdbcf5 | 22-Feb-2023 |
Jorge Troncoso <jatron@google.com> |
fix(ufs): set the PRDT length field properly
The PRDT length field contains the count of the entries in the PRDT. See JEDEC Standard No. 223E, section 6.1.1, "UTP Transfer Request Descriptor," page
fix(ufs): set the PRDT length field properly
The PRDT length field contains the count of the entries in the PRDT. See JEDEC Standard No. 223E, section 6.1.1, "UTP Transfer Request Descriptor," page 66. Previously we were setting the PRDT length field to the number of bytes in the PRDT divided by four (the size in units of 32 bits). This was incorrect according to the spec.
Signed-off-by: Jorge Troncoso <jatron@google.com> Change-Id: I960771e6ce57002872392993042fae9ec505447e
show more ...
|
| dc2b8e80 | 23-Feb-2023 |
Bipin Ravi <bipin.ravi@arm.com> |
Merge changes from topic "panic_cleanup" into integration
* changes: refactor(bl31): use elx_panic for sysreg_handler64 refactor(aarch64): rename do_panic and el3_panic refactor(aarch64): remo
Merge changes from topic "panic_cleanup" into integration
* changes: refactor(bl31): use elx_panic for sysreg_handler64 refactor(aarch64): rename do_panic and el3_panic refactor(aarch64): remove weak links to el3_panic refactor(aarch64): refactor usage of elx_panic refactor(aarch64): cleanup HANDLE_EA_EL3_FIRST_NS usage
show more ...
|
| 17d07a55 | 21-Feb-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
refactor(bl31): use elx_panic for sysreg_handler64
When we reach sysreg_handler64 from any trap handling we are entering this path from lower EL and thus we should be calling lower_el_panic reportin
refactor(bl31): use elx_panic for sysreg_handler64
When we reach sysreg_handler64 from any trap handling we are entering this path from lower EL and thus we should be calling lower_el_panic reporting mechanism to print panic report.
Make report_elx_panic available through assembly func elx_panic which could be used for reporting any lower_el_panic.
Change-Id: Ieb260cf20ea327a59db84198b2c6a6bfc9ca9537 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| 338dbe2f | 22-Feb-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes I51c13c52,I3358c51e into integration
* changes: build: always prefix section names with `.` build: communicate correct page size to linker |
| ba12668a | 22-Feb-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(gicv3): enlarge the range for intr_num of structure interrupt_prop_t" into integration |
| bd62ce98 | 16-Jan-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
refactor(aarch64): rename do_panic and el3_panic
Current panic call invokes do_panic which calls el3_panic, but now panic handles only panic from EL3 anid clear separation to use lower_el_panic() wh
refactor(aarch64): rename do_panic and el3_panic
Current panic call invokes do_panic which calls el3_panic, but now panic handles only panic from EL3 anid clear separation to use lower_el_panic() which handles panic from lower ELs.
So now we can remove do_panic and just call el3_panic for all panics.
Change-Id: I739c69271b9fb15c1176050877a9b0c0394dc739 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| 7e619ecc | 16-Jan-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
refactor(aarch64): refactor usage of elx_panic
Currently we call el3_panic for panics from EL3 and elx_panic for panics from lower ELs.
When we boot into a rich OS environment and interact with BL3
refactor(aarch64): refactor usage of elx_panic
Currently we call el3_panic for panics from EL3 and elx_panic for panics from lower ELs.
When we boot into a rich OS environment and interact with BL31 using SMC/ABI calls and we can also decide to handle any lower EL panics in EL3. Panic can occur in lower EL from rich OS or during SMC/ABI calls after context switch to EL3.
But after booting into any rich OS we may land in panic either from rich OS or while servicing any SMC call, here the logic to use el3_panic or elx_panic is flawed as spsr_el3[3:0] is always EL3h and end up in elx_panic even if panic occurred from EL3 during SMC handling.
We try to decouple the elx_panic usage for its intended purpose, introduce lower_el_panic which would call elx_panic, currently lower_el_panic is called from default platform_ea_handle which would be called due to panic from any of the lower ELs.
Also remove the weak linkage for elx_panic and rename it to report_elx_panic which could be used with lower_el_panic.
Change-Id: I268bca89c01c60520d127ef6c7ba851460edc747 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| cd8f6af3 | 21-Feb-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes I63b584cf,I617f3d41 into integration
* changes: refactor(el3_runtime): unify handle/enter_lower_el_async_ea refactor(el3_runtime): introduce save_x30 macro |
| 51e06159 | 12-Jan-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
feat(mbedtls): add support for mbedtls-3.3
TF-A support for mbedtls3.x has been overdue by number of releases. As per mbedtls support it was advised to use latest and greatest mbedtls-3.3. But mbedt
feat(mbedtls): add support for mbedtls-3.3
TF-A support for mbedtls3.x has been overdue by number of releases. As per mbedtls support it was advised to use latest and greatest mbedtls-3.3. But mbedtls-3.x breaks API compatibility with mbedtls-2.x
To maintain comptability for mbedtls-2.x and enable mbedtls-3.x support add a functionality into makefile to determine the major version of mbedtls and use that to selective include or compile files that are present.
With mbedtls-3.x numerous other config changes have been done. Some of the config options deprecated or enabled by default. Thus we decided to introduce a new 3.x config file part of this change for building TF-A with mbedtls-3.3.
For futher information on migrating to mbedtls 3.x refer to: https://github.com/Mbed-TLS/mbedtls/blob/development/docs/3.0-migration-guide.md
Change-Id: Ia8106d6f526809df927d608db27fe149623258ed Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| a8eadc51 | 11-Jan-2023 |
Govindraj Raja <govindraj.raja@arm.com> |
refactor(mbedtls): avoid including MBEDTLS_CONFIG_FILE
Currently we include MBEDTLS_CONFIG_FILE directly and if a custom config file is used it will included.
However from mbedtls-3.x onwards it di
refactor(mbedtls): avoid including MBEDTLS_CONFIG_FILE
Currently we include MBEDTLS_CONFIG_FILE directly and if a custom config file is used it will included.
However from mbedtls-3.x onwards it discourages usage of MBEDTLS_CONFIG_FILE include directly, so to resolve this and keep 2.28 compatibility include version.h which would include the custom config file if present and also would expose us with mbedtls-major-version number which could be used for selecting features and functions for mbedtls 2.28 or 3.3
Change-Id: I029992311be2a38b588ebbb350875b03ea29acdb Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| da04341e | 14-Feb-2023 |
Chris Kay <chris.kay@arm.com> |
build: always prefix section names with `.`
Some of our specialized sections are not prefixed with the conventional period. The compiler uses input section names to derive certain other section name
build: always prefix section names with `.`
Some of our specialized sections are not prefixed with the conventional period. The compiler uses input section names to derive certain other section names (e.g. `.rela.text`, `.relacpu_ops`), and these can be difficult to select in linker scripts when there is a lack of a delimiter.
This change introduces the period prefix to all specialized section names.
BREAKING-CHANGE: All input and output linker section names have been prefixed with the period character, e.g. `cpu_ops` -> `.cpu_ops`.
Change-Id: I51c13c5266d5975fbd944ef4961328e72f82fc1c Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| eaaf517c | 25-Dec-2022 |
Raghu Krishnamurthy <raghu.ncstate@gmail.com> |
feat(spmd): introduce FFA_PARTITION_INFO_GET_REGS
Add code in SPMD to forward calls to FFA_PARTITION_INFO_GET_REGS. This is a new ABI that allows getting partition information without the need for r
feat(spmd): introduce FFA_PARTITION_INFO_GET_REGS
Add code in SPMD to forward calls to FFA_PARTITION_INFO_GET_REGS. This is a new ABI that allows getting partition information without the need for rx/tx buffer, that helps in situations where having an rx/tx buffer mapped and available is difficult (ex. uefi runtime services). Currently, the spmc at el3 does not support this new ABI. The new ABI uses registers x8-x17 to return partition information so changes are made to ensure those registers are passed through to the SPMC and restored on the return path.
Signed-off-by: Raghu Krishnamurthy <raghu.ncstate@gmail.com> Change-Id: I1fe5956763e054e4f8d62292fc1247e7120bb5a4
show more ...
|
| d87c0e27 | 11-Jan-2023 |
Manish Pandey <manish.pandey2@arm.com> |
refactor(el3_runtime): introduce save_x30 macro
Most of the macros/routine in vector entry need a free scratch register. Introduce a macro "save_x30" and call it right at the begining of vector entr
refactor(el3_runtime): introduce save_x30 macro
Most of the macros/routine in vector entry need a free scratch register. Introduce a macro "save_x30" and call it right at the begining of vector entries where x30 is used. It is more exlicit and less error prone
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: I617f3d41a120739e5e3fe1c421c79ceb70c1188e
show more ...
|
| d69a0bf2 | 10-Feb-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix(mpam): run-time checks for mpam save/restore routines" into integration |
| af4fee04 | 10-Feb-2023 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge changes from topic "mb/tos-fw-config-load-refactor" into integration
* changes: feat(spmd): map SPMC manifest region as EL3_PAS feat(fvp): update device tree with load addresses of TOS_FW
Merge changes from topic "mb/tos-fw-config-load-refactor" into integration
* changes: feat(spmd): map SPMC manifest region as EL3_PAS feat(fvp): update device tree with load addresses of TOS_FW config refactor(fvp): rename the DTB info structure member feat(fconf): rename 'ns-load-address' to 'secondary-load-address'
show more ...
|
| c1dd9e63 | 08-Feb-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes I7bd311d7,Iea7dcfe3,I9d890934 into integration
* changes: refactor(allwinner): use fdt_node_is_enabled() in AXP driver fix(allwinner): check RSB availability in DT on H6 refactor
Merge changes I7bd311d7,Iea7dcfe3,I9d890934 into integration
* changes: refactor(allwinner): use fdt_node_is_enabled() in AXP driver fix(allwinner): check RSB availability in DT on H6 refactor(fdt): introduce common fdt_node_is_enabled()
show more ...
|
| c2ce57f5 | 08-Feb-2023 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge "feat(psa): interface with RSS for NV counters" into integration |
| 8374508b | 11-Aug-2022 |
laurenw-arm <lauren.wehrmeister@arm.com> |
feat(psa): interface with RSS for NV counters
Adding AP/RSS interface for retrieving and incrementing non-volatile counters.
The read interface implements the psa_call: psa_call(RSS_PLATFORM_SERVIC
feat(psa): interface with RSS for NV counters
Adding AP/RSS interface for retrieving and incrementing non-volatile counters.
The read interface implements the psa_call: psa_call(RSS_PLATFORM_SERVICE_HANDLE, RSS_PLATFORM_API_ID_NV_READ, in_vec, 1, out_vec, 1);
where the in_vec indicates which of the 3 counters we want, and the out_vec stores the counter value we get back from RSS.
The increment interface implements the psa_call: psa_call(RSS_PLATFORM_SERVICE_HANDLE, RSS_PLATFORM_API_ID_NV_INCREMENT, in_vec, 1, (psa_outvec *)NULL, 0);
where, again, in_vec indicates the counter to increment, and we don't get any output parameter from RSS.
Through this service, we will be able to get/increment any of the 3 NV counters used on a CCA platform: - NV counter for CCA firmware (BL2, BL31, RMM). - NV counter for secure firmware. - NV counter for non-secure firmware.
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Signed-off-by: Raef Coles <raef.coles@arm.com> Change-Id: I4c1c7f4837ebff30de16bb0ce7ecd416b70b1f62
show more ...
|
| 05e55030 | 07-Feb-2023 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(fconf): rename 'ns-load-address' to 'secondary-load-address'
The 'ns-load-address' property has been renamed to 'secondary-load- address' in order to make it more generic. It can be used to cop
feat(fconf): rename 'ns-load-address' to 'secondary-load-address'
The 'ns-load-address' property has been renamed to 'secondary-load- address' in order to make it more generic. It can be used to copy the configuration to any location, be it root, secure, or non-secure.
Change-Id: I122508e155ccd99082296be3f6b8db2f908be221 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| d5eee8f3 | 01-Feb-2023 |
Ming Huang <huangming@linux.alibaba.com> |
feat(gicv3): enlarge the range for intr_num of structure interrupt_prop_t
As the max ESPI can be 5119, so enlarge the intr_num range of structure interrupt_prop_t. After the patch the ESPI can be ad
feat(gicv3): enlarge the range for intr_num of structure interrupt_prop_t
As the max ESPI can be 5119, so enlarge the intr_num range of structure interrupt_prop_t. After the patch the ESPI can be add to this macro: define PLATFORM_G1S_PROPS(grp) \ INTR_PROP_DESC(197 - 32 + 4576, GIC_HIGHEST_SEC_PRIORITY, (grp), GIC_INTR_CFG_EDGE), \ INTR_PROP_DESC(199 - 32 + 4576, GIC_HIGHEST_SEC_PRIORITY, (grp), GIC_INTR_CFG_EDGE)
The firmware-design.rst will be updated accordingly.
Signed-off-by: Ming Huang <huangming@linux.alibaba.com> Change-Id: Ic923868bb1b00c017410dc2aeabfda58ee54782f
show more ...
|
| 49b268ce | 03-Feb-2023 |
Andre Przywara <andre.przywara@arm.com> |
refactor(fdt): introduce common fdt_node_is_enabled()
There are several users in the tree which want to check whether a given FDT node is enabled or not: the "status" property holds that information
refactor(fdt): introduce common fdt_node_is_enabled()
There are several users in the tree which want to check whether a given FDT node is enabled or not: the "status" property holds that information. So far all those users provide private implementations, some of them having issues.
Export a generic implementation of that function in fdt_wrappers.h, as a "static inline" function to not increase code size. Also replace the existing implementation in Arm's fconf code, which had a tiny bug in needlessly using the property length: "status = [6f 6b 61 79 20];" would pass the check, where it should not. The proper solution is also simpler: status must be a string, and strings must be NUL-terminated in a DT. strcmp() would terminate on the first NUL in *either* of the two strings it compares, so it would never walk beyond the property boundary in the DTB.
Change-Id: I9d89093432f127c09add6cf5c93a725bc534e5de Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 8b47f87a | 02-Feb-2023 |
Joanna Farley <joanna.farley@arm.com> |
Merge "feat(optee): add loading OP-TEE image via an SMC" into integration |