History log of /rk3399_ARM-atf/plat/imx/imx8m/imx8mm/imx8mm_bl31_setup.c (Results 1 – 25 of 53)
Revision Date Author Comments
# 9481bf4b 03-Dec-2025 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge "feat(imx8m): keep console at runtime when building TF-A/bl31 with DEBUG" into integration


# d7f08649 09-Mar-2023 Markus Niebel <Markus.Niebel@ew.tq-group.com>

feat(imx8m): keep console at runtime when building TF-A/bl31 with DEBUG

Have informal console output at runtime is useful when searching
errors in TF-A.

Change-Id: I56b5c4fc184e571f79d92bd0aa4fc74f

feat(imx8m): keep console at runtime when building TF-A/bl31 with DEBUG

Have informal console output at runtime is useful when searching
errors in TF-A.

Change-Id: I56b5c4fc184e571f79d92bd0aa4fc74ff4ed6074
Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>

show more ...


# ad1f6288 14-Oct-2025 Yann Gautier <yann.gautier@st.com>

Merge changes from topic "imx8m-rdc" into integration

* changes:
refactor(imx8m): simplify RDC console config
fix(imx8m): add RDC entries for all missing UARTs


# a2c6e11d 07-Mar-2025 Alexander Stein <alexander.stein@ew.tq-group.com>

fix(imx8m): add RDC entries for all missing UARTs

Commit f7434fa13 ("fix(imx8m): ensure domain permissions for the
console") sets RDC domain to Cortex-A only for console UART. But
this only works if

fix(imx8m): add RDC entries for all missing UARTs

Commit f7434fa13 ("fix(imx8m): ensure domain permissions for the
console") sets RDC domain to Cortex-A only for console UART. But
this only works if there is an RDC configuration entry provided.
Add missing RDC entries using the (reset) default value, so
imx_rdc_console_access_enable() can actually configuration domain
access.

Fixes: f7434fa13507 ("fix(imx8m): ensure domain permissions for the console")
Change-Id: I550dbf2b53795ab43839139c455f2468442a3251
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>

show more ...


# ea7d633a 18-Aug-2025 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge "fix(imx8m): don't reconfigure default region0" into integration


# 9bf14807 27-Jul-2025 Marco Felsch <m.felsch@pengutronix.de>

fix(imx8m): don't reconfigure default region0

The current code and comments can be read as: "The TZC-380 region 0 can
be configured in size and attributes". This is not true, only the
attributes can

fix(imx8m): don't reconfigure default region0

The current code and comments can be read as: "The TZC-380 region 0 can
be configured in size and attributes". This is not true, only the
attributes can be set.

The TZC-380 region 0 is the TZC default (fallback) region. This region
is used if access to a certain DRAM address was done which isn't covered
by any other region (see [1] for more information). Region 0 covers the
complete AXI space from 0x0 to AXI-bus width. The access is secure-only
after reset.

The TZC-380 is not memory alias aware (see [1] for more information) and
due to the DDR controller, the i.MX8M allows memory alias access.

Configuring region 0 as secure + non-secure RW access opens the
potential security risk of allowing access to secure only memory e.g.
TEE memory area if the TEE didn't configure all memory aliases for its
memory. In such case region 0 is used as fallback if an attackers access
the TEE memory via memory aliases.

To fix this don't touch the TZC-380 at all. The TZC-380 is bypassed
by default if a platform doesn't require a TEE. If the platform requires
a TEE, the TEE is the one which knows the secure areas so let the TEE
configure the TZC-380 accordingly.

Furthmore, since commits:
- 0324081af010 ("feat(imx8mp): restrict peripheral access to secure
world")
- 1156c76361c1 ("feat(imx8mm): restrict peripheral access to secure
world")
the access is limited to the TEE too.

[1] https://developer.arm.com/documentation/ddi0431/c

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Change-Id: I0a0f9b5ad0017f38d767f583d7765a2f79861589

show more ...


# 9bb2a0c3 28-Oct-2024 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge changes from topic "fix-imx8m-uart-domain-permission" into integration

* changes:
fix(imx8m): ensure domain permissions for the console
refactor(imx8m): replace UART base magic numbers wit

Merge changes from topic "fix-imx8m-uart-domain-permission" into integration

* changes:
fix(imx8m): ensure domain permissions for the console
refactor(imx8m): replace UART base magic numbers with macros

show more ...


# f7434fa1 12-Sep-2024 Dario Binacchi <dario.binacchi@amarulasolutions.com>

fix(imx8m): ensure domain permissions for the console

The commit d76f012ea8fc0 ("refactor(imx8m): replace magic number with
enum type") also hardcodes the domain permissions configuration for the
UA

fix(imx8m): ensure domain permissions for the console

The commit d76f012ea8fc0 ("refactor(imx8m): replace magic number with
enum type") also hardcodes the domain permissions configuration for the
UARTs, causing a regression for any board using a boot console different
from UART2. Indeed, previously, the RDC_PDAP_UARTn registers were set to
the reset value (0xff), meaning all domains were enabled for read and
write access.

This patch fixes this regression by ensuring that the console always has
read/write access enabled for domain 0.

Tested on a i.MX8MN BSH SMM S2 PRO board.

Fixes: d76f012ea8fc0 ("refactor(imx8m): replace magic number with enum type")
Change-Id: I2670bf485372f32ef45cebb72a7694a9a800f417
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>

show more ...


# 278b0885 28-May-2024 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge changes I44537ba2,Ia12d3577,I06b3012c,Iec885405,Idab8013a into integration

* changes:
feat(imx8mp): optionally take params from BL2
feat(imx8mn): optionally take params from BL2
feat(imx

Merge changes I44537ba2,Ia12d3577,I06b3012c,Iec885405,Idab8013a into integration

* changes:
feat(imx8mp): optionally take params from BL2
feat(imx8mn): optionally take params from BL2
feat(imx8mm): optionally take params from BL2
feat(imx93): optionally take params from BL2
feat(imx): add helper to take params from BL2

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 ...


# 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 ...


# 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 ...


# 36b22f28 10-Oct-2023 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge changes I9c2bf78a,Iaff5f1fa,I44686a36 into integration

* changes:
fix(imx8m): map BL32 memory only if SPD_opteed or SPD_trusty is enabled
feat(imx8mn): add workaround for errata ERR050362

Merge changes I9c2bf78a,Iaff5f1fa,I44686a36 into integration

* changes:
fix(imx8m): map BL32 memory only if SPD_opteed or SPD_trusty is enabled
feat(imx8mn): add workaround for errata ERR050362
feat(imx8m): enable snvs privileged registers access

show more ...


# 4827613c 06-Sep-2023 Marco Felsch <m.felsch@pengutronix.de>

fix(imx8m): map BL32 memory only if SPD_opteed or SPD_trusty is enabled

Always map the BL32 memory can interfere with the BL33 mapping if the
BL33 is not aware of the mapping, e.g. different memory

fix(imx8m): map BL32 memory only if SPD_opteed or SPD_trusty is enabled

Always map the BL32 memory can interfere with the BL33 mapping if the
BL33 is not aware of the mapping, e.g. different memory tagging
secure/non-secure. Therefore map the memory only if BL32 (opteed,
trusty) is enabled and BL33 is aware of this memory mapping.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Change-Id: I9c2bf78aa6e88c93e749a9248724186fee9df864

show more ...


# 8d150c95 05-Sep-2023 Marco Felsch <m.felsch@pengutronix.de>

feat(imx8m): enable snvs privileged registers access

Allow non-privileged access to all SNVS registers in case of no TEE is
available.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Change-I

feat(imx8m): enable snvs privileged registers access

Allow non-privileged access to all SNVS registers in case of no TEE is
available.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Change-Id: I44686a3639a68c72c7eacc80691c294d5c32c9ae

show more ...


# 12900c4a 03-Aug-2023 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge "fix(imx8m): make IMX_BOOT_UART_BASE autodetection option more obvious" into integration


# 101f0702 02-Aug-2023 Marco Felsch <m.felsch@pengutronix.de>

fix(imx8m): make IMX_BOOT_UART_BASE autodetection option more obvious

Switch from IMX_BOOT_UART_BASE=0 to IMX_BOOT_UART_BASE=auto to make it
more obvious that the detection is based on the runtime a

fix(imx8m): make IMX_BOOT_UART_BASE autodetection option more obvious

Switch from IMX_BOOT_UART_BASE=0 to IMX_BOOT_UART_BASE=auto to make it
more obvious that the detection is based on the runtime autodetection.

In addition this moves the evaluation of IMX_BOOT_UART_BASE into the
makefile which removes the ugly conditional compilation as well.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Change-Id: I92c13607bf81c6267f4b6aee829d74902b7f72d2

show more ...


# 1b0b1763 25-Jul-2023 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge "feat(imx8m): detect console base address during runtime" into integration


# df730d94 24-Jul-2023 Marco Felsch <m.felsch@pengutronix.de>

feat(imx8m): detect console base address during runtime

Provide a helper to detect the enabled UART device during runtime. This
lower the integration effort and make it more straight forward for
'si

feat(imx8m): detect console base address during runtime

Provide a helper to detect the enabled UART device during runtime. This
lower the integration effort and make it more straight forward for
'simple' use-cases with a single UART enabled. If multiple UARTs are
enabled the first enabled is returned.

The auto-detection is enabled by setting IMX_BOOT_UART_BASE=0 to keep
the backward compatibility. For more advanced use-cases (multiple UARTs
are enabled) the user still has to provide the correct base address.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Change-Id: I300a167e1a10f9aa991c8d1c3efe2c6b23f56c47

show more ...


# b139f852 01-Nov-2022 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge "feat(imx8mm): add BL31 PIE support" into integration


# c41a196f 01-Nov-2022 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge "refactor(imx8mm): introduce BL2_SIZE and BL31_SIZE" into integration


# 473bed8f 01-Nov-2022 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge "refactor(imx8mm): make use of setup_page_tables()" into integration


# a213c27b 01-Nov-2022 Madhukar Pappireddy <madhukar.pappireddy@arm.com>

Merge "refactor(imx8mm): cleanup the mmap region settings" into integration


# 4e5d2623 21-Oct-2022 Sandrine Bailleux <sandrine.bailleux@arm.com>

Merge changes from topic "imx8m-hab-support" into integration

* changes:
docs(imx8m): update for high assurance boot
feat(imx8m): add support for high assurance boot
feat(imx8mp): add hab and

Merge changes from topic "imx8m-hab-support" into integration

* changes:
docs(imx8m): update for high assurance boot
feat(imx8m): add support for high assurance boot
feat(imx8mp): add hab and map required memory blocks
feat(imx8mn): add hab and map required memory blocks
feat(imx8mm): add hab and map required memory blocks

show more ...


123