From patchwork Tue Jul 2 02:31:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1125793 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45d7mF28sxz9s3Z for ; Tue, 2 Jul 2019 12:41:33 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id F418FC21C2C; Tue, 2 Jul 2019 02:41:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 165AFC21D56; Tue, 2 Jul 2019 02:41:09 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B0ADCC21BE5; Tue, 2 Jul 2019 02:41:07 +0000 (UTC) Received: from inva021.nxp.com (inva021.nxp.com [92.121.34.21]) by lists.denx.de (Postfix) with ESMTPS id 384CFC21BE5 for ; Tue, 2 Jul 2019 02:41:07 +0000 (UTC) Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 826D8200AD4; Tue, 2 Jul 2019 04:41:06 +0200 (CEST) Received: from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com [165.114.16.14]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 5E6F2200ACF; Tue, 2 Jul 2019 04:41:02 +0200 (CEST) Received: from titan.ap.freescale.net (TITAN.ap.freescale.net [10.192.208.233]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id 2E3F1402B6; Tue, 2 Jul 2019 10:40:57 +0800 (SGT) From: peng.fan@nxp.com To: sbabic@denx.de, festevam@gmail.com, uboot-imx@nxp.com Date: Tue, 2 Jul 2019 10:31:14 +0800 Message-Id: <20190702023206.48995-1-peng.fan@nxp.com> X-Mailer: git-send-email 2.14.1 X-Virus-Scanned: ClamAV using ClamSMTP Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH 00/52] Support i.MX8MM/N X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Peng Fan This patchset is to support i.MX8MM/8MN with some update in ddr settings and ddr driver update. 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, so not use V2 in patchset. 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 (47): 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 power: pmic: add SPL_DM_PMIC 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 | 2 + 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/spl.c | 8 + arch/arm/mach-imx/spl_imx_romapi.c | 292 +++ 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 | 1214 ++++++++++++ board/freescale/imx8mn_evk/imx8mn_evk.c | 85 + board/freescale/imx8mn_evk/spl.c | 91 + board/freescale/imx8mq_evk/lpddr4_timing.c | 16 +- common/spl/spl_bootrom.c | 7 +- configs/imx8mm_evk_defconfig | 51 + configs/imx8mn_ddr4_evk_defconfig | 55 + 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 | 24 +- drivers/pinctrl/nxp/pinctrl-imx.c | 4 +- drivers/pinctrl/nxp/pinctrl-imx8m.c | 1 + drivers/power/pmic/Kconfig | 12 + drivers/power/pmic/Makefile | 2 +- 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/power/pmic.h | 2 +- include/spl.h | 3 +- tools/imx8m_image.sh | 15 +- tools/imx8mimage.c | 31 +- 79 files changed, 13082 insertions(+), 814 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/spl_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