Skip to contentSkip to conversation

imx6: disable clock command and print_cpuinfo code in SPL

PATCH New Anatolij Gustschin 4 participants 10 messages Aug 28, 2017 – Sep 23, 2017

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 imx6: disable clock command and print_cpuinfo code in SPL

We do not use print_cpuinfo and clock command code in SPL, disable it when building SPL image.

---
 arch/arm/mach-imx/cpu.c       |  4 ++--
 arch/arm/mach-imx/mx6/clock.c | 30 ++++++++++++++++--------------
 2 files changed, 18 insertions(+), 16 deletions(-)
arch/arm/mach-imx/cpu.c +2 -2
index 1017eb8..18205dc 100644
@@ -25,7 +25,7 @@
 #include <fsl_esdhc.h>
 #endif
 
-#if defined(CONFIG_DISPLAY_CPUINFO)
+#if defined(CONFIG_DISPLAY_CPUINFO) && !defined(CONFIG_SPL_BUILD)
 static u32 reset_cause = -1;
 
 static char *get_reset_cause(void)
@@ -132,7 +132,7 @@ unsigned imx_ddr_size(void)
 }
 #endif
 
-#if defined(CONFIG_DISPLAY_CPUINFO)
+#if defined(CONFIG_DISPLAY_CPUINFO) && !defined(CONFIG_SPL_BUILD)
 
 const char *get_imx_type(u32 imxtype)
 {
arch/arm/mach-imx/mx6/clock.c +16 -14
index 0e019c4..71a9e6b 100644
@@ -1220,6 +1220,20 @@ void enable_thermal_clk(void)
 	enable_pll3();
 }
 
+#ifdef CONFIG_MTD_NOR_FLASH
+void enable_eim_clk(unsigned char enable)
+{
+	u32 reg;
+
+	reg = __raw_readl(&imx_ccm->CCGR6);
+	if (enable)
+		reg |= MXC_CCM_CCGR6_EMI_SLOW_MASK;
+	else
+		reg &= ~MXC_CCM_CCGR6_EMI_SLOW_MASK;
+	__raw_writel(reg, &imx_ccm->CCGR6);
+}
+#endif
+
 unsigned int mxc_get_clock(enum mxc_clock clk)
 {
 	switch (clk) {
@@ -1262,6 +1276,7 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
 	return 0;
 }
 
+#ifndef CONFIG_SPL_BUILD
 /*
  * Dump some core clockes.
  */
@@ -1463,20 +1478,6 @@ void select_ldb_di_clock_source(enum ldb_di_clock clk)
 }
 #endif
 
-#ifdef CONFIG_MTD_NOR_FLASH
-void enable_eim_clk(unsigned char enable)
-{
-	u32 reg;
-
-	reg = __raw_readl(&imx_ccm->CCGR6);
-	if (enable)
-		reg |= MXC_CCM_CCGR6_EMI_SLOW_MASK;
-	else
-		reg &= ~MXC_CCM_CCGR6_EMI_SLOW_MASK;
-	__raw_writel(reg, &imx_ccm->CCGR6);
-}
-#endif
-
 /***************************************************/
 
 U_BOOT_CMD(
@@ -1484,3 +1485,4 @@ U_BOOT_CMD(
 	"display clocks",
 	""
 );
+#endif
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 imx6: disable clock command and print_cpuinfo code in SPL

Hi Anatolji,

Quoted 87 lines · Anatolij Gustschin

We do not use print_cpuinfo and clock command code in SPL, disable it when building SPL image.

---
 arch/arm/mach-imx/cpu.c       |  4 ++--
 arch/arm/mach-imx/mx6/clock.c | 30 ++++++++++++++++--------------
 2 files changed, 18 insertions(+), 16 deletions(-)
arch/arm/mach-imx/cpu.c +2 -2
index 1017eb8..18205dc 100644
@@ -25,7 +25,7 @@
 #include <fsl_esdhc.h>
 #endif
 
-#if defined(CONFIG_DISPLAY_CPUINFO)
+#if defined(CONFIG_DISPLAY_CPUINFO) && !defined(CONFIG_SPL_BUILD)
 static u32 reset_cause = -1;
 
 static char *get_reset_cause(void)
@@ -132,7 +132,7 @@ unsigned imx_ddr_size(void)
 }
 #endif
 
-#if defined(CONFIG_DISPLAY_CPUINFO)
+#if defined(CONFIG_DISPLAY_CPUINFO) && !defined(CONFIG_SPL_BUILD)
 
 const char *get_imx_type(u32 imxtype)
 {
arch/arm/mach-imx/mx6/clock.c +15 -14
index 0e019c4..71a9e6b 100644
@@ -1220,6 +1220,20 @@ void enable_thermal_clk(void)
 	enable_pll3();
 }
 
+#ifdef CONFIG_MTD_NOR_FLASH
+void enable_eim_clk(unsigned char enable)
+{
+	u32 reg;
+
+	reg = __raw_readl(&imx_ccm->CCGR6);
+	if (enable)
+		reg |= MXC_CCM_CCGR6_EMI_SLOW_MASK;
+	else
+		reg &= ~MXC_CCM_CCGR6_EMI_SLOW_MASK;
+	__raw_writel(reg, &imx_ccm->CCGR6);
+}
+#endif
+
 unsigned int mxc_get_clock(enum mxc_clock clk)
 {
 	switch (clk) {
@@ -1262,6 +1276,7 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
 	return 0;
 }
 
+#ifndef CONFIG_SPL_BUILD
 /*
  * Dump some core clockes.
  */
@@ -1463,20 +1478,6 @@ void select_ldb_di_clock_source(enum ldb_di_clock clk)
 }
 #endif
 
-#ifdef CONFIG_MTD_NOR_FLASH
-void enable_eim_clk(unsigned char enable)
-{
-	u32 reg;
-
-	reg = __raw_readl(&imx_ccm->CCGR6);
-	if (enable)
-		reg |= MXC_CCM_CCGR6_EMI_SLOW_MASK;
-	else
-		reg &= ~MXC_CCM_CCGR6_EMI_SLOW_MASK;
-	__raw_writel(reg, &imx_ccm->CCGR6);
-}
-#endif
-
 /***************************************************/
 
 U_BOOT_CMD(

arch/arm/mach-imx/mx6/clock.c U_BOOT_CMD( · line 1488

Quoted 4 lines
arch/arm/mach-imx/mx6/clock.c +1 -0
@@ -1484,3 +1485,4 @@ U_BOOT_CMD(
 	"display clocks",
 	""
 );
+#endif

This patch has some side-effects and breaks some boards. Even if the changes are correct, some boards (wandboard, icore are examples) don't disable IPU support in SPL. Even if this is useless and generates only a bigger footprint.

In fact, I get :

arm: + wandboard
+board/wandboard/built-in.o: In function `setup_display':
+board/wandboard/wandboard.c:355: undefined reference to `enable_ipu_clock' +make[2]: *** [spl/u-boot-spl] Error 1
+make[1]: *** [spl/u-boot-spl] Error 2
+make: *** [sub-make] Error 2

Reason is clear: boards have in SPL a setup_display() that calls enable_ipu_clock. But it makes no sense to have IPU support in SPL.

We can fix with a follow-up patch, but this is bad for bisecting. The other option is to fix here and disable IPU in spl for the affected boards. What you think ?

Best regards,
Stefano

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
#2 lore raw

PATCH 1/1 imx6: disable clock command and print_cpuinfo code in SPL

Hi Stefano,

On Tue, 19 Sep 2017 09:54:30 +0200
Stefano Babic sbabic at denx.de wrote:
...

Quoted 15 lines

This patch has some side-effects and breaks some boards. Even if the changes are correct, some boards (wandboard, icore are examples) don't disable IPU support in SPL. Even if this is useless and generates only a bigger footprint.

In fact, I get :

arm: + wandboard

(quoted diff) +5 -0
+board/wandboard/built-in.o: In function `setup_display':
+board/wandboard/wandboard.c:355: undefined reference to `enable_ipu_clock'
+make[2]: *** [spl/u-boot-spl] Error 1
+make[1]: *** [spl/u-boot-spl] Error 2
+make: *** [sub-make] Error 2
Quoted 6 lines

Reason is clear: boards have in SPL a setup_display() that calls enable_ipu_clock. But it makes no sense to have IPU support in SPL.

We can fix with a follow-up patch, but this is bad for bisecting. The other option is to fix here and disable IPU in spl for the affected boards. What you think ?

Sorry for the build breakage, I didn't test with a full imx6 build. Yes, we shouldn't break bisection. I'll fix and resubmit. Thanks!

--
Anatolij

reviewer
#3 lore raw

PATCH 1/1 imx6: disable clock command and print_cpuinfo code in SPL

In reply to Stefano Babic

Hi Stefano,

Quoted 2 lines · Stefano Babic

Reason is clear: boards have in SPL a setup_display() that calls enable_ipu_clock. But it makes no sense to have IPU support in SPL.

Good catch, thanks!

Anatolij,

Do you plan to remove IPU code from SPL?

Thanks!

#4 lore raw

PATCH 1/1 imx6: disable clock command and print_cpuinfo code in SPL

Hi Fabio,

Quoted 4 lines · On Wed, 20 Sep 2017 00:18:52 -0300 Fabio Estevam festevam at gmail.com wrote:

Hi Stefano,

On Tue, Sep 19, 2017 at 4:54 AM, Stefano Babic <[email protected]> wrote:

Quoted 8 lines
Quoted 2 lines

Reason is clear: boards have in SPL a setup_display() that calls enable_ipu_clock. But it makes no sense to have IPU support in SPL.

Good catch, thanks!

Anatolij,

Do you plan to remove IPU code from SPL?

I think we can do it by

include/configs/wandboard.h +2 -0
index 3ba4c29..b0f317b 100644
@@ -63,6 +63,7 @@
 #define CONFIG_PHY_ATHEROS
 
 /* Framebuffer */
+#if !defined(CONFIG_SPL_BUILD)
 #ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
@@ -74,6 +75,7 @@
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 #endif
+#endif
 
 #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 #define CONFIG_EXTRA_ENV_SETTINGS \

I'll try to prepare a patch for other board configs later this week.

Thanks,

Anatolij

#5 lore raw

PATCH 1/1 imx6: disable clock command and print_cpuinfo code in SPL

Hi Fabio, Anatolji,

just to save time : this is the list of boards that are affected by this problem.

cgtqmx6eval
wandboard
colibri_imx6
apalis_imx6
mx6cuboxi
mx6sabresd
imx6qdl_icore_rqs

A good solution is also if the board maintainers (I CCed all of them) could fix this and I will apply afterwards Anatolji's patch.

Best regards,
Stefano

Quoted 47 lines · Anatolij Gustschin

Hi Fabio,

Quoted 4 lines · On Wed, 20 Sep 2017 00:18:52 -0300 Fabio Estevam festevam at gmail.com wrote:

Hi Stefano,

On Tue, Sep 19, 2017 at 4:54 AM, Stefano Babic <[email protected]> wrote:

Quoted 8 lines
Quoted 2 lines

Reason is clear: boards have in SPL a setup_display() that calls enable_ipu_clock. But it makes no sense to have IPU support in SPL.

Good catch, thanks!

Anatolij,

Do you plan to remove IPU code from SPL?

I think we can do it by

include/configs/wandboard.h +2 -0
index 3ba4c29..b0f317b 100644
@@ -63,6 +63,7 @@
 #define CONFIG_PHY_ATHEROS
 
 /* Framebuffer */
+#if !defined(CONFIG_SPL_BUILD)
 #ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
@@ -74,6 +75,7 @@
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 #endif
+#endif
 
 #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 #define CONFIG_EXTRA_ENV_SETTINGS \

I'll try to prepare a patch for other board configs later this week.

Thanks,

Anatolij

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
#6 lore raw

PATCH 1/1 imx6: disable clock command and print_cpuinfo code in SPL

Hi

Quoted 11 lines · Stefano Babic

Hi Fabio, Anatolji,

just to save time : this is the list of boards that are affected by this problem.

cgtqmx6eval
wandboard

colibri_imx6
apalis_imx6

I will prepare a patch for these two.
Max

Quoted 63 lines

mx6cuboxi
mx6sabresd
imx6qdl_icore_rqs

A good solution is also if the board maintainers (I CCed all of them) could fix this and I will apply afterwards Anatolji's patch.

Best regards,
Stefano

Quoted 50 lines · Anatolij Gustschin

Hi Fabio,

Quoted 6 lines · On Wed, 20 Sep 2017 00:18:52 -0300 Fabio Estevam festevam at gmail.com wrote:

Hi Stefano,

Quoted 1 line · Stefano Babic
Quoted 8 lines
Quoted 2 lines

Reason is clear: boards have in SPL a setup_display() that calls enable_ipu_clock. But it makes no sense to have IPU support in SPL.

Good catch, thanks!

Anatolij,

Do you plan to remove IPU code from SPL?

I think we can do it by

include/configs/wandboard.h +2 -0
index 3ba4c29..b0f317b 100644
@@ -63,6 +63,7 @@
 #define CONFIG_PHY_ATHEROS
 
 /* Framebuffer */
+#if !defined(CONFIG_SPL_BUILD)
 #ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
@@ -74,6 +75,7 @@
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 #endif
+#endif
 
 #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 #define CONFIG_EXTRA_ENV_SETTINGS \

I'll try to prepare a patch for other board configs later this week.

Thanks,

Anatolij

#7 lore raw

PATCH 1/1 imx6: disable clock command and print_cpuinfo code in SPL

Hi,

On Thu, 21 Sep 2017 09:10:32 +0000
Max Krummenacher max.krummenacher at toradex.com wrote:
...

Quoted 5 lines
Quoted 2 lines

colibri_imx6
apalis_imx6

I will prepare a patch for these two.
Max

Thanks!

--
Anatolij

reviewer
#8 lore raw

PATCH 1/1 imx6: disable clock command and print_cpuinfo code in SPL

In reply to Anatolij Gustschin

Hi Anatolij,

Quoted 15 lines · Anatolij Gustschin

I think we can do it by

include/configs/wandboard.h +1 -0
index 3ba4c29..b0f317b 100644
@@ -63,6 +63,7 @@
 #define CONFIG_PHY_ATHEROS
 
 /* Framebuffer */
+#if !defined(CONFIG_SPL_BUILD)
 #ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8

include/configs/wandboard.h line 78

Quoted 4 lines
include/configs/wandboard.h +1 -0
@@ -74,6 +75,7 @@
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 #endif
+#endif

This solution still cause build failures for some boards.

I have a patch locally that avoids calling IPU from SPL code.

Will test it tomorrow and then will submit for all the affected boards.

Thanks

#9 lore raw

PATCH 1/1 imx6: disable clock command and print_cpuinfo code in SPL

Hi Fabio,

On Fri, 22 Sep 2017 22:55:04 -0300
Fabio Estevam festevam at gmail.com wrote:
...

Quoted 13 lines

include/configs/wandboard.h line 78

Quoted 10 lines

/* Framebuffer */

include/configs/wandboard.h +2 -0
+#if !defined(CONFIG_SPL_BUILD)
 #ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
@@ -74,6 +75,7 @@
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 #endif
+#endif  

This solution still cause build failures for some boards.

Quoted 3 lines

I have a patch locally that avoids calling IPU from SPL code.

Will test it tomorrow and then will submit for all the affected boards.

Thanks!

--
Anatolij