[PATCH V2 00/48] imx: support i.MX93

Peng Fan (OSS) peng.fan at oss.nxp.com
Sat Jun 11 15:19:46 CEST 2022


From: Peng Fan <peng.fan at 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



More information about the U-Boot mailing list