arm: bugfix: replace ble with blo in start.S files

Generalized misuse of ble within relocation and bss
initialization loops caused one iteration too many.
Instead of ble ('branch if lower or equal'), use
blo ('branch if lower').

While we're at it, fix all 'addreee' typos.

Signed-off-by: Albert Aribaud <albert.aribaud@free.fr>
master
Albert Aribaud 14 years ago committed by Wolfgang Denk
parent ddf71e4cff
commit da90d4ce38
  1. 8
      arch/arm/cpu/arm1136/start.S
  2. 10
      arch/arm/cpu/arm1176/start.S
  3. 10
      arch/arm/cpu/arm720t/start.S
  4. 10
      arch/arm/cpu/arm920t/start.S
  5. 10
      arch/arm/cpu/arm925t/start.S
  6. 10
      arch/arm/cpu/arm926ejs/start.S
  7. 8
      arch/arm/cpu/arm946es/start.S
  8. 10
      arch/arm/cpu/arm_intcm/start.S
  9. 8
      arch/arm/cpu/armv7/start.S
  10. 10
      arch/arm/cpu/ixp/start.S
  11. 11
      arch/arm/cpu/lh7a40x/start.S
  12. 8
      arch/arm/cpu/pxa/start.S
  13. 12
      arch/arm/cpu/s3c44b0/start.S
  14. 10
      arch/arm/cpu/sa1100/start.S

@ -235,8 +235,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -355,8 +355,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
/* Set up the stack */ /* Set up the stack */

@ -284,8 +284,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -500,8 +500,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
#ifdef CONFIG_ENABLE_MMU #ifdef CONFIG_ENABLE_MMU
@ -559,7 +559,7 @@ clbss_l:
str r2, [r0] /* clear loop... */ str r2, [r0] /* clear loop... */
add r0, r0, #4 add r0, r0, #4
cmp r0, r1 cmp r0, r1
ble clbss_l blo clbss_l
#ifndef CONFIG_NAND_SPL #ifndef CONFIG_NAND_SPL
ldr pc, _start_armboot ldr pc, _start_armboot

@ -201,8 +201,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -318,8 +318,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
@ -342,7 +342,7 @@ clear_bss:
clbss_l:str r2, [r0] /* clear loop... */ clbss_l:str r2, [r0] /* clear loop... */
add r0, r0, #4 add r0, r0, #4
cmp r0, r1 cmp r0, r1
ble clbss_l blo clbss_l
ldr pc, _start_armboot ldr pc, _start_armboot

@ -246,8 +246,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -406,8 +406,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
/* Set up the stack */ /* Set up the stack */
@ -429,7 +429,7 @@ clear_bss:
clbss_l:str r2, [r0] /* clear loop... */ clbss_l:str r2, [r0] /* clear loop... */
add r0, r0, #4 add r0, r0, #4
cmp r0, r1 cmp r0, r1
ble clbss_l blo clbss_l
ldr pc, _start_armboot ldr pc, _start_armboot

@ -238,8 +238,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -377,8 +377,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
/* Set up the stack */ /* Set up the stack */
@ -400,7 +400,7 @@ clear_bss:
clbss_l:str r2, [r0] /* clear loop... */ clbss_l:str r2, [r0] /* clear loop... */
add r0, r0, #4 add r0, r0, #4
cmp r0, r1 cmp r0, r1
ble clbss_l blo clbss_l
ldr pc, _start_armboot ldr pc, _start_armboot

@ -236,8 +236,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -341,8 +341,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
/* Set up the stack */ /* Set up the stack */
@ -368,7 +368,7 @@ clear_bss:
clbss_l:str r2, [r0] /* clear loop... */ clbss_l:str r2, [r0] /* clear loop... */
add r0, r0, #4 add r0, r0, #4
cmp r0, r1 cmp r0, r1
ble clbss_l blo clbss_l
bl coloured_LED_init bl coloured_LED_init
bl red_LED_on bl red_LED_on

@ -207,8 +207,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -309,8 +309,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
/* Set up the stack */ /* Set up the stack */
stack_setup: stack_setup:

@ -205,8 +205,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -305,8 +305,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
/* Set up the stack */ /* Set up the stack */
stack_setup: stack_setup:
@ -327,7 +327,7 @@ clear_bss:
clbss_l:str r2, [r0] /* clear loop... */ clbss_l:str r2, [r0] /* clear loop... */
add r0, r0, #4 add r0, r0, #4
cmp r0, r1 cmp r0, r1
ble clbss_l blo clbss_l
ldr pc, _start_armboot ldr pc, _start_armboot

@ -209,8 +209,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -324,8 +324,8 @@ relocate: @ relocate U-Boot to RAM
copy_loop: @ copy 32 bytes at a time copy_loop: @ copy 32 bytes at a time
ldmia r0!, {r3 - r10} @ copy from source address [r0] ldmia r0!, {r3 - r10} @ copy from source address [r0]
stmia r1!, {r3 - r10} @ copy to target address [r1] stmia r1!, {r3 - r10} @ copy to target address [r1]
cmp r0, r2 @ until source end addreee [r2] cmp r0, r2 @ until source end address [r2]
ble copy_loop blo copy_loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
/* Set up the stack */ /* Set up the stack */

@ -330,8 +330,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -547,8 +547,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
/* Set up the stack */ /* Set up the stack */
@ -570,7 +570,7 @@ clear_bss:
clbss_l:str r2, [r0] /* clear loop... */ clbss_l:str r2, [r0] /* clear loop... */
add r0, r0, #4 add r0, r0, #4
cmp r0, r1 cmp r0, r1
ble clbss_l blo clbss_l
ldr pc, _start_armboot ldr pc, _start_armboot

@ -219,8 +219,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -341,9 +341,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
blt copy_loop /* a 'ble' here actually copies */ blo copy_loop
/* four bytes of bss */
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
/* Set up the stack */ /* Set up the stack */
@ -367,7 +366,7 @@ clear_bss:
clbss_l:str r2, [r0] /* clear loop... */ clbss_l:str r2, [r0] /* clear loop... */
add r0, r0, #4 add r0, r0, #4
cmp r0, r1 cmp r0, r1
ble clbss_l blo clbss_l
ldr pc, _start_armboot ldr pc, _start_armboot

@ -204,8 +204,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -310,7 +310,7 @@ copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end address [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#endif /* !CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* !CONFIG_SKIP_RELOCATE_UBOOT */
/* Set up the stack */ /* Set up the stack */
@ -337,7 +337,7 @@ clear_bss:
clbss_l:str r2, [r0] /* clear loop... */ clbss_l:str r2, [r0] /* clear loop... */
add r0, r0, #4 add r0, r0, #4
cmp r0, r1 cmp r0, r1
ble clbss_l blo clbss_l
#endif #endif
ldr pc, _start_armboot ldr pc, _start_armboot

@ -191,8 +191,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -225,7 +225,7 @@ vector_copy_loop:
ldmia r0!, {r3-r10} ldmia r0!, {r3-r10}
stmia r1!, {r3-r10} stmia r1!, {r3-r10}
cmp r0, r2 cmp r0, r2
ble vector_copy_loop blo vector_copy_loop
#endif /* #ifndef CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* #ifndef CONFIG_SKIP_RELOCATE_UBOOT */
clear_bss: clear_bss:
@ -310,8 +310,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
/* /*
now copy to sram the interrupt vector now copy to sram the interrupt vector
@ -324,7 +324,7 @@ vector_copy_loop:
ldmia r0!, {r3-r10} ldmia r0!, {r3-r10}
stmia r1!, {r3-r10} stmia r1!, {r3-r10}
cmp r0, r2 cmp r0, r2
ble vector_copy_loop blo vector_copy_loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
/* Set up the stack */ /* Set up the stack */

@ -195,8 +195,8 @@ stack_setup:
copy_loop: copy_loop:
ldmia r0!, {r9-r10} /* copy from source address [r0] */ ldmia r0!, {r9-r10} /* copy from source address [r0] */
stmia r6!, {r9-r10} /* copy to target address [r1] */ stmia r6!, {r9-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#ifndef CONFIG_PRELOADER #ifndef CONFIG_PRELOADER
/* fix got entries */ /* fix got entries */
@ -293,8 +293,8 @@ relocate: /* relocate U-Boot to RAM */
copy_loop: copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */ ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */ stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */ cmp r0, r2 /* until source end address [r2] */
ble copy_loop blo copy_loop
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */ #endif /* CONFIG_SKIP_RELOCATE_UBOOT */
/* Set up the stack */ /* Set up the stack */
@ -316,7 +316,7 @@ clear_bss:
clbss_l:str r2, [r0] /* clear loop... */ clbss_l:str r2, [r0] /* clear loop... */
add r0, r0, #4 add r0, r0, #4
cmp r0, r1 cmp r0, r1
ble clbss_l blo clbss_l
ldr pc, _start_armboot ldr pc, _start_armboot

Loading…
Cancel
Save