| 29332bcd | 06-Jul-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
feat(plat/st): use FCONF to configure platform
Add required code to support FCONF on STM32MP1 platform. The new FW_CONFIG DT file will be inside the FIP, and loaded by BL2. It will be used to config
feat(plat/st): use FCONF to configure platform
Add required code to support FCONF on STM32MP1 platform. The new FW_CONFIG DT file will be inside the FIP, and loaded by BL2. It will be used to configure the addresses where to load other binaries. BL2 should be agnostic of which BL32 is in the FIP (OP-TEE or SP_min), so optee_utils.c is always compiled, and some OP-TEE flags are removed.
Change-Id: Id957b49b0117864136250bfc416664f815043ada Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
show more ...
|
| 18b415be | 18-Jun-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
feat(plat/st): improve FIP image loading from MMC
Instead of using a scratch buffer of 512 bytes, we can directly use the image address and max size. The mmc_block_dev_spec struct info is then overw
feat(plat/st): improve FIP image loading from MMC
Instead of using a scratch buffer of 512 bytes, we can directly use the image address and max size. The mmc_block_dev_spec struct info is then overwritten for each image with this info, except FW_CONFIG and GPT table which will still use the scratch buffer. This allows using multiple blocks read on MMC, and so improves the boot time. A cache invalidate is required for the remaining data not used from the first and last blocks read. It is not required for FW_CONFIG_ID, as it is in scratch buffer in SYSRAM, and also because bl_mem_params struct is overwritten in this case. This should also not be done if the image is not found (OP-TEE extra binaries when using SP_min).
Change-Id: If3ecfdfe35bb9db66284036ca49c4bd1be4fd121 Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
show more ...
|
| 1d204ee4 | 19-May-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
feat(plat/st): use FIP to load images
BL2 still uses the STM32 header binary format to be loaded from ROM code. BL32 and BL33 and their respective device tree files are now put together in a FIP fil
feat(plat/st): use FIP to load images
BL2 still uses the STM32 header binary format to be loaded from ROM code. BL32 and BL33 and their respective device tree files are now put together in a FIP file. One DTB is created for each BL. To reduce their sizes, 2 new dtsi file are in charge of removing useless nodes for a given BL. This is done because BL2 and BL32 share the same device tree files base.
The previous way of booting is still available, the compilation flag STM32MP_USE_STM32IMAGE has to be set to 1 in the make command. Some files are duplicated and their names modified with _stm32_ to avoid too much switches in the code.
Change-Id: I1ffada0af58486d4cf6044511b51e56b52269817 Signed-off-by: Lionel Debieve <lionel.debieve@st.com> Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
show more ...
|
| 84090d2c | 13-Jul-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
refactor(plat/st): updates for OP-TEE
Protect BL32 (SP_min) with MMU if OP-TEE is not used. Validate OP-TEE header with optee_header_is_valid(). Use default values in bl2_mem_params_descs[]. They wi
refactor(plat/st): updates for OP-TEE
Protect BL32 (SP_min) with MMU if OP-TEE is not used. Validate OP-TEE header with optee_header_is_valid(). Use default values in bl2_mem_params_descs[]. They will be overwritten in bl2_plat_handle_post_image_load() if OP-TEE is used.
Change-Id: I8614f3a17caa827561614d0f25f30ee90c4ec3fe Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
show more ...
|
| 99080bd1 | 16-Aug-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
fix(plat/st): apply security at the end of BL2
Now that the DDR is mapped secured, the security settings (TZC400 firewall) have to be applied at the end of BL2 for the OP-TEE case. This is required
fix(plat/st): apply security at the end of BL2
Now that the DDR is mapped secured, the security settings (TZC400 firewall) have to be applied at the end of BL2 for the OP-TEE case. This is required to avoid checskum computation error on U-Boot binary, for which MMU and TZC400 would not be aligned.
Change-Id: I4a364f7117960e8fae1b579f341b9f140b766ea6 Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
show more ...
|
| 7e87ba25 | 27-Aug-2020 |
Yann Gautier <yann.gautier@foss.st.com> |
feat(plat/st): add helper to save boot interface
Some parameters from BootROM boot context can be required after boot. To save space in SYSRAM, this context can be overwritten during images load seq
feat(plat/st): add helper to save boot interface
Some parameters from BootROM boot context can be required after boot. To save space in SYSRAM, this context can be overwritten during images load sequence. The needed information (here the boot interface) is then saved in a local variable.
Change-Id: I5e1ad4630ccf78480f415a0a83939005ae67729e Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
show more ...
|
| 91ffc1de | 24-Sep-2020 |
Lionel Debieve <lionel.debieve@st.com> |
fix(plat/st): improve DDR get size function
Avoid parsing device tree every time when returning the DDR size. A cache flush on this size is also added because TZC400 configuration is applied at the
fix(plat/st): improve DDR get size function
Avoid parsing device tree every time when returning the DDR size. A cache flush on this size is also added because TZC400 configuration is applied at the end of BL2 after MMU and data cache being turned off. Configuration needs to retrieve the DDR size to generate the correct region. Access to the size fails because the value is still in the data cache. Flushing the size is mandatory.
Change-Id: I3dd1958f37d806f9c15a5d4151968935f6fe642e Signed-off-by: Lionel Debieve <lionel.debieve@st.com> Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
show more ...
|
| c1ad41fb | 04-Sep-2020 |
Yann Gautier <yann.gautier@st.com> |
refactor(plat/st): map DDR secure at boot
In BL2, the DDR can be mapped as secured in MMU, as no other SW has access to it during its execution. The TZC400 configuration is also updated to reflect t
refactor(plat/st): map DDR secure at boot
In BL2, the DDR can be mapped as secured in MMU, as no other SW has access to it during its execution. The TZC400 configuration is also updated to reflect this. When using OP-TEE, the TZC400 is reconfigured at the end of BL2, to match OP-TEE mapping. Else, SP_min will be in charge to reconfigure TZC400 to set DDR non-secure.
Change-Id: Ic5ec614b218f733796feeab1cdc425d28cc7c103 Signed-off-by: Yann Gautier <yann.gautier@st.com>
show more ...
|
| b230b3f2 | 20-Aug-2020 |
Yann Gautier <yann.gautier@st.com> |
refactor(plat/st): rework TZC400 configuration
Add new static functions to factorize code in stm32mp1_security.c.
Change-Id: Ifa5a1aaf7c56c25dba9a0ab8e985496d7cb06990 Signed-off-by: Yann Gautier <y
refactor(plat/st): rework TZC400 configuration
Add new static functions to factorize code in stm32mp1_security.c.
Change-Id: Ifa5a1aaf7c56c25dba9a0ab8e985496d7cb06990 Signed-off-by: Yann Gautier <yann.gautier@st.com>
show more ...
|
| 23b7ad5c | 07-Jul-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "stm32_io_update" into integration
* changes: refactor(plat/st): add stm32image_io_setup fix(plat/st): panic if boot interface is wrong |
| c25ff16e | 29-Sep-2020 |
Patrick Delaunay <patrick.delaunay@st.com> |
refactor(plat/st): add stm32image_io_setup
Add a generic function to setup the stm32image IO.
Change-Id: I0f7cf4a6030605037643f3119b809e0319d926af Signed-off-by: Patrick Delaunay <patrick.delaunay@
refactor(plat/st): add stm32image_io_setup
Add a generic function to setup the stm32image IO.
Change-Id: I0f7cf4a6030605037643f3119b809e0319d926af Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
show more ...
|
| 71693a66 | 30-Jun-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
fix(plat/st): panic if boot interface is wrong
Add a panic() at the end of stm32mp_io_setup() if the boot interface given in ROM code boot context is not supported.
Change-Id: I0d50f21a11231febd210
fix(plat/st): panic if boot interface is wrong
Add a panic() at the end of stm32mp_io_setup() if the boot interface given in ROM code boot context is not supported.
Change-Id: I0d50f21a11231febd21041b6e63108cc3e6f4f0c Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
show more ...
|
| f2235058 | 09-Jun-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
fix(plat/st): add STM32IMAGE_SRC
The dependency on this macro was added by patch [1]. But the macro itself was forgotten in the patch.
[1] 128e0b3e2e0 ("stm32mp1: update rules for stm32image tool"
fix(plat/st): add STM32IMAGE_SRC
The dependency on this macro was added by patch [1]. But the macro itself was forgotten in the patch.
[1] 128e0b3e2e0 ("stm32mp1: update rules for stm32image tool")
Change-Id: I49219e1e13828b97b95f404983da33ef4567fe23 Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
show more ...
|
| c2d18ca8 | 26-Oct-2020 |
Yann Gautier <yann.gautier@st.com> |
fix(plat/st): correct IO compensation disabling
In stm32mp1_syscfg_disable_io_compensation(), to disable the IO compensation cell, we have to set the corresponding bit in SYSCFG_CMPENCLRR register,
fix(plat/st): correct IO compensation disabling
In stm32mp1_syscfg_disable_io_compensation(), to disable the IO compensation cell, we have to set the corresponding bit in SYSCFG_CMPENCLRR register, instead of clearing the bit in SETR register.
Change-Id: I510a50451f8afb9e98c24e1ea84efbf73a39e6b4 Signed-off-by: Yann Gautier <yann.gautier@st.com>
show more ...
|
| 72c78840 | 14-Jan-2020 |
Nicolas Le Bayon <nicolas.le.bayon@st.com> |
fix(plat/st): correct BSEC error code management
BSEC services should return SMC error codes as other IDs (defined in stm32mp1_smc.h) and not BSEC driver ones. So that non-secure caller is able to t
fix(plat/st): correct BSEC error code management
BSEC services should return SMC error codes as other IDs (defined in stm32mp1_smc.h) and not BSEC driver ones. So that non-secure caller is able to treat them correctly.
In global SMC handler, unknown ID should also return a value from this definition list, and not the generic one, which seems not well adapted for our needs.
Two unsigned values initializations are also changed from 0 to 0U.
Change-Id: Ib6fd3866a748cefad1d13d48f7be38241621023e Signed-off-by: Yann Gautier <yann.gautier@st.com> Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
show more ...
|
| 6db11196 | 17-Jun-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "refactor(plat/st): check boot device only for BL2" into integration |
| 5d582ff9 | 16-Jun-2021 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "refactor(plat/st): avoid fixed DT address" into integration |
| 2a008779 | 16-Jun-2021 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "soc_id" into integration
* changes: refactor(plat/nvidia): use SOC_ID defines refactor(plat/mediatek): use SOC_ID defines refactor(plat/arm): use SOC_ID defines fea
Merge changes from topic "soc_id" into integration
* changes: refactor(plat/nvidia): use SOC_ID defines refactor(plat/mediatek): use SOC_ID defines refactor(plat/arm): use SOC_ID defines feat(plat/st): implement platform functions for SMCCC_ARCH_SOC_ID refactor(plat/st): export functions to get SoC information feat(smccc): add bit definition for SMCCC_ARCH_SOC_ID
show more ...
|
| c20b0606 | 24-Aug-2020 |
Yann Gautier <yann.gautier@st.com> |
refactor(plat/st): avoid fixed DT address
Device Tree address is now a parameter for dt_open_and_check() function. This will allow better flexibility when introducing PIE and FIP. The fdt pointer is
refactor(plat/st): avoid fixed DT address
Device Tree address is now a parameter for dt_open_and_check() function. This will allow better flexibility when introducing PIE and FIP. The fdt pointer is now only assigned if the given address holds a valid device tree file. This allows removing the fdt_checked variable, as we now check fdt is not null.
Change-Id: I04cbb2fc05c9c711ae1c77d56368dbeb6dd4b01a Signed-off-by: Yann Gautier <yann.gautier@st.com>
show more ...
|
| d3b0e870 | 09-Nov-2020 |
Yann Gautier <yann.gautier@st.com> |
refactor(plat/st): check boot device only for BL2
The boot device is now checked inside a dedicated rule, that is only called during BL2 compilation step
Change-Id: Ie7bcd1f166285224b0c042238989a82
refactor(plat/st): check boot device only for BL2
The boot device is now checked inside a dedicated rule, that is only called during BL2 compilation step
Change-Id: Ie7bcd1f166285224b0c042238989a82f7b6105c6 Signed-off-by: Yann Gautier <yann.gautier@st.com>
show more ...
|
| 214c8a8d | 04-Jun-2021 |
Vyacheslav Yurkov <uvv.mail@gmail.com> |
feat(plat/st): add STM32MP_EMMC_BOOT option
Added a new STM32MP_EMMC_BOOT option, which is used to look for SSBL in the same eMMC boot partition TF-A booted from at a fixed 256k offset. In case STM3
feat(plat/st): add STM32MP_EMMC_BOOT option
Added a new STM32MP_EMMC_BOOT option, which is used to look for SSBL in the same eMMC boot partition TF-A booted from at a fixed 256k offset. In case STM32 image header is not found, the boot process rolls back to a GPT partition look-up scheme.
Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com> Change-Id: I85a87dc9ae7f2b915ed8e584be80f4b3588efc48
show more ...
|
| 3f916a41 | 03-Jun-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
refactor(plat/st): remove io_dummy code for OP-TEE
The io_dummy code and function calls are only used in case BL32 is TF-A SP_min, and not OP-TEE. This code in bl2_io_storage can then be put under #
refactor(plat/st): remove io_dummy code for OP-TEE
The io_dummy code and function calls are only used in case BL32 is TF-A SP_min, and not OP-TEE. This code in bl2_io_storage can then be put under #ifndef AARCH32_SP_OPTEE.
Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: I52787a775160b335f97547203f653419621f5147
show more ...
|
| e1db570a | 11-May-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
refactor(plat/st): remove BL2 image loading
STM32MP1 does not use BL1, the loading of BL2 is done by ROM code. It is then useless to have an entry BL2_IMAGE_ID in the policies.
Signed-off-by: Yann
refactor(plat/st): remove BL2 image loading
STM32MP1 does not use BL1, the loading of BL2 is done by ROM code. It is then useless to have an entry BL2_IMAGE_ID in the policies.
Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: I464cedf588114d60522433123f8dbef32ae36818
show more ...
|
| 06c3b100 | 19-May-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
refactor(plat/st): rename OP-TEE pager to core
OPTEE_PAGER defines are renamed OPTEE_CORE.
Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: I4c28d3b0a6ed843088a3ef06e3e348ce689fabde |
| 3d201787 | 08-Mar-2021 |
Yann Gautier <yann.gautier@foss.st.com> |
feat(plat/st): implement platform functions for SMCCC_ARCH_SOC_ID
The JEDEC information for STMicroelectronics is: JEDEC_ST_MFID U(0x20) JEDEC_ST_BKID U(0x0) And rely on platform functions to get ch
feat(plat/st): implement platform functions for SMCCC_ARCH_SOC_ID
The JEDEC information for STMicroelectronics is: JEDEC_ST_MFID U(0x20) JEDEC_ST_BKID U(0x0) And rely on platform functions to get chip IP and revision.
Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: I4fa4ac8bb5583b1871b768decc9fe08e8966ff54
show more ...
|