
This patchset is to add i.MX8M and i.MX8MQ-EVK support
V4: Regenerate patchset based on Tom's master tree. In this patchset, https://patchwork.ozlabs.org/patch/855027/ "arm: imx: Rework i.MX specific commands to be excluded from SPL" from Tom is included to avoid merge conflicts because the i.mx8m change also has some modification to bootaux and arch/arm/mach-imx/Makefile. Because CONFIG_GPT_TIMER change, I did a small modification to apply Tom's patch, no function change.
Include ATF link in README.
V3: This patchset based on https://patchwork.ozlabs.org/patch/855027/ "arm: imx: Rework i.MX specific commands to be excluded from SPL" from Tom to avoid this patchset fail apply after Tom's patch merged.
Previously "power: pmic/regulator allow dm be omited by SPL" broke other boards, in V3 patchset, only touch pfuze100 related options.
Sharing code about get mac from fuse between mx7/mx8m Sharing code about bootaux between mx6/7/mx8m Sharing code about cpu speed grade between mx7/mx8m Sharing code about get boot device between mx7/mx8m Sharding code about mmc env between mx7/mx8m
Introduce wait_mask_set/clr_timeout to avoid deadloop in clock pll configuration
Correct authorship of fix building warning on fec arm64, patch 27/31.
Switch to use structure for DDR Controller. For DDR PHY registers, there are about more than 10 thousands registers, I could not convert them with detailed register name, and the script is generated from IC team, So I use regs[0xxxxx] arrays here fo easily converting between IC team released script and uboot ddr phy cod.
Improve REAMME file to include where to download firmware and imx-mkimage and how to build
Add review tags on the V2 patchset.
Hope this patchset could catch up next release :)
V2:
patch 02/23: convert to structure, drop is_boot_from_usb and disconnect_from_usb patch 04/23: conver to use structure for the clock driver, removed the CCM_xxx macros. Add static for local functons. Add init_usdhc_clk, init_uart_clk and etc to not enable them all at default. patch 05/23: Add more commit msg for the sip part. patch 08/23: Merge the spl boot device with i.MX7 patch 12/23: Typo fix and return error fix from Heiko for the SoC related part patch 22/23: Use a weak function ddr_init. If patch 23/23 could not be accepted at current stage, to make others still be could be compiled.
The patchset depends on https://patchwork.ozlabs.org/patch/841934/ https://patchwork.ozlabs.org/patch/841958/ to be tested on real hardware.
V1:
patch: "power: pmic.h: include dm/ofnode.h" and "power: pmic/regulator allow dm be omited by SPL" is previously reviewed in mailist to not merged. If no issue, you may pick it up.
The board support is a large patch because of the ddr related code. If it is not good, please first review/pick-up other patches if they are ok.
Peng Fan (30): imx: add i.MX8M into Kconfig imx: mx8m: add register definition header file imx: mx8m: add pin header file time: add wait_mask_set/clr_timeout helper functions imx: mx8m: add clock driver imx: add sip function imx: boot_mode: add USB_BOOT entry imx: cpu: update cpu file to support i.MX8M imx: spl: implement spl_boot_device for i.MX8M imx: add i.MX8MQ SoC Revision and is_mx8m helper imx: add pad settings bit definition for i.MX8M imx: cpu: move speed/temp to common cpu imx: cpu: add cpu speed/grade for i.MX8M imx: refactor imx_get_mac_from_fuse imx: cleanup bootaux imx: bootaux: support i.MX8M imx: mx7: move get_boot_device to cpu.c imx: cpu: support get_boot_device for i.MX8M imx: mx7: move mmc env code to mmc_env.c imx: mx8m: add soc related settings and files imx: makefile: compile files for i.MX8M misc: ocotp: add i.MX8M support mmc: fsl_esdhc: support i.MX8M imx: lcdif: include i.MX8M gpio: mxc: add i.MX8M support net: fec: do not access reserved register for i.MX8M imx: imx8mq: add dtsi file power: pmic/regulator allow dm be omitted by SPL imx: mx8m: add ddr controller memory map imx: add i.MX8MQ EVK support
Tom Rini (1): arm: imx: Rework i.MX specific commands to be excluded from SPL
Ye Li (1): net: fec: fix build warnings for 64bits support
arch/arm/Kconfig | 14 +- arch/arm/Makefile | 4 +- arch/arm/dts/Makefile | 2 + arch/arm/dts/fsl-imx8-ca53.dtsi | 92 ++ arch/arm/dts/fsl-imx8mq-evk.dts | 424 +++++++++ arch/arm/dts/fsl-imx8mq.dtsi | 429 +++++++++ arch/arm/include/asm/arch-imx/cpu.h | 6 +- arch/arm/include/asm/arch-mx6/imx-regs.h | 9 +- arch/arm/include/asm/arch-mx7/imx-regs.h | 18 +- arch/arm/include/asm/arch-mx8m/clock.h | 657 ++++++++++++++ arch/arm/include/asm/arch-mx8m/crm_regs.h | 10 + arch/arm/include/asm/arch-mx8m/ddr.h | 365 ++++++++ arch/arm/include/asm/arch-mx8m/gpio.h | 12 + arch/arm/include/asm/arch-mx8m/imx-regs.h | 468 ++++++++++ arch/arm/include/asm/arch-mx8m/mx8mq_pins.h | 623 +++++++++++++ arch/arm/include/asm/arch-mx8m/sys_proto.h | 18 + arch/arm/include/asm/mach-imx/boot_mode.h | 10 + arch/arm/include/asm/mach-imx/iomux-v3.h | 22 +- arch/arm/include/asm/mach-imx/regs-lcdif.h | 10 +- arch/arm/include/asm/mach-imx/sys_proto.h | 4 + arch/arm/mach-imx/Makefile | 23 +- arch/arm/mach-imx/cpu.c | 130 ++- arch/arm/mach-imx/imx_bootaux.c | 51 +- arch/arm/mach-imx/mac.c | 61 ++ arch/arm/mach-imx/mmc_env.c | 30 + arch/arm/mach-imx/mx5/clock.c | 4 +- arch/arm/mach-imx/mx6/soc.c | 72 -- arch/arm/mach-imx/mx7/clock.c | 2 + arch/arm/mach-imx/mx7/soc.c | 195 ---- arch/arm/mach-imx/mx7ulp/clock.c | 2 + arch/arm/mach-imx/mx8m/Kconfig | 22 + arch/arm/mach-imx/mx8m/Makefile | 8 + arch/arm/mach-imx/mx8m/clock.c | 795 ++++++++++++++++ arch/arm/mach-imx/mx8m/clock_slice.c | 742 +++++++++++++++ arch/arm/mach-imx/mx8m/lowlevel_init.S | 63 ++ arch/arm/mach-imx/mx8m/soc.c | 227 +++++ arch/arm/mach-imx/sip.c | 23 + arch/arm/mach-imx/spl.c | 10 +- board/freescale/mx8mq_evk/Kconfig | 12 + board/freescale/mx8mq_evk/Makefile | 12 + board/freescale/mx8mq_evk/README | 47 + board/freescale/mx8mq_evk/ddr/ddr_init.c | 238 +++++ board/freescale/mx8mq_evk/ddr/ddrphy_train.c | 1253 ++++++++++++++++++++++++++ board/freescale/mx8mq_evk/ddr/helper.c | 101 +++ board/freescale/mx8mq_evk/mx8mq_evk.c | 156 ++++ board/freescale/mx8mq_evk/spl.c | 230 +++++ configs/mx8mq_evk_defconfig | 27 + drivers/gpio/mxc_gpio.c | 22 +- drivers/misc/mxc_ocotp.c | 7 + drivers/mmc/fsl_esdhc.c | 12 +- drivers/net/fec_mxc.c | 78 +- drivers/power/pmic/Makefile | 2 +- drivers/power/regulator/Makefile | 2 +- include/configs/mx8mq_evk.h | 269 ++++++ include/dt-bindings/clock/imx8mq-clock.h | 612 +++++++++++++ include/dt-bindings/pinctrl/pins-imx8mq.h | 632 +++++++++++++ include/imx_sip.h | 14 + include/linux/delay.h | 4 + lib/time.c | 30 + 59 files changed, 9054 insertions(+), 363 deletions(-) create mode 100644 arch/arm/dts/fsl-imx8-ca53.dtsi create mode 100644 arch/arm/dts/fsl-imx8mq-evk.dts create mode 100644 arch/arm/dts/fsl-imx8mq.dtsi create mode 100644 arch/arm/include/asm/arch-mx8m/clock.h create mode 100644 arch/arm/include/asm/arch-mx8m/crm_regs.h create mode 100644 arch/arm/include/asm/arch-mx8m/ddr.h create mode 100644 arch/arm/include/asm/arch-mx8m/gpio.h create mode 100644 arch/arm/include/asm/arch-mx8m/imx-regs.h create mode 100644 arch/arm/include/asm/arch-mx8m/mx8mq_pins.h create mode 100644 arch/arm/include/asm/arch-mx8m/sys_proto.h create mode 100644 arch/arm/mach-imx/mac.c create mode 100644 arch/arm/mach-imx/mmc_env.c create mode 100644 arch/arm/mach-imx/mx8m/Kconfig create mode 100644 arch/arm/mach-imx/mx8m/Makefile create mode 100644 arch/arm/mach-imx/mx8m/clock.c create mode 100644 arch/arm/mach-imx/mx8m/clock_slice.c create mode 100644 arch/arm/mach-imx/mx8m/lowlevel_init.S create mode 100644 arch/arm/mach-imx/mx8m/soc.c create mode 100644 arch/arm/mach-imx/sip.c create mode 100644 board/freescale/mx8mq_evk/Kconfig create mode 100644 board/freescale/mx8mq_evk/Makefile create mode 100644 board/freescale/mx8mq_evk/README create mode 100644 board/freescale/mx8mq_evk/ddr/ddr_init.c create mode 100644 board/freescale/mx8mq_evk/ddr/ddrphy_train.c create mode 100644 board/freescale/mx8mq_evk/ddr/helper.c create mode 100644 board/freescale/mx8mq_evk/mx8mq_evk.c create mode 100644 board/freescale/mx8mq_evk/spl.c create mode 100644 configs/mx8mq_evk_defconfig create mode 100644 include/configs/mx8mq_evk.h create mode 100644 include/dt-bindings/clock/imx8mq-clock.h create mode 100644 include/dt-bindings/pinctrl/pins-imx8mq.h create mode 100644 include/imx_sip.h