diff options
Diffstat (limited to 'arch/powerpc/cpu/mpc83xx/start.S')
-rw-r--r-- | arch/powerpc/cpu/mpc83xx/start.S | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/arch/powerpc/cpu/mpc83xx/start.S b/arch/powerpc/cpu/mpc83xx/start.S index c7d85a8..536604f 100644 --- a/arch/powerpc/cpu/mpc83xx/start.S +++ b/arch/powerpc/cpu/mpc83xx/start.S @@ -40,6 +40,7 @@ #include <asm/cache.h> #include <asm/mmu.h> +#include <asm/u-boot.h> #ifndef CONFIG_IDENT_STRING #define CONFIG_IDENT_STRING "MPC83XX" @@ -183,22 +184,9 @@ ppcDWload: .globl _start _start: /* time t 0 */ - li r21, BOOTFLAG_COLD /* Normal Power-On: Boot from FLASH*/ - nop - b boot_cold - - . = EXC_OFF_SYS_RESET + 0x10 - - .globl _start_warm -_start_warm: - li r21, BOOTFLAG_WARM /* Software reboot */ - b boot_warm - - -boot_cold: /* time t 3 */ lis r4, CONFIG_DEFAULT_IMMR@h nop -boot_warm: /* time t 5 */ + mfmsr r5 /* save msr contents */ /* 83xx manuals prescribe a specific sequence for updating IMMRBAR. */ @@ -302,11 +290,11 @@ in_flash: /* run low-level CPU init code (in Flash)*/ bl cpu_init_f - /* r3: BOOTFLAG */ - mr r3, r21 /* run 1st part of board init code (in Flash)*/ bl board_init_f + /* NOTREACHED - board_init_f() does not return */ + #ifndef CONFIG_NAND_SPL /* * Vector Table @@ -964,10 +952,12 @@ in_ram: beq 4f 3: lwzu r4,4(r3) lwzux r0,r4,r11 + cmpwi r0,0 add r0,r0,r11 stw r10,0(r3) + beq- 5f stw r0,0(r4) - bdnz 3b +5: bdnz 3b 4: #endif |