| #
613892cf |
| 12-Feb-2025 |
Yann Gautier <yann.gautier@st.com> |
Merge changes from topic "imx8mq_build_fix" into integration
* changes: fix(imx8m): fix imx8mq build break fix(imx8mq): fix imx8mq build break due to hab
|
| #
3a36f70b |
| 14-Jan-2020 |
Jacky Bai <ping.bai@nxp.com> |
fix(imx8mq): fix imx8mq build break due to hab
Add the HAB secure boot support for the i.MX8MQ to fix the build break.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: I806de2dc42806e008355cc
fix(imx8mq): fix imx8mq build break due to hab
Add the HAB secure boot support for the i.MX8MQ to fix the build break.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: I806de2dc42806e008355cc185065e774570362f0
show more ...
|
| #
a681e767 |
| 10-Jun-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "fix(imx): disable DRAM retention by default on i.MX8MQ" into integration
|
| #
108146ce |
| 13-Mar-2024 |
Ahmad Fatoum <a.fatoum@pengutronix.de> |
fix(imx): disable DRAM retention by default on i.MX8MQ
Building the default upstream configuration for the imx8mq-evk is no longer possible: The linker will complain that the TF-A image will no long
fix(imx): disable DRAM retention by default on i.MX8MQ
Building the default upstream configuration for the imx8mq-evk is no longer possible: The linker will complain that the TF-A image will no longer fit On-Chip SRAM.
In order to make the i.MX8MQ Image buildable again, let's make the DRAM retention feature optional: It was added in v2.9 and it's possible to boot the systems without it. Users that make space elsewhere and wish to enable it can use the newly introduced IMX_DRAM_RETENTION parameter to configure it. The parameter is added to all i.MX8M variants, but only for i.MX8MQ, we disable it by default, as that's the one that currently has binary size problems.
Change-Id: I714f8ea96f18154db02390ba500f4a2dc5329ee7 Fixes: dd108c3c1fe3 ("feat(imx8mq): add the dram retention support for imx8mq") Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
show more ...
|
| #
1c408d3c |
| 01-Mar-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "imx8ulp_support" into integration
* changes: docs(maintainers): add the maintainers for imx8ulp docs(imx8ulp): add imx8ulp platform fix(imx8ulp): increase the mmap re
Merge changes from topic "imx8ulp_support" into integration
* changes: docs(maintainers): add the maintainers for imx8ulp docs(imx8ulp): add imx8ulp platform fix(imx8ulp): increase the mmap region num feat(imx8ulp): adjust the dram mapped region feat(imx8ulp): ddrc switch auto low power and software interface feat(imx8ulp): add some delay before cmc1 access feat(imx8ulp): add a flag check for the ddr status fix(imx8ulp): add sw workaround for csi/hotplug test hang feat(imx8ulp): adjust the voltage when sys dvfs enabled feat(imx8ulp): enable the DDR frequency scaling support fix(imx8ulp): fix suspend/resume issue when DBD owner is s400 only feat(imx8ulp): update XRDC for ELE to access DDR with CA35 DID feat(imx8ulp): add memory region policy feat(imx8ulp): protect TEE region for secure access only feat(imx8ulp): add trusty support feat(imx8ulp): add OPTEE support feat(imx8ulp): update the upower config for power optimization feat(imx8ulp): allow RTD to reset APD through MU feat(imx8ulp): not power off LPAV PD when LPAV owner is RTD feat(imx8ulp): add system power off support feat(imx8ulp): add APD power down mode(PD) support in system suspend feat(imx8ulp): add the basic support for idle & system suspned feat(imx8ulp): enable 512KB cache after resume on imx8ulp feat(imx8ulp): add the initial XRDC support feat(imx8ulp): allocated caam did for the non secure world feat(imx8ulp): add i.MX8ULP basic support build(changelog): add new scopes for nxp imx8ulp platform feat(scmi): add scmi sensor support
show more ...
|
| #
caee2733 |
| 25-Jan-2022 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx8ulp): enable the DDR frequency scaling support
Enable the DDR frequency scaling support on i.MX8ULP. Normally, the freq_index define is as below:
0: boot frequency; 1: low frequency(PLL
feat(imx8ulp): enable the DDR frequency scaling support
Enable the DDR frequency scaling support on i.MX8ULP. Normally, the freq_index define is as below:
0: boot frequency; 1: low frequency(PLL bypassed); 2. high frequency(PLL ON).
Currently, DDR DFS only do frequency switching between Low freq and high freq.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com> Change-Id: I3acd8bdf75e2dd6dff645b9f597dcfc0a756c428
show more ...
|
| #
ac5d69b6 |
| 21-Sep-2023 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx8ulp): add the initial XRDC support
Add the initial xRDC support on i.MX8ULP.
Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Jacky Bai <ping.
feat(imx8ulp): add the initial XRDC support
Add the initial xRDC support on i.MX8ULP.
Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: I93ea8e2cebb049e6f20e71cfe50c7583a3228f38
show more ...
|
| #
fcd41e86 |
| 02-Jul-2020 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx8ulp): add i.MX8ULP basic support
Add the basic support for i.MX8ULP.
The i.MX 8ULP family of processors features NXP’s advanced implementation of the dual Arm Cortex-A35 cores alongside an
feat(imx8ulp): add i.MX8ULP basic support
Add the basic support for i.MX8ULP.
The i.MX 8ULP family of processors features NXP’s advanced implementation of the dual Arm Cortex-A35 cores alongside an Arm Cortex-M33. This combined architecture enables the device to run a rich operating system (such as Linux) on the Cortex-A35 core and an RTOS (such as FreeRTOS) on the Cortex-M33 core. It also includes a Cadence Tensilica Fusion DSP for low-power audio and a HiFi4 DSP for advanced audio and machine learning applications.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: I12df622b95960bcdf7da52e4c66470a700690e36
show more ...
|
| #
c9f05a32 |
| 26-Jan-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "feat(imx8m): obtain boot image set for imx8mn/mp" into integration
|
| #
6d2c502a |
| 31-Oct-2023 |
Igor Opaniuk <igor.opaniuk@foundries.io> |
feat(imx8m): obtain boot image set for imx8mn/mp
In i.MX8MM/MQ it is possible to have two copies of bootloader in SD/eMMC and switch between them. The switch is triggered either by the BootROM in ca
feat(imx8m): obtain boot image set for imx8mn/mp
In i.MX8MM/MQ it is possible to have two copies of bootloader in SD/eMMC and switch between them. The switch is triggered either by the BootROM in case the bootloader image is faulty OR can be enforced by the user, and there is API introduced in 9ce232fe ("feat(plat/imx8m): add SiP call for secondary boot"), which leverages this SoC feature.
However neither i.MX8MP nor i.MX8MN have a dedicated bit which indicates what boot image set is currently booted. According to AN12853 [1] "i.MX ROMs Log Events", it is possible to determine whether fallback event occurred by parsing the BootROM event log. In case ROM event ID 0x51 is present,fallback event did occur and secondary boot image was booted.
Knowing which boot image was booted might be useful for reliable bootloader A/B updates, detecting fallback event might be used for making decision if boot firmware rollback is required.
This patche introduces implementation, that replicates the same imx_src_handler() behaviour as on i.MX8MM/MQ SoCs.
The code is based on original U-Boot implementation [2].
[1]: https://www.nxp.com/webapp/Download?colCode=AN12853 [2]: https://github.com/u-boot/u-boot/commit/a5ee05cf7180b411ffdf148ca8cb220c029f2e19
Change-Id: I9a4c5229aa0e53fa23b5261459da99cb3ce6bdbe Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
show more ...
|
| #
5864b58a |
| 09-Mar-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "imx8m_misc_changes" into integration
* changes: feat(imx8mq): enable dram dvfs support on imx8mq feat(imx8m): use non-fast wakeup stop mode for system suspend feat(im
Merge changes from topic "imx8m_misc_changes" into integration
* changes: feat(imx8mq): enable dram dvfs support on imx8mq feat(imx8m): use non-fast wakeup stop mode for system suspend feat(imx8mq): correct the slot ack setting for STOP mode feat(imx8mq): add anamix pll override setting for DSM mode feat(imx8mq): add workaround code for ERR11171 on imx8mq feat(imx8mq): add the dram retention support for imx8mq feat(imx8mq): add version for B2 fix(imx8m): backup mr12/14 value from lpddr4 chip fix(imx8m): add ddr4 dvfs sw workaround for ERR050712 fix(imx8m): fix coverity out of bound access issue fix(imx8m): fix the dram retention random hang on some imx8mq Rev2.0 feat(imx8m): add more dram pll setting fix(imx8m): fix the current fsp init fix(imx8m): fix the rank to rank space issue fix(imx8m): fix the dfiphymaster setting after dvfs feat(imx8m): update the ddr4 dvfs flow to include ddr3l support fix(imx8m): correct the rank info get fro mstr feat(imx8m): fix the ddr4 dvfs random hang on imx8m
show more ...
|
| #
8962bdd6 |
| 14-Jan-2020 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx8mq): enable dram dvfs support on imx8mq
Enable DRAM DVFS support on i.MX8MQ.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: Id72c5eb9625936052ec51e5a52d9d31175ed1b1b
|
| #
88a26465 |
| 08-Jan-2020 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx8mq): add workaround code for ERR11171 on imx8mq
This new workaround takes advantage of the per core IMR registers in GPC in order to unmask the IRQ0, still generated by the 12bit in IOMUX_G
feat(imx8mq): add workaround code for ERR11171 on imx8mq
This new workaround takes advantage of the per core IMR registers in GPC in order to unmask the IRQ0, still generated by the 12bit in IOMUX_GPR register (which now remains always set), so it can only wake up one core at the time.Also, this entire workaround has now been moved here in TF-A, allowing the kernel side to be minimal.
Another advantage this workaround brings is the removal of the 50us delay (which was necessary before in gic_raise_softirq in kernel) by allowing the core that is waking up to mask his own IRQ0 in the suspend finish callback.
One important change here is the way the cores are woken up in dram_dvfs_handler. Since the wake up mechanism has changed from asserting the 12th bit in IOMUX_GPR and leaving the IMR1 1st bit on for each core to exactly the reverse, that is, leaving the IOMUX_GPR 12th bit always set and then masking/unmasking the IMR1 1st bit for each independent core, we need to use the imx_gpc_core_wake to wake up the cores.
Also, the 50us udelay is moved to TF-A (inside imx_pwr_domain_off) from kernel(gic_raise_softirq), since the new cpuidle workaround does not need it in order to clean the IOMUX_GPC 12bit. For now, the udelay seems to be still needed in order to delay the affinity info OFF for the dying core. This is something that needs further investigation.
Signed-off-by: Abel Vesa <abel.vesa@nxp.com> Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: I9f17ff6fc3452b8225a50b232964712aafeab78a
show more ...
|
| #
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 ...
|
| #
720e7b66 |
| 26-Sep-2022 |
Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> |
feat(imx8m): add support for high assurance boot
Introduce support for High Assurance Boot (HABv4), which is used to establish and extend the Root-of-Trust during FW loading at any given boot stage.
feat(imx8m): add support for high assurance boot
Introduce support for High Assurance Boot (HABv4), which is used to establish and extend the Root-of-Trust during FW loading at any given boot stage.
This commit introduces support for HAB ROM Vector Table (RVT) API, which is normally used by post-ROM code to authenticate additional boot images (Kernel, FDT, FIT, etc.) that are taking part in the Root-of-Trust.
Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com> Change-Id: I780d308369824fa4850844eb9e91768e417166a0
show more ...
|
| #
0cb8dd7a |
| 08-Jul-2022 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes Iec22dcab,Ib88b4b5d,I50cd6b82,If1167785,I9b3a08ef, ... into integration
* changes: feat(imx8m): keep pu domains in default state during boot stage feat(imx8m): add the PU power dom
Merge changes Iec22dcab,Ib88b4b5d,I50cd6b82,If1167785,I9b3a08ef, ... into integration
* changes: feat(imx8m): keep pu domains in default state during boot stage feat(imx8m): add the PU power domain support on imx8mm/mn feat(imx8m): add the anamix pll override setting feat(imx8m): add the ddr frequency change support for imx8m family feat(imx8mn): enable dram retention suuport on imx8mn feat(imx8mm): enable dram retention suuport on imx8mm feat(imx8m): add dram retention flow for imx8m family
show more ...
|
| #
44dea544 |
| 11-Dec-2019 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx8m): add the PU power domain support on imx8mm/mn
Add the PU power domain support for imx8mm/mn.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: Ib88b4b5db956fdf2c77d2f2f3723d61a7060
feat(imx8m): add the PU power domain support on imx8mm/mn
Add the PU power domain support for imx8mm/mn.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: Ib88b4b5db956fdf2c77d2f2f3723d61a7060409d
show more ...
|
| #
9c336f61 |
| 25-Nov-2019 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx8m): add the ddr frequency change support for imx8m family
Add the DDR frequency change support.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: If1167785796b8678c351569b83d2922c66f6
feat(imx8m): add the ddr frequency change support for imx8m family
Add the DDR frequency change support.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: If1167785796b8678c351569b83d2922c66f6e530
show more ...
|
| #
2512d048 |
| 02-Jun-2021 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "feat(plat/imx8m): add SiP call for secondary boot" into integration
|
| #
9ce232fe |
| 10-Mar-2021 |
Igor Opaniuk <igor.opaniuk@foundries.io> |
feat(plat/imx8m): add SiP call for secondary boot
In iMX8MM it is possible to have two copies of bootloader in SD/eMMC and switch between them. The switch is triggered either by the BootROM in case
feat(plat/imx8m): add SiP call for secondary boot
In iMX8MM it is possible to have two copies of bootloader in SD/eMMC and switch between them. The switch is triggered either by the BootROM in case the bootloader image is faulty OR can be enforced by the user. To trigger that switch the PERSIST_SECONDARY_BOOT bit should be set in GPR10 SRC register. As the bit is retained after WARM reset, that permits to control BootROM behavior regarding what boot image it will boot after reset: primary or secondary.
This is useful for reliable bootloader A/B updates, as it permits switching between two copies of bootloader at different offsets of the same storage.
If the PERSIST_SECONDARY_BOOT is 0, the boot ROM uses address 0x8400 for the primary image. If the PERSIST_SECONDARY_BOOT is 1, the boot ROM reads that secondary image table from address 0x8200 on the boot media and uses the address specified in the table for the secondary image.
Secondary Image Table contains the sector of secondary bootloader image, exluding the offset to that image (explained below in the note). To generate the Secondary Image Table, use e.g.: $ printf '\x0\x0\x0\x0\x0\x0\x0\x0\x33\x22\x11' '\x00\x00\x10\x0\x0\x00\x0\x0\x0' > /tmp/sit.bin $ hexdump -vC /tmp/sit.bin 00000000 00 00 00 00 00000004 00 00 00 00 00000008 33 22 11 00 <--- This is the "tag" 0000000c 00 10 00 00 <--- This is the "firstSectorNumber" 00000010 00 00 00 00
You can also use NXP script from [1][2] imx-mkimage tool for SIT generation. Note that the firstSectorNumber is NOT the offset of the IVT, but an offset of the IVT decremented by Image Vector Table offset (Table 6-25. Image Vector Table Offset and Initial Load Region Size for iMX8MM/MQ), so for secondary SPL copy at offset 0x1042 sectors, firstSectorNumber must be 0x1000 (0x42 sectors * 512 = 0x8400 bytes offset).
In order to test redundant boot board should be closed and SD/MMC manufacture mode disabled, as secondary boot is not supported in the SD/MMC manufacture mode, which can be disabled by blowing DISABLE_SDMMC_MFG (example for iMX8MM): > fuse prog -y 2 1 0x00800000
For additional details check i.MX 8M Mini Apllication Processor Reference Manual, 6.1.5.4.5 Redundant boot support for expansion device chapter.
[1] https://source.codeaurora.org/external/imx/imx-mkimage/ [2] scripts/gen_sit.sh Change-Id: I0a5cea7295a4197f6c89183d74b4011cada52d4c Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
show more ...
|
| #
e0887b71 |
| 23-Jul-2020 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "plat: imx: common: implement IMX_SIP_AARCH32" into integration
|
| #
4a0ac3e3 |
| 10-Jul-2020 |
Peng Fan <peng.fan@nxp.com> |
plat: imx: common: implement IMX_SIP_AARCH32
Implement IMX_SIP_AARCH32 to let AArch64 Bootloader could issue SIP call to switch to AArch32 mode to run OS.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
plat: imx: common: implement IMX_SIP_AARCH32
Implement IMX_SIP_AARCH32 to let AArch64 Bootloader could issue SIP call to switch to AArch32 mode to run OS.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Change-Id: I38b04ef909a6dbfba5ded12a7bb6e799a3935a66
show more ...
|
| #
c8f8579a |
| 22-May-2019 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge changes Icf1ea76c,I9ca3f278 into integration
* changes: imx8: Replace PLAT_IMX8* with automatic PLAT_imx8* plat: imx8mq: Implement IMX_SIP_GET_SOC_INFO
|
| #
f56afc1f |
| 20-May-2019 |
Leonard Crestez <leonard.crestez@nxp.com> |
imx8: Replace PLAT_IMX8* with automatic PLAT_imx8*
Platform defines are already provided by the build system so let's not duplicate them.
Change-Id: Icf1ea76c3c3213e27b447c95e2b22b961fa7693e Signed
imx8: Replace PLAT_IMX8* with automatic PLAT_imx8*
Platform defines are already provided by the build system so let's not duplicate them.
Change-Id: Icf1ea76c3c3213e27b447c95e2b22b961fa7693e Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
show more ...
|
| #
72196cbb |
| 10-May-2019 |
Leonard Crestez <leonard.crestez@nxp.com> |
plat: imx8mq: Implement IMX_SIP_GET_SOC_INFO
The manual documents that 0x3036006c should contains the soc revision for imx8mq but this always reports A0. Work around this by parsing the ROM header a
plat: imx8mq: Implement IMX_SIP_GET_SOC_INFO
The manual documents that 0x3036006c should contains the soc revision for imx8mq but this always reports A0. Work around this by parsing the ROM header and checking if OCOTP register 0x40 is stuck at 0xff0055aa.
Determining this inside TF-A makes life easier for OS, see for example this linux discussion: https://lkml.org/lkml/2019/5/3/465
The soc revision can also be useful inside TF-A itself, for example for the non-upstream DDR DVFS "busfreq" feature is affected by 8mq erratas.
The clock for OCOTP block can be disabled by OS so only initialize soc revision once at boot time.
Change-Id: I9ca3f27840229ce8a28b53870e44da29f63c73aa Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
show more ...
|