From: Peng Fan <peng....@nxp.com> V5: Rebased on latest master. The build break was introduced by Simon's SPL config change that drop the "_SUPPORT". So this patchset use new SPL config name in patch 44.
V4: Fix checkpatch errors Fix some checkpatch warnings, there are still warnings such as pin header and dts exceed 100. Tom, Stefano, please see whether you are happy with this patchset. V3: Fix build error which break 8MN, pass buildman for i.MX. Select GPIO_EXTRA_HEADER for 8ULP to fix build break which caused by upstream change. Rebased Drop 7ULP, since already been picked up. V2: Rebased and test on new revision silicon with upower included. The i.MX 8ULP crossover applications processor family brings ultra-low power processing and advanced integrated security with EdgeLockTM secure enclave to the intelligent edge. It includes an uPower core for handling power related functions. This patchset is to add initial support for i.MX8ULP, with core soc functions, clock, dtsi, and evk board. Peng Fan (24): arm: imx: add i.MX8ULP basic Kconfig option arm: imx: add i.MX8ULP cpu type and helper arm: imx: sys_proto: move boot mode define to common header arm: imx8ulp: support print cpu info imx: imx8ulp: add get reset cause arm: imx: basic i.MX8ULP support arm: imx: parse-container: guard included header files arm: imx: move container Kconfig under mach-imx net: fec_mxc: support i.MX8ULP driver: serial: fsl_lpuart: support i.MX8ULP arm: imx8ulp: add clock support drivers: mmc: fsl_esdhc_imx: support i.MX8ULP arm: imx8ulp: disable wdog3 arm: imx8ulp: add rdc support arm: imx8ulp: add trdc release request arm: imx8ulp: release trdc and assign lpav from RTD to APD imx8ulp: unify rdc functions arm: imx8ulp: add dummy imx_get_mac_from_fuse arm: imx8ulp: add iomuxc support imx8ulp: soc: correct reset cause imx8ulp: move struct mu_type to common header imx8ulp: add upower api support arm: dts: add i.MX8ULP dtsi arm: imx: add i.MX8ULP EVK support Ye Li (20): arm: imx8: Move container parser and image to mach-imx common folder arm: imx8: Move container image header file to mach-imx arm: imx8ulp: add container support driver: misc: Add MU and S400 API to communicate with Sentinel pinctrl: Add pinctrl driver for imx8ulp arm: imx8ulp: soc: Change to use CMC1 to get bootcfg arm: imx8ulp: Enable full L2 cache in SPL arm: imx8ulp: Update the reset vector in u-boot drivers: misc: s400_api: Update S400_SUCCESS_IND to 0xd6 drivers: misc: imx8ulp: Add S400 API for image authentication drivers: misc: imx8ulp: Update S400 API for release RDC drivers: misc: s400_api: Update API for fuse read and write arm: imx8ulp: release and configure XRDC at early phase arm: imx8ulp: Probe the S400 MU device in arch init arm: iMX8ULP: Add boot device relevant functions arm: imx8ulp: Allocate DCNANO and MIPI_DSI to AD domain driver: misc: imx8ulp: Add fuse driver for imx8ulp imx8ulp: Use DGO_GP5 to get boot config imx8ulp: Add workaround for eMMC boot ddr: Add DDR driver for iMX8ULP arch/arm/Kconfig | 11 + arch/arm/Makefile | 4 +- arch/arm/dts/Makefile | 3 + arch/arm/dts/imx8ulp-evk-u-boot.dtsi | 40 + arch/arm/dts/imx8ulp-evk.dts | 223 ++++ arch/arm/dts/imx8ulp-pinfunc.h | 978 ++++++++++++++ arch/arm/dts/imx8ulp.dtsi | 728 +++++++++++ arch/arm/include/asm/arch-imx/cpu.h | 4 + arch/arm/include/asm/arch-imx8ulp/cgc.h | 130 ++ arch/arm/include/asm/arch-imx8ulp/clock.h | 41 + arch/arm/include/asm/arch-imx8ulp/ddr.h | 38 + arch/arm/include/asm/arch-imx8ulp/gpio.h | 20 + arch/arm/include/asm/arch-imx8ulp/imx-regs.h | 162 +++ .../include/asm/arch-imx8ulp/imx8ulp-pins.h | 60 + arch/arm/include/asm/arch-imx8ulp/iomux.h | 82 ++ arch/arm/include/asm/arch-imx8ulp/mu_hal.h | 12 + arch/arm/include/asm/arch-imx8ulp/pcc.h | 139 ++ arch/arm/include/asm/arch-imx8ulp/rdc.h | 27 + arch/arm/include/asm/arch-imx8ulp/s400_api.h | 41 + arch/arm/include/asm/arch-imx8ulp/sys_proto.h | 19 + arch/arm/include/asm/arch-imx8ulp/upower.h | 15 + arch/arm/include/asm/arch-mx7ulp/sys_proto.h | 9 - arch/arm/include/asm/global_data.h | 5 + .../asm/{arch-imx8 => mach-imx}/image.h | 2 + arch/arm/include/asm/mach-imx/sys_proto.h | 13 +- arch/arm/mach-imx/Kconfig | 15 +- arch/arm/mach-imx/Makefile | 5 + arch/arm/mach-imx/cmd_dek.c | 2 +- .../{imx8/image.c => image-container.c} | 51 +- arch/arm/mach-imx/imx8/Kconfig | 13 - arch/arm/mach-imx/imx8/Makefile | 3 - arch/arm/mach-imx/imx8/ahab.c | 2 +- arch/arm/mach-imx/imx8ulp/Kconfig | 23 + arch/arm/mach-imx/imx8ulp/Makefile | 11 + arch/arm/mach-imx/imx8ulp/cgc.c | 455 +++++++ arch/arm/mach-imx/imx8ulp/clock.c | 397 ++++++ arch/arm/mach-imx/imx8ulp/iomux.c | 58 + arch/arm/mach-imx/imx8ulp/lowlevel_init.S | 26 + arch/arm/mach-imx/imx8ulp/pcc.c | 449 +++++++ arch/arm/mach-imx/imx8ulp/rdc.c | 411 ++++++ arch/arm/mach-imx/imx8ulp/soc.c | 545 ++++++++ arch/arm/mach-imx/imx8ulp/upower/Makefile | 6 + arch/arm/mach-imx/imx8ulp/upower/upower_api.c | 486 +++++++ arch/arm/mach-imx/imx8ulp/upower/upower_api.h | 258 ++++ arch/arm/mach-imx/imx8ulp/upower/upower_hal.c | 180 +++ .../arm/mach-imx/{imx8 => }/parse-container.c | 4 +- arch/arm/mach-imx/spl_imx_romapi.c | 172 ++- board/freescale/imx8ulp_evk/Kconfig | 14 + board/freescale/imx8ulp_evk/MAINTAINERS | 6 + board/freescale/imx8ulp_evk/Makefile | 7 + board/freescale/imx8ulp_evk/ddr_init.c | 207 +++ board/freescale/imx8ulp_evk/imx8ulp_evk.c | 67 + board/freescale/imx8ulp_evk/lpddr4_timing.c | 1159 +++++++++++++++++ board/freescale/imx8ulp_evk/spl.c | 105 ++ configs/imx8ulp_evk_defconfig | 103 ++ drivers/Makefile | 1 + drivers/ddr/imx/Kconfig | 1 + drivers/ddr/imx/imx8ulp/Kconfig | 11 + drivers/ddr/imx/imx8ulp/Makefile | 9 + drivers/ddr/imx/imx8ulp/ddr_init.c | 217 +++ drivers/misc/Makefile | 1 + drivers/misc/imx8ulp/Makefile | 4 + drivers/misc/imx8ulp/fuse.c | 198 +++ drivers/misc/imx8ulp/imx8ulp_mu.c | 234 ++++ drivers/misc/imx8ulp/s400_api.c | 244 ++++ drivers/mmc/Kconfig | 2 +- drivers/mmc/fsl_esdhc_imx.c | 12 +- drivers/net/Kconfig | 2 +- drivers/net/fec_mxc.c | 2 +- drivers/pinctrl/nxp/Kconfig | 14 + drivers/pinctrl/nxp/Makefile | 1 + drivers/pinctrl/nxp/pinctrl-imx8ulp.c | 44 + include/configs/imx8ulp_evk.h | 107 ++ include/dt-bindings/clock/imx8ulp-clock.h | 247 ++++ include/fsl_lpuart.h | 2 +- 75 files changed, 9313 insertions(+), 86 deletions(-) create mode 100644 arch/arm/dts/imx8ulp-evk-u-boot.dtsi create mode 100644 arch/arm/dts/imx8ulp-evk.dts create mode 100644 arch/arm/dts/imx8ulp-pinfunc.h create mode 100644 arch/arm/dts/imx8ulp.dtsi create mode 100644 arch/arm/include/asm/arch-imx8ulp/cgc.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/clock.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/ddr.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/gpio.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/imx-regs.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/imx8ulp-pins.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/iomux.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/mu_hal.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/pcc.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/rdc.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/s400_api.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/sys_proto.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/upower.h rename arch/arm/include/asm/{arch-imx8 => mach-imx}/image.h (95%) rename arch/arm/mach-imx/{imx8/image.c => image-container.c} (79%) create mode 100644 arch/arm/mach-imx/imx8ulp/Kconfig create mode 100644 arch/arm/mach-imx/imx8ulp/Makefile create mode 100644 arch/arm/mach-imx/imx8ulp/cgc.c create mode 100644 arch/arm/mach-imx/imx8ulp/clock.c create mode 100644 arch/arm/mach-imx/imx8ulp/iomux.c create mode 100644 arch/arm/mach-imx/imx8ulp/lowlevel_init.S create mode 100644 arch/arm/mach-imx/imx8ulp/pcc.c create mode 100644 arch/arm/mach-imx/imx8ulp/rdc.c create mode 100644 arch/arm/mach-imx/imx8ulp/soc.c create mode 100644 arch/arm/mach-imx/imx8ulp/upower/Makefile create mode 100644 arch/arm/mach-imx/imx8ulp/upower/upower_api.c create mode 100644 arch/arm/mach-imx/imx8ulp/upower/upower_api.h create mode 100644 arch/arm/mach-imx/imx8ulp/upower/upower_hal.c rename arch/arm/mach-imx/{imx8 => }/parse-container.c (98%) create mode 100644 board/freescale/imx8ulp_evk/Kconfig create mode 100644 board/freescale/imx8ulp_evk/MAINTAINERS create mode 100644 board/freescale/imx8ulp_evk/Makefile create mode 100644 board/freescale/imx8ulp_evk/ddr_init.c create mode 100644 board/freescale/imx8ulp_evk/imx8ulp_evk.c create mode 100644 board/freescale/imx8ulp_evk/lpddr4_timing.c create mode 100644 board/freescale/imx8ulp_evk/spl.c create mode 100644 configs/imx8ulp_evk_defconfig create mode 100644 drivers/ddr/imx/imx8ulp/Kconfig create mode 100644 drivers/ddr/imx/imx8ulp/Makefile create mode 100644 drivers/ddr/imx/imx8ulp/ddr_init.c create mode 100644 drivers/misc/imx8ulp/Makefile create mode 100644 drivers/misc/imx8ulp/fuse.c create mode 100644 drivers/misc/imx8ulp/imx8ulp_mu.c create mode 100644 drivers/misc/imx8ulp/s400_api.c create mode 100644 drivers/pinctrl/nxp/pinctrl-imx8ulp.c create mode 100644 include/configs/imx8ulp_evk.h create mode 100644 include/dt-bindings/clock/imx8ulp-clock.h -- 2.30.0