[U-Boot] [PATCH-OMAP3] OMAP3: Fix typo and cp_delay

dirk.behme at googlemail.com dirk.behme at googlemail.com
Sun Nov 9 19:38:24 CET 2008


Subject: [PATCH-OMAP3] OMAP3: Fix typo and cp_delay

From: Dirk Behme <dirk.behme at gmail.com>

Fix typo and cp_delay. Requested by Wolfgang Denk.

Signed-off-by: Dirk Behme <dirk.behme at gmail.com>

---

Regarding cp_delay there was the comment:

-- cut --
>+static void cp_delay(void)
>+{
>+	volatile int i;
>+
>+	/* Many OMAP regs need at least 2 nops */
>+	for (i = 0; i < 100; i++) ;

There is not much reason for the compiler not to optimize this code away.
-- cut --

Please note that most of ARM code uses *this* cp_delay() implementation. If I understood correctly at IRC, Scott Wood made some tests and volatile prevents gcc from optimizing loop away.

 cpu/arm_cortexa8/cpu.c   |    5 ++---
 cpu/arm_cortexa8/start.S |    2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)

Index: u-boot-arm/cpu/arm_cortexa8/start.S
===================================================================
--- u-boot-arm.orig/cpu/arm_cortexa8/start.S
+++ u-boot-arm/cpu/arm_cortexa8/start.S
@@ -394,7 +394,7 @@ irq:
 	.align	5
 fiq:
 	get_fiq_stack
-	/* someone ought to write a more effiction fiq_save_user_regs */
+	/* someone ought to write a more effective fiq_save_user_regs */
 	irq_save_user_regs
 	bl	do_fiq
 	irq_restore_user_regs
Index: u-boot-arm/cpu/arm_cortexa8/cpu.c
===================================================================
--- u-boot-arm.orig/cpu/arm_cortexa8/cpu.c
+++ u-boot-arm/cpu/arm_cortexa8/cpu.c
@@ -68,10 +68,9 @@ static void write_p15_c1(unsigned long v
 
 static void cp_delay(void)
 {
-	volatile int i;
-
 	/* Many OMAP regs need at least 2 nops */
-	for (i = 0; i < 100; i++) ;
+	asm("nop");
+	asm("nop");
 }
 
 /* See also ARM Ref. Man. */


More information about the U-Boot mailing list