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

Subject: [PATCH-OMAP3] OMAP3: Fix typo and cp_delay
From: Dirk Behme dirk.behme@gmail.com
Fix typo and cp_delay. Requested by Wolfgang Denk.
Signed-off-by: Dirk Behme dirk.behme@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. */

Dear dirk.behme@googlemail.com,
In message 49172e21.0407560a.71cf.ffffba13@mx.google.com you wrote:
Subject: [PATCH-OMAP3] OMAP3: Fix typo and cp_delay
From: Dirk Behme dirk.behme@gmail.com
Fix typo and cp_delay. Requested by Wolfgang Denk.
See previous comments.
Signed-off-by: Dirk Behme dirk.behme@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.
Now this is actually some interesting information which probably should be part of the commit message - in the present form, it just gets lost.
Best regards,
Wolfgang Denk
participants (2)
-
dirk.behmeï¼ googlemail.com
-
Wolfgang Denk