- 02 Aug, 2021 1 commit
-
-
Manish V Badarkhe authored
Added a firmware update metadata structure as per section 4.1 in the specification document[1]. Also, added the build options used in defining the firmware update metadata structure. [1]: https://developer.arm.com/documentation/den0118/a/ Change-Id: I8f43264a46fde777ceae7fd2a5bb0326f1711928 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
-
- 23 Jul, 2021 3 commits
-
-
Daniel Boulby authored
The SDEI specification now says that during an SDEI event handler dispatch the SPSR should be set according to the TakeException() pseudocode function defined in the Arm Architecture Reference Manual. This patch sets the SPSR according to the function given in ARM DDI 0487F.c page J1-7635 Change-Id: Id2f8f2464fd69c701d81626162827e5c4449b658 Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
-
Arunachalam Ganapathy authored
If SVE are enabled for both Non-secure and Secure world along with AMU extension, then it causes the TAM_BIT in CPTR_EL3 to be set upon exit from bl31. This restricts access to the AMU register set in normal world. This fix maintains consistency in both TAM_BIT and CPTR_EZ_BIT by saving and restoring CPTR_EL3 register from EL3 context. Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> Change-Id: Id76ce1d27ee48bed65eb32392036377716aff087
-
Samuel Holland authored
If SEPARATE_NOBITS_REGION is enabled, the platform may need to map memory specifically for that region. Import the symbols from the linker script to allow the platform to do so. Signed-off-by: Samuel Holland <samuel@sholland.org> Change-Id: Iaec4dee94a6735b22f58f7b61f18d53e7bc6ca8d
-
- 20 Jul, 2021 1 commit
-
-
Pali Rohár authored
Existing macro ERROR() prints string "ERROR" followed by string specified by caller. Therefore via this existing macro it is not possible to end incomplete / existing line by a newline character. This change adds a new macro ERROR_NL() which prints just a newline character without any prefix. Implementation of this macro is done via a new function tf_log_newline() which based on supplied log level either return or print newline character. If needed in future based on this tf_log_newline() function can be defined also macros for other log levels. Signed-off-by: Pali Rohár <pali@kernel.org> Change-Id: I05414ca177f94cdc0f6077394d9c4af4a4382306
-
- 16 Jul, 2021 1 commit
-
-
johpow01 authored
Neoverse V1 erratum 1791573 is a Cat B erratum present in r0p0 and r1p0 of the V1 processor core. It is fixed in r1p1. SDEN can be found here: https://documentation-service.arm.com/static/60d499080320e92fa40b4625 Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Ic6f92da4d0b995bd04ca5b1673ffeedaebb71d10
-
- 09 Jul, 2021 1 commit
-
-
Manish V Badarkhe authored
Change-Id: Ia660b6554fe4544effd1810e1aca202f95e3c447 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
-
- 29 Jun, 2021 1 commit
-
-
Manish Pandey authored
For Arm platforms PIE is enabled when RESET_TO_BL31=1 in aarch64 mode on the similar lines enable PIE when RESET_TO_SP_MIN=1 in aarch32 mode. The underlying changes for enabling PIE in aarch32 is submitted in commit 4324a14b Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: Ib8bb860198b3f97cdc91005503a3184d63e15469
-
- 28 Jun, 2021 1 commit
-
-
Max Shvetsov authored
Enables SVE support for the secure world via ENABLE_SVE_FOR_SWD. ENABLE_SVE_FOR_SWD defaults to 0 and has to be explicitly set by the platform. SVE is configured during initial setup and then uses EL3 context save/restore routine to switch between SVE configurations for different contexts. Reset value of CPTR_EL3 changed to be most restrictive by default. Signed-off-by: Max Shvetsov <maksims.svecovs@arm.com> Change-Id: I889fbbc2e435435d66779b73a2d90d1188bf4116
-
- 23 Jun, 2021 2 commits
-
-
johpow01 authored
Cortex A78 erratum 1821534 is a Cat B erratum present in r0p0 and r1p0 of the A78 processor core, it is fixed in r1p1. SDEN can be found here: https://documentation-service.arm.com/static/603e3733492bde1625aa8780 Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I71057c4b9625cd9edc1a06946b453cf16ae5ea2c
-
johpow01 authored
Cortex A77 erratum 1791578 is a Cat B erratum present in r0p0, r1p0, and r1p1 of the A77 processor core, it is still open. SDEN can be found here: https://documentation-service.arm.com/static/60a63a3c982fc7708ac1c8b1 Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Ib4b963144f880002de308def12744b982d3df868
-
- 22 Jun, 2021 1 commit
-
-
Chris Kay authored
BTI instructions are a part of the NOP space in earlier architecture versions, so it's not inherently incorrect to enable BTI code or instructions even if the target architecture does not support them. This change reduces our reliance on architecture versions when checking for features. Change-Id: I79f884eec3d65978c61e72e4268021040fd6c96e Signed-off-by: Chris Kay <chris.kay@arm.com>
-
- 14 Jun, 2021 1 commit
-
-
Yann Gautier authored
The arm-gic.h was a concatenation of arm-gic.h and irq.h from Linux. Just copy the 2 files here. They both have MIT license which is accepted in TF-A. With this alignment, a new macro is added (GIC_CPU_MASK_SIMPLE). Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: Ib45174f35f1796ebb7f34af861b59810cfb808b0
-
- 04 Jun, 2021 2 commits
-
-
Vyacheslav Yurkov authored
Use dedicated read function for boot partition Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com> Change-Id: If75df7691fce0797205365736fc6e4e3429efdca
-
Vyacheslav Yurkov authored
Added a public function to read blocks from a current boot partition. switch between partitions has to respect eMMC partition switch timing. Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com> Change-Id: I55b0c910314253e5647486609583fd290dadd30a
-
- 02 Jun, 2021 1 commit
-
-
Pali Rohár authored
The UART code for the A3K platform assumes that UART parent clock rate is always 25 MHz. This is incorrect, because the xtal clock can also run at 40 MHz (this is board specific). The frequency of the xtal clock is determined by a value on a strapping pin during SOC reset. The code to determine this frequency is already in A3K's comphy driver. Move the get_ref_clk() function from the comphy driver to a separate file and use it for UART parent clock rate determination. Signed-off-by: Pali Rohár <pali@kernel.org> Change-Id: I8bb18a2d020ef18fe65aa06ffa4ab205c71be92e
-
- 28 May, 2021 1 commit
-
-
johpow01 authored
This patch renames the Matterhorn, Matterhorn ELP, and Klein CPUs to Cortex A710, Cortex X2, and Cortex A510 respectively. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I056d3114210db71c2840a24562b51caf2546e195
-
- 27 May, 2021 2 commits
-
-
Yann Gautier authored
Use the macros that are now defined in include/lib/smccc.h. Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: I688a76277b729672835d51fafb68d1d6205b6ae4
-
Yann Gautier authored
The definitions of SMCCC_ARCH_SOC_ID SoC version return bits are defined in SMC Calling Convention [1]. Add the masks and shifts for JEP-106 bank index, JEP-106 identification code, and Implementation defined SoC ID. Add a macro to easily set JEP-106 fields. [1] https://developer.arm.com/documentation/den0028/latest/ Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: Iecbd09f6de6728de89dc746d2d1981a5a97a8ab7
-
- 25 May, 2021 1 commit
-
-
Jeremy Linton authored
Add constants, structures and build definition for the new standard SMCCC PCI conduit. These are documented in DEN0115A. https://developer.arm.com/documentation/den0115/latest Signed-off-by: Jeremy Linton <jeremy.linton@arm.com> Change-Id: If667800a26b9ae88626e8d895674c9c2e8c09658
-
- 19 May, 2021 1 commit
-
-
Manish V Badarkhe authored
Added support for HW computed CRC using Arm ACLE intrinsics. These are built-in intrinsics available for ARMv8.1-A, and onwards. These intrinsics are enabled via '-march=armv8-a+crc' compile switch for ARMv8-A (supports CRC instructions optionally). HW CRC support is enabled unconditionally in BL2 for all Arm platforms. HW CRC calculation is verified offline to ensure a similar result as its respective ZLib utility function. HW CRC calculation support will be used in the upcoming firmware update patches. Change-Id: Ia2ae801f62d2003e89a9c3e6d77469b5312614b3 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
-
- 17 May, 2021 1 commit
-
-
Zelalem authored
Disable non-invasive debug of secure state for Juno in release builds. This makes sure that PMU counts only Non-secure events. Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I0d1c3f96f3b4e48360a7211ae55851d65d291025
-
- 14 May, 2021 1 commit
-
-
Alexei Fedorov authored
This patch adds setting MDCR_EL3.MCCD in 'el3_arch_init_common' macro to disable cycle counting by PMCCNTR_EL0 in EL3 when FEAT_PMUv3p7 is implemented. This fixes failing test 'Leak PMU CYCLE counter values from EL3 on PSCI suspend SMC' on FVP models with 'has_v8_7_pmu_extension' parameter set to 1 or 2. Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Change-Id: I2ad3ef501b31ee11306f76cb5a61032ecfd0fbda
-
- 13 May, 2021 1 commit
-
-
Daniel Boulby authored
Handle calls to the FFA_SPM_ID_GET interface. If FFA_SPM_ID_GET is invoked from the non-secure physical FF-A instance, return the SPMC id (defined in the SPMC manifest). If FFA_SPM_ID_GET is invoked from the secure physical FF-A instance (e.g. the SPMC), return the SPMD id. Change-Id: Id6d4e96b1da2510386d344e09c4553dba01227ec Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
-
- 29 Apr, 2021 1 commit
-
-
Manish V Badarkhe authored
Added GPT parser support in BL2 for Arm platforms to get the entry address and length of the FIP in the GPT image. Also, increased BL2 maximum size for FVP platform to successfully compile ROM-enabled build with this change. Verified this change using a patch: https://review.trustedfirmware.org/c/ci/tf-a-ci-scripts/+/9654 Change-Id: Ie8026db054966653b739a82d9ba106d283f534d0 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
-
- 28 Apr, 2021 3 commits
-
-
David Horstmann authored
NOTE: Breaking change to the way UUIDs are stored in the DT Currently, UUIDs are stored in the device tree as sequences of 4 integers. There is a mismatch in endianness between the way UUIDs are represented in memory and the way they are parsed from the device tree. As a result, we must either store the UUIDs in little-endian format in the DT (which means that they do not match up with their string representations) or perform endianness conversion after parsing them. Currently, TF-A chooses the second option, with unwieldy endianness-conversion taking place after reading a UUID. To fix this problem, and to make it convenient to copy and paste UUIDs from other tools, change to store UUIDs in string format, using a new wrapper function to parse them from the device tree. Change-Id: I38bd63c907be14e412f03ef0aab9dcabfba0eaa0 Signed-off-by: David Horstmann <david.horstmann@arm.com>
-
David Horstmann authored
TF-A does not have the capability to read UUIDs in string form from the device tree. This capability is useful for readability, so add a wrapper function, fdtw_read_uuid() to parse UUIDs from the DT. This function should parse a string of the form: "aabbccdd-eeff-4099-8877-665544332211" to the byte sequence in memory: [aa bb cc dd ee ff 40 99 88 77 66 55 44 33 22 11] Change-Id: I99a92fbeb40f4f4713f3458b36cb3863354d2bdf Signed-off-by: David Horstmann <david.horstmann@arm.com>
-
Manish V Badarkhe authored
Replaced PLAT_ARM_FIP_BASE and PLAT_ARM_FIP_MAX_SIZE macro with a generic name PLAT_ARM_FLASH_IMAGE_BASE and PLAT_ARM_FLASH_IMAGE_MAX_SIZE so that these macros can be reused in the subsequent GPT based support changes. Change-Id: I88fdbd53e1966578af4f1e8e9d5fef42c27b1173 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
-
- 27 Apr, 2021 1 commit
-
-
Alexei Fedorov authored
This patch fixes static checks errors reported for missing copyright in `include/dt-bindings/interrupt-controller/arm-gic.h` and the include order of header files in `.dts` and `.dtsi` files. Change-Id: I2baaf2719fd2c84cbcc08a8f0c4440a17a9f24f6 Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Signed-off-by: Chris Kay <chris.kay@arm.com>
-
- 26 Apr, 2021 1 commit
-
-
Chris Kay authored
The `arm-gic.h` file distributed by the Linux kernel is disjunctively dual-licensed under the GPL-2.0 or MIT licenses, but the BSD-3-Clause license has been applied in violation of the requirements of both licenses. This change ensures the file is correctly licensed under the terms of the MIT license, and that we comply with it by distributing a copy of the license text. Change-Id: Ie90066753a5eb8c0e2fc95ba43e3f5bcbe2fa459 Signed-off-by: Chris Kay <chris.kay@arm.com>
-
- 21 Apr, 2021 3 commits
-
-
Yann Gautier authored
Only BL32 (SP_min) is supported at the moment, BL1 and BL2_AT_EL3 are just stubbed with _pie_fixup_size=0. The changes are an adaptation for AARCH32 on what has been done for PIE support on AARCH64. The RELA_SECTION is redefined for AARCH32, as the created section is .rel.dyn and the symbols are .rel*. Change-Id: I92bafe70e6b77735f6f890f32f2b637b98cf01b9 Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
Yann Gautier authored
The use of end addresses is preferred over the size of sections. This was done for some AARCH64 files for PIE with commit [1], and some extra explanations can be found in its commit message. Align the missing AARCH64 files. For AARCH32 files, this is required to prepare PIE support introduction. [1] f1722b69 ("PIE: Use PC relative adrp/adr for symbol reference") Change-Id: I8f1c06580182b10c680310850f72904e58a54d7d Signed-off-by: Yann Gautier <yann.gautier@st.com>
-
Alexei Fedorov authored
The Arm Generic Timer specification mandates that the interrupt associated with each timer is low level triggered, see: Arm Cortex-A76 Core: "Each timer provides an active-LOW interrupt output to the SoC." Arm Cortex-A53 MPCore Processor: "It generates timer events as active-LOW interrupt outputs and event streams." The following files in fdts\ fvp-base-gicv3-psci-common.dtsi fvp-base-gicv3-psci-aarch32-common.dtsi fvp-base-gicv2-psci-aarch32.dts fvp-base-gicv2-psci.dts fvp-foundation-gicv2-psci.dts fvp-foundation-gicv3-psci.dts describe interrupt types as edge rising IRQ_TYPE_EDGE_RISING = 0x01: interrupts = <1 13 0xff01>, <1 14 0xff01>, <1 11 0xff01>, <1 10 0xff01>; , see include\dt-bindings\interrupt-controller\arm-gic.h: which causes Linux to generate the warnings below: arch_timer: WARNING: Invalid trigger for IRQ5, assuming level low arch_timer: WARNING: Please fix your firmware This patch adds GIC_CPU_MASK_RAW macro definition to include\dt-bindings\interrupt-controller\arm-gic.h, modifies interrupt type to IRQ_TYPE_LEVEL_LOW and makes use of type definitions in arm-gic.h. Change-Id: Iafa2552a9db85a0559c73353f854e2e0066ab2b9 Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
-
- 20 Apr, 2021 3 commits
-
-
johpow01 authored
ELP processors can sometimes have different MIDR values or features so we are adding the "_arm" suffix to differentiate the reference implementation from other future versions. Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Ieea444288587c7c18a397d279ee4b22b7ad79e20
-
Mikael Olsson authored
By default the Arm Ethos-N NPU will boot up in secure mode. In this mode the non-secure world cannot access the registers needed to use the NPU. To still allow the non-secure world to use the NPU, a SiP service has been added that can delegate non-secure access to the registers needed to use it. Only the HW_CONFIG for the Arm Juno platform has been updated to include the device tree for the NPU and the platform currently only loads the HW_CONFIG in AArch64 builds. Signed-off-by: Mikael Olsson <mikael.olsson@arm.com> Change-Id: I65dfd864042ed43faae0a259dcf319cbadb5f3d2
-
Konstantin Porotchkin authored
Move efuse definitions to a separate header file for later usage with other FW modules. Change-Id: I2e9465f760d0388c8e5863bc64a4cdc57de2417f Signed-off-by: Konstantin Porotchkin <kostap@marvell.com> Reviewed-on: https://sj1git1.cavium.com/c/IP/SW/boot/atf/+/47313 Tested-by: sa_ip-sw-jenkins <sa_ip-sw-jenkins@marvell.com> Reviewed-by: Yi Guo <yi.guo@cavium.com>
-
- 14 Apr, 2021 1 commit
-
-
Nicola Mazzucato authored
The SCMI power domain protocol in firmware has been updated to v2.0, thus update the corresponding version in TF-A too. Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com> Change-Id: If3920ff71136dce94b2780e29a47f24aa09876c0
-
- 13 Apr, 2021 1 commit
-
-
Leif Lindholm authored
Enable basic support for QEMU "max" CPU. The "max" CPU does not attampt to emulate any specific CPU, but rather just enables all the functions emulated by QEMU. Change-Id: I69c212932ef61433509662d0fefbabb1e9e71cf2 Signed-off-by: Leif Lindholm <leif@nuviainc.com>
-
- 07 Apr, 2021 1 commit
-
-
Max Shvetsov authored
Since there is a secure and non-secure version of the timer registers there is no need to preserve their context in EL3. With that, following registers were removed from EL3 save/restore routine: cnthps_ctl_el2 cnthps_tval_el2 cnthps_cval_el2 cnthvs_ctl_el2 cnthvs_tval_el2 cnthvs_cval_el2 cnthp_ctl_el2 cnthp_cval_el2 cnthp_tval_el2 cnthv_ctl_el2 cnthv_cval_el2 cnthv_tval_el2 Signed-off-by: Max Shvetsov <maksims.svecovs@arm.com> Change-Id: I6e2fc09c74a7375c4fccc11f12af4e39e6dc616b
-
- 01 Apr, 2021 1 commit
-
-
Venkatesh Yadav Abbarapu authored
The legacy console is gone. Re-add DCC console support based on the multi-console framework. Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@xilinx.com> Acked-by: Michal Simek <michal.simek@xilinx.com> Change-Id: Ia8388721093bc1be3af40974530d7c9a9ae5f43e
-