| #
480e8dd9 |
| 25-Aug-2025 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "Add-i.MX94/95-suport" into integration
* changes: docs(maintainers): add i.MX9 to maintained paths feat(imx94): add initial support for imx94 feat(imx95): add optee s
Merge changes from topic "Add-i.MX94/95-suport" into integration
* changes: docs(maintainers): add i.MX9 to maintained paths feat(imx94): add initial support for imx94 feat(imx95): add optee support feat(imx95): support trusty os feat(imx95): implement a semaphore for GIC quiescing feat(imx95): add initial support for i.MX95 feat(imx9): add necessary ele api call support feat(imx9): add imx9 common code base refactor(imx): drop the __dead2 attribute fix(imx): add static attribute for platform specific gic struct feat(gic): change gic_cpuif_enable/disable to weak feat(scmi): add i.MX9 SCMI vendor CPU protocol feat(scmi): add base protocol agent API feat(scmi): update version to 3.0 build(changelog): update for imx94/95 support
show more ...
|
| #
4249a4fb |
| 28-Nov-2023 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx94): add initial support for imx94
add the initial support for i.MX94.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Signed-off-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> Reviewe
feat(imx94): add initial support for imx94
add the initial support for i.MX94.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Signed-off-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com> Change-Id: I1f196a4b27d8f67c65be840b92e2d5d5467df546
show more ...
|
| #
11684655 |
| 07-Nov-2023 |
Jacky Bai <ping.bai@nxp.com> |
feat(imx9): add necessary ele api call support
Add the soc info and release xspi gmid ELE API call support.
Also add soc id sip call support. we need to flush the soc info buffer address range to m
feat(imx9): add necessary ele api call support
Add the soc info and release xspi gmid ELE API call support.
Also add soc id sip call support. we need to flush the soc info buffer address range to make sure no stolen data in the cache as the ELE will fill the data without coherance support.
Signed-off-by: Jacky Bai <ping.bai@nxp.com> Change-Id: I3d486902960fe39bdfe810f0d0c8ee75bae6fcc5
show more ...
|
| #
dafa718b |
| 29-May-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "fix(imx8m): 8mq: enable imx_hab_handler" into integration
|
| #
af799814 |
| 04-Mar-2024 |
Stefan Kerkmann <s.kerkmann@pengutronix.de> |
fix(imx8m): 8mq: enable imx_hab_handler
The imx8mq socs communicate with the HAB rom via the TF-A. But the imx_hab_handler servicing the call wasn't compiled in as of now - resulting in failed HAB r
fix(imx8m): 8mq: enable imx_hab_handler
The imx8mq socs communicate with the HAB rom via the TF-A. But the imx_hab_handler servicing the call wasn't compiled in as of now - resulting in failed HAB rom calls.
Change-Id: I4ea6164047d5a927aa90f7b1176d45536876843e Signed-off-by: Stefan Kerkmann <s.kerkmann@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 ...
|