public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init
@ 2012-08-14 14:43 Benoît Thébaudeau
  2012-08-14 14:44 ` [U-Boot] [PATCH 2/4] mx5: Optimize lowlevel_init code size Benoît Thébaudeau
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-08-14 14:43 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |   46 ++++++++++----------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
index 683a7b5..a40b84f 100644
--- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
+++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
@@ -36,9 +36,9 @@
 	/* reconfigure L2 cache aux control reg */
 	mov r0, #0xC0			/* tag RAM */
 	add r0, r0, #0x4		/* data RAM */
-	orr r0, r0, #(1 << 24)		/* disable write allocate delay */
-	orr r0, r0, #(1 << 23)		/* disable write allocate combine */
-	orr r0, r0, #(1 << 22)		/* disable write allocate */
+	orr r0, r0, #1 << 24		/* disable write allocate delay */
+	orr r0, r0, #1 << 23		/* disable write allocate combine */
+	orr r0, r0, #1 << 22		/* disable write allocate */
 
 #if defined(CONFIG_MX51)
 	ldr r1, =0x0
@@ -46,7 +46,7 @@
 	cmp r3, #0x10
 
 	/* disable write combine for TO 2 and lower revs */
-	orrls r0, r0, #(1 << 25)
+	orrls r0, r0, #1 << 25
 #endif
 
 	mcr 15, 1, r0, c9, c0, 2
@@ -247,9 +247,9 @@
 	movhi r1, #0
 #else
 	mov r1, #0
-
 #endif
 	str r1, [r0, #CLKCTL_CACRR]
+
 	/* Switch ARM back to PLL 1 */
 	mov r1, #0
 	str r1, [r0, #CLKCTL_CCSR]
@@ -288,9 +288,9 @@
 	/* Switch peripheral to PLL2 */
 	ldr r0, =CCM_BASE_ADDR
 	ldr r1, =0x00808145
-	orr r1, r1, #(2 << 10)
-	orr r1, r1, #(0 << 16)
-	orr r1, r1, #(1 << 19)
+	orr r1, r1, #2 << 10
+	orr r1, r1, #0 << 16
+	orr r1, r1, #1 << 19
 	str r1, [r0, #CLKCTL_CBCDR]
 
 	ldr r1, =0x00016154
@@ -331,10 +331,10 @@ ENTRY(lowlevel_init)
 #if defined(CONFIG_MX51)
 	ldr r0, =GPIO1_BASE_ADDR
 	ldr r1, [r0, #0x0]
-	orr r1, r1, #(1 << 23)
+	orr r1, r1, #1 << 23
 	str r1, [r0, #0x0]
 	ldr r1, [r0, #0x4]
-	orr r1, r1, #(1 << 23)
+	orr r1, r1, #1 << 23
 	str r1, [r0, #0x4]
 #endif
 
@@ -351,16 +351,16 @@ ENTRY(lowlevel_init)
 ENDPROC(lowlevel_init)
 
 /* Board level setting value */
-W_DP_OP_864:              .word DP_OP_864
-W_DP_MFD_864:             .word DP_MFD_864
-W_DP_MFN_864:             .word DP_MFN_864
-W_DP_MFN_800_DIT:         .word DP_MFN_800_DIT
-W_DP_OP_800:              .word DP_OP_800
-W_DP_MFD_800:             .word DP_MFD_800
-W_DP_MFN_800:             .word DP_MFN_800
-W_DP_OP_665:              .word DP_OP_665
-W_DP_MFD_665:             .word DP_MFD_665
-W_DP_MFN_665:             .word DP_MFN_665
-W_DP_OP_216:              .word DP_OP_216
-W_DP_MFD_216:             .word DP_MFD_216
-W_DP_MFN_216:             .word DP_MFN_216
+W_DP_OP_864:		.word DP_OP_864
+W_DP_MFD_864:		.word DP_MFD_864
+W_DP_MFN_864:		.word DP_MFN_864
+W_DP_MFN_800_DIT:	.word DP_MFN_800_DIT
+W_DP_OP_800:		.word DP_OP_800
+W_DP_MFD_800:		.word DP_MFD_800
+W_DP_MFN_800:		.word DP_MFN_800
+W_DP_OP_665:		.word DP_OP_665
+W_DP_MFD_665:		.word DP_MFD_665
+W_DP_MFN_665:		.word DP_MFN_665
+W_DP_OP_216:		.word DP_OP_216
+W_DP_MFD_216:		.word DP_MFD_216
+W_DP_MFN_216:		.word DP_MFN_216

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH 2/4] mx5: Optimize lowlevel_init code size
  2012-08-14 14:43 [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init Benoît Thébaudeau
@ 2012-08-14 14:44 ` Benoît Thébaudeau
  2012-08-14 14:52   ` Otavio Salvador
  2012-08-14 14:44 ` [U-Boot] [PATCH 3/4] mx5: Optimize lowlevel_init for TO 3 Benoît Thébaudeau
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-08-14 14:44 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |  112 +++++++++++---------
 1 file changed, 59 insertions(+), 53 deletions(-)

diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
index a40b84f..529e35b 100644
--- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
+++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
@@ -24,6 +24,8 @@
 #include <generated/asm-offsets.h>
 #include <linux/linkage.h>
 
+.section ".text.init", "x"
+
 /*
  * L2CC Cache setup/invalidation/disable
  */
@@ -34,15 +36,14 @@
 	mcr 15, 0, r0, c1, c0, 1
 
 	/* reconfigure L2 cache aux control reg */
-	mov r0, #0xC0			/* tag RAM */
-	add r0, r0, #0x4		/* data RAM */
-	orr r0, r0, #1 << 24		/* disable write allocate delay */
-	orr r0, r0, #1 << 23		/* disable write allocate combine */
-	orr r0, r0, #1 << 22		/* disable write allocate */
+	ldr r0, =0xC0 |			/* tag RAM */ \
+	         0x4 |			/* data RAM */ \
+	         1 << 24 |		/* disable write allocate delay */ \
+	         1 << 23 |		/* disable write allocate combine */ \
+	         1 << 22		/* disable write allocate */
 
 #if defined(CONFIG_MX51)
-	ldr r1, =0x0
-	ldr r3, [r1, #ROM_SI_REV]
+	ldr r3, [r4, #ROM_SI_REV]
 	cmp r3, #0x10
 
 	/* disable write combine for TO 2 and lower revs */
@@ -84,8 +85,7 @@
 	ldr r1, =0x00000203
 	str r1, [r0, #0x40]
 
-	ldr r1, =0x0
-	str r1, [r0, #0x44]
+	str r4, [r0, #0x44]
 
 	ldr r1, =0x00120125
 	str r1, [r0, #0x9C]
@@ -98,20 +98,29 @@
 
 .macro setup_pll pll, freq
 	ldr r0, =\pll
+	adr r2, W_DP_\freq
+	bl setup_pll_func
+.endm
+
+#define W_DP_OP		0
+#define W_DP_MFD	4
+#define W_DP_MFN	8
+
+setup_pll_func:
 	ldr r1, =0x00001232
 	str r1, [r0, #PLL_DP_CTL] /* Set DPLL ON (set UPEN bit): BRMO=1 */
 	mov r1, #0x2
 	str r1, [r0, #PLL_DP_CONFIG] /* Enable auto-restart AREN bit */
 
-	ldr r1, W_DP_OP_\freq
+	ldr r1, [r2, #W_DP_OP]
 	str r1, [r0, #PLL_DP_OP]
 	str r1, [r0, #PLL_DP_HFS_OP]
 
-	ldr r1,	W_DP_MFD_\freq
+	ldr r1, [r2, #W_DP_MFD]
 	str r1, [r0, #PLL_DP_MFD]
 	str r1, [r0, #PLL_DP_HFS_MFD]
 
-	ldr r1,  W_DP_MFN_\freq
+	ldr r1, [r2, #W_DP_MFN]
 	str r1, [r0, #PLL_DP_MFN]
 	str r1, [r0, #PLL_DP_HFS_MFN]
 
@@ -120,12 +129,13 @@
 1:	ldr r1, [r0, #PLL_DP_CTL]
 	ands r1, r1, #0x1
 	beq 1b
-.endm
+
+	/* r10 saved upper lr */
+	mov pc, lr
 
 .macro setup_pll_errata pll, freq
 	ldr r2, =\pll
-	mov r1, #0x0
-	str r1, [r2, #PLL_DP_CONFIG] /* Disable auto-restart AREN bit */
+	str r4, [r2, #PLL_DP_CONFIG] /* Disable auto-restart AREN bit */
 	ldr r1, =0x00001236
 	str r1, [r2, #PLL_DP_CTL]    /* Restart PLL with PLM=1 */
 1:	ldr r1, [r2, #PLL_DP_CTL]    /* Wait for lock */
@@ -158,10 +168,9 @@
 	/* Gate of clocks to the peripherals first */
 	ldr r1, =0x3FFFFFFF
 	str r1, [r0, #CLKCTL_CCGR0]
-	ldr r1, =0x0
-	str r1, [r0, #CLKCTL_CCGR1]
-	str r1, [r0, #CLKCTL_CCGR2]
-	str r1, [r0, #CLKCTL_CCGR3]
+	str r4, [r0, #CLKCTL_CCGR1]
+	str r4, [r0, #CLKCTL_CCGR2]
+	str r4, [r0, #CLKCTL_CCGR3]
 
 	ldr r1, =0x00030000
 	str r1, [r0, #CLKCTL_CCGR4]
@@ -184,11 +193,10 @@
 #else
 	ldr r1, =0x3FFFFFFF
 	str r1, [r0, #CLKCTL_CCGR0]
-	ldr r1, =0x0
-	str r1, [r0, #CLKCTL_CCGR1]
-	str r1, [r0, #CLKCTL_CCGR2]
-	str r1, [r0, #CLKCTL_CCGR3]
-	str r1, [r0, #CLKCTL_CCGR7]
+	str r4, [r0, #CLKCTL_CCGR1]
+	str r4, [r0, #CLKCTL_CCGR2]
+	str r4, [r0, #CLKCTL_CCGR3]
+	str r4, [r0, #CLKCTL_CCGR7]
 
 	ldr r1, =0x00030000
 	str r1, [r0, #CLKCTL_CCGR4]
@@ -214,8 +222,7 @@
 
 	/* Switch peripheral to PLL 3 */
 	ldr r0, =CCM_BASE_ADDR
-	ldr r1, =0x000010C0
-	orr r1,r1,#CONFIG_SYS_DDR_CLKSEL
+	ldr r1, =0x000010C0 | CONFIG_SYS_DDR_CLKSEL
 	str r1, [r0, #CLKCTL_CBCMR]
 	ldr r1, =0x13239145
 	str r1, [r0, #CLKCTL_CBCDR]
@@ -225,8 +232,7 @@
 	ldr r0, =CCM_BASE_ADDR
 	ldr r1, =0x19239145
 	str r1, [r0, #CLKCTL_CBCDR]
-	ldr r1, =0x000020C0
-	orr r1,r1,#CONFIG_SYS_DDR_CLKSEL
+	ldr r1, =0x000020C0 | CONFIG_SYS_DDR_CLKSEL
 	str r1, [r0, #CLKCTL_CBCMR]
 #endif
 	setup_pll PLL3_BASE_ADDR, 216
@@ -240,8 +246,7 @@
 
 #if defined(CONFIG_MX51)
 	/* Run 3.0@Full speed, for other TO's wait till we increase VDDGP */
-	ldr r1, =0x0
-	ldr r3, [r1, #ROM_SI_REV]
+	ldr r3, [r4, #ROM_SI_REV]
 	cmp r3, #0x10
 	movls r1, #0x1
 	movhi r1, #0
@@ -251,14 +256,12 @@
 	str r1, [r0, #CLKCTL_CACRR]
 
 	/* Switch ARM back to PLL 1 */
-	mov r1, #0
-	str r1, [r0, #CLKCTL_CCSR]
+	str r4, [r0, #CLKCTL_CCSR]
 
 #if defined(CONFIG_MX51)
 	/* setup the rest */
 	/* Use lp_apm (24MHz) source for perclk */
-	ldr r1, =0x000020C2
-	orr r1,r1,#CONFIG_SYS_DDR_CLKSEL
+	ldr r1, =0x000020C2 | CONFIG_SYS_DDR_CLKSEL
 	str r1, [r0, #CLKCTL_CBCMR]
 	/* ddr clock from PLL 1, all perclk dividers are 1 since using 24MHz */
 	ldr r1, =CONFIG_SYS_CLKTL_CBCDR
@@ -289,7 +292,6 @@
 	ldr r0, =CCM_BASE_ADDR
 	ldr r1, =0x00808145
 	orr r1, r1, #2 << 10
-	orr r1, r1, #0 << 16
 	orr r1, r1, #1 << 19
 	str r1, [r0, #CLKCTL_CBCDR]
 
@@ -310,8 +312,7 @@
 	cmp r1, #0x0
 	bne 1b
 
-	mov r1, #0x0
-	str r1, [r0, #CLKCTL_CCDR]
+	str r4, [r0, #CLKCTL_CCDR]
 
 	/* for cko - for ARM div by 8 */
 	mov r1, #0x000A0000
@@ -325,9 +326,10 @@
 	strh r1, [r0]
 .endm
 
-.section ".text.init", "x"
-
 ENTRY(lowlevel_init)
+	mov r10, lr
+	mov r4, #0	/* Fix R4 to 0 */
+
 #if defined(CONFIG_MX51)
 	ldr r0, =GPIO1_BASE_ADDR
 	ldr r1, [r0, #0x0]
@@ -346,21 +348,25 @@ ENTRY(lowlevel_init)
 
 	init_clock
 
-	/* r12 saved upper lr*/
-	mov pc,lr
+	mov pc, r10
 ENDPROC(lowlevel_init)
 
 /* Board level setting value */
-W_DP_OP_864:		.word DP_OP_864
-W_DP_MFD_864:		.word DP_MFD_864
-W_DP_MFN_864:		.word DP_MFN_864
+#if defined(CONFIG_MX51_PLL_ERRATA)
+W_DP_864:		.word DP_OP_864
+			.word DP_MFD_864
+			.word DP_MFN_864
 W_DP_MFN_800_DIT:	.word DP_MFN_800_DIT
-W_DP_OP_800:		.word DP_OP_800
-W_DP_MFD_800:		.word DP_MFD_800
-W_DP_MFN_800:		.word DP_MFN_800
-W_DP_OP_665:		.word DP_OP_665
-W_DP_MFD_665:		.word DP_MFD_665
-W_DP_MFN_665:		.word DP_MFN_665
-W_DP_OP_216:		.word DP_OP_216
-W_DP_MFD_216:		.word DP_MFD_216
-W_DP_MFN_216:		.word DP_MFN_216
+#else
+W_DP_800:		.word DP_OP_800
+			.word DP_MFD_800
+			.word DP_MFN_800
+#endif
+#if defined(CONFIG_MX51)
+W_DP_665:		.word DP_OP_665
+			.word DP_MFD_665
+			.word DP_MFN_665
+#endif
+W_DP_216:		.word DP_OP_216
+			.word DP_MFD_216
+			.word DP_MFN_216

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH 3/4] mx5: Optimize lowlevel_init for TO 3
  2012-08-14 14:43 [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init Benoît Thébaudeau
  2012-08-14 14:44 ` [U-Boot] [PATCH 2/4] mx5: Optimize lowlevel_init code size Benoît Thébaudeau
@ 2012-08-14 14:44 ` Benoît Thébaudeau
  2012-08-14 14:56   ` Otavio Salvador
  2012-08-14 14:44 ` [U-Boot] [PATCH 4/4] mx5: Mark lowlevel_init board-specific code Benoît Thébaudeau
  2012-08-14 14:51 ` [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init Otavio Salvador
  3 siblings, 1 reply; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-08-14 14:44 UTC (permalink / raw)
  To: u-boot

Add an option to optimize away revision-specific code from lowlevel_init.S. This
can be useful for recently designed boards that may not be fitted with older
revisions.

Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |    4 ++--
 .../doc/README.imx5                                |    7 ++++++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
index 529e35b..d0f75fa 100644
--- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
+++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
@@ -42,7 +42,7 @@
 	         1 << 23 |		/* disable write allocate combine */ \
 	         1 << 22		/* disable write allocate */
 
-#if defined(CONFIG_MX51)
+#if defined(CONFIG_MX51) && !defined(CONFIG_MX51_TO_3)
 	ldr r3, [r4, #ROM_SI_REV]
 	cmp r3, #0x10
 
@@ -244,7 +244,7 @@ setup_pll_func:
 
 	ldr r0, =CCM_BASE_ADDR
 
-#if defined(CONFIG_MX51)
+#if defined(CONFIG_MX51) && !defined(CONFIG_MX51_TO_3)
 	/* Run 3.0 at Full speed, for other TO's wait till we increase VDDGP */
 	ldr r3, [r4, #ROM_SI_REV]
 	cmp r3, #0x10
diff --git u-boot-4d3c95f.orig/doc/README.imx5 u-boot-4d3c95f/doc/README.imx5
index f7eab7d..938d3da 100644
--- u-boot-4d3c95f.orig/doc/README.imx5
+++ u-boot-4d3c95f/doc/README.imx5
@@ -6,7 +6,12 @@ i.MX5x SoCs.
 1. CONFIGURATION OPTIONS/SETTINGS
 ---------------------------------
 
-1.1 CONFIG_MX51_PLL_ERRATA: Workaround for i.MX51 PLL errata.
+1.1 CONFIG_MX51_TO_3: i.MX51 silicon revision 3 or higher.
+    This option can be enabled for these i.MX51 silicon revisions to optimize
+    away some specific behavior triggered by the detection of older silicon
+    revisions at runtime.
+
+1.2 CONFIG_MX51_PLL_ERRATA: Workaround for i.MX51 PLL errata.
     This option should be enabled by all boards using the i.MX51 silicon
     version up until (including) 3.0 running@800MHz.
     The PLL's in the i.MX51 processor can go out of lock due to a metastable

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH 4/4] mx5: Mark lowlevel_init board-specific code
  2012-08-14 14:43 [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init Benoît Thébaudeau
  2012-08-14 14:44 ` [U-Boot] [PATCH 2/4] mx5: Optimize lowlevel_init code size Benoît Thébaudeau
  2012-08-14 14:44 ` [U-Boot] [PATCH 3/4] mx5: Optimize lowlevel_init for TO 3 Benoît Thébaudeau
@ 2012-08-14 14:44 ` Benoît Thébaudeau
  2012-08-15 14:34   ` Benoît Thébaudeau
  2012-11-05 20:07   ` [U-Boot] [PATCH v2] " Benoît Thébaudeau
  2012-08-14 14:51 ` [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init Otavio Salvador
  3 siblings, 2 replies; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-08-14 14:44 UTC (permalink / raw)
  To: u-boot

The mx5 lowlevel_init.S contains board-specific code based on the reference
design. Let's keep it since it avoids creating new lowlevel_init files and it
may be used by many boards. But add a config to make it optional in order not to
cause issues on boards not following this part of the reference design.

Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |    2 +-
 .../doc/README.imx5                                |    5 +++++
 .../include/configs/efikamx.h                      |    1 +
 .../include/configs/mx51evk.h                      |    1 +
 .../include/configs/vision2.h                      |    1 +
 5 files changed, 9 insertions(+), 1 deletion(-)

diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
index d0f75fa..b25b3a7 100644
--- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
+++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
@@ -330,7 +330,7 @@ ENTRY(lowlevel_init)
 	mov r10, lr
 	mov r4, #0	/* Fix R4 to 0 */
 
-#if defined(CONFIG_MX51)
+#if defined(CONFIG_SYS_MAIN_PWR_ON)
 	ldr r0, =GPIO1_BASE_ADDR
 	ldr r1, [r0, #0x0]
 	orr r1, r1, #1 << 23
diff --git u-boot-4d3c95f.orig/doc/README.imx5 u-boot-4d3c95f/doc/README.imx5
index 938d3da..85d476f 100644
--- u-boot-4d3c95f.orig/doc/README.imx5
+++ u-boot-4d3c95f/doc/README.imx5
@@ -20,3 +20,8 @@ i.MX5x SoCs.
     mode), which causes the effect of this failure to be much lower (in terms
     of frequency deviation), avoiding system failure, or@least decreasing
     the likelihood of system failure.
+
+1.3 CONFIG_SYS_MAIN_PWR_ON: Trigger MAIN_PWR_ON upon startup.
+    This option should be enabled for boards having a SYS_ON_OFF_CTL signal
+    connected to GPIO1[23] and triggering the MAIN_PWR_ON signal like in the
+    reference designs.
diff --git u-boot-4d3c95f.orig/include/configs/efikamx.h u-boot-4d3c95f/include/configs/efikamx.h
index 143b0f0..792b51b 100644
--- u-boot-4d3c95f.orig/include/configs/efikamx.h
+++ u-boot-4d3c95f/include/configs/efikamx.h
@@ -270,5 +270,6 @@
 
 #define CONFIG_SYS_DDR_CLKSEL		0
 #define CONFIG_SYS_CLKTL_CBCDR		0x59E35145
+#define CONFIG_SYS_MAIN_PWR_ON
 
 #endif
diff --git u-boot-4d3c95f.orig/include/configs/mx51evk.h u-boot-4d3c95f/include/configs/mx51evk.h
index e975f54..6867f7b 100644
--- u-boot-4d3c95f.orig/include/configs/mx51evk.h
+++ u-boot-4d3c95f/include/configs/mx51evk.h
@@ -242,6 +242,7 @@
 
 #define CONFIG_SYS_DDR_CLKSEL	0
 #define CONFIG_SYS_CLKTL_CBCDR	0x59E35100
+#define CONFIG_SYS_MAIN_PWR_ON
 
 /*-----------------------------------------------------------------------
  * FLASH and environment organization
diff --git u-boot-4d3c95f.orig/include/configs/vision2.h u-boot-4d3c95f/include/configs/vision2.h
index ed004a6..3ce4906 100644
--- u-boot-4d3c95f.orig/include/configs/vision2.h
+++ u-boot-4d3c95f/include/configs/vision2.h
@@ -203,6 +203,7 @@
 /* 166 MHz DDR RAM */
 #define CONFIG_SYS_DDR_CLKSEL		0
 #define CONFIG_SYS_CLKTL_CBCDR		0x19239100
+#define CONFIG_SYS_MAIN_PWR_ON
 
 #define CONFIG_SYS_NO_FLASH
 

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init
  2012-08-14 14:43 [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init Benoît Thébaudeau
                   ` (2 preceding siblings ...)
  2012-08-14 14:44 ` [U-Boot] [PATCH 4/4] mx5: Mark lowlevel_init board-specific code Benoît Thébaudeau
@ 2012-08-14 14:51 ` Otavio Salvador
  2012-08-14 15:18   ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
  3 siblings, 1 reply; 22+ messages in thread
From: Otavio Salvador @ 2012-08-14 14:51 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 14, 2012 at 11:43 AM, Beno?t Th?baudeau
<benoit.thebaudeau@advansee.com> wrote:
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>

The patch seems to be just code style changes, but it is not clear
from the commit description.

-- 
Otavio Salvador                             O.S. Systems
E-mail: otavio at ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH 2/4] mx5: Optimize lowlevel_init code size
  2012-08-14 14:44 ` [U-Boot] [PATCH 2/4] mx5: Optimize lowlevel_init code size Benoît Thébaudeau
@ 2012-08-14 14:52   ` Otavio Salvador
  2012-08-14 15:19     ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
  0 siblings, 1 reply; 22+ messages in thread
From: Otavio Salvador @ 2012-08-14 14:52 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 14, 2012 at 11:44 AM, Beno?t Th?baudeau
<benoit.thebaudeau@advansee.com> wrote:
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>

What the patch does? Please use long description for it.

-- 
Otavio Salvador                             O.S. Systems
E-mail: otavio at ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH 3/4] mx5: Optimize lowlevel_init for TO 3
  2012-08-14 14:44 ` [U-Boot] [PATCH 3/4] mx5: Optimize lowlevel_init for TO 3 Benoît Thébaudeau
@ 2012-08-14 14:56   ` Otavio Salvador
  2012-08-14 15:19     ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
  0 siblings, 1 reply; 22+ messages in thread
From: Otavio Salvador @ 2012-08-14 14:56 UTC (permalink / raw)
  To: u-boot

On Tue, Aug 14, 2012 at 11:44 AM, Beno?t Th?baudeau
<benoit.thebaudeau@advansee.com> wrote:
> Add an option to optimize away revision-specific code from lowlevel_init.S. This
> can be useful for recently designed boards that may not be fitted with older
> revisions.
>
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>

Looking at code I somewhat understood what you did but the commit log
doesn't describe the change you did neither why you did.

-- 
Otavio Salvador                             O.S. Systems
E-mail: otavio at ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2 1/4] mx5: cosmetic: Clean up lowlevel_init
  2012-08-14 14:51 ` [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init Otavio Salvador
@ 2012-08-14 15:18   ` Benoît Thébaudeau
  2012-08-17 11:41     ` Stefano Babic
  2012-08-20  7:56     ` Stefano Babic
  0 siblings, 2 replies; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-08-14 15:18 UTC (permalink / raw)
  To: u-boot

Coding style cleanup:
 - Remove useless parentheses.
 - Use tabs for indentations and alignments. 

Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
---
Changes for v2:
 - Make patch description more detailed.

 .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |   46 ++++++++++----------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
index 683a7b5..a40b84f 100644
--- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
+++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
@@ -36,9 +36,9 @@
 	/* reconfigure L2 cache aux control reg */
 	mov r0, #0xC0			/* tag RAM */
 	add r0, r0, #0x4		/* data RAM */
-	orr r0, r0, #(1 << 24)		/* disable write allocate delay */
-	orr r0, r0, #(1 << 23)		/* disable write allocate combine */
-	orr r0, r0, #(1 << 22)		/* disable write allocate */
+	orr r0, r0, #1 << 24		/* disable write allocate delay */
+	orr r0, r0, #1 << 23		/* disable write allocate combine */
+	orr r0, r0, #1 << 22		/* disable write allocate */
 
 #if defined(CONFIG_MX51)
 	ldr r1, =0x0
@@ -46,7 +46,7 @@
 	cmp r3, #0x10
 
 	/* disable write combine for TO 2 and lower revs */
-	orrls r0, r0, #(1 << 25)
+	orrls r0, r0, #1 << 25
 #endif
 
 	mcr 15, 1, r0, c9, c0, 2
@@ -247,9 +247,9 @@
 	movhi r1, #0
 #else
 	mov r1, #0
-
 #endif
 	str r1, [r0, #CLKCTL_CACRR]
+
 	/* Switch ARM back to PLL 1 */
 	mov r1, #0
 	str r1, [r0, #CLKCTL_CCSR]
@@ -288,9 +288,9 @@
 	/* Switch peripheral to PLL2 */
 	ldr r0, =CCM_BASE_ADDR
 	ldr r1, =0x00808145
-	orr r1, r1, #(2 << 10)
-	orr r1, r1, #(0 << 16)
-	orr r1, r1, #(1 << 19)
+	orr r1, r1, #2 << 10
+	orr r1, r1, #0 << 16
+	orr r1, r1, #1 << 19
 	str r1, [r0, #CLKCTL_CBCDR]
 
 	ldr r1, =0x00016154
@@ -331,10 +331,10 @@ ENTRY(lowlevel_init)
 #if defined(CONFIG_MX51)
 	ldr r0, =GPIO1_BASE_ADDR
 	ldr r1, [r0, #0x0]
-	orr r1, r1, #(1 << 23)
+	orr r1, r1, #1 << 23
 	str r1, [r0, #0x0]
 	ldr r1, [r0, #0x4]
-	orr r1, r1, #(1 << 23)
+	orr r1, r1, #1 << 23
 	str r1, [r0, #0x4]
 #endif
 
@@ -351,16 +351,16 @@ ENTRY(lowlevel_init)
 ENDPROC(lowlevel_init)
 
 /* Board level setting value */
-W_DP_OP_864:              .word DP_OP_864
-W_DP_MFD_864:             .word DP_MFD_864
-W_DP_MFN_864:             .word DP_MFN_864
-W_DP_MFN_800_DIT:         .word DP_MFN_800_DIT
-W_DP_OP_800:              .word DP_OP_800
-W_DP_MFD_800:             .word DP_MFD_800
-W_DP_MFN_800:             .word DP_MFN_800
-W_DP_OP_665:              .word DP_OP_665
-W_DP_MFD_665:             .word DP_MFD_665
-W_DP_MFN_665:             .word DP_MFN_665
-W_DP_OP_216:              .word DP_OP_216
-W_DP_MFD_216:             .word DP_MFD_216
-W_DP_MFN_216:             .word DP_MFN_216
+W_DP_OP_864:		.word DP_OP_864
+W_DP_MFD_864:		.word DP_MFD_864
+W_DP_MFN_864:		.word DP_MFN_864
+W_DP_MFN_800_DIT:	.word DP_MFN_800_DIT
+W_DP_OP_800:		.word DP_OP_800
+W_DP_MFD_800:		.word DP_MFD_800
+W_DP_MFN_800:		.word DP_MFN_800
+W_DP_OP_665:		.word DP_OP_665
+W_DP_MFD_665:		.word DP_MFD_665
+W_DP_MFN_665:		.word DP_MFN_665
+W_DP_OP_216:		.word DP_OP_216
+W_DP_MFD_216:		.word DP_MFD_216
+W_DP_MFN_216:		.word DP_MFN_216

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2 2/4] mx5: Optimize lowlevel_init code size
  2012-08-14 14:52   ` Otavio Salvador
@ 2012-08-14 15:19     ` Benoît Thébaudeau
  2012-09-30 12:47       ` Stefano Babic
  2012-09-30 12:49       ` Stefano Babic
  0 siblings, 2 replies; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-08-14 15:19 UTC (permalink / raw)
  To: u-boot

Optimize mx5 lowlevel_init.S code size:
 - Compute values at compile time rather than at runtime where possible.
 - Assign r4 to hold the zero value rather than setting registers to 0 again and
   again.
 - Associate a function to setup_pll rather than expanding its large macro code
   multiple times.
 - Allocate constant values in section only if used.

Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
---
Changes for v2:
 - Make patch description more detailed.

 .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |  112 +++++++++++---------
 1 file changed, 59 insertions(+), 53 deletions(-)

diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
index a40b84f..529e35b 100644
--- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
+++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
@@ -24,6 +24,8 @@
 #include <generated/asm-offsets.h>
 #include <linux/linkage.h>
 
+.section ".text.init", "x"
+
 /*
  * L2CC Cache setup/invalidation/disable
  */
@@ -34,15 +36,14 @@
 	mcr 15, 0, r0, c1, c0, 1
 
 	/* reconfigure L2 cache aux control reg */
-	mov r0, #0xC0			/* tag RAM */
-	add r0, r0, #0x4		/* data RAM */
-	orr r0, r0, #1 << 24		/* disable write allocate delay */
-	orr r0, r0, #1 << 23		/* disable write allocate combine */
-	orr r0, r0, #1 << 22		/* disable write allocate */
+	ldr r0, =0xC0 |			/* tag RAM */ \
+	         0x4 |			/* data RAM */ \
+	         1 << 24 |		/* disable write allocate delay */ \
+	         1 << 23 |		/* disable write allocate combine */ \
+	         1 << 22		/* disable write allocate */
 
 #if defined(CONFIG_MX51)
-	ldr r1, =0x0
-	ldr r3, [r1, #ROM_SI_REV]
+	ldr r3, [r4, #ROM_SI_REV]
 	cmp r3, #0x10
 
 	/* disable write combine for TO 2 and lower revs */
@@ -84,8 +85,7 @@
 	ldr r1, =0x00000203
 	str r1, [r0, #0x40]
 
-	ldr r1, =0x0
-	str r1, [r0, #0x44]
+	str r4, [r0, #0x44]
 
 	ldr r1, =0x00120125
 	str r1, [r0, #0x9C]
@@ -98,20 +98,29 @@
 
 .macro setup_pll pll, freq
 	ldr r0, =\pll
+	adr r2, W_DP_\freq
+	bl setup_pll_func
+.endm
+
+#define W_DP_OP		0
+#define W_DP_MFD	4
+#define W_DP_MFN	8
+
+setup_pll_func:
 	ldr r1, =0x00001232
 	str r1, [r0, #PLL_DP_CTL] /* Set DPLL ON (set UPEN bit): BRMO=1 */
 	mov r1, #0x2
 	str r1, [r0, #PLL_DP_CONFIG] /* Enable auto-restart AREN bit */
 
-	ldr r1, W_DP_OP_\freq
+	ldr r1, [r2, #W_DP_OP]
 	str r1, [r0, #PLL_DP_OP]
 	str r1, [r0, #PLL_DP_HFS_OP]
 
-	ldr r1,	W_DP_MFD_\freq
+	ldr r1, [r2, #W_DP_MFD]
 	str r1, [r0, #PLL_DP_MFD]
 	str r1, [r0, #PLL_DP_HFS_MFD]
 
-	ldr r1,  W_DP_MFN_\freq
+	ldr r1, [r2, #W_DP_MFN]
 	str r1, [r0, #PLL_DP_MFN]
 	str r1, [r0, #PLL_DP_HFS_MFN]
 
@@ -120,12 +129,13 @@
 1:	ldr r1, [r0, #PLL_DP_CTL]
 	ands r1, r1, #0x1
 	beq 1b
-.endm
+
+	/* r10 saved upper lr */
+	mov pc, lr
 
 .macro setup_pll_errata pll, freq
 	ldr r2, =\pll
-	mov r1, #0x0
-	str r1, [r2, #PLL_DP_CONFIG] /* Disable auto-restart AREN bit */
+	str r4, [r2, #PLL_DP_CONFIG] /* Disable auto-restart AREN bit */
 	ldr r1, =0x00001236
 	str r1, [r2, #PLL_DP_CTL]    /* Restart PLL with PLM=1 */
 1:	ldr r1, [r2, #PLL_DP_CTL]    /* Wait for lock */
@@ -158,10 +168,9 @@
 	/* Gate of clocks to the peripherals first */
 	ldr r1, =0x3FFFFFFF
 	str r1, [r0, #CLKCTL_CCGR0]
-	ldr r1, =0x0
-	str r1, [r0, #CLKCTL_CCGR1]
-	str r1, [r0, #CLKCTL_CCGR2]
-	str r1, [r0, #CLKCTL_CCGR3]
+	str r4, [r0, #CLKCTL_CCGR1]
+	str r4, [r0, #CLKCTL_CCGR2]
+	str r4, [r0, #CLKCTL_CCGR3]
 
 	ldr r1, =0x00030000
 	str r1, [r0, #CLKCTL_CCGR4]
@@ -184,11 +193,10 @@
 #else
 	ldr r1, =0x3FFFFFFF
 	str r1, [r0, #CLKCTL_CCGR0]
-	ldr r1, =0x0
-	str r1, [r0, #CLKCTL_CCGR1]
-	str r1, [r0, #CLKCTL_CCGR2]
-	str r1, [r0, #CLKCTL_CCGR3]
-	str r1, [r0, #CLKCTL_CCGR7]
+	str r4, [r0, #CLKCTL_CCGR1]
+	str r4, [r0, #CLKCTL_CCGR2]
+	str r4, [r0, #CLKCTL_CCGR3]
+	str r4, [r0, #CLKCTL_CCGR7]
 
 	ldr r1, =0x00030000
 	str r1, [r0, #CLKCTL_CCGR4]
@@ -214,8 +222,7 @@
 
 	/* Switch peripheral to PLL 3 */
 	ldr r0, =CCM_BASE_ADDR
-	ldr r1, =0x000010C0
-	orr r1,r1,#CONFIG_SYS_DDR_CLKSEL
+	ldr r1, =0x000010C0 | CONFIG_SYS_DDR_CLKSEL
 	str r1, [r0, #CLKCTL_CBCMR]
 	ldr r1, =0x13239145
 	str r1, [r0, #CLKCTL_CBCDR]
@@ -225,8 +232,7 @@
 	ldr r0, =CCM_BASE_ADDR
 	ldr r1, =0x19239145
 	str r1, [r0, #CLKCTL_CBCDR]
-	ldr r1, =0x000020C0
-	orr r1,r1,#CONFIG_SYS_DDR_CLKSEL
+	ldr r1, =0x000020C0 | CONFIG_SYS_DDR_CLKSEL
 	str r1, [r0, #CLKCTL_CBCMR]
 #endif
 	setup_pll PLL3_BASE_ADDR, 216
@@ -240,8 +246,7 @@
 
 #if defined(CONFIG_MX51)
 	/* Run 3.0@Full speed, for other TO's wait till we increase VDDGP */
-	ldr r1, =0x0
-	ldr r3, [r1, #ROM_SI_REV]
+	ldr r3, [r4, #ROM_SI_REV]
 	cmp r3, #0x10
 	movls r1, #0x1
 	movhi r1, #0
@@ -251,14 +256,12 @@
 	str r1, [r0, #CLKCTL_CACRR]
 
 	/* Switch ARM back to PLL 1 */
-	mov r1, #0
-	str r1, [r0, #CLKCTL_CCSR]
+	str r4, [r0, #CLKCTL_CCSR]
 
 #if defined(CONFIG_MX51)
 	/* setup the rest */
 	/* Use lp_apm (24MHz) source for perclk */
-	ldr r1, =0x000020C2
-	orr r1,r1,#CONFIG_SYS_DDR_CLKSEL
+	ldr r1, =0x000020C2 | CONFIG_SYS_DDR_CLKSEL
 	str r1, [r0, #CLKCTL_CBCMR]
 	/* ddr clock from PLL 1, all perclk dividers are 1 since using 24MHz */
 	ldr r1, =CONFIG_SYS_CLKTL_CBCDR
@@ -289,7 +292,6 @@
 	ldr r0, =CCM_BASE_ADDR
 	ldr r1, =0x00808145
 	orr r1, r1, #2 << 10
-	orr r1, r1, #0 << 16
 	orr r1, r1, #1 << 19
 	str r1, [r0, #CLKCTL_CBCDR]
 
@@ -310,8 +312,7 @@
 	cmp r1, #0x0
 	bne 1b
 
-	mov r1, #0x0
-	str r1, [r0, #CLKCTL_CCDR]
+	str r4, [r0, #CLKCTL_CCDR]
 
 	/* for cko - for ARM div by 8 */
 	mov r1, #0x000A0000
@@ -325,9 +326,10 @@
 	strh r1, [r0]
 .endm
 
-.section ".text.init", "x"
-
 ENTRY(lowlevel_init)
+	mov r10, lr
+	mov r4, #0	/* Fix R4 to 0 */
+
 #if defined(CONFIG_MX51)
 	ldr r0, =GPIO1_BASE_ADDR
 	ldr r1, [r0, #0x0]
@@ -346,21 +348,25 @@ ENTRY(lowlevel_init)
 
 	init_clock
 
-	/* r12 saved upper lr*/
-	mov pc,lr
+	mov pc, r10
 ENDPROC(lowlevel_init)
 
 /* Board level setting value */
-W_DP_OP_864:		.word DP_OP_864
-W_DP_MFD_864:		.word DP_MFD_864
-W_DP_MFN_864:		.word DP_MFN_864
+#if defined(CONFIG_MX51_PLL_ERRATA)
+W_DP_864:		.word DP_OP_864
+			.word DP_MFD_864
+			.word DP_MFN_864
 W_DP_MFN_800_DIT:	.word DP_MFN_800_DIT
-W_DP_OP_800:		.word DP_OP_800
-W_DP_MFD_800:		.word DP_MFD_800
-W_DP_MFN_800:		.word DP_MFN_800
-W_DP_OP_665:		.word DP_OP_665
-W_DP_MFD_665:		.word DP_MFD_665
-W_DP_MFN_665:		.word DP_MFN_665
-W_DP_OP_216:		.word DP_OP_216
-W_DP_MFD_216:		.word DP_MFD_216
-W_DP_MFN_216:		.word DP_MFN_216
+#else
+W_DP_800:		.word DP_OP_800
+			.word DP_MFD_800
+			.word DP_MFN_800
+#endif
+#if defined(CONFIG_MX51)
+W_DP_665:		.word DP_OP_665
+			.word DP_MFD_665
+			.word DP_MFN_665
+#endif
+W_DP_216:		.word DP_OP_216
+			.word DP_MFD_216
+			.word DP_MFN_216

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2 3/4] mx5: Optimize lowlevel_init for TO 3
  2012-08-14 14:56   ` Otavio Salvador
@ 2012-08-14 15:19     ` Benoît Thébaudeau
  2012-08-20  8:20       ` Stefano Babic
  0 siblings, 1 reply; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-08-14 15:19 UTC (permalink / raw)
  To: u-boot

The mx5 lowlevel_init.S contains code that detects the silicon revision at
runtime, and that behaves differently if a silicon revision older than TO 3 is
detected. This code is useless for recently designed boards that may not be
fitted with older silicon revisions. Hence, this patch adds an option to
optimize away this revision-specific code from lowlevel_init.S.

Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
---
Changes for v2:
 - Make patch description more detailed.

 .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |    4 ++--
 .../doc/README.imx5                                |    7 ++++++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
index 529e35b..d0f75fa 100644
--- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
+++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
@@ -42,7 +42,7 @@
 	         1 << 23 |		/* disable write allocate combine */ \
 	         1 << 22		/* disable write allocate */
 
-#if defined(CONFIG_MX51)
+#if defined(CONFIG_MX51) && !defined(CONFIG_MX51_TO_3)
 	ldr r3, [r4, #ROM_SI_REV]
 	cmp r3, #0x10
 
@@ -244,7 +244,7 @@ setup_pll_func:
 
 	ldr r0, =CCM_BASE_ADDR
 
-#if defined(CONFIG_MX51)
+#if defined(CONFIG_MX51) && !defined(CONFIG_MX51_TO_3)
 	/* Run 3.0 at Full speed, for other TO's wait till we increase VDDGP */
 	ldr r3, [r4, #ROM_SI_REV]
 	cmp r3, #0x10
diff --git u-boot-4d3c95f.orig/doc/README.imx5 u-boot-4d3c95f/doc/README.imx5
index f7eab7d..938d3da 100644
--- u-boot-4d3c95f.orig/doc/README.imx5
+++ u-boot-4d3c95f/doc/README.imx5
@@ -6,7 +6,12 @@ i.MX5x SoCs.
 1. CONFIGURATION OPTIONS/SETTINGS
 ---------------------------------
 
-1.1 CONFIG_MX51_PLL_ERRATA: Workaround for i.MX51 PLL errata.
+1.1 CONFIG_MX51_TO_3: i.MX51 silicon revision 3 or higher.
+    This option can be enabled for these i.MX51 silicon revisions to optimize
+    away some specific behavior triggered by the detection of older silicon
+    revisions at runtime.
+
+1.2 CONFIG_MX51_PLL_ERRATA: Workaround for i.MX51 PLL errata.
     This option should be enabled by all boards using the i.MX51 silicon
     version up until (including) 3.0 running@800MHz.
     The PLL's in the i.MX51 processor can go out of lock due to a metastable

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH 4/4] mx5: Mark lowlevel_init board-specific code
  2012-08-14 14:44 ` [U-Boot] [PATCH 4/4] mx5: Mark lowlevel_init board-specific code Benoît Thébaudeau
@ 2012-08-15 14:34   ` Benoît Thébaudeau
  2012-11-05 20:07   ` [U-Boot] [PATCH v2] " Benoît Thébaudeau
  1 sibling, 0 replies; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-08-15 14:34 UTC (permalink / raw)
  To: u-boot

> The mx5 lowlevel_init.S contains board-specific code based on the
> reference
> design. Let's keep it since it avoids creating new lowlevel_init
> files and it
> may be used by many boards. But add a config to make it optional in
> order not to
> cause issues on boards not following this part of the reference
> design.
> 
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>

Adding missing board maintainers to Cc.

> ---
>  .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |    2 +-
>  .../doc/README.imx5                                |    5 +++++
>  .../include/configs/efikamx.h                      |    1 +
>  .../include/configs/mx51evk.h                      |    1 +
>  .../include/configs/vision2.h                      |    1 +
>  5 files changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> index d0f75fa..b25b3a7 100644
> --- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> +++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> @@ -330,7 +330,7 @@ ENTRY(lowlevel_init)
>  	mov r10, lr
>  	mov r4, #0	/* Fix R4 to 0 */
>  
> -#if defined(CONFIG_MX51)
> +#if defined(CONFIG_SYS_MAIN_PWR_ON)
>  	ldr r0, =GPIO1_BASE_ADDR
>  	ldr r1, [r0, #0x0]
>  	orr r1, r1, #1 << 23
> diff --git u-boot-4d3c95f.orig/doc/README.imx5
> u-boot-4d3c95f/doc/README.imx5
> index 938d3da..85d476f 100644
> --- u-boot-4d3c95f.orig/doc/README.imx5
> +++ u-boot-4d3c95f/doc/README.imx5
> @@ -20,3 +20,8 @@ i.MX5x SoCs.
>      mode), which causes the effect of this failure to be much lower
>      (in terms
>      of frequency deviation), avoiding system failure, or at least
>      decreasing
>      the likelihood of system failure.
> +
> +1.3 CONFIG_SYS_MAIN_PWR_ON: Trigger MAIN_PWR_ON upon startup.
> +    This option should be enabled for boards having a SYS_ON_OFF_CTL
> signal
> +    connected to GPIO1[23] and triggering the MAIN_PWR_ON signal
> like in the
> +    reference designs.
> diff --git u-boot-4d3c95f.orig/include/configs/efikamx.h
> u-boot-4d3c95f/include/configs/efikamx.h
> index 143b0f0..792b51b 100644
> --- u-boot-4d3c95f.orig/include/configs/efikamx.h
> +++ u-boot-4d3c95f/include/configs/efikamx.h
> @@ -270,5 +270,6 @@
>  
>  #define CONFIG_SYS_DDR_CLKSEL		0
>  #define CONFIG_SYS_CLKTL_CBCDR		0x59E35145
> +#define CONFIG_SYS_MAIN_PWR_ON
>  
>  #endif
> diff --git u-boot-4d3c95f.orig/include/configs/mx51evk.h
> u-boot-4d3c95f/include/configs/mx51evk.h
> index e975f54..6867f7b 100644
> --- u-boot-4d3c95f.orig/include/configs/mx51evk.h
> +++ u-boot-4d3c95f/include/configs/mx51evk.h
> @@ -242,6 +242,7 @@
>  
>  #define CONFIG_SYS_DDR_CLKSEL	0
>  #define CONFIG_SYS_CLKTL_CBCDR	0x59E35100
> +#define CONFIG_SYS_MAIN_PWR_ON
>  
>  /*-----------------------------------------------------------------------
>   * FLASH and environment organization
> diff --git u-boot-4d3c95f.orig/include/configs/vision2.h
> u-boot-4d3c95f/include/configs/vision2.h
> index ed004a6..3ce4906 100644
> --- u-boot-4d3c95f.orig/include/configs/vision2.h
> +++ u-boot-4d3c95f/include/configs/vision2.h
> @@ -203,6 +203,7 @@
>  /* 166 MHz DDR RAM */
>  #define CONFIG_SYS_DDR_CLKSEL		0
>  #define CONFIG_SYS_CLKTL_CBCDR		0x19239100
> +#define CONFIG_SYS_MAIN_PWR_ON
>  
>  #define CONFIG_SYS_NO_FLASH
>  
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2 1/4] mx5: cosmetic: Clean up lowlevel_init
  2012-08-14 15:18   ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
@ 2012-08-17 11:41     ` Stefano Babic
  2012-08-20  7:56     ` Stefano Babic
  1 sibling, 0 replies; 22+ messages in thread
From: Stefano Babic @ 2012-08-17 11:41 UTC (permalink / raw)
  To: u-boot

On 14/08/2012 17:18, Beno?t Th?baudeau wrote:
> Coding style cleanup:
>  - Remove useless parentheses.
>  - Use tabs for indentations and alignments. 
> 
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
> Changes for v2:
>  - Make patch description more detailed.
> 
>  .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |   46 ++++++++++----------
>  1 file changed, 23 insertions(+), 23 deletions(-)
> 
> diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> index 683a7b5..a40b84f 100644
> --- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> +++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> @@ -36,9 +36,9 @@
>  	/* reconfigure L2 cache aux control reg */
>  	mov r0, #0xC0			/* tag RAM */
>  	add r0, r0, #0x4		/* data RAM */
> -	orr r0, r0, #(1 << 24)		/* disable write allocate delay */
> -	orr r0, r0, #(1 << 23)		/* disable write allocate combine */
> -	orr r0, r0, #(1 << 22)		/* disable write allocate */
> +	orr r0, r0, #1 << 24		/* disable write allocate delay */
> +	orr r0, r0, #1 << 23		/* disable write allocate combine */
> +	orr r0, r0, #1 << 22		/* disable write allocate */
>  
>  #if defined(CONFIG_MX51)
>  	ldr r1, =0x0
> @@ -46,7 +46,7 @@
>  	cmp r3, #0x10
>  
>  	/* disable write combine for TO 2 and lower revs */
> -	orrls r0, r0, #(1 << 25)
> +	orrls r0, r0, #1 << 25
>  #endif
>  
>  	mcr 15, 1, r0, c9, c0, 2
> @@ -247,9 +247,9 @@
>  	movhi r1, #0
>  #else
>  	mov r1, #0
> -
>  #endif
>  	str r1, [r0, #CLKCTL_CACRR]
> +
>  	/* Switch ARM back to PLL 1 */
>  	mov r1, #0
>  	str r1, [r0, #CLKCTL_CCSR]
> @@ -288,9 +288,9 @@
>  	/* Switch peripheral to PLL2 */
>  	ldr r0, =CCM_BASE_ADDR
>  	ldr r1, =0x00808145
> -	orr r1, r1, #(2 << 10)
> -	orr r1, r1, #(0 << 16)
> -	orr r1, r1, #(1 << 19)
> +	orr r1, r1, #2 << 10
> +	orr r1, r1, #0 << 16
> +	orr r1, r1, #1 << 19
>  	str r1, [r0, #CLKCTL_CBCDR]
>  
>  	ldr r1, =0x00016154
> @@ -331,10 +331,10 @@ ENTRY(lowlevel_init)
>  #if defined(CONFIG_MX51)
>  	ldr r0, =GPIO1_BASE_ADDR
>  	ldr r1, [r0, #0x0]
> -	orr r1, r1, #(1 << 23)
> +	orr r1, r1, #1 << 23
>  	str r1, [r0, #0x0]
>  	ldr r1, [r0, #0x4]
> -	orr r1, r1, #(1 << 23)
> +	orr r1, r1, #1 << 23
>  	str r1, [r0, #0x4]
>  #endif
>  
> @@ -351,16 +351,16 @@ ENTRY(lowlevel_init)
>  ENDPROC(lowlevel_init)
>  
>  /* Board level setting value */
> -W_DP_OP_864:              .word DP_OP_864
> -W_DP_MFD_864:             .word DP_MFD_864
> -W_DP_MFN_864:             .word DP_MFN_864
> -W_DP_MFN_800_DIT:         .word DP_MFN_800_DIT
> -W_DP_OP_800:              .word DP_OP_800
> -W_DP_MFD_800:             .word DP_MFD_800
> -W_DP_MFN_800:             .word DP_MFN_800
> -W_DP_OP_665:              .word DP_OP_665
> -W_DP_MFD_665:             .word DP_MFD_665
> -W_DP_MFN_665:             .word DP_MFN_665
> -W_DP_OP_216:              .word DP_OP_216
> -W_DP_MFD_216:             .word DP_MFD_216
> -W_DP_MFN_216:             .word DP_MFN_216
> +W_DP_OP_864:		.word DP_OP_864
> +W_DP_MFD_864:		.word DP_MFD_864
> +W_DP_MFN_864:		.word DP_MFN_864
> +W_DP_MFN_800_DIT:	.word DP_MFN_800_DIT
> +W_DP_OP_800:		.word DP_OP_800
> +W_DP_MFD_800:		.word DP_MFD_800
> +W_DP_MFN_800:		.word DP_MFN_800
> +W_DP_OP_665:		.word DP_OP_665
> +W_DP_MFD_665:		.word DP_MFD_665
> +W_DP_MFN_665:		.word DP_MFN_665
> +W_DP_OP_216:		.word DP_OP_216
> +W_DP_MFD_216:		.word DP_MFD_216
> +W_DP_MFN_216:		.word DP_MFN_216
> 

Acked-by: Stefano Babic <sbabic@denx.de>

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
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
=====================================================================

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2 1/4] mx5: cosmetic: Clean up lowlevel_init
  2012-08-14 15:18   ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
  2012-08-17 11:41     ` Stefano Babic
@ 2012-08-20  7:56     ` Stefano Babic
  1 sibling, 0 replies; 22+ messages in thread
From: Stefano Babic @ 2012-08-20  7:56 UTC (permalink / raw)
  To: u-boot

On 14/08/2012 17:18, Beno?t Th?baudeau wrote:
> Coding style cleanup:
>  - Remove useless parentheses.
>  - Use tabs for indentations and alignments. 
> 
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
> Changes for v2:
>  - Make patch description more detailed.
> 
>  .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |   46 ++++++++++----------
>  1 file changed, 23 insertions(+), 23 deletions(-)
> 
> diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> index 683a7b5..a40b84f 100644
> --- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> +++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> @@ -36,9 +36,9 @@
>  	/* reconfigure L2 cache aux control reg */
>  	mov r0, #0xC0			/* tag RAM */
>  	add r0, r0, #0x4		/* data RAM */
> -	orr r0, r0, #(1 << 24)		/* disable write allocate delay */
> -	orr r0, r0, #(1 << 23)		/* disable write allocate combine */
> -	orr r0, r0, #(1 << 22)		/* disable write allocate */
> +	orr r0, r0, #1 << 24		/* disable write allocate delay */
> +	orr r0, r0, #1 << 23		/* disable write allocate combine */
> +	orr r0, r0, #1 << 22		/* disable write allocate */
>  
>  #if defined(CONFIG_MX51)
>  	ldr r1, =0x0
> @@ -46,7 +46,7 @@
>  	cmp r3, #0x10
>  
>  	/* disable write combine for TO 2 and lower revs */
> -	orrls r0, r0, #(1 << 25)
> +	orrls r0, r0, #1 << 25
>  #endif
>  
>  	mcr 15, 1, r0, c9, c0, 2
> @@ -247,9 +247,9 @@
>  	movhi r1, #0
>  #else
>  	mov r1, #0
> -
>  #endif
>  	str r1, [r0, #CLKCTL_CACRR]
> +
>  	/* Switch ARM back to PLL 1 */
>  	mov r1, #0
>  	str r1, [r0, #CLKCTL_CCSR]
> @@ -288,9 +288,9 @@
>  	/* Switch peripheral to PLL2 */
>  	ldr r0, =CCM_BASE_ADDR
>  	ldr r1, =0x00808145
> -	orr r1, r1, #(2 << 10)
> -	orr r1, r1, #(0 << 16)
> -	orr r1, r1, #(1 << 19)
> +	orr r1, r1, #2 << 10
> +	orr r1, r1, #0 << 16
> +	orr r1, r1, #1 << 19
>  	str r1, [r0, #CLKCTL_CBCDR]
>  
>  	ldr r1, =0x00016154
> @@ -331,10 +331,10 @@ ENTRY(lowlevel_init)
>  #if defined(CONFIG_MX51)
>  	ldr r0, =GPIO1_BASE_ADDR
>  	ldr r1, [r0, #0x0]
> -	orr r1, r1, #(1 << 23)
> +	orr r1, r1, #1 << 23
>  	str r1, [r0, #0x0]
>  	ldr r1, [r0, #0x4]
> -	orr r1, r1, #(1 << 23)
> +	orr r1, r1, #1 << 23
>  	str r1, [r0, #0x4]
>  #endif
>  
> @@ -351,16 +351,16 @@ ENTRY(lowlevel_init)
>  ENDPROC(lowlevel_init)
>  
>  /* Board level setting value */
> -W_DP_OP_864:              .word DP_OP_864
> -W_DP_MFD_864:             .word DP_MFD_864
> -W_DP_MFN_864:             .word DP_MFN_864
> -W_DP_MFN_800_DIT:         .word DP_MFN_800_DIT
> -W_DP_OP_800:              .word DP_OP_800
> -W_DP_MFD_800:             .word DP_MFD_800
> -W_DP_MFN_800:             .word DP_MFN_800
> -W_DP_OP_665:              .word DP_OP_665
> -W_DP_MFD_665:             .word DP_MFD_665
> -W_DP_MFN_665:             .word DP_MFN_665
> -W_DP_OP_216:              .word DP_OP_216
> -W_DP_MFD_216:             .word DP_MFD_216
> -W_DP_MFN_216:             .word DP_MFN_216
> +W_DP_OP_864:		.word DP_OP_864
> +W_DP_MFD_864:		.word DP_MFD_864
> +W_DP_MFN_864:		.word DP_MFN_864
> +W_DP_MFN_800_DIT:	.word DP_MFN_800_DIT
> +W_DP_OP_800:		.word DP_OP_800
> +W_DP_MFD_800:		.word DP_MFD_800
> +W_DP_MFN_800:		.word DP_MFN_800
> +W_DP_OP_665:		.word DP_OP_665
> +W_DP_MFD_665:		.word DP_MFD_665
> +W_DP_MFN_665:		.word DP_MFN_665
> +W_DP_OP_216:		.word DP_OP_216
> +W_DP_MFD_216:		.word DP_MFD_216
> +W_DP_MFN_216:		.word DP_MFN_216
> 

Applied to u-boot-imx, thanks.

Best regards,
Stefano Babic
-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
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
=====================================================================

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2 3/4] mx5: Optimize lowlevel_init for TO 3
  2012-08-14 15:19     ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
@ 2012-08-20  8:20       ` Stefano Babic
  2012-08-20 10:12         ` Benoît Thébaudeau
  0 siblings, 1 reply; 22+ messages in thread
From: Stefano Babic @ 2012-08-20  8:20 UTC (permalink / raw)
  To: u-boot

On 14/08/2012 17:19, Beno?t Th?baudeau wrote:
> The mx5 lowlevel_init.S contains code that detects the silicon revision at
> runtime, and that behaves differently if a silicon revision older than TO 3 is
> detected. This code is useless for recently designed boards that may not be
> fitted with older silicon revisions. Hence, this patch adds an option to
> optimize away this revision-specific code from lowlevel_init.S.
> 
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---

Hi Beno?t,

> Changes for v2:
>  - Make patch description more detailed.
> 
>  .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |    4 ++--
>  .../doc/README.imx5                                |    7 ++++++-
>  2 files changed, 8 insertions(+), 3 deletions(-)
> 

The ROM revision is currently detected at run time - because this does
not fix an evident bug, your patch intends to reduce the footprint.

Then I chacked on a mx51evk, a board thet was shipped by Freescale with
TO 2 (and maybe TO 1 ?), and there are surely samples with TO2 or TO3 in
the world.

Without the poatch:

Configuring for mx51evk - Board: mx51evk, Options:
IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
   text	   data	    bss	    dec	    hex	filename
 258168	  15872	 268464	 542504	  84728	./u-boot

With the patch:

Configuring for mx51evk - Board: mx51evk, Options:
IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
   text	   data	    bss	    dec	    hex	filename
 258140	  15872	 268492	 542504	  84728	./u-boot

We win only 28 bytes - on the other side, we had a CONFIG_ that is not
so clear how to be used, mainly if a board as the mx51evk was shipped
with both versions.

I think the advantages are negligible here.

Best regards,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
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
=====================================================================

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2 3/4] mx5: Optimize lowlevel_init for TO 3
  2012-08-20  8:20       ` Stefano Babic
@ 2012-08-20 10:12         ` Benoît Thébaudeau
  0 siblings, 0 replies; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-08-20 10:12 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

> On 14/08/2012 17:19, Beno?t Th?baudeau wrote:
> > The mx5 lowlevel_init.S contains code that detects the silicon
> > revision at
> > runtime, and that behaves differently if a silicon revision older
> > than TO 3 is
> > detected. This code is useless for recently designed boards that
> > may not be
> > fitted with older silicon revisions. Hence, this patch adds an
> > option to
> > optimize away this revision-specific code from lowlevel_init.S.
> > 
> > Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> > Cc: Stefano Babic <sbabic@denx.de>
> > ---
> 
> Hi Beno?t,
> 
> > Changes for v2:
> >  - Make patch description more detailed.
> > 
> >  .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |    4 ++--
> >  .../doc/README.imx5                                |    7 ++++++-
> >  2 files changed, 8 insertions(+), 3 deletions(-)
> > 
> 
> The ROM revision is currently detected at run time - because this
> does
> not fix an evident bug, your patch intends to reduce the footprint.
> 
> Then I chacked on a mx51evk, a board thet was shipped by Freescale
> with
> TO 2 (and maybe TO 1 ?), and there are surely samples with TO2 or TO3
> in
> the world.
> 
> Without the poatch:
> 
> Configuring for mx51evk - Board: mx51evk, Options:
> IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
>    text	   data	    bss	    dec	    hex	filename
>  258168	  15872	 268464	 542504	  84728	./u-boot
> 
> With the patch:
> 
> Configuring for mx51evk - Board: mx51evk, Options:
> IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
>    text	   data	    bss	    dec	    hex	filename
>  258140	  15872	 268492	 542504	  84728	./u-boot
> 
> We win only 28 bytes - on the other side, we had a CONFIG_ that is
> not
> so clear how to be used, mainly if a board as the mx51evk was shipped
> with both versions.

To make things easier, this config should be used only for boards always shipped
with the newer versions.

> I think the advantages are negligible here.

Indeed. I needed that for a specific case where any single byte was worth
saving. For upstream U-Boot, I let you decide if this is interesting enough or
not.

Best regards,
Beno?t

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2 2/4] mx5: Optimize lowlevel_init code size
  2012-08-14 15:19     ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
@ 2012-09-30 12:47       ` Stefano Babic
  2012-09-30 12:49       ` Stefano Babic
  1 sibling, 0 replies; 22+ messages in thread
From: Stefano Babic @ 2012-09-30 12:47 UTC (permalink / raw)
  To: u-boot

On 14/08/2012 17:19, Beno?t Th?baudeau wrote:
> Optimize mx5 lowlevel_init.S code size:
>  - Compute values at compile time rather than at runtime where possible.
>  - Assign r4 to hold the zero value rather than setting registers to 0 again and
>    again.
>  - Associate a function to setup_pll rather than expanding its large macro code
>    multiple times.
>  - Allocate constant values in section only if used.
> 
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
> Changes for v2:
>  - Make patch description more detailed.
> 
>  .../arch/arm/cpu/armv7/mx5/lowlevel_init.S         |  112 +++++++++++---------
>  1 file changed, 59 insertions(+), 53 deletions(-)
> 
> diff --git u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> index a40b84f..529e35b 100644
> --- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> +++ u-boot-4d3c95f/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> @@ -24,6 +24,8 @@
>  #include <generated/asm-offsets.h>
>  #include <linux/linkage.h>
>  
> +.section ".text.init", "x"
> +
>  /*
>   * L2CC Cache setup/invalidation/disable
>   */
> @@ -34,15 +36,14 @@
>  	mcr 15, 0, r0, c1, c0, 1
>  
>  	/* reconfigure L2 cache aux control reg */
> -	mov r0, #0xC0			/* tag RAM */
> -	add r0, r0, #0x4		/* data RAM */
> -	orr r0, r0, #1 << 24		/* disable write allocate delay */
> -	orr r0, r0, #1 << 23		/* disable write allocate combine */
> -	orr r0, r0, #1 << 22		/* disable write allocate */
> +	ldr r0, =0xC0 |			/* tag RAM */ \
> +	         0x4 |			/* data RAM */ \
> +	         1 << 24 |		/* disable write allocate delay */ \
> +	         1 << 23 |		/* disable write allocate combine */ \
> +	         1 << 22		/* disable write allocate */
>  
>  #if defined(CONFIG_MX51)
> -	ldr r1, =0x0
> -	ldr r3, [r1, #ROM_SI_REV]
> +	ldr r3, [r4, #ROM_SI_REV]
>  	cmp r3, #0x10
>  
>  	/* disable write combine for TO 2 and lower revs */
> @@ -84,8 +85,7 @@
>  	ldr r1, =0x00000203
>  	str r1, [r0, #0x40]
>  
> -	ldr r1, =0x0
> -	str r1, [r0, #0x44]
> +	str r4, [r0, #0x44]
>  
>  	ldr r1, =0x00120125
>  	str r1, [r0, #0x9C]
> @@ -98,20 +98,29 @@
>  
>  .macro setup_pll pll, freq
>  	ldr r0, =\pll
> +	adr r2, W_DP_\freq
> +	bl setup_pll_func
> +.endm
> +
> +#define W_DP_OP		0
> +#define W_DP_MFD	4
> +#define W_DP_MFN	8
> +
> +setup_pll_func:
>  	ldr r1, =0x00001232
>  	str r1, [r0, #PLL_DP_CTL] /* Set DPLL ON (set UPEN bit): BRMO=1 */
>  	mov r1, #0x2
>  	str r1, [r0, #PLL_DP_CONFIG] /* Enable auto-restart AREN bit */
>  
> -	ldr r1, W_DP_OP_\freq
> +	ldr r1, [r2, #W_DP_OP]
>  	str r1, [r0, #PLL_DP_OP]
>  	str r1, [r0, #PLL_DP_HFS_OP]
>  
> -	ldr r1,	W_DP_MFD_\freq
> +	ldr r1, [r2, #W_DP_MFD]
>  	str r1, [r0, #PLL_DP_MFD]
>  	str r1, [r0, #PLL_DP_HFS_MFD]
>  
> -	ldr r1,  W_DP_MFN_\freq
> +	ldr r1, [r2, #W_DP_MFN]
>  	str r1, [r0, #PLL_DP_MFN]
>  	str r1, [r0, #PLL_DP_HFS_MFN]
>  
> @@ -120,12 +129,13 @@
>  1:	ldr r1, [r0, #PLL_DP_CTL]
>  	ands r1, r1, #0x1
>  	beq 1b
> -.endm
> +
> +	/* r10 saved upper lr */
> +	mov pc, lr
>  
>  .macro setup_pll_errata pll, freq
>  	ldr r2, =\pll
> -	mov r1, #0x0
> -	str r1, [r2, #PLL_DP_CONFIG] /* Disable auto-restart AREN bit */
> +	str r4, [r2, #PLL_DP_CONFIG] /* Disable auto-restart AREN bit */
>  	ldr r1, =0x00001236
>  	str r1, [r2, #PLL_DP_CTL]    /* Restart PLL with PLM=1 */
>  1:	ldr r1, [r2, #PLL_DP_CTL]    /* Wait for lock */
> @@ -158,10 +168,9 @@
>  	/* Gate of clocks to the peripherals first */
>  	ldr r1, =0x3FFFFFFF
>  	str r1, [r0, #CLKCTL_CCGR0]
> -	ldr r1, =0x0
> -	str r1, [r0, #CLKCTL_CCGR1]
> -	str r1, [r0, #CLKCTL_CCGR2]
> -	str r1, [r0, #CLKCTL_CCGR3]
> +	str r4, [r0, #CLKCTL_CCGR1]
> +	str r4, [r0, #CLKCTL_CCGR2]
> +	str r4, [r0, #CLKCTL_CCGR3]
>  
>  	ldr r1, =0x00030000
>  	str r1, [r0, #CLKCTL_CCGR4]
> @@ -184,11 +193,10 @@
>  #else
>  	ldr r1, =0x3FFFFFFF
>  	str r1, [r0, #CLKCTL_CCGR0]
> -	ldr r1, =0x0
> -	str r1, [r0, #CLKCTL_CCGR1]
> -	str r1, [r0, #CLKCTL_CCGR2]
> -	str r1, [r0, #CLKCTL_CCGR3]
> -	str r1, [r0, #CLKCTL_CCGR7]
> +	str r4, [r0, #CLKCTL_CCGR1]
> +	str r4, [r0, #CLKCTL_CCGR2]
> +	str r4, [r0, #CLKCTL_CCGR3]
> +	str r4, [r0, #CLKCTL_CCGR7]
>  
>  	ldr r1, =0x00030000
>  	str r1, [r0, #CLKCTL_CCGR4]
> @@ -214,8 +222,7 @@
>  
>  	/* Switch peripheral to PLL 3 */
>  	ldr r0, =CCM_BASE_ADDR
> -	ldr r1, =0x000010C0
> -	orr r1,r1,#CONFIG_SYS_DDR_CLKSEL
> +	ldr r1, =0x000010C0 | CONFIG_SYS_DDR_CLKSEL
>  	str r1, [r0, #CLKCTL_CBCMR]
>  	ldr r1, =0x13239145
>  	str r1, [r0, #CLKCTL_CBCDR]
> @@ -225,8 +232,7 @@
>  	ldr r0, =CCM_BASE_ADDR
>  	ldr r1, =0x19239145
>  	str r1, [r0, #CLKCTL_CBCDR]
> -	ldr r1, =0x000020C0
> -	orr r1,r1,#CONFIG_SYS_DDR_CLKSEL
> +	ldr r1, =0x000020C0 | CONFIG_SYS_DDR_CLKSEL
>  	str r1, [r0, #CLKCTL_CBCMR]
>  #endif
>  	setup_pll PLL3_BASE_ADDR, 216
> @@ -240,8 +246,7 @@
>  
>  #if defined(CONFIG_MX51)
>  	/* Run 3.0 at Full speed, for other TO's wait till we increase VDDGP */
> -	ldr r1, =0x0
> -	ldr r3, [r1, #ROM_SI_REV]
> +	ldr r3, [r4, #ROM_SI_REV]
>  	cmp r3, #0x10
>  	movls r1, #0x1
>  	movhi r1, #0
> @@ -251,14 +256,12 @@
>  	str r1, [r0, #CLKCTL_CACRR]
>  
>  	/* Switch ARM back to PLL 1 */
> -	mov r1, #0
> -	str r1, [r0, #CLKCTL_CCSR]
> +	str r4, [r0, #CLKCTL_CCSR]
>  
>  #if defined(CONFIG_MX51)
>  	/* setup the rest */
>  	/* Use lp_apm (24MHz) source for perclk */
> -	ldr r1, =0x000020C2
> -	orr r1,r1,#CONFIG_SYS_DDR_CLKSEL
> +	ldr r1, =0x000020C2 | CONFIG_SYS_DDR_CLKSEL
>  	str r1, [r0, #CLKCTL_CBCMR]
>  	/* ddr clock from PLL 1, all perclk dividers are 1 since using 24MHz */
>  	ldr r1, =CONFIG_SYS_CLKTL_CBCDR
> @@ -289,7 +292,6 @@
>  	ldr r0, =CCM_BASE_ADDR
>  	ldr r1, =0x00808145
>  	orr r1, r1, #2 << 10
> -	orr r1, r1, #0 << 16
>  	orr r1, r1, #1 << 19
>  	str r1, [r0, #CLKCTL_CBCDR]
>  
> @@ -310,8 +312,7 @@
>  	cmp r1, #0x0
>  	bne 1b
>  
> -	mov r1, #0x0
> -	str r1, [r0, #CLKCTL_CCDR]
> +	str r4, [r0, #CLKCTL_CCDR]
>  
>  	/* for cko - for ARM div by 8 */
>  	mov r1, #0x000A0000
> @@ -325,9 +326,10 @@
>  	strh r1, [r0]
>  .endm
>  
> -.section ".text.init", "x"
> -
>  ENTRY(lowlevel_init)
> +	mov r10, lr
> +	mov r4, #0	/* Fix R4 to 0 */
> +
>  #if defined(CONFIG_MX51)
>  	ldr r0, =GPIO1_BASE_ADDR
>  	ldr r1, [r0, #0x0]
> @@ -346,21 +348,25 @@ ENTRY(lowlevel_init)
>  
>  	init_clock
>  
> -	/* r12 saved upper lr*/
> -	mov pc,lr
> +	mov pc, r10
>  ENDPROC(lowlevel_init)
>  
>  /* Board level setting value */
> -W_DP_OP_864:		.word DP_OP_864
> -W_DP_MFD_864:		.word DP_MFD_864
> -W_DP_MFN_864:		.word DP_MFN_864
> +#if defined(CONFIG_MX51_PLL_ERRATA)
> +W_DP_864:		.word DP_OP_864
> +			.word DP_MFD_864
> +			.word DP_MFN_864
>  W_DP_MFN_800_DIT:	.word DP_MFN_800_DIT
> -W_DP_OP_800:		.word DP_OP_800
> -W_DP_MFD_800:		.word DP_MFD_800
> -W_DP_MFN_800:		.word DP_MFN_800
> -W_DP_OP_665:		.word DP_OP_665
> -W_DP_MFD_665:		.word DP_MFD_665
> -W_DP_MFN_665:		.word DP_MFN_665
> -W_DP_OP_216:		.word DP_OP_216
> -W_DP_MFD_216:		.word DP_MFD_216
> -W_DP_MFN_216:		.word DP_MFN_216
> +#else
> +W_DP_800:		.word DP_OP_800
> +			.word DP_MFD_800
> +			.word DP_MFN_800
> +#endif
> +#if defined(CONFIG_MX51)
> +W_DP_665:		.word DP_OP_665
> +			.word DP_MFD_665
> +			.word DP_MFN_665
> +#endif
> +W_DP_216:		.word DP_OP_216
> +			.word DP_MFD_216
> +			.word DP_MFN_216
> 

I don't see any issue with this patch.

Tested also on mx53loco.

Tested-by: Stefano Babic <sbabic@denx.de>
Acked-by: Stefano Babic <sbabic@denx.de>

Regards,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
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
=====================================================================

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2 2/4] mx5: Optimize lowlevel_init code size
  2012-08-14 15:19     ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
  2012-09-30 12:47       ` Stefano Babic
@ 2012-09-30 12:49       ` Stefano Babic
  1 sibling, 0 replies; 22+ messages in thread
From: Stefano Babic @ 2012-09-30 12:49 UTC (permalink / raw)
  To: u-boot

On 14/08/2012 17:19, Beno?t Th?baudeau wrote:
> Optimize mx5 lowlevel_init.S code size:
>  - Compute values at compile time rather than at runtime where possible.
>  - Assign r4 to hold the zero value rather than setting registers to 0 again and
>    again.
>  - Associate a function to setup_pll rather than expanding its large macro code
>    multiple times.
>  - Allocate constant values in section only if used.
> 
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---

Applied to u-boot-imx, next branch, thanks.

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
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
=====================================================================

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2] mx5: Mark lowlevel_init board-specific code
  2012-08-14 14:44 ` [U-Boot] [PATCH 4/4] mx5: Mark lowlevel_init board-specific code Benoît Thébaudeau
  2012-08-15 14:34   ` Benoît Thébaudeau
@ 2012-11-05 20:07   ` Benoît Thébaudeau
  2012-11-07 14:29     ` Stefano Babic
  2012-11-19  7:57     ` Stefano Babic
  1 sibling, 2 replies; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-11-05 20:07 UTC (permalink / raw)
  To: u-boot

The mx5 lowlevel_init.S contains board-specific code based on the reference
design. Let's keep it since it avoids creating new lowlevel_init files and it
may be used by many boards. But add a config to make it optional in order not to
cause issues on boards not following this part of the reference design.

Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matt Sealey <matt@genesi-usa.com>
---
Note for mx51_efikamx and vision2 board maintainers: Check if
CONFIG_SYS_MAIN_PWR_ON should be defined or not for your hardware (I don't have
your schematics). Anyway, this patch does not change the behavior for these
boards, but it allows to fix a possible existing issue for these boards if
they differ from the mx51evk on this point.

This patch supersedes http://patchwork.ozlabs.org/patch/177296/ .
Changes for v2:
 - Rebase after other patch dropped in the original series (changes section
   number in doc/README.imx5).
 - Rebase after efikamx renamed to mx51_efikamx.

 .../arch/arm/cpu/armv7/mx5/lowlevel_init.S                        |    2 +-
 {u-boot-imx-bad05afe.orig => u-boot-imx-bad05afe}/doc/README.imx5 |    5 +++++
 .../include/configs/mx51_efikamx.h                                |    1 +
 .../include/configs/mx51evk.h                                     |    1 +
 .../include/configs/vision2.h                                     |    1 +
 5 files changed, 9 insertions(+), 1 deletion(-)

diff --git u-boot-imx-bad05afe.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-imx-bad05afe/arch/arm/cpu/armv7/mx5/lowlevel_init.S
index 29ec957..6d9396a 100644
--- u-boot-imx-bad05afe.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
+++ u-boot-imx-bad05afe/arch/arm/cpu/armv7/mx5/lowlevel_init.S
@@ -396,7 +396,7 @@ ENTRY(lowlevel_init)
 	mov r10, lr
 	mov r4, #0	/* Fix R4 to 0 */
 
-#if defined(CONFIG_MX51)
+#if defined(CONFIG_SYS_MAIN_PWR_ON)
 	ldr r0, =GPIO1_BASE_ADDR
 	ldr r1, [r0, #0x0]
 	orr r1, r1, #1 << 23
diff --git u-boot-imx-bad05afe.orig/doc/README.imx5 u-boot-imx-bad05afe/doc/README.imx5
index f7eab7d..e08941e 100644
--- u-boot-imx-bad05afe.orig/doc/README.imx5
+++ u-boot-imx-bad05afe/doc/README.imx5
@@ -15,3 +15,8 @@ i.MX5x SoCs.
     mode), which causes the effect of this failure to be much lower (in terms
     of frequency deviation), avoiding system failure, or@least decreasing
     the likelihood of system failure.
+
+1.2 CONFIG_SYS_MAIN_PWR_ON: Trigger MAIN_PWR_ON upon startup.
+    This option should be enabled for boards having a SYS_ON_OFF_CTL signal
+    connected to GPIO1[23] and triggering the MAIN_PWR_ON signal like in the
+    reference designs.
diff --git u-boot-imx-bad05afe.orig/include/configs/mx51_efikamx.h u-boot-imx-bad05afe/include/configs/mx51_efikamx.h
index ffe771f..a056566 100644
--- u-boot-imx-bad05afe.orig/include/configs/mx51_efikamx.h
+++ u-boot-imx-bad05afe/include/configs/mx51_efikamx.h
@@ -261,5 +261,6 @@
 
 #define CONFIG_SYS_DDR_CLKSEL		0
 #define CONFIG_SYS_CLKTL_CBCDR		0x59E35145
+#define CONFIG_SYS_MAIN_PWR_ON
 
 #endif
diff --git u-boot-imx-bad05afe.orig/include/configs/mx51evk.h u-boot-imx-bad05afe/include/configs/mx51evk.h
index 8cf59fe..122871f 100644
--- u-boot-imx-bad05afe.orig/include/configs/mx51evk.h
+++ u-boot-imx-bad05afe/include/configs/mx51evk.h
@@ -235,6 +235,7 @@
 
 #define CONFIG_SYS_DDR_CLKSEL	0
 #define CONFIG_SYS_CLKTL_CBCDR	0x59E35100
+#define CONFIG_SYS_MAIN_PWR_ON
 
 /*-----------------------------------------------------------------------
  * FLASH and environment organization
diff --git u-boot-imx-bad05afe.orig/include/configs/vision2.h u-boot-imx-bad05afe/include/configs/vision2.h
index 848df88..13c5702 100644
--- u-boot-imx-bad05afe.orig/include/configs/vision2.h
+++ u-boot-imx-bad05afe/include/configs/vision2.h
@@ -196,6 +196,7 @@
 /* 166 MHz DDR RAM */
 #define CONFIG_SYS_DDR_CLKSEL		0
 #define CONFIG_SYS_CLKTL_CBCDR		0x19239100
+#define CONFIG_SYS_MAIN_PWR_ON
 
 #define CONFIG_SYS_NO_FLASH
 

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2] mx5: Mark lowlevel_init board-specific code
  2012-11-05 20:07   ` [U-Boot] [PATCH v2] " Benoît Thébaudeau
@ 2012-11-07 14:29     ` Stefano Babic
  2012-11-16 22:42       ` Benoît Thébaudeau
  2012-11-19  7:57     ` Stefano Babic
  1 sibling, 1 reply; 22+ messages in thread
From: Stefano Babic @ 2012-11-07 14:29 UTC (permalink / raw)
  To: u-boot

On 05/11/2012 21:07, Beno?t Th?baudeau wrote:
> The mx5 lowlevel_init.S contains board-specific code based on the reference
> design. Let's keep it since it avoids creating new lowlevel_init files and it
> may be used by many boards. But add a config to make it optional in order not to
> cause issues on boards not following this part of the reference design.

Right, and it is correct that this initialisation is not done for all
boards.

Acked-by: Stefano Babic <sbabic@denx.de>

Best regards,
Stefano Babic

> 
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Matt Sealey <matt@genesi-usa.com>
> ---
> Note for mx51_efikamx and vision2 board maintainers: Check if
> CONFIG_SYS_MAIN_PWR_ON should be defined or not for your hardware (I don't have
> your schematics). Anyway, this patch does not change the behavior for these
> boards, but it allows to fix a possible existing issue for these boards if
> they differ from the mx51evk on this point.
> 
> This patch supersedes http://patchwork.ozlabs.org/patch/177296/ .
> Changes for v2:
>  - Rebase after other patch dropped in the original series (changes section
>    number in doc/README.imx5).
>  - Rebase after efikamx renamed to mx51_efikamx.
> 
>  .../arch/arm/cpu/armv7/mx5/lowlevel_init.S                        |    2 +-
>  {u-boot-imx-bad05afe.orig => u-boot-imx-bad05afe}/doc/README.imx5 |    5 +++++
>  .../include/configs/mx51_efikamx.h                                |    1 +
>  .../include/configs/mx51evk.h                                     |    1 +
>  .../include/configs/vision2.h                                     |    1 +
>  5 files changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git u-boot-imx-bad05afe.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S u-boot-imx-bad05afe/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> index 29ec957..6d9396a 100644
> --- u-boot-imx-bad05afe.orig/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> +++ u-boot-imx-bad05afe/arch/arm/cpu/armv7/mx5/lowlevel_init.S
> @@ -396,7 +396,7 @@ ENTRY(lowlevel_init)
>  	mov r10, lr
>  	mov r4, #0	/* Fix R4 to 0 */
>  
> -#if defined(CONFIG_MX51)
> +#if defined(CONFIG_SYS_MAIN_PWR_ON)
>  	ldr r0, =GPIO1_BASE_ADDR
>  	ldr r1, [r0, #0x0]
>  	orr r1, r1, #1 << 23
> diff --git u-boot-imx-bad05afe.orig/doc/README.imx5 u-boot-imx-bad05afe/doc/README.imx5
> index f7eab7d..e08941e 100644
> --- u-boot-imx-bad05afe.orig/doc/README.imx5
> +++ u-boot-imx-bad05afe/doc/README.imx5
> @@ -15,3 +15,8 @@ i.MX5x SoCs.
>      mode), which causes the effect of this failure to be much lower (in terms
>      of frequency deviation), avoiding system failure, or at least decreasing
>      the likelihood of system failure.
> +
> +1.2 CONFIG_SYS_MAIN_PWR_ON: Trigger MAIN_PWR_ON upon startup.
> +    This option should be enabled for boards having a SYS_ON_OFF_CTL signal
> +    connected to GPIO1[23] and triggering the MAIN_PWR_ON signal like in the
> +    reference designs.
> diff --git u-boot-imx-bad05afe.orig/include/configs/mx51_efikamx.h u-boot-imx-bad05afe/include/configs/mx51_efikamx.h
> index ffe771f..a056566 100644
> --- u-boot-imx-bad05afe.orig/include/configs/mx51_efikamx.h
> +++ u-boot-imx-bad05afe/include/configs/mx51_efikamx.h
> @@ -261,5 +261,6 @@
>  
>  #define CONFIG_SYS_DDR_CLKSEL		0
>  #define CONFIG_SYS_CLKTL_CBCDR		0x59E35145
> +#define CONFIG_SYS_MAIN_PWR_ON
>  
>  #endif
> diff --git u-boot-imx-bad05afe.orig/include/configs/mx51evk.h u-boot-imx-bad05afe/include/configs/mx51evk.h
> index 8cf59fe..122871f 100644
> --- u-boot-imx-bad05afe.orig/include/configs/mx51evk.h
> +++ u-boot-imx-bad05afe/include/configs/mx51evk.h
> @@ -235,6 +235,7 @@
>  
>  #define CONFIG_SYS_DDR_CLKSEL	0
>  #define CONFIG_SYS_CLKTL_CBCDR	0x59E35100
> +#define CONFIG_SYS_MAIN_PWR_ON
>  
>  /*-----------------------------------------------------------------------
>   * FLASH and environment organization
> diff --git u-boot-imx-bad05afe.orig/include/configs/vision2.h u-boot-imx-bad05afe/include/configs/vision2.h
> index 848df88..13c5702 100644
> --- u-boot-imx-bad05afe.orig/include/configs/vision2.h
> +++ u-boot-imx-bad05afe/include/configs/vision2.h
> @@ -196,6 +196,7 @@
>  /* 166 MHz DDR RAM */
>  #define CONFIG_SYS_DDR_CLKSEL		0
>  #define CONFIG_SYS_CLKTL_CBCDR		0x19239100
> +#define CONFIG_SYS_MAIN_PWR_ON
>  
>  #define CONFIG_SYS_NO_FLASH
>  
> 


-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
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
=====================================================================

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2] mx5: Mark lowlevel_init board-specific code
  2012-11-07 14:29     ` Stefano Babic
@ 2012-11-16 22:42       ` Benoît Thébaudeau
  2012-11-19  7:42         ` Stefano Babic
  0 siblings, 1 reply; 22+ messages in thread
From: Benoît Thébaudeau @ 2012-11-16 22:42 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

On Wednesday, November 7, 2012 3:29:14 PM, Stefano Babic wrote:
> On 05/11/2012 21:07, Beno?t Th?baudeau wrote:
> > The mx5 lowlevel_init.S contains board-specific code based on the
> > reference
> > design. Let's keep it since it avoids creating new lowlevel_init
> > files and it
> > may be used by many boards. But add a config to make it optional in
> > order not to
> > cause issues on boards not following this part of the reference
> > design.
> 
> Right, and it is correct that this initialisation is not done for all
> boards.
> 
> Acked-by: Stefano Babic <sbabic@denx.de>

You seem to have forgotten this one in your last couple of application rounds.

Best regards,
Beno?t

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2] mx5: Mark lowlevel_init board-specific code
  2012-11-16 22:42       ` Benoît Thébaudeau
@ 2012-11-19  7:42         ` Stefano Babic
  0 siblings, 0 replies; 22+ messages in thread
From: Stefano Babic @ 2012-11-19  7:42 UTC (permalink / raw)
  To: u-boot

On 16/11/2012 23:42, Beno?t Th?baudeau wrote:
> Hi Stefano,
> 
> On Wednesday, November 7, 2012 3:29:14 PM, Stefano Babic wrote:
>> On 05/11/2012 21:07, Beno?t Th?baudeau wrote:
>>> The mx5 lowlevel_init.S contains board-specific code based on the
>>> reference
>>> design. Let's keep it since it avoids creating new lowlevel_init
>>> files and it
>>> may be used by many boards. But add a config to make it optional in
>>> order not to
>>> cause issues on boards not following this part of the reference
>>> design.
>>
>> Right, and it is correct that this initialisation is not done for all
>> boards.
>>
>> Acked-by: Stefano Babic <sbabic@denx.de>
> 
> You seem to have forgotten this one in your last couple of application rounds.

That's right, I will push it - thanks.

Best regards,
Stefano


-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
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
=====================================================================

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [U-Boot] [PATCH v2] mx5: Mark lowlevel_init board-specific code
  2012-11-05 20:07   ` [U-Boot] [PATCH v2] " Benoît Thébaudeau
  2012-11-07 14:29     ` Stefano Babic
@ 2012-11-19  7:57     ` Stefano Babic
  1 sibling, 0 replies; 22+ messages in thread
From: Stefano Babic @ 2012-11-19  7:57 UTC (permalink / raw)
  To: u-boot

On 05/11/2012 21:07, Beno?t Th?baudeau wrote:
> The mx5 lowlevel_init.S contains board-specific code based on the reference
> design. Let's keep it since it avoids creating new lowlevel_init files and it
> may be used by many boards. But add a config to make it optional in order not to
> cause issues on boards not following this part of the reference design.
> 
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Matt Sealey <matt@genesi-usa.com>
> ---


Applied to u-boot-imx, thanks.

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
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
=====================================================================

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2012-11-19  7:57 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-14 14:43 [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init Benoît Thébaudeau
2012-08-14 14:44 ` [U-Boot] [PATCH 2/4] mx5: Optimize lowlevel_init code size Benoît Thébaudeau
2012-08-14 14:52   ` Otavio Salvador
2012-08-14 15:19     ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
2012-09-30 12:47       ` Stefano Babic
2012-09-30 12:49       ` Stefano Babic
2012-08-14 14:44 ` [U-Boot] [PATCH 3/4] mx5: Optimize lowlevel_init for TO 3 Benoît Thébaudeau
2012-08-14 14:56   ` Otavio Salvador
2012-08-14 15:19     ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
2012-08-20  8:20       ` Stefano Babic
2012-08-20 10:12         ` Benoît Thébaudeau
2012-08-14 14:44 ` [U-Boot] [PATCH 4/4] mx5: Mark lowlevel_init board-specific code Benoît Thébaudeau
2012-08-15 14:34   ` Benoît Thébaudeau
2012-11-05 20:07   ` [U-Boot] [PATCH v2] " Benoît Thébaudeau
2012-11-07 14:29     ` Stefano Babic
2012-11-16 22:42       ` Benoît Thébaudeau
2012-11-19  7:42         ` Stefano Babic
2012-11-19  7:57     ` Stefano Babic
2012-08-14 14:51 ` [U-Boot] [PATCH 1/4] mx5: cosmetic: Clean up lowlevel_init Otavio Salvador
2012-08-14 15:18   ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
2012-08-17 11:41     ` Stefano Babic
2012-08-20  7:56     ` Stefano Babic

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox