From: Peng Fan <peng....@nxp.com> V2: Drop patch 35 in V1 Rebased on Tom's next branch to update board support, since Tom migrated some Kconfig options
This patchset is to support i.MX93, during the development, there are some code cleanup and restructure to make i.MX93 code porting cleaner. i.MX9 is a new i.MX family and i.MX93 is the first one that we would support in upstream. It features two Cortex-A55 core, one NPU, one M33 and others. There are some driver changes that also included to make i.MX93 function well, lpuart/mmc/network. mkimage also included, but I have not enable BINMAN which is under development, will post a follow patchset to switch to binman. Alice Guo (3): misc: imx8ulp: move fuse.c from imx8ulp to sentinel misc: fuse: support to access fuse on i.MX93 misc: fuse: update the code for accessing fuse of i.MX93 Jian Li (1): imx: imx9: Add function to initialize timer Peng Fan (30): arm: makefile: cleanup mach-imx usage imx: simplify dependency with SPL_BOOTROM_SUPPORT imx: move get_boot_device to common header imx: move get_boot_device to common file imx: add USB2_BOOT type imx: add basic i.MX9 support fsl_lpuart: add i.MX9 support gpio: pca953x: support pcal6524 imx: pinctrl: add pinctrl and pinfunc file for i.MX93 imx: imx9: Add CCM and clock API support mmc: fsl_esdhc_imx: Support i.MX9 spl: Use SPL_FIT_IMAGE_TINY for iMX9 imx: imx9: support romapi misc: s4mu: Support iMX93 with Sentinel MU misc: S400_API: New API for FW status and chip info misc: s400_api: introduce ahab_release_m33_trout imx: imx9: Get the chip revision through S400 API imx: imx9: Add MIX power init imx: imx9: Add M33 release prepare function imx: imx9: Support booting m33 from Acore arm: dts: Add i.MX93 SoC DTSi file imx: imx93_evk: Add basic board support imx: imx93_evk: Set ARM clock to 1.7Ghz net: fec_mxc: support i.MX93 net: dwc_eth_qos: fix build break when CLK not enabled net: dwc_eth_qos: public some functions net: dwc_eth_qos: move i.MX code out net: dwc_eth_qos: intrdouce eqos hook eqos_get_enetaddr board: freescale: imx93_evk: support ethernet tools: image: support i.MX93 Ye Li (14): imx: Change USB boot device type imx: spl: Allow iMX7/8/8M to overwrite spl_board_boot_device imx: imx9: disable watchdog misc: imx: S400_API: Move S400 MU and API to a common place misc: S400_API: Update release RDC API imx: imx9: Add TRDC driver for TRDC init imx: imx9: Add AHAB boot support misc: S400_API: Rename imx8ulp_s400_msg to sentinel_msg imx: imx9: Add gpio registers structure imx: imx9: Support multiple env storages at runtime imx: imx9: clock: Add DDR clock support ddr: imx: Add i.MX9 DDR controller driver ddr: imx9: enable Performance monitor counter net: eqos: add function to get phy node and address arch/arm/Kconfig | 16 + arch/arm/Makefile | 12 +- arch/arm/dts/Makefile | 3 + arch/arm/dts/imx93-11x11-evk-u-boot.dtsi | 157 ++ arch/arm/dts/imx93-11x11-evk.dts | 527 ++++++ arch/arm/dts/imx93-pinfunc.h | 625 +++++++ arch/arm/dts/imx93.dtsi | 688 ++++++++ arch/arm/include/asm/arch-imx/cpu.h | 2 + arch/arm/include/asm/arch-imx8/sys_proto.h | 1 - arch/arm/include/asm/arch-imx8m/ddr.h | 6 +- arch/arm/include/asm/arch-imx8m/sys_proto.h | 2 +- arch/arm/include/asm/arch-imx8ulp/imx-regs.h | 25 - arch/arm/include/asm/arch-imx8ulp/sys_proto.h | 5 - arch/arm/include/asm/arch-imx9/ccm_regs.h | 266 +++ arch/arm/include/asm/arch-imx9/clock.h | 244 +++ arch/arm/include/asm/arch-imx9/ddr.h | 126 ++ arch/arm/include/asm/arch-imx9/gpio.h | 20 + arch/arm/include/asm/arch-imx9/imx-regs.h | 209 +++ arch/arm/include/asm/arch-imx9/imx93_pins.h | 729 ++++++++ arch/arm/include/asm/arch-imx9/sys_proto.h | 14 + arch/arm/include/asm/arch-imx9/trdc.h | 19 + arch/arm/include/asm/arch-mx7/sys_proto.h | 1 - arch/arm/include/asm/arch-mx7ulp/sys_proto.h | 1 - arch/arm/include/asm/global_data.h | 5 +- arch/arm/include/asm/mach-imx/boot_mode.h | 1 + arch/arm/include/asm/mach-imx/iomux-v3.h | 11 +- .../asm/{arch-imx8ulp => mach-imx}/mu_hal.h | 4 +- .../asm/{arch-imx8ulp => mach-imx}/s400_api.h | 18 +- arch/arm/include/asm/mach-imx/sys_proto.h | 11 +- arch/arm/mach-imx/Kconfig | 2 +- arch/arm/mach-imx/Makefile | 6 +- arch/arm/mach-imx/imx8m/soc.c | 47 - arch/arm/mach-imx/imx8ulp/ahab.c | 345 ++++ arch/arm/mach-imx/imx8ulp/rdc.c | 6 +- arch/arm/mach-imx/imx8ulp/soc.c | 48 +- arch/arm/mach-imx/imx9/Kconfig | 34 + arch/arm/mach-imx/imx9/Makefile | 11 + arch/arm/mach-imx/imx9/ahab.c | 346 ++++ arch/arm/mach-imx/imx9/clock.c | 844 ++++++++++ arch/arm/mach-imx/imx9/clock_root.c | 438 +++++ arch/arm/mach-imx/imx9/imx_bootaux.c | 133 ++ arch/arm/mach-imx/imx9/lowlevel_init.S | 26 + arch/arm/mach-imx/imx9/soc.c | 473 ++++++ arch/arm/mach-imx/imx9/trdc.c | 581 +++++++ arch/arm/mach-imx/imx_romapi.c | 60 + arch/arm/mach-imx/spl.c | 82 +- board/freescale/common/Makefile | 2 +- board/freescale/imx8ulp_evk/spl.c | 2 +- board/freescale/imx93_evk/Kconfig | 21 + board/freescale/imx93_evk/MAINTAINERS | 6 + board/freescale/imx93_evk/Makefile | 12 + board/freescale/imx93_evk/imx93_evk.c | 90 + board/freescale/imx93_evk/lpddr4x_timing.c | 1486 +++++++++++++++++ board/freescale/imx93_evk/spl.c | 129 ++ common/spl/Kconfig | 2 +- configs/imx93_11x11_evk_defconfig | 114 ++ drivers/Makefile | 1 + drivers/ddr/imx/Kconfig | 2 + drivers/ddr/imx/imx8m/Kconfig | 1 + drivers/ddr/imx/imx8m/Makefile | 3 +- drivers/ddr/imx/imx8m/ddr_init.c | 219 +++ drivers/ddr/imx/imx9/Kconfig | 27 + drivers/ddr/imx/imx9/Makefile | 10 + drivers/ddr/imx/imx9/ddr_init.c | 489 ++++++ drivers/ddr/imx/phy/Kconfig | 4 + drivers/ddr/imx/phy/Makefile | 9 + drivers/ddr/imx/{imx8m => phy}/ddrphy_csr.c | 0 drivers/ddr/imx/{imx8m => phy}/ddrphy_train.c | 1 - drivers/ddr/imx/phy/ddrphy_utils.c | 169 ++ drivers/ddr/imx/{imx8m => phy}/helper.c | 45 +- drivers/gpio/pca953x_gpio.c | 4 + drivers/misc/Kconfig | 7 + drivers/misc/Makefile | 2 +- drivers/misc/{imx8ulp => sentinel}/Makefile | 2 +- drivers/misc/{imx8ulp => sentinel}/fuse.c | 96 +- drivers/misc/{imx8ulp => sentinel}/s400_api.c | 149 +- .../{imx8ulp/imx8ulp_mu.c => sentinel/s4mu.c} | 36 +- drivers/mmc/Kconfig | 2 +- drivers/net/Kconfig | 2 +- drivers/net/Makefile | 1 + drivers/net/dwc_eth_qos.c | 406 +---- drivers/net/dwc_eth_qos.h | 284 ++++ drivers/net/dwc_eth_qos_imx.c | 131 ++ drivers/net/fec_mxc.c | 4 +- drivers/pinctrl/nxp/Kconfig | 13 + drivers/pinctrl/nxp/Makefile | 1 + drivers/pinctrl/nxp/pinctrl-imx93.c | 37 + include/configs/imx93_evk.h | 155 ++ include/dt-bindings/clock/imx93-clock.h | 203 +++ include/dt-bindings/power/imx93-power.h | 12 + include/fsl_lpuart.h | 2 +- include/imx8image.h | 15 +- include/imx_sip.h | 1 + tools/imx8image.c | 79 +- 94 files changed, 11069 insertions(+), 649 deletions(-) create mode 100644 arch/arm/dts/imx93-11x11-evk-u-boot.dtsi create mode 100644 arch/arm/dts/imx93-11x11-evk.dts create mode 100644 arch/arm/dts/imx93-pinfunc.h create mode 100644 arch/arm/dts/imx93.dtsi create mode 100644 arch/arm/include/asm/arch-imx9/ccm_regs.h create mode 100644 arch/arm/include/asm/arch-imx9/clock.h create mode 100644 arch/arm/include/asm/arch-imx9/ddr.h create mode 100644 arch/arm/include/asm/arch-imx9/gpio.h create mode 100644 arch/arm/include/asm/arch-imx9/imx-regs.h create mode 100644 arch/arm/include/asm/arch-imx9/imx93_pins.h create mode 100644 arch/arm/include/asm/arch-imx9/sys_proto.h create mode 100644 arch/arm/include/asm/arch-imx9/trdc.h rename arch/arm/include/asm/{arch-imx8ulp => mach-imx}/mu_hal.h (79%) rename arch/arm/include/asm/{arch-imx8ulp => mach-imx}/s400_api.h (75%) create mode 100644 arch/arm/mach-imx/imx8ulp/ahab.c create mode 100644 arch/arm/mach-imx/imx9/Kconfig create mode 100644 arch/arm/mach-imx/imx9/Makefile create mode 100644 arch/arm/mach-imx/imx9/ahab.c create mode 100644 arch/arm/mach-imx/imx9/clock.c create mode 100644 arch/arm/mach-imx/imx9/clock_root.c create mode 100644 arch/arm/mach-imx/imx9/imx_bootaux.c create mode 100644 arch/arm/mach-imx/imx9/lowlevel_init.S create mode 100644 arch/arm/mach-imx/imx9/soc.c create mode 100644 arch/arm/mach-imx/imx9/trdc.c create mode 100644 arch/arm/mach-imx/imx_romapi.c create mode 100644 board/freescale/imx93_evk/Kconfig create mode 100644 board/freescale/imx93_evk/MAINTAINERS create mode 100644 board/freescale/imx93_evk/Makefile create mode 100644 board/freescale/imx93_evk/imx93_evk.c create mode 100644 board/freescale/imx93_evk/lpddr4x_timing.c create mode 100644 board/freescale/imx93_evk/spl.c create mode 100644 configs/imx93_11x11_evk_defconfig create mode 100644 drivers/ddr/imx/imx9/Kconfig create mode 100644 drivers/ddr/imx/imx9/Makefile create mode 100644 drivers/ddr/imx/imx9/ddr_init.c create mode 100644 drivers/ddr/imx/phy/Kconfig create mode 100644 drivers/ddr/imx/phy/Makefile rename drivers/ddr/imx/{imx8m => phy}/ddrphy_csr.c (100%) rename drivers/ddr/imx/{imx8m => phy}/ddrphy_train.c (98%) create mode 100644 drivers/ddr/imx/phy/ddrphy_utils.c rename drivers/ddr/imx/{imx8m => phy}/helper.c (79%) rename drivers/misc/{imx8ulp => sentinel}/Makefile (67%) rename drivers/misc/{imx8ulp => sentinel}/fuse.c (69%) rename drivers/misc/{imx8ulp => sentinel}/s400_api.c (69%) rename drivers/misc/{imx8ulp/imx8ulp_mu.c => sentinel/s4mu.c} (88%) create mode 100644 drivers/net/dwc_eth_qos.h create mode 100644 drivers/net/dwc_eth_qos_imx.c create mode 100644 drivers/pinctrl/nxp/pinctrl-imx93.c create mode 100644 include/configs/imx93_evk.h create mode 100644 include/dt-bindings/clock/imx93-clock.h create mode 100644 include/dt-bindings/power/imx93-power.h -- 2.36.0