
From: Peng Fan peng.fan@nxp.com
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.
This patchset is to add initial support for i.MX8ULP, with core soc functions, clock, dtsi, and evk board.
Peng Fan (20): 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 xrdc support arm: imx8ulp: add trdc release request arm: imx8ulp: release trdc and assign lpav from RTD to APD arm: imx8ulp: add dummy imx_get_mac_from_fuse arm: imx8ulp: add iomuxc support arm: dts: add i.MX8ULP dtsi arm: imx: add i.MX8ULP EVK support
Ye Li (17): 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
arch/arm/Kconfig | 10 + arch/arm/Makefile | 4 +- arch/arm/dts/imx8ulp-emulator-u-boot.dtsi | 32 + arch/arm/dts/imx8ulp-emulator.dts | 93 + arch/arm/dts/imx8ulp-evk-u-boot.dtsi | 32 + arch/arm/dts/imx8ulp-evk.dts | 204 ++ arch/arm/dts/imx8ulp-pinfunc.h | 978 ++++++++++ arch/arm/dts/imx8ulp.dtsi | 706 +++++++ arch/arm/include/asm/arch-imx/cpu.h | 2 + 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 | 134 ++ .../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/s400_api.h | 41 + arch/arm/include/asm/arch-imx8ulp/sys_proto.h | 19 + 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} | 44 +- 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 | 7 + arch/arm/mach-imx/imx8ulp/cgc.c | 459 +++++ arch/arm/mach-imx/imx8ulp/clock.c | 390 ++++ arch/arm/mach-imx/imx8ulp/iomux.c | 65 + arch/arm/mach-imx/imx8ulp/lowlevel_init.S | 26 + arch/arm/mach-imx/imx8ulp/pcc.c | 449 +++++ arch/arm/mach-imx/imx8ulp/soc.c | 685 +++++++ arch/arm/mach-imx/imx8ulp/xrdc.c | 144 ++ .../arm/mach-imx/{imx8 => }/parse-container.c | 4 +- arch/arm/mach-imx/spl_imx_romapi.c | 171 +- 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 | 1696 +++++++++++++++++ board/freescale/imx8ulp_evk/spl.c | 146 ++ configs/imx8ulp_evk_defconfig | 103 + drivers/misc/Makefile | 1 + drivers/misc/imx8ulp/Makefile | 4 + drivers/misc/imx8ulp/fuse.c | 198 ++ drivers/misc/imx8ulp/imx8ulp_mu.c | 251 +++ 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 | 108 ++ include/dt-bindings/clock/imx8ulp-clock.h | 247 +++ include/fsl_lpuart.h | 2 +- 65 files changed, 8605 insertions(+), 86 deletions(-) create mode 100644 arch/arm/dts/imx8ulp-emulator-u-boot.dtsi create mode 100644 arch/arm/dts/imx8ulp-emulator.dts 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/s400_api.h create mode 100644 arch/arm/include/asm/arch-imx8ulp/sys_proto.h rename arch/arm/include/asm/{arch-imx8 => mach-imx}/image.h (95%) rename arch/arm/mach-imx/{imx8/image.c => image-container.c} (82%) 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/soc.c create mode 100644 arch/arm/mach-imx/imx8ulp/xrdc.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/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