| 602ae2f2 | 28-Feb-2020 |
Gabriel Fernandez <gabriel.fernandez@st.com> |
fix(stm32mp1_clk): fix MPU clock rate
MPUDIV dividers are stored in a constant array, under bit shifts form. They must be used in this way by the clock driver.
Change-Id: If758f7a4048eff956067a10a4
fix(stm32mp1_clk): fix MPU clock rate
MPUDIV dividers are stored in a constant array, under bit shifts form. They must be used in this way by the clock driver.
Change-Id: If758f7a4048eff956067a10a42ab0983a20a000d Signed-off-by: Gabriel Fernandez <gabriel.fernandez@st.com> Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
show more ...
|
| b8fe48b6 | 19-Dec-2019 |
Etienne Carriere <etienne.carriere@st.com> |
fix(stm32mp1_clk): fix MCU/AXI parent clock
Correct MCU clock parent selector: MCU subsystem clock is derived from clock PLL3_P, not PLL3.
Correct AXI clock parent selector: AXI subsystem clock is
fix(stm32mp1_clk): fix MCU/AXI parent clock
Correct MCU clock parent selector: MCU subsystem clock is derived from clock PLL3_P, not PLL3.
Correct AXI clock parent selector: AXI subsystem clock is derived from clock PLL2_P, not PLL2.
This change also renames MCU clock and AXI clock resources to prevent confusion.
Change-Id: If55618d180e7dce8e4f0977b0e586a6fa8ef28d1 Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
show more ...
|
| ba57711c | 22-Oct-2020 |
Yann Gautier <yann.gautier@st.com> |
refactor(stm32mp_clk): keep RCC node offset
To avoid parsing device tree file too often, keep the RCC node offset value in a variable in fdt_get_rcc_node().
Change-Id: Ibb23ff92247d57c65a23517b8f34
refactor(stm32mp_clk): keep RCC node offset
To avoid parsing device tree file too often, keep the RCC node offset value in a variable in fdt_get_rcc_node().
Change-Id: Ibb23ff92247d57c65a23517b8f3473f639794d2a Signed-off-by: Yann Gautier <yann.gautier@st.com>
show more ...
|
| bf39318d | 16-Sep-2020 |
Yann Gautier <yann.gautier@st.com> |
fix(stm32mp1_clk): set other clocks as always on
AXI, MPU and MCU clocks are always on, put them in the list in the function clock_is_always_on().
Change-Id: I969a442274d2da6c59636f3293de1c31b4c8e3
fix(stm32mp1_clk): set other clocks as always on
AXI, MPU and MCU clocks are always on, put them in the list in the function clock_is_always_on().
Change-Id: I969a442274d2da6c59636f3293de1c31b4c8e3b1 Signed-off-by: Yann Gautier <yann.gautier@st.com>
show more ...
|
| 078925be | 06-Oct-2021 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge "refactor(measured boot): remove unused extern" into integration |
| f19dc624 | 16-Jun-2021 |
johpow01 <john.powell@arm.com> |
refactor(gpt): productize and refactor GPT library
This patch updates and refactors the GPT library and fixes bugs.
- Support all combinations of PGS, PPS, and L0GPTSZ parameters. - PPS and PGS are
refactor(gpt): productize and refactor GPT library
This patch updates and refactors the GPT library and fixes bugs.
- Support all combinations of PGS, PPS, and L0GPTSZ parameters. - PPS and PGS are set at runtime, L0GPTSZ is read from GPCCR_EL3. - Use compiler definitions to simplify code. - Renaming functions to better suit intended uses. - MMU enabled before GPT APIs called. - Add comments to make function usage more clear in GPT library. - Added _rme suffix to file names to differentiate better from the GPT file system code. - Renamed gpt_defs.h to gpt_rme_private.h to better separate private and public code. - Renamed gpt_core.c to gpt_rme.c to better conform to TF-A precedent.
Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I4cbb23b0f81e697baa9fb23ba458aa3f7d1ed919
show more ...
|
| de278f33 | 05-Oct-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "fix(errata): workaround for Cortex-A710 erratum 2058056" into integration |
| e2e04444 | 05-Oct-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "arm_fpga_resmem" into integration
* changes: fix(arm_fpga): reserve BL31 memory fix(arm_fpga): limit BL31 memory usage |
| d7fe4cb0 | 05-Oct-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "ethosn-multi-device" into integration
* changes: feat(drivers/arm/ethosn)!: multi-device support feat(fdt): add for_each_compatible_node macro |
| e2f4b434 | 05-Oct-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes If7dec725,Iedcb84a7,Ife0a4bec into integration
* changes: errata: workaround for Cortex-A78 erratum 2132060 errata: workaround for Neoverse-V1 erratum 2108267 fix(errata): workar
Merge changes If7dec725,Iedcb84a7,Ife0a4bec into integration
* changes: errata: workaround for Cortex-A78 erratum 2132060 errata: workaround for Neoverse-V1 erratum 2108267 fix(errata): workaround for Neoverse-N2 erratum 2138953
show more ...
|
| 07e96d1d | 01-Oct-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(rme): disable Watchdog for Arm platforms if FEAT_RME enabled
In the typical TF-A boot flow, the Trusted Watchdog is started at the beginning of BL1 and then stopped in BL1 after returning from
feat(rme): disable Watchdog for Arm platforms if FEAT_RME enabled
In the typical TF-A boot flow, the Trusted Watchdog is started at the beginning of BL1 and then stopped in BL1 after returning from BL2. However, in the RME boot flow there is no return path from BL2 to BL1. Therefore, disable the Watchdog if ENABLE_RME is set.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: Id88fbfab8e8440642414bed48c50e3fcb23f3621
show more ...
|
| 3cfa3497 | 26-Aug-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
docs(rme): add build and run instructions for FEAT_RME
This patch adds instructions on how to build and run TF-A with FEAT_RME enabled. The patch also adds code owners for FEAT_RME.
Signed-off-by:
docs(rme): add build and run instructions for FEAT_RME
This patch adds instructions on how to build and run TF-A with FEAT_RME enabled. The patch also adds code owners for FEAT_RME.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: Id16dc52cb76b1ea56ac5c3fc38cb0794a62ac2a1
show more ...
|
| d22f1d35 | 18-Jun-2021 |
Soby Mathew <soby.mathew@arm.com> |
fix(plat/fvp): bump BL2 stack size
VERBOSE print logs need a larger stack size and the currently configured BL2 stack size was insufficient for FVP. This patch increases the same.
Signed-off-by: So
fix(plat/fvp): bump BL2 stack size
VERBOSE print logs need a larger stack size and the currently configured BL2 stack size was insufficient for FVP. This patch increases the same.
Signed-off-by: Soby Mathew <soby.mathew@arm.com> Change-Id: I316ba2ea467571161b5f4807e6e5fa0bf89d44c6
show more ...
|
| 672d669d | 27-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
fix(plat/fvp): allow changing the kernel DTB load address
We currently use ARM_PRELOADED_DTB_BASE build variable to pass the kernel DTB base address to the kernel when using the ARM_LINUX_KERNEL_AS_
fix(plat/fvp): allow changing the kernel DTB load address
We currently use ARM_PRELOADED_DTB_BASE build variable to pass the kernel DTB base address to the kernel when using the ARM_LINUX_KERNEL_AS_BL33 option. However this variable doesn't actually change the DTB load address.
The DTB load address is actually specified in the FW_CONFIG DTS (fvp_fw_config.dts) as 'hw_config'. This patch passes the hw_config value instead of ARM_PRELOADED_DTB_BASE allowing us to change the kernel DTB load address through fvp_fw_config.dts.
With this change we don't need the ARM_PRELOADED_DTB_BASE build variable if RESET_TO_BL31 is not set. Note that the hw_config value needs to be within the ARM_DTB_DRAM_NS region specified by FVP_DTB_DRAM_MAP_START and FVP_DTB_DRAM_MAP_SIZE.
This patch also expands the ARM_DTB_DRAM_NS region to 32MB.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: Idd74cdf5d2c649bb320644392ba5d69e175a53a9
show more ...
|
| 707f0710 | 27-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
refactor(plat/arm): rename ARM_DTB_DRAM_NS region macros
The macros PLAT_HW_CONFIG_DTB_BASE and PLAT_HW_CONFIG_DTB_SIZE describe the range of memory where the HW_CONFIG_DTB can be loaded rather than
refactor(plat/arm): rename ARM_DTB_DRAM_NS region macros
The macros PLAT_HW_CONFIG_DTB_BASE and PLAT_HW_CONFIG_DTB_SIZE describe the range of memory where the HW_CONFIG_DTB can be loaded rather than the actual load address and size of the DTB. This patch changes the names to something more descriptive.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I98b81f3ce0c80fd76614f959667c25b07941e190
show more ...
|
| dbbc9a67 | 13-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
refactor(plat/fvp): update FVP platform DTS for FEAT_RME
This patch make minor modifications to FVP DTS including modifying the Non-secure memory range when RME is enabled.
Signed-off-by: Zelalem A
refactor(plat/fvp): update FVP platform DTS for FEAT_RME
This patch make minor modifications to FVP DTS including modifying the Non-secure memory range when RME is enabled.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I6b3650a2abfff10462a8a2d42755e6d764f7b035
show more ...
|
| deb4b3a6 | 13-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(plat/arm): add GPT initialization code for Arm platforms
When RME is enabled, during configuration of the TrustZone controller, Root regions are initially configured as Secure regions, and Real
feat(plat/arm): add GPT initialization code for Arm platforms
When RME is enabled, during configuration of the TrustZone controller, Root regions are initially configured as Secure regions, and Realm regions as Non-secure regions. Then later these regions are configured as Root and Realm regions respectively in the GPT. According to the RME architecture reference manual, Root firmware must ensure that Granule Protection Check is enabled before enabling any stage of translation. Therefore initializations are done as follows when RME is enabled :
Initialize/enable the TrustZone controller (plat_arm_security_setup) --> Initialize/enable GPC (arm_bl2_plat_gpt_setup) --> enable MMU (enable_mmu_el3)
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I91094e8259079437bee02de1f65edb9ad51e43cf
show more ...
|
| c8720729 | 13-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(plat/fvp): add memory map for FVP platform for FEAT_RME
When FEAT_RME is enabled, memory is divided into four Physical Address Spaces (PAS): Root, Realm, Secure and Non-secure. This patch intro
feat(plat/fvp): add memory map for FVP platform for FEAT_RME
When FEAT_RME is enabled, memory is divided into four Physical Address Spaces (PAS): Root, Realm, Secure and Non-secure. This patch introduces new carveouts for the Trusted SRAM and DRAM for the FVP platform accordingly.
The following new regions are introduced with this change:
ARM_MAP_L0_GPT_REGION: Trusted SRAM region used to store Level 0 Granule Protection Table (GPT). This region resides in the Root PAS.
ARM_MAP_GPT_L1_DRAM: DRAM region used to store Level 1 GPT. It resides in the Root PAS.
ARM_MAP_RMM_DRAM: DRAM region used to store RMM image. It resides in the Realm PAS.
The L0 GPT is stored on Trusted SRAM next to firmware configuration memory. The DRAM carveout when RME is enable is modified as follow:
-------------------- | | | AP TZC (~28MB) | -------------------- | | | REALM (32MB) | -------------------- | | | EL3 TZC (3MB) | -------------------- | L1 GPT + SCP TZC | | (~1MB) | 0xFFFF_FFFF --------------------
During initialization of the TrustZone controller, Root regions are configured as Secure regions. Then they are later reconfigured to Root upon GPT initialization.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: If2e257141d51f51f715b70d4a06f18af53607254
show more ...
|
| 4bb72c47 | 13-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
refactor(plat/arm): modify memory region attributes to account for FEAT_RME
If FEAT_RME is enabled, EL3 runs in the Root world as opposed to Secure world. This patch changes EL3 memory region attrib
refactor(plat/arm): modify memory region attributes to account for FEAT_RME
If FEAT_RME is enabled, EL3 runs in the Root world as opposed to Secure world. This patch changes EL3 memory region attributes for Arm platforms accordingly.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: Ie176f8b440ff34330e4e44bd3bf8d9703b3892ff
show more ...
|
| 9d870b79 | 11-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(plat/fvp): add RMM image support for FVP platform
This patch adds the necessary changes needed to build and load RMM image for the FVP platform. RMM image is loaded by BL2 after BL32 (if BL32 e
feat(plat/fvp): add RMM image support for FVP platform
This patch adds the necessary changes needed to build and load RMM image for the FVP platform. RMM image is loaded by BL2 after BL32 (if BL32 exists) and before BL33.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I1ac9eade84c2e35c7479a322ca1d090b4e626819
show more ...
|
| 1839012d | 13-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(rme): add GPT Library
This patch introduces the Granule Protection Table (GPT) library code. This implementation will be updated later to be more flexible, as the current implementation is very
feat(rme): add GPT Library
This patch introduces the Granule Protection Table (GPT) library code. This implementation will be updated later to be more flexible, as the current implementation is very rigid.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I3af824a28c6e9a5d36459c0c51d2d9bebfba1505
show more ...
|
| 5b18de09 | 11-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(rme): add ENABLE_RME build option and support for RMM image
The changes include:
- A new build option (ENABLE_RME) to enable FEAT_RME
- New image called RMM. RMM is R-EL2 firmware that manage
feat(rme): add ENABLE_RME build option and support for RMM image
The changes include:
- A new build option (ENABLE_RME) to enable FEAT_RME
- New image called RMM. RMM is R-EL2 firmware that manages Realms. When building TF-A, a path to RMM image can be specified using the "RMM" build flag. If RMM image is not provided, TRP is built by default and used as RMM image.
- Support for RMM image in fiptool
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I017c23ef02e465a5198baafd665a60858ecd1b25
show more ...
|
| 434d0491 | 11-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
refactor(makefile): remove BL prefixes in build macros
The current Makefile assumes all TF-A binaries have BL prefixes (BL1, BL2, etc). Now that we have other binary names with FEAT_RME feature, rem
refactor(makefile): remove BL prefixes in build macros
The current Makefile assumes all TF-A binaries have BL prefixes (BL1, BL2, etc). Now that we have other binary names with FEAT_RME feature, remove this assumption. With this change, we need to pass the full name of a binary when using build macros.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I44e094b2366aa526f807d92dffa709390d14d145
show more ...
|
| c5ea4f8a | 09-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(rme): add context management changes for FEAT_RME
This patch adds a new context for realm world and realm world awareness in context management.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm
feat(rme): add context management changes for FEAT_RME
This patch adds a new context for realm world and realm world awareness in context management.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Signed-off-by: Subhasish Ghosh <subhasish.ghosh@arm.com> Change-Id: Ic17469393603e789d7adc025880346bc3d6233d7
show more ...
|
| 50a3056a | 09-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(rme): add Test Realm Payload (TRP)
TRP is a small test payload that implements Realm Monitor Management (RMM) functionalities. RMM runs in the Realm world (R-EL2) and manages the execution of R
feat(rme): add Test Realm Payload (TRP)
TRP is a small test payload that implements Realm Monitor Management (RMM) functionalities. RMM runs in the Realm world (R-EL2) and manages the execution of Realm VMs and their interaction with the hypervisor in Normal world.
TRP is used to test the interface between RMM and Normal world software, known as Realm Management Interface (RMI). Current functions includes returning RMM version and transitioning granules from Non-secure to Realm world and vice versa.
More information about RMM can be found at: https://developer.arm.com/documentation/den0125/latest
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: Ic7b9a1e1f3142ef6458d40150d0b4ba6bd723ea2
show more ...
|