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

Peng Fan peng.fan at nxp.com
Mon Jun 27 08:45:01 CEST 2022


Hi Stefano,

> Subject: [PATCH V2 00/49] imx: support i.MX93

This should be V3, not V2. Hope this not matter, I have
marked the previous V2 as changes requested in patchwork.

Thanks,
Peng.

> 
> From: Peng Fan <peng.fan at nxp.com>
> 
> V2:
>  Fix issue reported by CI build
>     - Enlarge SPL_MAX_SIZE for i.MX8MM
>     - Fix i.MX8ULP break
> 
> 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 (31):
>   spl: imx8mm: enlarge SPL_MAX_SIZE
>   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/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     |  234 +++
>  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                     |    3 +-
>  arch/arm/mach-imx/Makefile                    |   10 +-
>  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                            |    3 +-
>  configs/imx8mm-cl-iot-gate-optee_defconfig    |    1 -
>  configs/imx8mm-cl-iot-gate_defconfig          |    1 -
>  configs/imx8mm-icore-mx8mm-ctouch2_defconfig  |    1 -
>  configs/imx8mm-icore-mx8mm-edimm2.2_defconfig |    1 -
>  configs/imx8mm-mx8menlo_defconfig             |    1 -
>  configs/imx8mm_beacon_defconfig               |    1 -
>  configs/imx8mm_data_modul_edm_sbc_defconfig   |    1 -
>  configs/imx8mm_evk_defconfig                  |    1 -
>  configs/imx8mm_venice_defconfig               |    1 -
>  configs/imx93_11x11_evk_defconfig             |  117 ++
>  configs/phycore-imx8mm_defconfig              |    1 -
>  configs/verdin-imx8mm_defconfig               |    1 -
>  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} |   11 +-
>  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                   |  149 ++
>  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 +-
>  104 files changed, 11072 insertions(+), 635 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} (94%)  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