summaryrefslogtreecommitdiff
path: root/board/freescale/imx8ulp_evk
AgeCommit message (Collapse)Author
2026-01-28board: nxp: Rename board directory from board/freescale to board/nxpAlice Guo
This patch renames the board directory from board/freescale to board/nxp because NXP now provides Board Support Packages (BSPs) and tools for the former Freescale i.MX and other i.MX products. All relevant references have been updated accordingly. This change does not affect functionality. Signed-off-by: Alice Guo <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2025-12-29imx8ulp_evk: Move environment variables to .env fileAlice Guo
Add board-specific environment variables to imx8ulp_evk.env for better maintainability. Define bsp_bootcmd in the environment to resolve the runtime error: "bsp_bootcmd" not defined. Signed-off-by: Alice Guo <[email protected]>
2025-09-21imx8ulp_evk: Fix ELE FW version print bugYe Li
According to latest ELE Get FW version API, the FW version word is defined as below. The patch version only has 4 bits and minor version has 12 bits. However, the codes use 8 bits for patch version and minor version. Add the patch to fix the issue. ELE firmware version [31] - When set indicates a dirty build. [30] - Reserved [29:28] - Hotfix version. [27] - When set, indicate that ELE FW is authenticated and operational. [26:25] - Reserved [24] - When set, indicate that an alternative FW is running. [23:16] - Indicate the major version. This byte is checked against the version set in the fuses to determine if the FW execution can be authorized [15:4] - Indicate the minor version. [3:0] - Indicate the patch version. Signed-off-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2025-05-29imx8ulp_evk: Include env.h to permit reading the environmentSimon Glass
This file reads from the environment but does not include the correct header. Update it. Signed-off-by: Simon Glass <[email protected]>
2024-10-11board: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILDSimon Glass
Use the new symbol to refer to any 'SPL' build, including TPL and VPL Signed-off-by: Simon Glass <[email protected]>
2024-05-20Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"Tom Rini
As part of bringing the master branch back in to next, we need to allow for all of these changes to exist here. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-19Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""Tom Rini
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-07board: freescale: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from this board vendor directory and when needed add missing include files directly. Acked-by: Jason Liu <[email protected]> Acked-by: Peng Fan <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2023-08-09treewide: rework linker symbol declarations in sections headerShiji Yang
1. Convert all linker symbols to char[] type so that we can get the corresponding address by calling array name 'var' or its address '&var'. In this way, we can avoid some potential issues[1]. 2. Remove unused symbol '_TEXT_BASE'. It has been abandoned and has not been referenced by any source code. 3. Move '__data_end' to the arch x86's own sections header as it's only used by x86 arch. 4. Remove some duplicate declared linker symbols. Now we use the standard header file to declare them. [1] This patch fixes the boot failure on MIPS target. Error log: SPL: Image overlaps SPL Fixes: 1b8a1be1a1f1 ("spl: spl_legacy: Fix spl_end address") Signed-off-by: Shiji Yang <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2023-07-13imx: imx8ulp: start the ELE RNG at bootPeng Fan
On the imx8ulp A1 SoC, the ELE RNG needs to be manually started. Signed-off-by: Clement Faure <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2023-07-13imx: use generic name ele(EdgeLockSecure Enclave)Peng Fan
Per NXP requirement, we rename all the NXP EdgeLock Secure Enclave code including comment, folder and API name to ELE to align. Signed-off-by: Peng Fan <[email protected]>
2023-03-29imx8ulp_evk: Clear data at fdt_addr_r before booting kernelYe Li
When using dual boot mode, the DDR won't be reset when APD power off or reboot. It has possibility that obsolete fdt data existing on fdt_addr_r address. Then even nothing in EFI partitions, the distro boot still continue to parse fdt and get uboot crashed. Clear the data at fdt_addr_r, so the fdt header check in above case will not pass. Signed-off-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2023-03-29imx8ulp_evk: disable overflow of port0 for LPAVPeng Fan
Bit0: Port 0 behavior when bandwidth maximized. Set to 1 to allow overflow With overflow set, we see some issue that A35 may not able to get enough bandwidth and A35 will report hrtimer takes too much time, workqueue lockup. With overflow cleared, the issues are gone. Reviewed-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2023-03-29imx8ulp_evk: Update DDR ports arbitration for DCNANO underrunYe Li
To resolve DCNANO underrun issue, change the DDR Port 0 arbitration from round robin fashion to fixed priority level 1, while other ports are not assigned any priority, so they will be serviced in round robin fashion if there is no active request from Port 0. Signed-off-by: Ye Li <[email protected]> Acked-by: Peng Fan <[email protected]>
2023-03-29imx8ulp_evk: Change to use DDR driverYe Li
Remove the DDR initialization codes from board and enable the iMX8ULP DDR driver. Signed-off-by: Ye Li <[email protected]>
2023-03-29imx8ulp_evk: Update the DDR timingJacky Bai
Update the dram timing to support PLL bypass mode for F1. Signed-off-by: Jacky Bai <[email protected]> Reviewed-by: Ye Li <[email protected]>
2023-03-29imx: imx8ulp: Configure XRDC PDAC and MSC for DBD owner=S400 onlyYe Li
This patch is used to support DBD owner fuse changed to S400 only. The XRDC PDAC2 for LPAV pbridge5 and MSC1/2/3 for GPIO and LPAV are not configured by S400 default setting. So these PDAC and MSC are invalid, only DBD owner can access the corresponding resources. We have to configure necessary PDAC and MSC for SPL before DDR initialization. Signed-off-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2023-03-29imx: imx8ulp: Adjust handshake to sync TRDC and XRDC completionYe Li
To fit the DBD_EN fused part, we re-design the TRDC and XRDC assignment. M33 will be the TRDC owner and needs to configure TRDC. A35 is the XRDC owner, ATF will configure XRDC. The handshake between U-boot and M33 image is used to sync TRDC and XRDC configuration completion. Once the handshake is done, A35 and M33 can access the allowed resources in others domain. The handshake is needed when M33 is booted or DBD_EN fused, because both cases will enable the TRDC. If handshake is timeout, the boot will hang. We use SIM GPR0 to pass the info from SPL to u-boot, because before the handshake, u-boot can't access SEC SIM and FSB. Signed-off-by: Ye Li <[email protected]> Reviewed-by: Jacky Bai <[email protected]>
2023-03-29imx: imx8ulp: Get chip revision from SentinelYe Li
In both SPL and u-boot, after probing the S400 MU, get the chip revision, lifecycle and UID from Sentinel. Update get_cpu_rev to use the chip revision not hard coded it for A0 Signed-off-by: Ye Li <[email protected]> Reviewed-by: Peng Fan <[email protected]>
2022-10-30video: Rename CONFIG_DM_VIDEO to CONFIG_VIDEOSimon Glass
Now that all the old code is gone, rename this option. Driver model migration is now complete. Signed-off-by: Simon Glass <[email protected]>
2022-07-26misc: imx: S400_API: Move S400 MU and API to a common placeYe Li
Since iMX9 uses S401 which shares the API with iMX8ULP. So move S400 MU driver and API to a common place and selected by CONFIG_IMX_SENTINEL Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-07-05nxp: Make board/freescale/common/Kconfig safe to include once in arch/KconfigTom Rini
The way that we use this file currently means that we have to guard it in every platform Kconfig. But it is also required in all NXP platforms, including non-reference platforms. Make all options in it have appropriate dependencies so that we can include it a single time under arch/Kconfig Signed-off-by: Tom Rini <[email protected]>
2022-05-20i.MX8ULP: add display_ele_fw_version apiGaurav Jain
implement get f/w version api. print ele f/w version in spl. Signed-off-by: Gaurav Jain <[email protected]> Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Pankaj Gupta <[email protected]>
2022-04-12imx: imx8ulp_evk: Enable SD/MMC port auto detectPeng Fan
Enable the SD/MMC port auto detect. The mmc relevant env can be reset when auto detect is enabled. Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp_evk: call the handshake with M33Ye Li
If M33 handshake is successful, TPM and DSI panel MUX setting is done by M33, no need to set them. If handshake is failed or M33 is not booted, continue the TPM and DSI panel MUX setting Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Biwen Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp_evk: Update LPDDR4 PHY settingsYe Li
Update DDR PHY settings to support LPDDR4 mode only by adjusting DQ VREF ctrl, ODT and pads drive strength. Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp: release CAAM for the Cortex-A35Clement Faure
Release the CAAM for the A35 from the SPL. Signed-off-by: Clement Faure <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp: Load the lposc fuse for dual bootYe Li
Found the lposc fuse loading having impact to cpu idle in kernel. Without the loading in dual boot mode, kernel will hang after idle for a while. Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp_evk: Skip init DDR for reboot in dual boot modeYe Li
When M33 is LPAV owner in dual boot, DDR, PCC5, CGC2 won't be reset during APD reset. So no need to init DDR again after reboot, but need to reconfigure the PLL4 PFD/PFDDIV/LPAV NIC etc, because kernel may change or disable some of them. Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp: add ND/LD clockPeng Fan
Add a new ddr script, defconfig for ND Configure the clock for ND mode changing A35 to 960MHz for OD mode Update NIC CLK for the various modes Introduce clock_init_early/late, late is used after pmic voltage setting, early is used in the very early stage for upower mu, lpuart and etc. Note: NIC runs at 324MHz, 442MHz has some random kernel hang issue with cpuidle enabled now. Reviewed-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp_evk: Remove PMIC Bucks PWM mode settingsYe Li
This workaround is not needed on i.MX8ULP proto-1B EVK as board has fixed the problem. Because we don't support proto-1A any longer, remove the PMIC settings. Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-02-05imx8ulp: Workaround LPOSC_TRIM fuse load issueYe Li
8ULP ROM should read the LPOSC trim BIAS fuse to fill the CGC0 LPOSCCTRL[7:0], but it writes a fixed value on A0.1 revision. A0.2 will fix the issue in ROM. But A0.1 we have to workaround it in SPL by setting LPOSCCTRL BIASCURRENT again. Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-02-05imx8ulp: Fix DCNANO QoS settingYe Li
The setting does not have effect because we should set it after power on the PS16 for NIC AV. So move it after upower_init which has powered on all PS Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-02-05imx8ulp_evk: Control LPI2C0 PCA6416 and TPM0 for displayYe Li
The board use IO9 of PCA6416 on LPI2C0 and TPM0 for MIPI DSI MUX and backlight. However the LPI2C0 and TPM0 are M33 resources, in this patch we simply access them, but this is a temporary solution. We will modify it when M33 FW changes to set MIPI DSI panel as default path and enable backlight after reset. Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2021-08-09arm: imx: add i.MX8ULP EVK supportPeng Fan
Add i.MX8ULP EVK basic support, support SD/I2C/ENET/LPUART Log as below: I would keep some debug info for now, and after we move to be stable and production launch, we could drop that. U-Boot SPL 2021.07-rc4-00164-gb800e19a6b (Jun 29 2021 - 10:23:30 +0800) Normal Boot upower_init: soc_id=48 upower_init: version:11.11.6 upower_init: start uPower RAM service user_upwr_rdy_callb: soc=b user_upwr_rdy_callb: RAM version:12.6 Turn on switches ok Turn on memories ok Clear DDR retention ok Poll for freq_chg_req on SIM register and change to F1 frequency. Poll for freq_chg_req on SIM register and change to F0 frequency. Poll for freq_chg_req on SIM register and change to F1 frequency. Poll for freq_chg_req on SIM register and change to F2 frequency. Poll for freq_chg_req on SIM register and change to F1 frequency. Poll for freq_chg_req on SIM register and change to F2 frequency. complete De-Skew PLL is locked and ready WDT: Not found! Trying to boot from BOOTROM image offset 0x8000, pagesize 0x200, ivt offset 0x0 Load image from 0x3a800 by ROM_API NOTICE: BL31: v2.4(release):imx_5.10.35_2.0.0_imx8ulp_er-10-gf37e59b94 NOTICE: BL31: Built : 01:56:58, Jun 29 2021 NOTICE: upower_init: start uPower RAM service NOTICE: user_upwr_rdy_callb: soc=b NOTICE: user_upwr_rdy_callb: RAM version:12.6 U-Boot 2021.07-rc4-00164-gb800e19a6b (Jun 29 2021 - 10:23:30 +0800) CPU: Freescale i.MX8ULP rev1.0 at 744 MHz Reset cause: POR Boot mode: Single boot Model: FSL i.MX8ULP EVK DRAM: 2 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 2 Loading Environment from MMC... *** Warning - bad CRC, using default environment In: serial@293a0000 Out: serial@293a0000 Err: serial@293a0000 Net: Warning: ethernet@29950000 (eth0) using random MAC address - 96:35:88:62:e0:44 eth0: ethernet@29950000 Hit any key to stop autoboot: 0 Signed-off-by: Peng Fan <[email protected]>