From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peng Fan Date: Mon, 8 Jul 2019 01:38:36 +0000 Subject: [U-Boot] [PATCH V2 00/51] Support i.MX8MM/N Message-ID: <20190708015333.20411-1-peng.fan@nxp.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de This patchset is to support i.MX8MM/8MN with some update in ddr settings and ddr driver update. V2: Fix build break, add Cc for some patches, and drop CCF select in i.MX8MM Fix script to remove srctree in tools/imx8m_image.sh Fix License Rebased V1: The initial patchset to support i.MX8MM is https://patchwork.ozlabs.org/cover/1093140/ But in this patchset I dropped CCF, and use original CLK uclass Bai Ping (1): imx8mq: Update the ddrc QoS setting for B1 chip Jacky Bai (2): driver: ddr: Refine the ddr init driver on imx8m ddr: imx8m: Fix the ddr init hang on imx8mq Peng Fan (46): linux: compat: guard PAGE_SIZE dm: clk: ignore default settings when node not valid pinctrl: imx: use devfdt_get_addr_size_index i2c: mxc: add CONFIG_CLK support tools: imx8m_image: align spl bin image size ddr: imx8m: fix ddr firmware location when enable SPL OF tools: imx8mimage: fix HDMI/FIT parsing imx8m: add image cfg for i.MX8MM lpddr4 imx: add IMX8MQ kconfig entry imx: add IMX8MM kconfig entry imx: imx8mm: add clock bindings header imx: add i.MX8MM cpu type imx: spl: add spl_board_boot_device for i.MX8MM imx8m: update imx-regs for i.MX8MM imx: add get_cpu_rev support for i.MX8MM imx8m: rename clock to clock_imx8mq imx8m: restructure clock.h imx8m: add clk support for i.MX8MM imx8m: soc: probe clk before relocation imx8m: add pin header for i.MX8MM imx: add i.MX8MM PE property imx8m: Fix MMU table issue for OPTEE memory imx8m: set BYPASS ID SWAP to avoid AXI bus errors imx8m: soc: enable SCTR clock before timer init serial: Kconfig: make MXC_UART usable for MX7 and IMX8M clk: imx: add Kconfig entry for i.MX8MM clk: imx: add i.MX8MM clk driver imx: add i.MX8MM EVK board support imx: add i.MX8MN kconfig entry imx8mn: support get_cpu_rev imx8m: add clk support for i.MX8MN imx8mn: set BYPASS ID SWAP to avoid AXI bus errors imx: add i.MX8MN PE property imx8mn: add pin header imx: spl: use spl_board_boot_device for i.MX8MN spl: pass args to board_return_to_bootrom imx: add rom api support imx: cpu: restrict get_boot_device imx8mn: add get_boot_device tools: imx8mimage: add ROM VERSION pinctrl: imx8m: support i.MX8MN tools: imx8m_image: support ddr4 firmware clk: imx: add i.MX8MN clk support imx8m: add i.MX8MN ddr4 image cfg file imx: add dtsi for i.MX8MN imx: add i.MX8MN DDR4 board support Ye Li (2): imx8m: Configure trustzone region 0 for non-secure access ddr: imx8m: Fix ddr4 driver build issue arch/arm/dts/Makefile | 4 +- arch/arm/dts/imx8mm-evk-u-boot.dtsi | 92 + arch/arm/dts/imx8mm-evk.dts | 235 +++ arch/arm/dts/imx8mm-pinfunc.h | 629 +++++++ arch/arm/dts/imx8mm.dtsi | 733 ++++++++ arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi | 92 + arch/arm/dts/imx8mn-ddr4-evk.dts | 221 +++ arch/arm/dts/imx8mn-pinfunc.h | 646 +++++++ arch/arm/dts/imx8mn.dtsi | 712 +++++++ arch/arm/include/asm/arch-imx/cpu.h | 7 + arch/arm/include/asm/arch-imx8m/clock.h | 494 +---- arch/arm/include/asm/arch-imx8m/clock_imx8mm.h | 465 +++++ arch/arm/include/asm/arch-imx8m/clock_imx8mq.h | 424 +++++ arch/arm/include/asm/arch-imx8m/imx-regs.h | 75 +- arch/arm/include/asm/arch-imx8m/imx8mm_pins.h | 691 +++++++ arch/arm/include/asm/arch-imx8m/imx8mn_pins.h | 763 ++++++++ arch/arm/include/asm/mach-imx/iomux-v3.h | 4 + arch/arm/include/asm/mach-imx/mxc_i2c.h | 6 + arch/arm/include/asm/mach-imx/sys_proto.h | 42 + arch/arm/mach-imx/Kconfig | 4 + arch/arm/mach-imx/Makefile | 2 + arch/arm/mach-imx/cpu.c | 16 +- arch/arm/mach-imx/imx8m/Kconfig | 28 +- arch/arm/mach-imx/imx8m/Makefile | 4 +- arch/arm/mach-imx/imx8m/clock_imx8mm.c | 707 +++++++ .../arm/mach-imx/imx8m/{clock.c => clock_imx8mq.c} | 7 +- arch/arm/mach-imx/imx8m/clock_slice.c | 815 ++++++++ arch/arm/mach-imx/imx8m/imximage-8mm-lpddr4.cfg | 16 + arch/arm/mach-imx/imx8m/imximage-8mn-ddr4.cfg | 17 + arch/arm/mach-imx/imx8m/soc.c | 162 +- arch/arm/mach-imx/imx_romapi.c | 292 +++ arch/arm/mach-imx/spl.c | 8 + arch/arm/mach-rockchip/rk3288-board-tpl.c | 5 +- arch/arm/mach-rockchip/rk3368-board-tpl.c | 5 +- arch/arm/mach-rockchip/rk3399-board-spl.c | 5 +- arch/arm/mach-rockchip/rk3399-board-tpl.c | 5 +- board/freescale/imx8mm_evk/Kconfig | 12 + board/freescale/imx8mm_evk/MAINTAINERS | 6 + board/freescale/imx8mm_evk/Makefile | 12 + board/freescale/imx8mm_evk/imx8mm_evk.c | 90 + board/freescale/imx8mm_evk/lpddr4_timing.c | 1980 ++++++++++++++++++++ board/freescale/imx8mm_evk/spl.c | 216 +++ board/freescale/imx8mn_evk/Kconfig | 14 + board/freescale/imx8mn_evk/MAINTAINERS | 6 + board/freescale/imx8mn_evk/Makefile | 12 + board/freescale/imx8mn_evk/ddr4_timing.c | 1213 ++++++++++++ board/freescale/imx8mn_evk/imx8mn_evk.c | 85 + board/freescale/imx8mn_evk/spl.c | 90 + board/freescale/imx8mq_evk/lpddr4_timing.c | 16 +- common/spl/spl_bootrom.c | 7 +- configs/imx8mm_evk_defconfig | 51 + configs/imx8mn_ddr4_evk_defconfig | 53 + drivers/clk/clk-uclass.c | 3 + drivers/clk/imx/Kconfig | 14 + drivers/clk/imx/Makefile | 1 + drivers/clk/imx/clk-imx8mm.c | 121 ++ drivers/ddr/imx/imx8m/Kconfig | 6 + drivers/ddr/imx/imx8m/Makefile | 4 +- drivers/ddr/imx/imx8m/ddr4_init.c | 113 -- drivers/ddr/imx/imx8m/ddr_init.c | 168 ++ drivers/ddr/imx/imx8m/ddrphy_utils.c | 4 + drivers/ddr/imx/imx8m/helper.c | 22 +- drivers/ddr/imx/imx8m/lpddr4_init.c | 188 -- drivers/i2c/mxc_i2c.c | 17 + drivers/pinctrl/nxp/pinctrl-imx.c | 4 +- drivers/pinctrl/nxp/pinctrl-imx8m.c | 1 + drivers/serial/Kconfig | 2 +- include/configs/imx8mm_evk.h | 200 ++ include/configs/imx8mn_evk.h | 198 ++ include/dt-bindings/clock/imx8mm-clock.h | 244 +++ include/dt-bindings/clock/imx8mn-clock.h | 215 +++ include/imximage.h | 1 + include/linux/compat.h | 2 + include/spl.h | 3 +- tools/imx8m_image.sh | 15 +- tools/imx8mimage.c | 31 +- 76 files changed, 13065 insertions(+), 808 deletions(-) create mode 100644 arch/arm/dts/imx8mm-evk-u-boot.dtsi create mode 100644 arch/arm/dts/imx8mm-evk.dts create mode 100644 arch/arm/dts/imx8mm-pinfunc.h create mode 100644 arch/arm/dts/imx8mm.dtsi create mode 100644 arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi create mode 100644 arch/arm/dts/imx8mn-ddr4-evk.dts create mode 100644 arch/arm/dts/imx8mn-pinfunc.h create mode 100644 arch/arm/dts/imx8mn.dtsi create mode 100644 arch/arm/include/asm/arch-imx8m/clock_imx8mm.h create mode 100644 arch/arm/include/asm/arch-imx8m/clock_imx8mq.h create mode 100644 arch/arm/include/asm/arch-imx8m/imx8mm_pins.h create mode 100644 arch/arm/include/asm/arch-imx8m/imx8mn_pins.h create mode 100644 arch/arm/mach-imx/imx8m/clock_imx8mm.c rename arch/arm/mach-imx/imx8m/{clock.c => clock_imx8mq.c} (99%) create mode 100644 arch/arm/mach-imx/imx8m/imximage-8mm-lpddr4.cfg create mode 100644 arch/arm/mach-imx/imx8m/imximage-8mn-ddr4.cfg create mode 100644 arch/arm/mach-imx/imx_romapi.c create mode 100644 board/freescale/imx8mm_evk/Kconfig create mode 100644 board/freescale/imx8mm_evk/MAINTAINERS create mode 100644 board/freescale/imx8mm_evk/Makefile create mode 100644 board/freescale/imx8mm_evk/imx8mm_evk.c create mode 100644 board/freescale/imx8mm_evk/lpddr4_timing.c create mode 100644 board/freescale/imx8mm_evk/spl.c create mode 100644 board/freescale/imx8mn_evk/Kconfig create mode 100644 board/freescale/imx8mn_evk/MAINTAINERS create mode 100644 board/freescale/imx8mn_evk/Makefile create mode 100644 board/freescale/imx8mn_evk/ddr4_timing.c create mode 100644 board/freescale/imx8mn_evk/imx8mn_evk.c create mode 100644 board/freescale/imx8mn_evk/spl.c create mode 100644 configs/imx8mm_evk_defconfig create mode 100644 configs/imx8mn_ddr4_evk_defconfig create mode 100644 drivers/clk/imx/clk-imx8mm.c delete mode 100644 drivers/ddr/imx/imx8m/ddr4_init.c create mode 100644 drivers/ddr/imx/imx8m/ddr_init.c delete mode 100644 drivers/ddr/imx/imx8m/lpddr4_init.c create mode 100644 include/configs/imx8mm_evk.h create mode 100644 include/configs/imx8mn_evk.h create mode 100644 include/dt-bindings/clock/imx8mm-clock.h create mode 100644 include/dt-bindings/clock/imx8mn-clock.h -- 2.16.4