| d3c643c2 | 19-Feb-2024 |
Salman Nabi <salman.nabi@arm.com> |
refactor(imx): console runtime switch on bl31 exit
Flush the FIFO before switching to runtime. This is so that there are no lingering chars in the FIFO when we move to the runtime console.
TF-A pla
refactor(imx): console runtime switch on bl31 exit
Flush the FIFO before switching to runtime. This is so that there are no lingering chars in the FIFO when we move to the runtime console.
TF-A plans to refactor the console_Switch_state(CONSOLE_FLAG_RUNTIME) and console_flush() calls and make them the last calls in bl31_main() (before BL31 exits). Until then they are being left as the last calls in bl31_plat_runtime_setup() for testing before refactoring.
This patch affects the Freescale/NXP SoCs imx93, imx8qm and imx8qx.
Change-Id: Iece74579e1d15eeeb8279db0c53d74bce45545bd Signed-off-by: Salman Nabi <salman.nabi@arm.com>
show more ...
|
| 758ccb80 | 08-Mar-2024 |
Chris Kay <chris.kay@arm.com> |
build: remove `MAKE_BUILD_STRINGS` function
This function causes the build message to be generated and compiled in two different ways, with one way done inside `build_macros.mk` and the other done i
build: remove `MAKE_BUILD_STRINGS` function
This function causes the build message to be generated and compiled in two different ways, with one way done inside `build_macros.mk` and the other done inside `windows.mk`, mostly because it's done by generating the C file on the command line.
We can instead replace this whole build message generation sequence with a simple standard C compilation command and a normal C file.
Change-Id: I8bc136380c9585ddeec9a11154ee39ef70526f81 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 3d9fea94 | 18-Jan-2024 |
Sascha Hauer <s.hauer@pengutronix.de> |
feat(imx8mp): optionally take params from BL2
Optionally take params from BL2 to offer more flexibility to BL2 on where and if a BL32 image is expected. This uses imx_bl31_params_parse() to check if
feat(imx8mp): optionally take params from BL2
Optionally take params from BL2 to offer more flexibility to BL2 on where and if a BL32 image is expected. This uses imx_bl31_params_parse() to check if arg0 can safely be accessed as a pointer and actually contains a bl_params_t structure. If not, the hardcoded parameter values are used as before.
Change-Id: I44537ba2baa7543e459e5691b69df14b0bd6e942 Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
show more ...
|
| c37a877e | 18-Jan-2024 |
Sascha Hauer <s.hauer@pengutronix.de> |
feat(imx8mn): optionally take params from BL2
Optionally take params from BL2 to offer more flexibility to BL2 on where and if a BL32 image is expected. This uses imx_bl31_params_parse() to check if
feat(imx8mn): optionally take params from BL2
Optionally take params from BL2 to offer more flexibility to BL2 on where and if a BL32 image is expected. This uses imx_bl31_params_parse() to check if arg0 can safely be accessed as a pointer and actually contains a bl_params_t structure. If not, the hardcoded parameter values are used as before.
Change-Id: Ia12d35778f4d550860e517f2a1f5c5d062f3283a Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
show more ...
|
| 11d32b33 | 18-Jan-2024 |
Sascha Hauer <s.hauer@pengutronix.de> |
feat(imx8mm): optionally take params from BL2
Optionally take params from BL2 to offer more flexibility to BL2 on where and if a BL32 image is expected. This uses imx_bl31_params_parse() to check if
feat(imx8mm): optionally take params from BL2
Optionally take params from BL2 to offer more flexibility to BL2 on where and if a BL32 image is expected. This uses imx_bl31_params_parse() to check if arg0 can safely be accessed as a pointer and actually contains a bl_params_t structure. If not, the hardcoded parameter values are used as before.
Change-Id: I06b3012c67e43ea1e42946d863226bd93ccd4638 Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
show more ...
|
| 02d1813e | 18-Jan-2024 |
Sascha Hauer <s.hauer@pengutronix.de> |
feat(imx93): optionally take params from BL2
Optionally take params from BL2 to offer more flexibility to BL2 on where and if a BL32 image is expected. This uses imx_bl31_params_parse() to check if
feat(imx93): optionally take params from BL2
Optionally take params from BL2 to offer more flexibility to BL2 on where and if a BL32 image is expected. This uses imx_bl31_params_parse() to check if arg0 can safely be accessed as a pointer and actually contains a bl_params_t structure. If not, the hardcoded parameter values are used as before.
Change-Id: Iec885405efd31a6bf6c0e6c532f8d2f31c023333 Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
show more ...
|
| 7eae1db0 | 18-Jan-2024 |
Sascha Hauer <s.hauer@pengutronix.de> |
feat(imx): add helper to take params from BL2
So far the i.MX BL31 doesn't take any parameters. This means the BL32 image base address and whether or not a BL32 image is used at all has to be hardco
feat(imx): add helper to take params from BL2
So far the i.MX BL31 doesn't take any parameters. This means the BL32 image base address and whether or not a BL32 image is used at all has to be hardcoded in BL31.
This adds a helper function that allows to take params from BL2 safely. On i.MX BL2 is usually U-Boot SPL which passes random values in arg0, so make sure arg0 is within the internal SRAM range before accessing it as a pointer. Also make sure arg0 is sufficiently aligned and the header type and version is correct.
Change-Id: Idab8013a1d6dabf50a83c75f3e6f831de4a537e9 Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
show more ...
|
| 52ee8173 | 13-Mar-2024 |
Leonard Göhrs <l.goehrs@pengutronix.de> |
feat(imx8mq): detect console base address during runtime
On the i.MX8M SoCs, TF-A doesn't itself initialize the UART, but depends on BL2 to set it up beforehand. To allow using the same TF-A binary
feat(imx8mq): detect console base address during runtime
On the i.MX8M SoCs, TF-A doesn't itself initialize the UART, but depends on BL2 to set it up beforehand. To allow using the same TF-A binary on boards with different UART assignment, TF-A On i.MX8M M/N/P supports dynamically determining the UART in use. The code is also applicable to the i.MX8MQ, so enable it there too.
Change-Id: I9ba70f7068e762da979bd103390fa006c3a5d480 Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
show more ...
|
| 5f4acf98 | 26-Mar-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "feature/imx8m-csu" into integration
* changes: style(imx8m): add parenthesis to CSU_HP_REG feat(imx8mp): restrict peripheral access to secure world feat(imx8mp): set
Merge changes from topic "feature/imx8m-csu" into integration
* changes: style(imx8m): add parenthesis to CSU_HP_REG feat(imx8mp): restrict peripheral access to secure world feat(imx8mp): set and lock almost all peripherals as non-secure feat(imx8mm): restrict peripheral access to secure world feat(imx8mm): set and lock almost all peripherals as non-secure feat(imx8m): add defines for csu_sa access security feat(imx8m): add imx csu_sa enum type defines for imx8m fix(imx8m): fix CSU_SA_REG to work with all sa registers
show more ...
|
| 351976bb | 19-Mar-2024 |
Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> |
feat(imx8ulp): give HIFI4 DSP access to more resources
This patch gives i.MX8ULP's HIFI4 DSP R/W access to the following additional resources (peripherals): 1) LPUART7 2) IOMUXC1 3) PCC4 4) CGC1
feat(imx8ulp): give HIFI4 DSP access to more resources
This patch gives i.MX8ULP's HIFI4 DSP R/W access to the following additional resources (peripherals): 1) LPUART7 2) IOMUXC1 3) PCC4 4) CGC1
Doing this allows the firmware running on the DSP to set up serial communication, which also requires doing pinctrl and clock management-related operations.
Access to the aforementioned resources is given by configuring the XRDC module.
Change-Id: Ie3ca9f22bb625b2463870158875f503c3c1d6452 Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com>
show more ...
|
| 566d3944 | 05-Mar-2024 |
Stefan Kerkmann <s.kerkmann@pengutronix.de> |
style(imx8m): add parenthesis to CSU_HP_REG
To be inline with CSU_SA_REG and CSU_HPCONTROL_REG.
Change-Id: Ia7332096312df41a8cf994d58fad76a99493dd02 Signed-off-by: Stefan Kerkmann <s.kerkmann@pengu
style(imx8m): add parenthesis to CSU_HP_REG
To be inline with CSU_SA_REG and CSU_HPCONTROL_REG.
Change-Id: Ia7332096312df41a8cf994d58fad76a99493dd02 Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de>
show more ...
|
| 0324081a | 04-Mar-2024 |
Stefan Kerkmann <s.kerkmann@pengutronix.de> |
feat(imx8mp): restrict peripheral access to secure world
This restricts and locks all security relevant peripherals to only be changeable by the secure world. Otherwise the normal world can simply c
feat(imx8mp): restrict peripheral access to secure world
This restricts and locks all security relevant peripherals to only be changeable by the secure world. Otherwise the normal world can simply change the access settings and defeat all security measures put in place.
Change-Id: I248ef8dd67f1de7e528c3da456311bb138b77540 Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de>
show more ...
|
| cba7daa1 | 04-Mar-2024 |
Stefan Kerkmann <s.kerkmann@pengutronix.de> |
feat(imx8mp): set and lock almost all peripherals as non-secure
This sets and locks all peripheral type-1 masters, except CAAM, access as non-secure, so that they can't access secure world resources
feat(imx8mp): set and lock almost all peripherals as non-secure
This sets and locks all peripheral type-1 masters, except CAAM, access as non-secure, so that they can't access secure world resources from the normal world.
The CAAM itself is TrustZone aware and handles memory access between the normal world and the secure world on its own. Pinning it as non-secure access results in bus aborts if the secure memory region is protected by the TZASC380.
Change-Id: Iedf3d67481dc35d56aa7b291749b999a56d6e85e Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de>
show more ...
|
| 1156c763 | 04-Mar-2024 |
Stefan Kerkmann <s.kerkmann@pengutronix.de> |
feat(imx8mm): restrict peripheral access to secure world
This restricts and locks all security relevant peripherals to only be changeable by the secure world. Otherwise the normal world can simply c
feat(imx8mm): restrict peripheral access to secure world
This restricts and locks all security relevant peripherals to only be changeable by the secure world. Otherwise the normal world can simply change the access settings and defeat all security measures put in place.
Change-Id: I484a2c8164e58b68256d829470e00d5ec473e266 Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de>
show more ...
|
| f4b11e59 | 04-Mar-2024 |
Stefan Kerkmann <s.kerkmann@pengutronix.de> |
feat(imx8mm): set and lock almost all peripherals as non-secure
This sets and locks all peripheral type-1 masters, except CAAM, access as non-secure, so that they can't access secure world resources
feat(imx8mm): set and lock almost all peripherals as non-secure
This sets and locks all peripheral type-1 masters, except CAAM, access as non-secure, so that they can't access secure world resources from the normal world.
The CAAM itself is TrustZone aware and handles memory access between the normal world and the secure world on its own. Pinning it as non-secure access results in bus aborts if the secure memory region is protected by the TZASC380.
Change-Id: Idba4d8a491ccce0491489c61e73545baab1889c4 Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de>
show more ...
|
| c6b204cc | 05-Jun-2023 |
Tamas Ban <tamas.ban@arm.com> |
refactor(imx8m): align image identifier string macros
Macros were renamed, align with new names.
Signed-off-by: Tamas Ban <tamas.ban@arm.com> Change-Id: I26be3bc52e176898700568fab5f6c19678978797 |
| 81de5037 | 28-Feb-2024 |
Stefan Kerkmann <s.kerkmann@pengutronix.de> |
feat(imx8m): add defines for csu_sa access security
This enables the usage of speaking defines instead of magic numbers:
CSU_SA(CSU_SA_SDMA1, 1, LOCKED)
becomes:
CSU_SA(CSU_SA_SDMA1, NON_SEC_
feat(imx8m): add defines for csu_sa access security
This enables the usage of speaking defines instead of magic numbers:
CSU_SA(CSU_SA_SDMA1, 1, LOCKED)
becomes:
CSU_SA(CSU_SA_SDMA1, NON_SEC_ACCESS, LOCKED)
Change-Id: Idcabcda677bf7840084a2ea66d321b50aa0b2b20 Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de>
show more ...
|
| 2ac4909a | 28-Feb-2024 |
Stefan Kerkmann <s.kerkmann@pengutronix.de> |
feat(imx8m): add imx csu_sa enum type defines for imx8m
This ports the missing enum defines for the central security unit found in NXPs i.MX8M socs. The defines itself where imported from NXP's down
feat(imx8m): add imx csu_sa enum type defines for imx8m
This ports the missing enum defines for the central security unit found in NXPs i.MX8M socs. The defines itself where imported from NXP's downstream version of the trusted-firmware-a version 2.8[1].
[1]: https://github.com/nxp-imx/imx-atf/commit/0c52279fc4
Change-Id: Iad0c5d3733e9d29ead86334ba4bc5ce915018142 Signed-off-by: Ji Luo <ji.luo@nxp.com> Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de>
show more ...
|
| c13016ba | 28-Feb-2024 |
Stefan Kerkmann <s.kerkmann@pengutronix.de> |
fix(imx8m): fix CSU_SA_REG to work with all sa registers
The csu found in the imx8mp has 3 csu_sa registers, before the fix not all of them could be addressed.
The defines itself was imported from
fix(imx8m): fix CSU_SA_REG to work with all sa registers
The csu found in the imx8mp has 3 csu_sa registers, before the fix not all of them could be addressed.
The defines itself was imported from NXP's downstream version of the trusted-firmware-a version 2.8[1].
[1]: https://github.com/nxp-imx/imx-atf/commit/0c52279fc4
Change-Id: Ia3653118bba82df9244c819a5c5f37bdc4e89c49 Signed-off-by: Ji Luo <ji.luo@nxp.com> Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de>
show more ...
|
| 047d7d1b | 02-Aug-2023 |
Jacky Bai <ping.bai@nxp.com> |
fix(imx8ulp): increase the mmap region num
the mmap region num is not enough for the mmap regions, so increase it, increase the xlat_table num too.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Chang
fix(imx8ulp): increase the mmap region num
the mmap region num is not enough for the mmap regions, so increase it, increase the xlat_table num too.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: I2a2515b291e96cc12398a2c2c526351342811fff
show more ...
|
| 8d50c91b | 27-Jul-2023 |
Ji Luo <ji.luo@nxp.com> |
feat(imx8ulp): adjust the dram mapped region
below commit mapped 16 MB memory from the start of DRAM(0x80000000), which may have conflict with the shared memory used by Trusty OS: LF-8819: plat: i
feat(imx8ulp): adjust the dram mapped region
below commit mapped 16 MB memory from the start of DRAM(0x80000000), which may have conflict with the shared memory used by Trusty OS: LF-8819: plat: imx8ulp: ddrc switch auto low power and software interface
change the mapped memory to 'vdev0buffer' reserved memory (0x8ff00000) to avoid memory conflict. This commit also bumps the XTLB tables to avoid mapping failure.
Signed-off-by: Ji Luo <ji.luo@nxp.com> Change-Id: I1a7af958af47e3fc9955d0a80d1649971e843eab
show more ...
|
| ee25e6a5 | 14-Apr-2023 |
Adrian Alonso <adrian.alonso@nxp.com> |
feat(imx8ulp): ddrc switch auto low power and software interface
Enable switch between DDRC Auto low power and software/hardware control modes DDRC Auto low-power mode is used when system is active,
feat(imx8ulp): ddrc switch auto low power and software interface
Enable switch between DDRC Auto low power and software/hardware control modes DDRC Auto low-power mode is used when system is active, software/hardware control mode is used when going into suspend. Enable switching between Auto mode and SW/HW mode in enter/exit retention routines.
Set LPI_SRPD_LONG_MCCLK_GATE_WAKEUP_F2 Max setting to allow LPDDR_EN_CLKGATE reload LPI_SRPD_LONG_MCCLK_GATE_WAKEUP_F2 to exit retention mode
Signed-off-by: Pascal Mareau <pascal.mareau@nxp.com> Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com> Signed-off-by: Hongting Ting <hongting.dong@nxp.com> Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: I3c4b6f7bc6ca02649ff27cd3d9a0c50dab3a3ad0
show more ...
|
| c514d3cf | 24-Apr-2023 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx8ulp): add some delay before cmc1 access
When resume from APD sleep mode, need to add a small delay before accessing the CMC1 register.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Reviewed-
feat(imx8ulp): add some delay before cmc1 access
When resume from APD sleep mode, need to add a small delay before accessing the CMC1 register.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com> Change-Id: Ic8acdf58a3bf82b1791e7ae7f173f8c94c56b49d
show more ...
|
| 4fafccb9 | 13-Dec-2022 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx8ulp): add a flag check for the ddr status
for some user case, the ddr may need to be controlled by RTD side to save power, when APD resume from low power mode, it should wait ddr is ready f
feat(imx8ulp): add a flag check for the ddr status
for some user case, the ddr may need to be controlled by RTD side to save power, when APD resume from low power mode, it should wait ddr is ready for access. currently we use a GPR in SIM_RTD_SEC as a flag to indicate when the DDR is for access, non-zero value means the DDR can be access from APD.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com> Change-Id: I6fb0cc17a040d803a597304620202423f646f294
show more ...
|
| e1d5c3c8 | 30-Aug-2022 |
Jacky Bai <ping.bai@nxp.com> |
fix(imx8ulp): add sw workaround for csi/hotplug test hang
When doing CSI stress test after cpu hotplug, sometimes, system will hang in CSI test. After some debug, we find that if slow down the APD N
fix(imx8ulp): add sw workaround for csi/hotplug test hang
When doing CSI stress test after cpu hotplug, sometimes, system will hang in CSI test. After some debug, we find that if slow down the APD NIC frequency before power on the offline CPU, the issue is gone. For now, just add such SW workaround.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com> Change-Id: I39a49efc382fbebf46e1ff15c93d506bd5f6bec1
show more ...
|