From 1efb80c4fcb6ad421f1b494409ecd53c60ac4755 Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Fri, 27 Mar 2020 12:28:17 +0200 Subject: [PATCH 1/6] colibri_imx6: set gpr1 ENET_CLK_SEL This fixes the issue when PHY auto negotiation never completes. Fixes: 431cd76dd8("colibri_imx6: migrate to DM_ETH") Signed-off-by: Igor Opaniuk Reviewed-by: Oleksandr Suvorov --- board/toradex/colibri_imx6/colibri_imx6.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c index f04b7493119..d11401ecab8 100644 --- a/board/toradex/colibri_imx6/colibri_imx6.c +++ b/board/toradex/colibri_imx6/colibri_imx6.c @@ -354,12 +354,15 @@ int board_phy_config(struct phy_device *phydev) int setup_fec(void) { int ret; + struct iomuxc *iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR; /* provide the PHY clock from the i.MX 6 */ ret = enable_fec_anatop_clock(0, ENET_50MHZ); if (ret) return ret; + setbits_le32(&iomuxc_regs->gpr[1], IOMUXC_GPR1_ENET_CLK_SEL_MASK); + return 0; } From 99897dd80d9db93c1c587a92d41240694f43bffb Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Fri, 27 Mar 2020 12:28:13 +0200 Subject: [PATCH 2/6] ARM: dts: imx8qm-apalis: replace dm-spl with dm-pre-proper For non-SPL/TPL setups dm-spl, dm-tpl, dm-pre-proper, dm-pre-reloc are handled equally, forcing the nodes with these properties to be accessible and device being probed before pre-relocation of U-Boot proper (drivers/core/util.c): bool ofnode_pre_reloc(ofnode node) { /* for SPL and TPL the remaining nodes after the fdtgrep 1st pass * had property dm-pre-reloc or u-boot,dm-spl/tpl. * They are removed in final dtb (fdtgrep 2nd pass) */ return true; if (ofnode_read_bool(node, "u-boot,dm-pre-reloc")) return true; if (ofnode_read_bool(node, "u-boot,dm-pre-proper")) return true; /* * In regular builds individual spl and tpl handling both * count as handled pre-relocation for later second init. */ if (ofnode_read_bool(node, "u-boot,dm-spl") || ofnode_read_bool(node, "u-boot,dm-tpl")) return true; return false; } Howewer, to avoid confusion in future, replace dm-spl `%s/dm-spl/dm-pre-proper/g` properties to dm-pre-proper to explicitly state that they are handled during pre-relocation stage of U-Boot proper. Signed-off-by: Igor Opaniuk Reviewed-by: Oleksandr Suvorov --- arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi | 62 +++++++++++----------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi b/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi index 7b1a9550e4c..6cdf58c8ada 100644 --- a/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi +++ b/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi @@ -4,125 +4,125 @@ */ &mu { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &clk { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &iomuxc { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio0 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio1 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio2 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio3 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio4 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio5 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio6 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio7 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_conn { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_conn_sdch0 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_conn_sdch1 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_conn_sdch2 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio0 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio1 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio2 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio3 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio4 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio5 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio6 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio7 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &lpuart0 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &lpuart1 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &lpuart2 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &lpuart3 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &usdhc1 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &usdhc2 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &usdhc3 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; From 67c8e2826b096c898c640d9c5915a90c8f6173ea Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Fri, 27 Mar 2020 12:28:14 +0200 Subject: [PATCH 3/6] ARM: dts: imx8qxp-colibri: replace dm-spl with dm-pre-proper For non-SPL/TPL setups dm-spl, dm-tpl, dm-pre-proper, dm-pre-reloc are handled equally, forcing the nodes with these properties to be accessible and device being probed before pre-relocation of U-Boot proper (drivers/core/util.c): bool ofnode_pre_reloc(ofnode node) { /* for SPL and TPL the remaining nodes after the fdtgrep 1st pass * had property dm-pre-reloc or u-boot,dm-spl/tpl. * They are removed in final dtb (fdtgrep 2nd pass) */ return true; if (ofnode_read_bool(node, "u-boot,dm-pre-reloc")) return true; if (ofnode_read_bool(node, "u-boot,dm-pre-proper")) return true; /* * In regular builds individual spl and tpl handling both * count as handled pre-relocation for later second init. */ if (ofnode_read_bool(node, "u-boot,dm-spl") || ofnode_read_bool(node, "u-boot,dm-tpl")) return true; return false; } Howewer, to avoid confusion in future, replace dm-spl `%s/dm-spl/dm-pre-proper/g` properties to dm-pre-proper to explicitly state that they are handled during pre-relocation stage of U-Boot proper. Signed-off-by: Igor Opaniuk Reviewed-by: Oleksandr Suvorov --- arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi | 56 ++++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi index 5b061f94ba6..87de9b5653a 100644 --- a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi +++ b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi @@ -5,113 +5,113 @@ &{/imx8qx-pm} { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &mu { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &clk { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &iomuxc { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio0 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio1 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio2 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio3 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio4 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio5 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio6 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_lsio_gpio7 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_conn { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_conn_sdch0 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_conn_sdch1 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &pd_conn_sdch2 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio0 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio1 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio2 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio3 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio4 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio5 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio6 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &gpio7 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &lpuart3 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &usdhc1 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; &usdhc2 { - u-boot,dm-spl; + u-boot,dm-pre-proper; }; From 8fe92b804529265be44bfe8e99ce3e8e52043529 Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Fri, 27 Mar 2020 12:28:15 +0200 Subject: [PATCH 4/6] ARM: dts: imx8qm-apalis: dm-pre-proper for pd_dma nodes pd_dma_* nodes should be accessible during pre-relocation stage of U-Boot proper for properly handling power domains. This fixes the issue with permanent failing of invocation of power_domain_get_by_index() in the common code of DM power domain uclass (drivers/power/domain/power-domain-uclass.c). Fixes: f0cc4eae9a ("core: device: use dev_power_domain_on") Signed-off-by: Igor Opaniuk Reviewed-by: Oleksandr Suvorov --- arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi b/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi index 6cdf58c8ada..956d7249798 100644 --- a/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi +++ b/arch/arm/dts/fsl-imx8qm-apalis-u-boot.dtsi @@ -51,6 +51,14 @@ u-boot,dm-pre-proper; }; +&pd_dma { + u-boot,dm-pre-proper; +}; + +&pd_dma_lpuart1 { + u-boot,dm-pre-proper; +}; + &pd_conn { u-boot,dm-pre-proper; }; From eb719060ab2990fc5de038583dba15243f822c79 Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Fri, 27 Mar 2020 12:28:16 +0200 Subject: [PATCH 5/6] ARM: dts: imx8qxp-colibri: dm-pre-proper for pd_dma nodes pd_dma_* nodes should be accessible during pre-relocation stage of U-Boot proper for properly handling power domains. This fixes the issue with permanent failing of invocation of power_domain_get_by_index() in the common code of DM power domain uclass (drivers/power/domain/power-domain-uclass.c). Fixes: f0cc4eae9a ("core: device: use dev_power_domain_on") Signed-off-by: Igor Opaniuk Reviewed-by: Oleksandr Suvorov --- arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi index 87de9b5653a..322429a98a7 100644 --- a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi +++ b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi @@ -56,6 +56,18 @@ u-boot,dm-pre-proper; }; +&pd_dma { + u-boot,dm-pre-proper; +}; + +&pd_dma_lpuart0 { + u-boot,dm-pre-proper; +}; + +&pd_dma_lpuart3 { + u-boot,dm-pre-proper; +}; + &pd_conn { u-boot,dm-pre-proper; }; From c94f405ce993ce57d9577bca43cebe54689f4f8a Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Mon, 16 Mar 2020 12:50:09 +0100 Subject: [PATCH 6/6] mx7dsabre: Fix ramdisk_addr* for distro boot Overlapped with fdt_addr*, thus corrupted the latter when using both. Signed-off-by: Jan Kiszka --- include/configs/mx7dsabresd.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/configs/mx7dsabresd.h b/include/configs/mx7dsabresd.h index b1726b1d88c..e7d35ed6480 100644 --- a/include/configs/mx7dsabresd.h +++ b/include/configs/mx7dsabresd.h @@ -81,8 +81,8 @@ "fdt_addr_r=0x83000000\0" \ "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ "pxefile_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ - "ramdisk_addr_r=0x83000000\0" \ - "ramdiskaddr=0x83000000\0" \ + "ramdisk_addr_r=0x83100000\0" \ + "ramdiskaddr=0x83100000\0" \ "scriptaddr=" __stringify(CONFIG_LOADADDR) "\0" \ "videomode=video=ctfb:x:480,y:272,depth:24,pclk:108695,le:8,ri:4,up:2,lo:4,hs:41,vs:10,sync:0,vmode:0\0" \ BOOTENV