[PATCH v2 0/4] IMXRT: Maintnice updates

Updates to the imxrt family include: - Adding missing include in board - Moving pinctrl binding to dts - Reducing SYS_MALLOC_LEN - Using device tree for anatop base address
Jesse Taube (4): clk: imxrt: Use dts for anatop base address configs/*imxrt10*: SYS_MALLOC_LEN is too large ARM: dts: imxrt10..-evk: Linux moved pins-imxrt1020 to dts board: freescale: imxrt10..-evk: Fix missing include of serial.h
arch/arm/dts/imxrt1020-evk-u-boot.dtsi | 4 ++++ arch/arm/dts/imxrt1020-evk.dts | 2 +- .../pins-imxrt1020.h => arch/arm/dts/imxrt1020-pinfunc.h | 0 arch/arm/dts/imxrt1020.dtsi | 5 +++++ arch/arm/dts/imxrt1050-evk-u-boot.dtsi | 4 ++++ arch/arm/dts/imxrt1050-evk.dts | 2 +- .../pins-imxrt1050.h => arch/arm/dts/imxrt1050-pinfunc.h | 0 arch/arm/dts/imxrt1050.dtsi | 5 +++++ arch/arm/include/asm/arch-imxrt/imx-regs.h | 2 -- board/freescale/imxrt1020-evk/imxrt1020-evk.c | 1 + board/freescale/imxrt1050-evk/imxrt1050-evk.c | 1 + configs/imxrt1020-evk_defconfig | 2 +- configs/imxrt1050-evk_defconfig | 2 +- drivers/clk/imx/clk-imxrt1020.c | 2 +- drivers/clk/imx/clk-imxrt1050.c | 2 +- 15 files changed, 26 insertions(+), 8 deletions(-) rename include/dt-bindings/pinctrl/pins-imxrt1020.h => arch/arm/dts/imxrt1020-pinfunc.h (100%) rename include/dt-bindings/pinctrl/pins-imxrt1050.h => arch/arm/dts/imxrt1050-pinfunc.h (100%)

In Linux IMX and IMXRT use the device tree to hold the anatop address. The anatop is used in clock drivers as it controls the internal PLLs This will move the macro from asm/arch-imxrt to the device tree. This presumably should also be done with the other IMX boards as well.
Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com --- arch/arm/dts/imxrt1020-evk-u-boot.dtsi | 4 ++++ arch/arm/dts/imxrt1020.dtsi | 5 +++++ arch/arm/dts/imxrt1050-evk-u-boot.dtsi | 4 ++++ arch/arm/dts/imxrt1050.dtsi | 5 +++++ arch/arm/include/asm/arch-imxrt/imx-regs.h | 2 -- drivers/clk/imx/clk-imxrt1020.c | 2 +- drivers/clk/imx/clk-imxrt1050.c | 2 +- 7 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/arch/arm/dts/imxrt1020-evk-u-boot.dtsi b/arch/arm/dts/imxrt1020-evk-u-boot.dtsi index 121665a2d2..9e1b074d2e 100644 --- a/arch/arm/dts/imxrt1020-evk-u-boot.dtsi +++ b/arch/arm/dts/imxrt1020-evk-u-boot.dtsi @@ -22,6 +22,10 @@ u-boot,dm-spl; };
+&anatop { + u-boot,dm-spl; +}; + &clks { u-boot,dm-spl; }; diff --git a/arch/arm/dts/imxrt1020.dtsi b/arch/arm/dts/imxrt1020.dtsi index 5ba314f995..13511ebb18 100644 --- a/arch/arm/dts/imxrt1020.dtsi +++ b/arch/arm/dts/imxrt1020.dtsi @@ -67,6 +67,11 @@ fsl,mux_mask = <0x7>; };
+ anatop: anatop@400d8000 { + compatible = "fsl,imxrt-anatop"; + reg = <0x400d8000 0x4000>; + }; + clks: ccm@400fc000 { compatible = "fsl,imxrt1020-ccm"; reg = <0x400fc000 0x4000>; diff --git a/arch/arm/dts/imxrt1050-evk-u-boot.dtsi b/arch/arm/dts/imxrt1050-evk-u-boot.dtsi index 3168c2df2c..617cece448 100644 --- a/arch/arm/dts/imxrt1050-evk-u-boot.dtsi +++ b/arch/arm/dts/imxrt1050-evk-u-boot.dtsi @@ -22,6 +22,10 @@ u-boot,dm-spl; };
+&anatop { + u-boot,dm-spl; +}; + &clks { u-boot,dm-spl; }; diff --git a/arch/arm/dts/imxrt1050.dtsi b/arch/arm/dts/imxrt1050.dtsi index 6560a3827f..09f4712af6 100644 --- a/arch/arm/dts/imxrt1050.dtsi +++ b/arch/arm/dts/imxrt1050.dtsi @@ -59,6 +59,11 @@ fsl,mux_mask = <0x7>; };
+ anatop: anatop@400d8000 { + compatible = "fsl,imxrt-anatop"; + reg = <0x400d8000 0x4000>; + }; + clks: ccm@400fc000 { compatible = "fsl,imxrt1050-ccm"; reg = <0x400fc000 0x4000>; diff --git a/arch/arm/include/asm/arch-imxrt/imx-regs.h b/arch/arm/include/asm/arch-imxrt/imx-regs.h index d01e6ca2e0..ad739caae9 100644 --- a/arch/arm/include/asm/arch-imxrt/imx-regs.h +++ b/arch/arm/include/asm/arch-imxrt/imx-regs.h @@ -15,8 +15,6 @@ #define GPIO4_BASE_ADDR 0x401C4000 #define GPIO5_BASE_ADDR 0x400C0000
-#define ANATOP_BASE_ADDR 0x400d8000 - #define MXS_LCDIF_BASE 0x402b8000
#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) diff --git a/drivers/clk/imx/clk-imxrt1020.c b/drivers/clk/imx/clk-imxrt1020.c index 840f783940..14ba6b47c1 100644 --- a/drivers/clk/imx/clk-imxrt1020.c +++ b/drivers/clk/imx/clk-imxrt1020.c @@ -93,7 +93,7 @@ static int imxrt1020_clk_probe(struct udevice *dev) void *base;
/* Anatop clocks */ - base = (void *)ANATOP_BASE_ADDR; + base = (void *)ofnode_get_addr(ofnode_by_compatible(ofnode_null(), "fsl,imxrt-anatop"));
clk_dm(IMXRT1020_CLK_PLL2_SYS, imx_clk_pllv3(IMX_PLLV3_GENERIC, "pll2_sys", "osc", diff --git a/drivers/clk/imx/clk-imxrt1050.c b/drivers/clk/imx/clk-imxrt1050.c index 3e17161002..514516a3a3 100644 --- a/drivers/clk/imx/clk-imxrt1050.c +++ b/drivers/clk/imx/clk-imxrt1050.c @@ -117,7 +117,7 @@ static int imxrt1050_clk_probe(struct udevice *dev) void *base;
/* Anatop clocks */ - base = (void *)ANATOP_BASE_ADDR; + base = (void *)ofnode_get_addr(ofnode_by_compatible(ofnode_null(), "fsl,imxrt-anatop"));
clk_dm(IMXRT1050_CLK_PLL1_REF_SEL, imx_clk_mux("pll1_arm_ref_sel", base + 0x0, 14, 2,

In Linux IMX and IMXRT use the device tree to hold the anatop address. The anatop is used in clock drivers as it controls the internal PLLs This will move the macro from asm/arch-imxrt to the device tree. This presumably should also be done with the other IMX boards as well. Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic

1M of heap is more than internal ram making booting without SDRAM not possible now it is 256k
Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com --- configs/imxrt1020-evk_defconfig | 2 +- configs/imxrt1050-evk_defconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configs/imxrt1020-evk_defconfig b/configs/imxrt1020-evk_defconfig index dafa4a505a..362f2e3bb0 100644 --- a/configs/imxrt1020-evk_defconfig +++ b/configs/imxrt1020-evk_defconfig @@ -1,7 +1,7 @@ CONFIG_ARM=y CONFIG_ARCH_IMXRT=y CONFIG_SYS_TEXT_BASE=0x80002000 -CONFIG_SYS_MALLOC_LEN=0x100000 +CONFIG_SYS_MALLOC_LEN=0x40000 CONFIG_SYS_MALLOC_F_LEN=0x8000 CONFIG_SPL_GPIO=y CONFIG_SPL_LIBCOMMON_SUPPORT=y diff --git a/configs/imxrt1050-evk_defconfig b/configs/imxrt1050-evk_defconfig index 09dcc9e6e3..aa4faacca0 100644 --- a/configs/imxrt1050-evk_defconfig +++ b/configs/imxrt1050-evk_defconfig @@ -3,7 +3,7 @@ CONFIG_SYS_DCACHE_OFF=y # CONFIG_SPL_SYS_DCACHE_OFF is not set CONFIG_ARCH_IMXRT=y CONFIG_SYS_TEXT_BASE=0x80002000 -CONFIG_SYS_MALLOC_LEN=0x100000 +CONFIG_SYS_MALLOC_LEN=0x40000 CONFIG_SYS_MALLOC_F_LEN=0x8000 CONFIG_SPL_GPIO=y CONFIG_SPL_LIBCOMMON_SUPPORT=y

1M of heap is more than internal ram making booting without SDRAM not possible now it is 256k Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic

The Linux kernel moved dt-bindings/pinctrl/pins-imxrt to the device tree This patch move it in U-Boot as well.
Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com --- arch/arm/dts/imxrt1020-evk.dts | 2 +- .../pins-imxrt1020.h => arch/arm/dts/imxrt1020-pinfunc.h | 0 arch/arm/dts/imxrt1050-evk.dts | 2 +- .../pins-imxrt1050.h => arch/arm/dts/imxrt1050-pinfunc.h | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename include/dt-bindings/pinctrl/pins-imxrt1020.h => arch/arm/dts/imxrt1020-pinfunc.h (100%) rename include/dt-bindings/pinctrl/pins-imxrt1050.h => arch/arm/dts/imxrt1050-pinfunc.h (100%)
diff --git a/arch/arm/dts/imxrt1020-evk.dts b/arch/arm/dts/imxrt1020-evk.dts index 2da79e5c20..22ae5ed735 100644 --- a/arch/arm/dts/imxrt1020-evk.dts +++ b/arch/arm/dts/imxrt1020-evk.dts @@ -7,7 +7,7 @@ /dts-v1/; #include "imxrt1020.dtsi" #include "imxrt1020-evk-u-boot.dtsi" -#include <dt-bindings/pinctrl/pins-imxrt1020.h> +#include "imxrt1020-pinfunc.h"
/ { model = "NXP IMXRT1020-evk board"; diff --git a/include/dt-bindings/pinctrl/pins-imxrt1020.h b/arch/arm/dts/imxrt1020-pinfunc.h similarity index 100% rename from include/dt-bindings/pinctrl/pins-imxrt1020.h rename to arch/arm/dts/imxrt1020-pinfunc.h diff --git a/arch/arm/dts/imxrt1050-evk.dts b/arch/arm/dts/imxrt1050-evk.dts index 324cf7af96..fb2da3adfc 100644 --- a/arch/arm/dts/imxrt1050-evk.dts +++ b/arch/arm/dts/imxrt1050-evk.dts @@ -7,7 +7,7 @@ /dts-v1/; #include "imxrt1050.dtsi" #include "imxrt1050-evk-u-boot.dtsi" -#include <dt-bindings/pinctrl/pins-imxrt1050.h> +#include "imxrt1050-pinfunc.h"
/ { model = "NXP IMXRT1050-evk board"; diff --git a/include/dt-bindings/pinctrl/pins-imxrt1050.h b/arch/arm/dts/imxrt1050-pinfunc.h similarity index 100% rename from include/dt-bindings/pinctrl/pins-imxrt1050.h rename to arch/arm/dts/imxrt1050-pinfunc.h

The Linux kernel moved dt-bindings/pinctrl/pins-imxrt to the device tree This patch move it in U-Boot as well. Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic

If FALCON mode is enabled we have a missing include in spl_start_uboot.
Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com --- board/freescale/imxrt1020-evk/imxrt1020-evk.c | 1 + board/freescale/imxrt1050-evk/imxrt1050-evk.c | 1 + 2 files changed, 2 insertions(+)
diff --git a/board/freescale/imxrt1020-evk/imxrt1020-evk.c b/board/freescale/imxrt1020-evk/imxrt1020-evk.c index 54a733b12c..785da604b9 100644 --- a/board/freescale/imxrt1020-evk/imxrt1020-evk.c +++ b/board/freescale/imxrt1020-evk/imxrt1020-evk.c @@ -13,6 +13,7 @@ #include <asm/global_data.h> #include <asm/io.h> #include <asm/armv7m.h> +#include <serial.h>
DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/freescale/imxrt1050-evk/imxrt1050-evk.c b/board/freescale/imxrt1050-evk/imxrt1050-evk.c index 6132916578..4b82ee5e9c 100644 --- a/board/freescale/imxrt1050-evk/imxrt1050-evk.c +++ b/board/freescale/imxrt1050-evk/imxrt1050-evk.c @@ -13,6 +13,7 @@ #include <asm/global_data.h> #include <asm/io.h> #include <asm/armv7m.h> +#include <serial.h>
DECLARE_GLOBAL_DATA_PTR;

If FALCON mode is enabled we have a missing include in spl_start_uboot. Signed-off-by: Jesse Taube Mr.Bossman075@gmail.com
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic

On 2022/3/18 2:33, Jesse Taube wrote:
Updates to the imxrt family include:
- Adding missing include in board
- Moving pinctrl binding to dts
- Reducing SYS_MALLOC_LEN
- Using device tree for anatop base address
Jesse Taube (4): clk: imxrt: Use dts for anatop base address configs/*imxrt10*: SYS_MALLOC_LEN is too large ARM: dts: imxrt10..-evk: Linux moved pins-imxrt1020 to dts board: freescale: imxrt10..-evk: Fix missing include of serial.h
Reviewed-by: Peng Fan peng.fan@nxp.com For the patchset.
arch/arm/dts/imxrt1020-evk-u-boot.dtsi | 4 ++++ arch/arm/dts/imxrt1020-evk.dts | 2 +- .../pins-imxrt1020.h => arch/arm/dts/imxrt1020-pinfunc.h | 0 arch/arm/dts/imxrt1020.dtsi | 5 +++++ arch/arm/dts/imxrt1050-evk-u-boot.dtsi | 4 ++++ arch/arm/dts/imxrt1050-evk.dts | 2 +- .../pins-imxrt1050.h => arch/arm/dts/imxrt1050-pinfunc.h | 0 arch/arm/dts/imxrt1050.dtsi | 5 +++++ arch/arm/include/asm/arch-imxrt/imx-regs.h | 2 -- board/freescale/imxrt1020-evk/imxrt1020-evk.c | 1 + board/freescale/imxrt1050-evk/imxrt1050-evk.c | 1 + configs/imxrt1020-evk_defconfig | 2 +- configs/imxrt1050-evk_defconfig | 2 +- drivers/clk/imx/clk-imxrt1020.c | 2 +- drivers/clk/imx/clk-imxrt1050.c | 2 +- 15 files changed, 26 insertions(+), 8 deletions(-) rename include/dt-bindings/pinctrl/pins-imxrt1020.h => arch/arm/dts/imxrt1020-pinfunc.h (100%) rename include/dt-bindings/pinctrl/pins-imxrt1050.h => arch/arm/dts/imxrt1050-pinfunc.h (100%)
participants (3)
-
Jesse Taube
-
Peng Fan (OSS)
-
sbabic@denx.de