[PATCH 00/42] Add i.MX8M support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This series adds support for the i.MX8MM SoC and the i.MX8MM EVK board.

Much of the work in this series is getting i.MX8 vs. i.MX8MQ vs. i.MX8MM
straight. We don't have any i.MX8 support yet, we only have i.MX8M, so
everything previously named imx8_ has to be named imx8m[qm]_. Much of
the stuff named imx8mq_ works for all (known) i.MX8M SoCs, so is better
named imx8m_.

One nice thing introduced with this series is support for loading a
barebox image after having loaded the PBL to SRAM. This makes it
possible to do the SDRAM configuration in C code and still upload the
full barebox image after that. So far this xload mechanism was only
possible with booting from SD or SPI NOR flash.

Sascha Hauer (42):
  ARM: i.MX8: Move iomux header to make space for i.MX8MM
  ARM: i.MX8M: Add base addresses common to i.MX8M
  ARM: i.MX8M: add and use imx8mq_setup_pad()
  ARM: i.MX: Drop iomux argument from mx7_setup_pad()
  ARM: i.MX8M: Add iomux header for i.MX8MM
  ARM: i.MX8M: Add imx8mm-regs.h
  ARM: i.MX8M: Add ARCH_IMX8M symbol
  ARM: i.MX: esdctl: rename functions to imx8m_*
  ARM: i.MX8M: Use imx8mq.c for other i.MX8M as well
  ARM: i.MX8M: rename imx8_* bootsource functions to imx8mq_*
  ARM: i.MX8M: Detect serial downloader mode correctly
  HAB: i.MX8M: rename imx8_* functions to imx8m_*
  ARM: i.MX8M: rename i.MX8M specific function
  ARM: i.MX8M: rename functions to be i.MX8M specific
  mci: imx-esdhc-pbl: Add instance 2 for i.MX8MM
  USB: gadget: fsl_udc: move register definitions to header file
  usb: gadget: fsl_udc: Add PBL image loading support
  usb: gadget: fsl_udc: Fix warnings on 64bit compilation
  usb: imx: Add i.MX8mm support
  serial: imx: Add imx8mm compatible
  mci: imx-esdhc: Add i.MX8mm support
  I2C: i.MX: Add early i2c support for i.MX8M
  clk: imx: Add pll14xx support
  clk: imx: Add imx8m_clk_composite_critical
  clk: imx: Add imx8mm clk driver
  ARM: i.MX: Add SoC namespace to imx7/8m CCM defines
  Add some CCM defines for i.MX8M
  ARM: i.MX8M: rename imx8-ccm-regs.h to imx8m-ccm-regs.h
  ARM: i.MX8M: Add some lowlevel clock functions
  ARM: i.MX7: Add and use function for early UART clock setup
  ARM: i.MX8M: Add and use function for early UART clock setup
  iomux: Add i.MX8MM support
  mfd: Add Rohm bd71837 header file
  scripts: imx-usb-loader: Add 2nd stage loading support
  scripts: imx-usb-loader: Add i.MX8MM support
  ARM: i.MX8MQ boards: Add missing includes
  ARM: i.MX8M: Add DDR controller support
  ARM: i.MX8M: Add TF-A loading support for i.MX8MM
  ARM: i.MX8M: Add i.MX8MM support
  scripts: imx-image: Add i.MX8MM support
  ARM: i.MX: Add i.MX8MM EVK board support
  ARM: i.MX: update imx_v8_defconfig for i.MX8MM

 Documentation/boards/imx/nxp-imx8mm-evk.rst   |   71 +
 arch/arm/boards/Makefile                      |    1 +
 .../boards/freescale-mx7-sabresd/lowlevel.c   |   12 +-
 arch/arm/boards/nxp-imx8mm-evk/Makefile       |    2 +
 arch/arm/boards/nxp-imx8mm-evk/board.c        |   81 +
 .../flash-header-imx8mm-evk.imxcfg            |    5 +
 arch/arm/boards/nxp-imx8mm-evk/lowlevel.c     |  184 ++
 .../arm/boards/nxp-imx8mm-evk/lpddr4-timing.c | 1976 +++++++++++++++++
 arch/arm/boards/nxp-imx8mq-evk/ddr.h          |    9 +-
 arch/arm/boards/nxp-imx8mq-evk/lowlevel.c     |   25 +-
 arch/arm/boards/phytec-som-imx8mq/ddr.h       |    7 +-
 .../boards/phytec-som-imx8mq/ddrphy_train.c   |    1 -
 arch/arm/boards/phytec-som-imx8mq/lowlevel.c  |   25 +-
 arch/arm/boards/zii-imx7d-dev/lowlevel.c      |   12 +-
 arch/arm/boards/zii-imx8mq-dev/ddr.h          |    9 +-
 arch/arm/boards/zii-imx8mq-dev/lowlevel.c     |   25 +-
 arch/arm/configs/imx_v8_defconfig             |   18 +-
 arch/arm/dts/Makefile                         |    1 +
 arch/arm/dts/imx8mm-evk.dts                   |   62 +
 arch/arm/mach-imx/Kconfig                     |   21 +-
 arch/arm/mach-imx/Makefile                    |    4 +-
 arch/arm/mach-imx/atf.c                       |   26 +-
 arch/arm/mach-imx/boot.c                      |   42 +-
 arch/arm/mach-imx/cpu_init.c                  |   14 +-
 arch/arm/mach-imx/esdctl.c                    |   30 +-
 arch/arm/mach-imx/imx-bbu-internal.c          |    4 +-
 arch/arm/mach-imx/imx.c                       |    4 +
 arch/arm/mach-imx/imx8-ddrc.c                 |   91 -
 arch/arm/mach-imx/imx8m.c                     |  279 +++
 arch/arm/mach-imx/imx8mq.c                    |  111 -
 arch/arm/mach-imx/include/mach/atf.h          |    9 +-
 arch/arm/mach-imx/include/mach/debug_ll.h     |    4 +-
 arch/arm/mach-imx/include/mach/esdctl.h       |    1 +
 arch/arm/mach-imx/include/mach/generic.h      |   22 +-
 .../arm/mach-imx/include/mach/imx7-ccm-regs.h |   45 +-
 .../arm/mach-imx/include/mach/imx8-ccm-regs.h |   15 -
 arch/arm/mach-imx/include/mach/imx8-ddrc.h    |   66 -
 .../mach-imx/include/mach/imx8m-ccm-regs.h    |   57 +
 arch/arm/mach-imx/include/mach/imx8m-regs.h   |   37 +
 arch/arm/mach-imx/include/mach/imx8mm-regs.h  |   46 +
 arch/arm/mach-imx/include/mach/imx8mq-regs.h  |    2 +
 arch/arm/mach-imx/include/mach/imx8mq.h       |   13 +-
 .../arm/mach-imx/include/mach/imx_cpu_types.h |    1 +
 arch/arm/mach-imx/include/mach/iomux-mx7.h    |    4 +-
 arch/arm/mach-imx/include/mach/iomux-mx8m.h   |   27 +
 arch/arm/mach-imx/include/mach/iomux-mx8mm.h  |  701 ++++++
 .../mach/{iomux-mx8.h => iomux-mx8mq.h}       |   24 +-
 arch/arm/mach-imx/include/mach/xload.h        |    2 +-
 drivers/clk/imx/Makefile                      |    3 +
 drivers/clk/imx/clk-imx8mm.c                  |  577 +++++
 drivers/clk/imx/clk-pll14xx.c                 |  446 ++++
 drivers/clk/imx/clk.h                         |   47 +
 drivers/ddr/Kconfig                           |    1 +
 drivers/ddr/Makefile                          |    1 +
 drivers/ddr/imx8m/Kconfig                     |    7 +
 drivers/ddr/imx8m/Makefile                    |    7 +
 drivers/ddr/imx8m/ddr_init.c                  |  211 ++
 drivers/ddr/imx8m/ddrphy_csr.c                |  732 ++++++
 drivers/ddr/imx8m/ddrphy_train.c              |  112 +
 drivers/ddr/imx8m/ddrphy_utils.c              |  306 +++
 drivers/ddr/imx8m/helper.c                    |   86 +
 drivers/hab/habv4.c                           |   12 +-
 drivers/i2c/busses/i2c-imx-early.c            |   12 +
 drivers/mci/imx-esdhc-pbl.c                   |   23 +-
 drivers/mci/imx-esdhc.c                       |    1 +
 drivers/pinctrl/imx-iomux-v3.c                |    2 +
 drivers/serial/serial_imx.c                   |    3 +
 drivers/usb/Makefile                          |    2 +-
 drivers/usb/gadget/Kconfig                    |    3 +
 drivers/usb/gadget/Makefile                   |    1 +
 drivers/usb/gadget/fsl_udc.c                  |  394 +---
 drivers/usb/gadget/fsl_udc_pbl.c              |  210 ++
 drivers/usb/imx/chipidea-imx.c                |    2 +
 firmware/Kconfig                              |    3 +
 firmware/Makefile                             |    1 +
 images/Makefile.imx                           |    6 +
 include/i2c/i2c-early.h                       |    1 +
 include/mfd/bd71837.h                         |  103 +
 include/soc/fsl/fsl_udc.h                     |  383 ++++
 include/soc/imx8m/clk-early.h                 |    7 +
 include/soc/imx8m/ddr.h                       |  407 ++++
 include/soc/imx8m/lpddr4_define.h             |   97 +
 scripts/imx/imx-usb-loader.c                  |   54 +-
 scripts/imx/imx.c                             |    1 +
 84 files changed, 7652 insertions(+), 840 deletions(-)
 create mode 100644 Documentation/boards/imx/nxp-imx8mm-evk.rst
 create mode 100644 arch/arm/boards/nxp-imx8mm-evk/Makefile
 create mode 100644 arch/arm/boards/nxp-imx8mm-evk/board.c
 create mode 100644 arch/arm/boards/nxp-imx8mm-evk/flash-header-imx8mm-evk.imxcfg
 create mode 100644 arch/arm/boards/nxp-imx8mm-evk/lowlevel.c
 create mode 100644 arch/arm/boards/nxp-imx8mm-evk/lpddr4-timing.c
 create mode 100644 arch/arm/dts/imx8mm-evk.dts
 delete mode 100644 arch/arm/mach-imx/imx8-ddrc.c
 create mode 100644 arch/arm/mach-imx/imx8m.c
 delete mode 100644 arch/arm/mach-imx/imx8mq.c
 delete mode 100644 arch/arm/mach-imx/include/mach/imx8-ccm-regs.h
 delete mode 100644 arch/arm/mach-imx/include/mach/imx8-ddrc.h
 create mode 100644 arch/arm/mach-imx/include/mach/imx8m-ccm-regs.h
 create mode 100644 arch/arm/mach-imx/include/mach/imx8m-regs.h
 create mode 100644 arch/arm/mach-imx/include/mach/imx8mm-regs.h
 create mode 100644 arch/arm/mach-imx/include/mach/iomux-mx8m.h
 create mode 100644 arch/arm/mach-imx/include/mach/iomux-mx8mm.h
 rename arch/arm/mach-imx/include/mach/{iomux-mx8.h => iomux-mx8mq.h} (98%)
 create mode 100644 drivers/clk/imx/clk-imx8mm.c
 create mode 100644 drivers/clk/imx/clk-pll14xx.c
 create mode 100644 drivers/ddr/imx8m/Kconfig
 create mode 100644 drivers/ddr/imx8m/Makefile
 create mode 100644 drivers/ddr/imx8m/ddr_init.c
 create mode 100644 drivers/ddr/imx8m/ddrphy_csr.c
 create mode 100644 drivers/ddr/imx8m/ddrphy_train.c
 create mode 100644 drivers/ddr/imx8m/ddrphy_utils.c
 create mode 100644 drivers/ddr/imx8m/helper.c
 create mode 100644 drivers/usb/gadget/fsl_udc_pbl.c
 create mode 100644 include/mfd/bd71837.h
 create mode 100644 include/soc/fsl/fsl_udc.h
 create mode 100644 include/soc/imx8m/clk-early.h
 create mode 100644 include/soc/imx8m/ddr.h
 create mode 100644 include/soc/imx8m/lpddr4_define.h

-- 
2.25.0


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux