[Patch V3 00/44] imx: add i.MX8ULP support

Peng Fan (OSS)
2021-07-19T07:13:36Z

From: Peng Fan <peng.fan@nxp.com>

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.
Stefano, I see you have a PR to Tom, do you plan to pick up this patchset
for a following PR, or I send a PR to your?
Thanks, Peng

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 | 544 ++++++++
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 | 179 +++
.../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 | 115 ++
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, 9321 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