diff options
Diffstat (limited to 'arch/m68k/cpu')
-rw-r--r-- | arch/m68k/cpu/mcf5227x/start.S | 153 | ||||
-rw-r--r-- | arch/m68k/cpu/mcf523x/start.S | 130 | ||||
-rw-r--r-- | arch/m68k/cpu/mcf52x2/start.S | 163 | ||||
-rw-r--r-- | arch/m68k/cpu/mcf530x/start.S | 73 | ||||
-rw-r--r-- | arch/m68k/cpu/mcf532x/start.S | 118 | ||||
-rw-r--r-- | arch/m68k/cpu/mcf5445x/start.S | 185 | ||||
-rw-r--r-- | arch/m68k/cpu/mcf547x_8x/start.S | 128 |
7 files changed, 449 insertions, 501 deletions
diff --git a/arch/m68k/cpu/mcf5227x/start.S b/arch/m68k/cpu/mcf5227x/start.S index 13c036f746e..b5d51bdee78 100644 --- a/arch/m68k/cpu/mcf5227x/start.S +++ b/arch/m68k/cpu/mcf5227x/start.S @@ -28,52 +28,37 @@ rte; #if defined(CONFIG_CF_SBF) -#define ASM_DRAMINIT (asm_dram_init - CONFIG_SYS_TEXT_BASE + CONFIG_SYS_INIT_RAM_ADDR) -#define ASM_SBF_IMG_HDR (asm_sbf_img_hdr - CONFIG_SYS_TEXT_BASE + CONFIG_SYS_INIT_RAM_ADDR) +#define ASM_DRAMINIT (asm_dram_init - CONFIG_SYS_TEXT_BASE + \ + CONFIG_SYS_INIT_RAM_ADDR) +#define ASM_SBF_IMG_HDR (asm_sbf_img_hdr - CONFIG_SYS_TEXT_BASE + \ + CONFIG_SYS_INIT_RAM_ADDR) #endif .text + /* - * Vector table. This is used for initial platform startup. - * These vectors are to catch any un-intended traps. + * Vector table. This is used for initial platform startup. + * These vectors are to catch any un-intended traps. */ _vectors: - #if defined(CONFIG_CF_SBF) -INITSP: .long 0 /* Initial SP */ -INITPC: .long ASM_DRAMINIT /* Initial PC */ +INITSP: .long 0 /* Initial SP */ +INITPC: .long ASM_DRAMINIT /* Initial PC */ #else -INITSP: .long 0 /* Initial SP */ -INITPC: .long _START /* Initial PC */ +INITSP: .long 0 /* Initial SP */ +INITPC: .long _START /* Initial PC */ #endif -vector02: .long _FAULT /* Access Error */ -vector03: .long _FAULT /* Address Error */ -vector04: .long _FAULT /* Illegal Instruction */ -vector05: .long _FAULT /* Reserved */ -vector06: .long _FAULT /* Reserved */ -vector07: .long _FAULT /* Reserved */ -vector08: .long _FAULT /* Privilege Violation */ -vector09: .long _FAULT /* Trace */ -vector0A: .long _FAULT /* Unimplemented A-Line */ -vector0B: .long _FAULT /* Unimplemented F-Line */ -vector0C: .long _FAULT /* Debug Interrupt */ -vector0D: .long _FAULT /* Reserved */ -vector0E: .long _FAULT /* Format Error */ -vector0F: .long _FAULT /* Unitialized Int. */ +vector02_0F: +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT /* Reserved */ vector10_17: .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT -vector18: .long _FAULT /* Spurious Interrupt */ -vector19: .long _FAULT /* Autovector Level 1 */ -vector1A: .long _FAULT /* Autovector Level 2 */ -vector1B: .long _FAULT /* Autovector Level 3 */ -vector1C: .long _FAULT /* Autovector Level 4 */ -vector1D: .long _FAULT /* Autovector Level 5 */ -vector1E: .long _FAULT /* Autovector Level 6 */ -vector1F: .long _FAULT /* Autovector Level 7 */ +vector18_1F: +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT #if !defined(CONFIG_CF_SBF) /* TRAP #0 - #15 */ @@ -120,15 +105,16 @@ vector192_255: #if defined(CONFIG_CF_SBF) /* Image header: chksum 4 bytes, len 4 bytes, img dest 4 bytes */ asm_sbf_img_hdr: - .long 0x00000000 /* checksum, not yet implemented */ - .long 0x00020000 /* image length */ + .long 0x00000000 /* checksum, not yet implemented */ + .long 0x00020000 /* image length */ .long CONFIG_SYS_TEXT_BASE /* image to be relocated at */ asm_dram_init: move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_CTRL), %d0 - movec %d0, %RAMBAR1 /* init Rambar */ + movec %d0, %RAMBAR1 /* init Rambar */ + move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET), %sp - clr.l %sp@- + clr.l %sp@- /* Must disable global address */ move.l #0xFC008000, %a1 @@ -142,7 +128,6 @@ asm_dram_init: * Dram Initialization * a1, a2, and d0 */ - /* mscr sdram */ move.l #0xFC0A4074, %a1 move.b #(CONFIG_SYS_SDRAM_DRV_STRENGTH), (%a1) nop @@ -336,15 +321,15 @@ asm_dspi_rd_status: move.b (%a3), %d1 rts -#endif /* CONFIG_CF_SBF */ +#endif /* CONFIG_CF_SBF */ - .text +.text . = 0x400 - .globl _start +.globl _start _start: nop nop - move.w #0x2700,%sr /* Mask off Interrupt */ + move.w #0x2700,%sr /* Mask off Interrupt */ /* Set vector base register at the beginning of the Flash */ #if defined(CONFIG_CF_SBF) @@ -366,17 +351,17 @@ _start: movec %d0, %ACR1 /* initialize general use internal ram */ - move.l #0, %d0 - move.l #(ICACHE_STATUS), %a1 /* icache */ - move.l #(DCACHE_STATUS), %a2 /* icache */ - move.l %d0, (%a1) - move.l %d0, (%a2) + move.l #0, %d0 + move.l #(ICACHE_STATUS), %a1 /* icache */ + move.l #(DCACHE_STATUS), %a2 /* icache */ + move.l %d0, (%a1) + move.l %d0, (%a2) /* put relocation table address to a5 */ - move.l #__got_start, %a5 + move.l #__got_start, %a5 /* setup stack initially on top of internal static ram */ - move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp + move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp /* * if configured, malloc_f arena will be reserved first, @@ -386,20 +371,23 @@ _start: bsr board_init_f_alloc_reserve /* update stack and frame-pointers */ - move.l %d0, %sp - move.l %sp, %fp + move.l %d0, %sp + move.l %sp, %fp /* initialize reserved area */ - move.l %d0, -(%sp) - bsr board_init_f_init_reserve + move.l %d0, -(%sp) + bsr board_init_f_init_reserve + + /* run low-level CPU init code (from flash) */ + bsr cpu_init_f + clr.l %sp@- - bsr cpu_init_f /* run low-level CPU init code (from flash) */ - clr.l %sp@- - bsr board_init_f /* run low-level board init code (from flash) */ + /* run low-level board init code (from flash) */ + bsr board_init_f /* board_init_f() does not return */ -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ /* * void relocate_code (addr_sp, gd, addr_moni) @@ -412,23 +400,23 @@ _start: * r5 = length in bytes * r6 = cachelinesize */ - .globl relocate_code +.globl relocate_code relocate_code: - link.w %a6,#0 - move.l 8(%a6), %sp /* set new stack pointer */ + link.w %a6,#0 + move.l 8(%a6), %sp /* set new stack pointer */ - move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ - move.l 16(%a6), %a0 /* Save copy of Destination Address */ + move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ + move.l 16(%a6), %a0 /* Save copy of Destination Address */ - move.l #CONFIG_SYS_MONITOR_BASE, %a1 - move.l #__init_end, %a2 - move.l %a0, %a3 + move.l #CONFIG_SYS_MONITOR_BASE, %a1 + move.l #__init_end, %a2 + move.l %a0, %a3 /* copy the code to RAM */ 1: - move.l (%a1)+, (%a3)+ - cmp.l %a1,%a2 - bgt.s 1b + move.l (%a1)+, (%a3)+ + cmp.l %a1,%a2 + bgt.s 1b /* * We are done. Do not return, instead branch to second part of board @@ -458,7 +446,7 @@ clear_bss: */ move.l %a0, %a1 add.l #(__got_start - CONFIG_SYS_MONITOR_BASE),%a1 - move.l %a1,%a5 /* * fix got pointer register a5 */ + move.l %a1,%a5 /* fix got pointer register a5 */ move.l %a0, %a2 add.l #(__got_end - CONFIG_SYS_MONITOR_BASE),%a2 @@ -472,39 +460,40 @@ clear_bss: bne 7b /* calculate relative jump to board_init_r in ram */ - move.l %a0, %a1 - add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 + move.l %a0, %a1 + add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 /* set parameters for board_init_r */ - move.l %a0,-(%sp) /* dest_addr */ - move.l %d0,-(%sp) /* gd */ + move.l %a0,-(%sp) /* dest_addr */ + move.l %d0,-(%sp) /* gd */ jsr (%a1) -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ + /* exception code */ - .globl _fault +.globl _fault _fault: - bra _fault - .globl _exc_handler + bra _fault +.globl _exc_handler _exc_handler: SAVE_ALL movel %sp,%sp@- - bsr exc_handler + bsr exc_handler addql #4,%sp RESTORE_ALL - .globl _int_handler +.globl _int_handler _int_handler: SAVE_ALL movel %sp,%sp@- - bsr int_handler + bsr int_handler addql #4,%sp RESTORE_ALL -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ - .globl version_string +.globl version_string version_string: - .ascii U_BOOT_VERSION_STRING, "\0" - .align 4 +.ascii U_BOOT_VERSION_STRING, "\0" +.align 4 diff --git a/arch/m68k/cpu/mcf523x/start.S b/arch/m68k/cpu/mcf523x/start.S index 3aa4dd61faa..c4f608230df 100644 --- a/arch/m68k/cpu/mcf523x/start.S +++ b/arch/m68k/cpu/mcf523x/start.S @@ -28,41 +28,25 @@ rte; .text + /* - * Vector table. This is used for initial platform startup. - * These vectors are to catch any un-intended traps. + * Vector table. This is used for initial platform startup. + * These vectors are to catch any un-intended traps. */ _vectors: +INITSP: .long 0x00000000 /* Initial SP */ +INITPC: .long _START /* Initial PC */ -INITSP: .long 0x00000000 /* Initial SP */ -INITPC: .long _START /* Initial PC */ -vector02: .long _FAULT /* Access Error */ -vector03: .long _FAULT /* Address Error */ -vector04: .long _FAULT /* Illegal Instruction */ -vector05: .long _FAULT /* Reserved */ -vector06: .long _FAULT /* Reserved */ -vector07: .long _FAULT /* Reserved */ -vector08: .long _FAULT /* Privilege Violation */ -vector09: .long _FAULT /* Trace */ -vector0A: .long _FAULT /* Unimplemented A-Line */ -vector0B: .long _FAULT /* Unimplemented F-Line */ -vector0C: .long _FAULT /* Debug Interrupt */ -vector0D: .long _FAULT /* Reserved */ -vector0E: .long _FAULT /* Format Error */ -vector0F: .long _FAULT /* Unitialized Int. */ +vector02_0F: +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT /* Reserved */ vector10_17: .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT -vector18: .long _FAULT /* Spurious Interrupt */ -vector19: .long _FAULT /* Autovector Level 1 */ -vector1A: .long _FAULT /* Autovector Level 2 */ -vector1B: .long _FAULT /* Autovector Level 3 */ -vector1C: .long _FAULT /* Autovector Level 4 */ -vector1D: .long _FAULT /* Autovector Level 5 */ -vector1E: .long _FAULT /* Autovector Level 6 */ -vector1F: .long _FAULT /* Autovector Level 7 */ +vector18_1F: +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT /* TRAP #0 - #15 */ vector20_2F: @@ -104,13 +88,13 @@ vector192_255: .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT - .text +.text - .globl _start +.globl _start _start: nop nop - move.w #0x2700,%sr /* Mask off Interrupt */ + move.w #0x2700,%sr /* Mask off Interrupt */ /* Set vector base register at the beginning of the Flash */ move.l #CONFIG_SYS_FLASH_BASE, %d0 @@ -120,22 +104,22 @@ _start: movec %d0, %RAMBAR1 /* invalidate and disable cache */ - move.l #CF_CACR_CINV, %d0 /* Invalidate cache cmd */ - movec %d0, %CACR /* Invalidate cache */ + move.l #CF_CACR_CINV, %d0 /* Invalidate cache cmd */ + movec %d0, %CACR /* Invalidate cache */ nop move.l #0, %d0 movec %d0, %ACR0 movec %d0, %ACR1 /* initialize general use internal ram */ - move.l #0, %d0 - move.l #(ICACHE_STATUS), %a1 /* icache */ - move.l #(DCACHE_STATUS), %a2 /* icache */ - move.l %d0, (%a1) - move.l %d0, (%a2) + move.l #0, %d0 + move.l #(ICACHE_STATUS), %a1 /* icache */ + move.l #(DCACHE_STATUS), %a2 /* icache */ + move.l %d0, (%a1) + move.l %d0, (%a2) /* put relocation table address to a5 */ - move.l #__got_start, %a5 + move.l #__got_start, %a5 /* setup stack initially on top of internal static ram */ move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp @@ -149,25 +133,26 @@ _start: jsr (%a1) /* update stack and frame-pointers */ - move.l %d0, %sp - move.l %sp, %fp + move.l %d0, %sp + move.l %sp, %fp /* initialize reserved area */ - move.l %d0, -(%sp) + move.l %d0, -(%sp) move.l #board_init_f_init_reserve, %a1 jsr (%a1) /* run low-level CPU init code (from flash) */ - move.l #cpu_init_f, %a1 - jsr (%a1) + move.l #cpu_init_f, %a1 + jsr (%a1) + /* run low-level board init code (from flash) */ - clr.l %sp@- - move.l #board_init_f, %a1 - jsr (%a1) + clr.l %sp@- + move.l #board_init_f, %a1 + jsr (%a1) /* board_init_f() does not return */ -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ /* * void relocate_code (addr_sp, gd, addr_moni) @@ -180,23 +165,23 @@ _start: * r5 = length in bytes * r6 = cachelinesize */ - .globl relocate_code +.globl relocate_code relocate_code: - link.w %a6,#0 - move.l 8(%a6), %sp /* set new stack pointer */ + link.w %a6,#0 + move.l 8(%a6), %sp /* set new stack pointer */ - move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ - move.l 16(%a6), %a0 /* Save copy of Destination Address */ + move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ + move.l 16(%a6), %a0 /* Save copy of Destination Address */ - move.l #CONFIG_SYS_MONITOR_BASE, %a1 - move.l #__init_end, %a2 - move.l %a0, %a3 + move.l #CONFIG_SYS_MONITOR_BASE, %a1 + move.l #__init_end, %a2 + move.l %a0, %a3 /* copy the code to RAM */ 1: - move.l (%a1)+, (%a3)+ - cmp.l %a1,%a2 - bgt.s 1b + move.l (%a1)+, (%a3)+ + cmp.l %a1,%a2 + bgt.s 1b /* * We are done. Do not return, instead branch to second part of board @@ -240,39 +225,40 @@ clear_bss: bne 7b /* calculate relative jump to board_init_r in ram */ - move.l %a0, %a1 - add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 + move.l %a0, %a1 + add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 /* set parameters for board_init_r */ - move.l %a0,-(%sp) /* dest_addr */ - move.l %d0,-(%sp) /* gd */ + move.l %a0,-(%sp) /* dest_addr */ + move.l %d0,-(%sp) /* gd */ jsr (%a1) -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ + /* exception code */ - .globl _fault +.globl _fault _fault: - bra _fault - .globl _exc_handler + bra _fault +.globl _exc_handler _exc_handler: SAVE_ALL movel %sp,%sp@- - bsr exc_handler + bsr exc_handler addql #4,%sp RESTORE_ALL - .globl _int_handler +.globl _int_handler _int_handler: SAVE_ALL movel %sp,%sp@- - bsr int_handler + bsr int_handler addql #4,%sp RESTORE_ALL -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ - .globl version_string +.globl version_string version_string: - .ascii U_BOOT_VERSION_STRING, "\0" - .align 4 +.ascii U_BOOT_VERSION_STRING, "\0" +.align 4 diff --git a/arch/m68k/cpu/mcf52x2/start.S b/arch/m68k/cpu/mcf52x2/start.S index a048884f6ce..9837c41894c 100644 --- a/arch/m68k/cpu/mcf52x2/start.S +++ b/arch/m68k/cpu/mcf52x2/start.S @@ -34,12 +34,12 @@ #if !defined(CONFIG_MONITOR_IS_IN_RAM) .text + /* - * Vector table. This is used for initial platform startup. - * These vectors are to catch any un-intended traps. + * Vector table. This is used for initial platform startup. + * These vectors are to catch any un-intended traps. */ _vectors: - .long 0x00000000 /* Flash offset is 0 until we setup CS0 */ #if defined(CONFIG_M5282) && (CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) .long _start - CONFIG_SYS_TEXT_BASE @@ -85,24 +85,24 @@ _vectors: #endif - .text - +.text #if defined(CONFIG_SYS_INT_FLASH_BASE) && \ (defined(CONFIG_M5282) || defined(CONFIG_M5281)) - #if (CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) - .long 0x55AA55AA,0xAA55AA55 /* CFM Backdoorkey */ - .long 0xFFFFFFFF /* all sectors protected */ - .long 0x00000000 /* supervisor/User restriction */ - .long 0x00000000 /* programm/data space restriction */ - .long 0x00000000 /* Flash security */ - #endif +#if (CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) +.long 0x55AA55AA,0xAA55AA55 /* CFM Backdoorkey */ +.long 0xFFFFFFFF /* all sectors protected */ +.long 0x00000000 /* supervisor/User restriction */ +.long 0x00000000 /* programm/data space restriction */ +.long 0x00000000 /* Flash security */ #endif - .globl _start +#endif + +.globl _start _start: nop nop - move.w #0x2700,%sr + move.w #0x2700,%sr #if defined(CONFIG_M5208) /* Initialize RAMBAR: locate SRAM and validate it */ @@ -111,22 +111,24 @@ _start: #endif #if defined(CONFIG_M5272) || defined(CONFIG_M5249) || defined(CONFIG_M5253) - move.l #(CONFIG_SYS_MBAR + 1), %d0 /* set MBAR address + valid flag */ + /* set MBAR address + valid flag */ + move.l #(CONFIG_SYS_MBAR + 1), %d0 move.c %d0, %MBAR /*** The 5249 has MBAR2 as well ***/ #ifdef CONFIG_SYS_MBAR2 - move.l #(CONFIG_SYS_MBAR2 + 1), %d0 /* Get MBAR2 address */ - movec %d0, #0xc0e /* Set MBAR2 */ + /* Get MBAR2 address */ + move.l #(CONFIG_SYS_MBAR2 + 1), %d0 + /* Set MBAR2 */ + movec %d0, #0xc0e #endif - move.l #(CONFIG_SYS_INIT_RAM_ADDR + 1), %d0 movec %d0, %RAMBAR0 #endif /* CONFIG_M5272 || CONFIG_M5249 || CONFIG_M5253 */ #if defined(CONFIG_M5282) || defined(CONFIG_M5271) - /* Initialize IPSBAR */ - move.l #(CONFIG_SYS_MBAR + 1), %d0 /* set IPSBAR address + valid flag */ + /* set MBAR address + valid flag */ + move.l #(CONFIG_SYS_MBAR + 1), %d0 move.l %d0, 0x40000000 /* Initialize RAMBAR1: locate SRAM and validate it */ @@ -135,22 +137,24 @@ _start: #if defined(CONFIG_M5282) #if (CONFIG_SYS_TEXT_BASE == CONFIG_SYS_INT_FLASH_BASE) - /* Setup code in SRAM to initialize FLASHBAR, if start from internal Flash */ - - move.l #(_flashbar_setup-CONFIG_SYS_INT_FLASH_BASE), %a0 - move.l #(_flashbar_setup_end-CONFIG_SYS_INT_FLASH_BASE), %a1 - move.l #(CONFIG_SYS_INIT_RAM_ADDR), %a2 + /* + * Setup code in SRAM to initialize FLASHBAR, + * if start from internal Flash + */ + move.l #(_flashbar_setup-CONFIG_SYS_INT_FLASH_BASE), %a0 + move.l #(_flashbar_setup_end-CONFIG_SYS_INT_FLASH_BASE), %a1 + move.l #(CONFIG_SYS_INIT_RAM_ADDR), %a2 _copy_flash: - move.l (%a0)+, (%a2)+ - cmp.l %a0, %a1 - bgt.s _copy_flash - jmp CONFIG_SYS_INIT_RAM_ADDR + move.l (%a0)+, (%a2)+ + cmp.l %a0, %a1 + bgt.s _copy_flash + jmp CONFIG_SYS_INIT_RAM_ADDR _flashbar_setup: /* Initialize FLASHBAR: locate internal Flash and validate it */ move.l #(CONFIG_SYS_INT_FLASH_BASE + CONFIG_SYS_INT_FLASH_ENABLE), %d0 movec %d0, %FLASHBAR - jmp _after_flashbar_copy.L /* Force jump to absolute address */ + jmp _after_flashbar_copy.L /* Force jump to absolute address */ _flashbar_setup_end: nop _after_flashbar_copy: @@ -162,7 +166,8 @@ _after_flashbar_copy: #endif #endif - /* if we come from a pre-loader we have no exception table and + /* + * if we come from a pre-loader we have no exception table and * therefore no VBR to set */ #if !defined(CONFIG_MONITOR_IS_IN_RAM) @@ -175,8 +180,8 @@ _after_flashbar_copy: #endif #ifdef CONFIG_M5275 - /* Initialize IPSBAR */ - move.l #(CONFIG_SYS_MBAR + 1), %d0 /* set IPSBAR address + valid flag */ + /* set MBAR address + valid flag */ + move.l #(CONFIG_SYS_MBAR + 1), %d0 move.l %d0, 0x40000000 /* movec %d0, %MBAR */ @@ -186,17 +191,17 @@ _after_flashbar_copy: #endif /* initialize general use internal ram */ - move.l #0, %d0 - move.l #(ICACHE_STATUS), %a1 /* icache */ - move.l #(DCACHE_STATUS), %a2 /* icache */ - move.l %d0, (%a1) - move.l %d0, (%a2) + move.l #0, %d0 + move.l #(ICACHE_STATUS), %a1 /* icache */ + move.l #(DCACHE_STATUS), %a2 /* icache */ + move.l %d0, (%a1) + move.l %d0, (%a2) /* put relocation table address to a5 */ - move.l #__got_start, %a5 + move.l #__got_start, %a5 /* setup stack initially on top of internal static ram */ - move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp + move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp /* * if configured, malloc_f arena will be reserved first, @@ -204,28 +209,29 @@ _after_flashbar_copy: */ move.l %sp, -(%sp) move.l #board_init_f_alloc_reserve, %a1 - jsr (%a1) + jsr (%a1) /* update stack and frame-pointers */ - move.l %d0, %sp - move.l %sp, %fp + move.l %d0, %sp + move.l %sp, %fp /* initialize reserved area */ - move.l %d0, -(%sp) + move.l %d0, -(%sp) move.l #board_init_f_init_reserve, %a1 - jsr (%a1) + jsr (%a1) /* run low-level CPU init code (from flash) */ - move.l #cpu_init_f, %a1 - jsr (%a1) + move.l #cpu_init_f, %a1 + jsr (%a1) + /* run low-level board init code (from flash) */ - clr.l %sp@- - move.l #board_init_f, %a1 - jsr (%a1) + clr.l %sp@- + move.l #board_init_f, %a1 + jsr (%a1) /* board_init_f() does not return */ -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ /* * void relocate_code (addr_sp, gd, addr_moni) @@ -238,22 +244,22 @@ _after_flashbar_copy: * r5 = length in bytes * r6 = cachelinesize */ - .globl relocate_code +.globl relocate_code relocate_code: - link.w %a6,#0 - move.l 8(%a6), %sp /* set new stack pointer */ + link.w %a6,#0 + move.l 8(%a6), %sp /* set new stack pointer */ - move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ - move.l 16(%a6), %a0 /* Save copy of Destination Address */ + move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ + move.l 16(%a6), %a0 /* Save copy of Destination Address */ - move.l #CONFIG_SYS_MONITOR_BASE, %a1 - move.l #__init_end, %a2 - move.l %a0, %a3 + move.l #CONFIG_SYS_MONITOR_BASE, %a1 + move.l #__init_end, %a2 + move.l %a0, %a3 /* copy the code to RAM */ 1: - move.l (%a1)+, (%a3)+ - cmp.l %a1,%a2 - bgt.s 1b + move.l (%a1)+, (%a3)+ + cmp.l %a1,%a2 + bgt.s 1b /* * We are done. Do not return, instead branch to second part of board @@ -283,7 +289,7 @@ clear_bss: */ move.l %a0, %a1 add.l #(__got_start - CONFIG_SYS_MONITOR_BASE),%a1 - move.l %a1,%a5 /* * fix got pointer register a5 */ + move.l %a1,%a5 /* fix got pointer register a5 */ move.l %a0, %a2 add.l #(__got_end - CONFIG_SYS_MONITOR_BASE),%a2 @@ -297,43 +303,44 @@ clear_bss: bne 7b /* calculate relative jump to board_init_r in ram */ - move.l %a0, %a1 - add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 + move.l %a0, %a1 + add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 /* set parameters for board_init_r */ - move.l %a0,-(%sp) /* dest_addr */ - move.l %d0,-(%sp) /* gd */ + move.l %a0,-(%sp) /* dest_addr */ + move.l %d0,-(%sp) /* gd */ #if defined(DEBUG) && (CONFIG_SYS_TEXT_BASE != CONFIG_SYS_INT_FLASH_BASE) && \ defined(CONFIG_SYS_HALT_BEFOR_RAM_JUMP) halt #endif jsr (%a1) -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ + /* exception code */ - .globl _fault +.globl _fault _fault: - bra _fault + bra _fault - .globl _exc_handler +.globl _exc_handler _exc_handler: SAVE_ALL movel %sp,%sp@- - bsr exc_handler + bsr exc_handler addql #4,%sp RESTORE_ALL - .globl _int_handler +.globl _int_handler _int_handler: SAVE_ALL movel %sp,%sp@- - bsr int_handler + bsr int_handler addql #4,%sp RESTORE_ALL -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ - .globl version_string +.globl version_string version_string: - .ascii U_BOOT_VERSION_STRING, "\0" - .align 4 +.ascii U_BOOT_VERSION_STRING, "\0" +.align 4 diff --git a/arch/m68k/cpu/mcf530x/start.S b/arch/m68k/cpu/mcf530x/start.S index ca8bb320630..da41c9af34b 100644 --- a/arch/m68k/cpu/mcf530x/start.S +++ b/arch/m68k/cpu/mcf530x/start.S @@ -36,12 +36,12 @@ #if !defined(CONFIG_MONITOR_IS_IN_RAM) .text + /* - * Vector table. This is used for initial platform startup. - * These vectors are to catch any un-intended traps. + * Vector table. This is used for initial platform startup. + * These vectors are to catch any un-intended traps. */ _vectors: - /* Flash offset is 0 until we setup CS0 */ .long 0x00000000 #if defined(CONFIG_M5307) && \ @@ -89,12 +89,13 @@ _vectors: #endif - .text - .globl _start +.text + +.globl _start _start: nop nop - move.w #0x2700,%sr + move.w #0x2700,%sr /* set MBAR address + valid flag */ move.l #(CONFIG_SYS_MBAR + 1), %d0 @@ -104,11 +105,11 @@ _start: move.c %d0, %RAMBAR /* DS 4.8.2 (Cache Organization) invalidate and disable cache */ - move.l #CF_CACR_CINVA, %d0 - movec %d0, %CACR - move.l #0, %d0 - movec %d0, %ACR0 - movec %d0, %ACR1 + move.l #CF_CACR_CINVA, %d0 + movec %d0, %CACR + move.l #0, %d0 + movec %d0, %ACR0 + movec %d0, %ACR1 /* * if we come from a pre-loader we have no exception table and @@ -127,10 +128,10 @@ _start: move.l %d0, (%a2) /* put relocation table address to a5 */ - move.l #__got_start, %a5 + move.l #__got_start, %a5 /* setup stack initially on top of internal static ram */ - move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp + move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp /* * if configured, malloc_f arena will be reserved first, @@ -140,23 +141,23 @@ _start: bsr board_init_f_alloc_reserve /* update stack and frame-pointers */ - move.l %d0, %sp - move.l %sp, %fp + move.l %d0, %sp + move.l %sp, %fp /* initialize reserved area */ - move.l %d0, -(%sp) - bsr board_init_f_init_reserve + move.l %d0, -(%sp) + bsr board_init_f_init_reserve /* run low-level CPU init code (from flash) */ - bsr cpu_init_f + bsr cpu_init_f /* run low-level board init code (from flash) */ - clr.l %sp@- - bsr board_init_f + clr.l %sp@- + bsr board_init_f /* board_init_f() does not return */ -/*--------------------------------------------------------------------------*/ +/******************************************************************************/ /* * void relocate_code (addr_sp, gd, addr_moni) @@ -165,7 +166,7 @@ _start: * after relocating the monitor code. * */ - .globl relocate_code +.globl relocate_code relocate_code: link.w %a6,#0 move.l 8(%a6), %sp /* set new stack pointer */ @@ -209,7 +210,8 @@ clear_bss: */ move.l %a0, %a1 add.l #(__got_start - CONFIG_SYS_MONITOR_BASE), %a1 - /* * fix got pointer register a5 */ + + /* fix got pointer register a5 */ move.l %a1,%a5 move.l %a0, %a2 @@ -236,33 +238,34 @@ clear_bss: #endif jsr (%a1) -/*--------------------------------------------------------------------------*/ +/******************************************************************************/ + /* exception code */ - .globl _fault +.globl _fault _fault: bra _fault - .globl _exc_handler +.globl _exc_handler _exc_handler: SAVE_ALL movel %sp,%sp@- - bsr exc_handler + bsr exc_handler addql #4,%sp RESTORE_ALL - .globl _int_handler +.globl _int_handler _int_handler: SAVE_ALL movel %sp,%sp@- - bsr int_handler + bsr int_handler addql #4,%sp RESTORE_ALL -/*--------------------------------------------------------------------------*/ +/******************************************************************************/ - .globl version_string +.globl version_string version_string: - .ascii U_BOOT_VERSION - .ascii " (", U_BOOT_DATE, " - ", U_BOOT_TIME, ")" - .ascii CONFIG_IDENT_STRING, "\0" - .align 4 +.ascii U_BOOT_VERSION +.ascii " (", U_BOOT_DATE, " - ", U_BOOT_TIME, ")" +.ascii CONFIG_IDENT_STRING, "\0" +.align 4 diff --git a/arch/m68k/cpu/mcf532x/start.S b/arch/m68k/cpu/mcf532x/start.S index f25bc541be7..302fca52451 100644 --- a/arch/m68k/cpu/mcf532x/start.S +++ b/arch/m68k/cpu/mcf532x/start.S @@ -31,42 +31,27 @@ rte; #if !defined(CONFIG_MONITOR_IS_IN_RAM) + .text + /* - * Vector table. This is used for initial platform startup. - * These vectors are to catch any un-intended traps. + * Vector table. This is used for initial platform startup. + * These vectors are to catch any un-intended traps. */ _vectors: +INITSP: .long 0x00000000 /* Initial SP */ +INITPC: .long _START /* Initial PC */ -INITSP: .long 0x00000000 /* Initial SP */ -INITPC: .long _START /* Initial PC */ -vector02: .long _FAULT /* Access Error */ -vector03: .long _FAULT /* Address Error */ -vector04: .long _FAULT /* Illegal Instruction */ -vector05: .long _FAULT /* Reserved */ -vector06: .long _FAULT /* Reserved */ -vector07: .long _FAULT /* Reserved */ -vector08: .long _FAULT /* Privilege Violation */ -vector09: .long _FAULT /* Trace */ -vector0A: .long _FAULT /* Unimplemented A-Line */ -vector0B: .long _FAULT /* Unimplemented F-Line */ -vector0C: .long _FAULT /* Debug Interrupt */ -vector0D: .long _FAULT /* Reserved */ -vector0E: .long _FAULT /* Format Error */ -vector0F: .long _FAULT /* Unitialized Int. */ +vector02_0F: +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT /* Reserved */ vector10_17: .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT -vector18: .long _FAULT /* Spurious Interrupt */ -vector19: .long _FAULT /* Autovector Level 1 */ -vector1A: .long _FAULT /* Autovector Level 2 */ -vector1B: .long _FAULT /* Autovector Level 3 */ -vector1C: .long _FAULT /* Autovector Level 4 */ -vector1D: .long _FAULT /* Autovector Level 5 */ -vector1E: .long _FAULT /* Autovector Level 6 */ -vector1F: .long _FAULT /* Autovector Level 7 */ +vector18_1F: +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT /* TRAP #0 - #15 */ vector20_2F: @@ -109,13 +94,13 @@ vector192_255: .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT #endif /* !defined(CONFIG_MONITOR_IS_IN_RAM) */ - .text +.text - .globl _start +.globl _start _start: nop nop - move.w #0x2700,%sr /* Mask off Interrupt */ + move.w #0x2700,%sr /* Mask off Interrupt */ #if !defined(CONFIG_MONITOR_IS_IN_RAM) /* Set vector base register at the beginning of the Flash */ @@ -142,14 +127,14 @@ _start: #endif /* initialize general use internal ram */ - move.l #0, %d0 - move.l #(ICACHE_STATUS), %a1 /* icache */ - move.l #(DCACHE_STATUS), %a2 /* icache */ - move.l %d0, (%a1) - move.l %d0, (%a2) + move.l #0, %d0 + move.l #(ICACHE_STATUS), %a1 /* icache */ + move.l #(DCACHE_STATUS), %a2 /* icache */ + move.l %d0, (%a1) + move.l %d0, (%a2) /* put relocation table address to a5 */ - move.l #__got_start, %a5 + move.l #__got_start, %a5 /* setup stack initially on top of internal static ram */ move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp @@ -167,13 +152,14 @@ _start: move.l %sp, %fp /* initialize reserved area */ - move.l %d0, -(%sp) + move.l %d0, -(%sp) move.l #board_init_f_init_reserve, %a1 jsr (%a1) /* run low-level CPU init code (from flash) */ - move.l #cpu_init_f, %a1 - jsr (%a1) + move.l #cpu_init_f, %a1 + jsr (%a1) + /* run low-level board init code (from flash) */ clr.l %sp@- move.l #board_init_f, %a1 @@ -181,7 +167,7 @@ _start: /* board_init_f() does not return */ -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ /* * void relocate_code (addr_sp, gd, addr_moni) @@ -194,23 +180,23 @@ _start: * r5 = length in bytes * r6 = cachelinesize */ - .globl relocate_code +.globl relocate_code relocate_code: - link.w %a6,#0 - move.l 8(%a6), %sp /* set new stack pointer */ + link.w %a6,#0 + move.l 8(%a6), %sp /* set new stack pointer */ - move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ - move.l 16(%a6), %a0 /* Save copy of Destination Address */ + move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ + move.l 16(%a6), %a0 /* Save copy of Destination Address */ - move.l #CONFIG_SYS_MONITOR_BASE, %a1 - move.l #__init_end, %a2 - move.l %a0, %a3 + move.l #CONFIG_SYS_MONITOR_BASE, %a1 + move.l #__init_end, %a2 + move.l %a0, %a3 /* copy the code to RAM */ 1: - move.l (%a1)+, (%a3)+ - cmp.l %a1,%a2 - bgt.s 1b + move.l (%a1)+, (%a3)+ + cmp.l %a1,%a2 + bgt.s 1b /* * We are done. Do not return, instead branch to second part of board @@ -240,7 +226,7 @@ clear_bss: */ move.l %a0, %a1 add.l #(__got_start - CONFIG_SYS_MONITOR_BASE),%a1 - move.l %a1,%a5 /* * fix got pointer register a5 */ + move.l %a1,%a5 /* fix got pointer register a5 */ move.l %a0, %a2 add.l #(__got_end - CONFIG_SYS_MONITOR_BASE),%a2 @@ -254,38 +240,40 @@ clear_bss: bne 7b /* calculate relative jump to board_init_r in ram */ - move.l %a0, %a1 - add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 + move.l %a0, %a1 + add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 /* set parameters for board_init_r */ - move.l %a0,-(%sp) /* dest_addr */ - move.l %d0,-(%sp) /* gd */ + move.l %a0,-(%sp) /* dest_addr */ + move.l %d0,-(%sp) /* gd */ jsr (%a1) -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ + /* exception code */ - .globl _fault +.globl _fault _fault: bra _fault - .globl _exc_handler +.globl _exc_handler _exc_handler: SAVE_ALL movel %sp,%sp@- - bsr exc_handler + bsr exc_handler addql #4,%sp RESTORE_ALL - .globl _int_handler +.globl _int_handler _int_handler: SAVE_ALL movel %sp,%sp@- - bsr int_handler + bsr int_handler addql #4,%sp RESTORE_ALL -/*------------------------------------------------------------------------------*/ - .globl version_string +/******************************************************************************/ + +.globl version_string version_string: - .ascii U_BOOT_VERSION_STRING, "\0" - .align 4 +.ascii U_BOOT_VERSION_STRING, "\0" +.align 4 diff --git a/arch/m68k/cpu/mcf5445x/start.S b/arch/m68k/cpu/mcf5445x/start.S index ba38678be3c..bc48ca0f5b0 100644 --- a/arch/m68k/cpu/mcf5445x/start.S +++ b/arch/m68k/cpu/mcf5445x/start.S @@ -33,62 +33,47 @@ rte; #if defined(CONFIG_SERIAL_BOOT) -#define ASM_DRAMINIT (asm_dram_init - CONFIG_SYS_TEXT_BASE + CONFIG_SYS_INIT_RAM_ADDR) +#define ASM_DRAMINIT (asm_dram_init - CONFIG_SYS_TEXT_BASE + \ + CONFIG_SYS_INIT_RAM_ADDR) #define ASM_DRAMINIT_N (asm_dram_init - CONFIG_SYS_TEXT_BASE) -#define ASM_SBF_IMG_HDR (asm_sbf_img_hdr - CONFIG_SYS_TEXT_BASE + CONFIG_SYS_INIT_RAM_ADDR) +#define ASM_SBF_IMG_HDR (asm_sbf_img_hdr - CONFIG_SYS_TEXT_BASE + \ + CONFIG_SYS_INIT_RAM_ADDR) #endif .text /* - * Vector table. This is used for initial platform startup. - * These vectors are to catch any un-intended traps. + * Vector table. This is used for initial platform startup. + * These vectors are to catch any un-intended traps. */ _vectors: #if defined(CONFIG_SERIAL_BOOT) -INITSP: .long 0 /* Initial SP */ +INITSP: .long 0 /* Initial SP */ #ifdef CONFIG_CF_SBF -INITPC: .long ASM_DRAMINIT /* Initial PC */ +INITPC: .long ASM_DRAMINIT /* Initial PC */ #endif #ifdef CONFIG_SYS_NAND_BOOT -INITPC: .long ASM_DRAMINIT_N /* Initial PC */ +INITPC: .long ASM_DRAMINIT_N /* Initial PC */ #endif #else -INITSP: .long 0 /* Initial SP */ -INITPC: .long _START /* Initial PC */ +INITSP: .long 0 /* Initial SP */ +INITPC: .long _START /* Initial PC */ #endif -vector02: .long _FAULT /* Access Error */ -vector03: .long _FAULT /* Address Error */ -vector04: .long _FAULT /* Illegal Instruction */ -vector05: .long _FAULT /* Reserved */ -vector06: .long _FAULT /* Reserved */ -vector07: .long _FAULT /* Reserved */ -vector08: .long _FAULT /* Privilege Violation */ -vector09: .long _FAULT /* Trace */ -vector0A: .long _FAULT /* Unimplemented A-Line */ -vector0B: .long _FAULT /* Unimplemented F-Line */ -vector0C: .long _FAULT /* Debug Interrupt */ -vector0D: .long _FAULT /* Reserved */ -vector0E: .long _FAULT /* Format Error */ -vector0F: .long _FAULT /* Unitialized Int. */ +vector02_0F: +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT /* Reserved */ vector10_17: .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT -vector18: .long _FAULT /* Spurious Interrupt */ -vector19: .long _FAULT /* Autovector Level 1 */ -vector1A: .long _FAULT /* Autovector Level 2 */ -vector1B: .long _FAULT /* Autovector Level 3 */ -vector1C: .long _FAULT /* Autovector Level 4 */ -vector1D: .long _FAULT /* Autovector Level 5 */ -vector1E: .long _FAULT /* Autovector Level 6 */ -vector1F: .long _FAULT /* Autovector Level 7 */ +vector18_1F: +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT #if !defined(CONFIG_SERIAL_BOOT) @@ -136,12 +121,12 @@ vector192_255: #if defined(CONFIG_SERIAL_BOOT) /* Image header: chksum 4 bytes, len 4 bytes, img dest 4 bytes */ asm_sbf_img_hdr: - .long 0x00000000 /* checksum, not yet implemented */ - .long 0x00040000 /* image length */ + .long 0x00000000 /* checksum, not yet implemented */ + .long 0x00040000 /* image length */ .long CONFIG_SYS_TEXT_BASE /* image to be relocated at */ asm_dram_init: - move.w #0x2700,%sr /* Mask off Interrupt */ + move.w #0x2700,%sr /* Mask off Interrupt */ #ifdef CONFIG_SYS_NAND_BOOT /* for assembly stack */ @@ -149,7 +134,7 @@ asm_dram_init: movec %d0, %RAMBAR1 move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET), %sp - clr.l %sp@- + clr.l %sp@- #endif #ifdef CONFIG_CF_SBF @@ -160,11 +145,11 @@ asm_dram_init: movec %d0, %RAMBAR1 /* initialize general use internal ram */ - move.l #0, %d0 - move.l #(ICACHE_STATUS), %a1 /* icache */ - move.l #(DCACHE_STATUS), %a2 /* dcache */ - move.l %d0, (%a1) - move.l %d0, (%a2) + move.l #0, %d0 + move.l #(ICACHE_STATUS), %a1 /* icache */ + move.l #(DCACHE_STATUS), %a2 /* dcache */ + move.l %d0, (%a1) + move.l %d0, (%a2) /* invalidate and disable cache */ move.l #(CONFIG_SYS_ICACHE_INV + CONFIG_SYS_DCACHE_INV), %d0 @@ -176,7 +161,7 @@ asm_dram_init: movec %d0, %ACR3 move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET), %sp - clr.l %sp@- + clr.l %sp@- /* Must disable global address */ move.l #0xFC008000, %a1 @@ -185,7 +170,7 @@ asm_dram_init: move.l #(CONFIG_SYS_CS0_CTRL), (%a1) move.l #0xFC008004, %a1 move.l #(CONFIG_SYS_CS0_MASK), (%a1) -#endif /* CONFIG_CF_SBF */ +#endif /* CONFIG_CF_SBF */ #ifdef CONFIG_MCF5441x /* TC: enable all peripherals, @@ -193,9 +178,9 @@ asm_dram_init: move.l #0xFC04002D, %a1 #if defined(CONFIG_CF_SBF) - move.b #23, (%a1) /* dspi */ + move.b #23, (%a1) /* dspi */ #endif - move.b #46, (%a1) /* DDR */ + move.b #46, (%a1) /* DDR */ /* slew settings */ move.l #0xEC094060, %a1 @@ -365,7 +350,7 @@ dramsz_loop: move.l #2000, %d1 jsr asm_delay -#endif /* CONFIG_MCF5445x */ +#endif /* CONFIG_MCF5445x */ #ifdef CONFIG_CF_SBF /* @@ -484,7 +469,7 @@ asm_dspi_rd_status: move.b (%a3), %d1 rts -#endif /* CONFIG_CF_SBF */ +#endif /* CONFIG_CF_SBF */ #ifdef CONFIG_SYS_NAND_BOOT /* copy 4 boot pages to dram as soon as possible */ @@ -509,13 +494,13 @@ asm_nand_init: move.l %d1, (%a1) /* initialize general use internal ram */ - move.l #0, %d0 - move.l #(CACR_STATUS), %a1 /* CACR */ - move.l #(ICACHE_STATUS), %a2 /* icache */ - move.l #(DCACHE_STATUS), %a3 /* dcache */ - move.l %d0, (%a1) - move.l %d0, (%a2) - move.l %d0, (%a3) + move.l #0, %d0 + move.l #(CACR_STATUS), %a1 /* CACR */ + move.l #(ICACHE_STATUS), %a2 /* icache */ + move.l #(DCACHE_STATUS), %a3 /* dcache */ + move.l %d0, (%a1) + move.l %d0, (%a2) + move.l %d0, (%a3) /* invalidate and disable cache */ move.l #0x01004100, %d0 /* Invalidate cache cmd */ @@ -571,7 +556,7 @@ asm_nand_init: move.l #4, %d2 /* start at 4 */ move.l #0xFC0FFF04, %a0 /* cmd2 */ move.l #0xFC0FFF0C, %a1 /* rar */ - move.l #(CONFIG_SYS_TEXT_BASE + 0xF80), %a2 /* dst */ + move.l #(CONFIG_SYS_TEXT_BASE + 0xF80), %a2 asm_nand_read: move.l #0x11000000, %d0 /* rar */ @@ -621,14 +606,14 @@ asm_delay: rts #endif /* CONFIG_CF_SBF || CONFIG_NAND_U_BOOT */ - .text +.text . = 0x400 - .globl _start +.globl _start _start: #if !defined(CONFIG_SERIAL_BOOT) nop nop - move.w #0x2700,%sr /* Mask off Interrupt */ + move.w #0x2700,%sr /* Mask off Interrupt */ /* Set vector base register at the beginning of the Flash */ move.l #CONFIG_SYS_FLASH_BASE, %d0 @@ -638,11 +623,11 @@ _start: movec %d0, %RAMBAR1 /* initialize general use internal ram */ - move.l #0, %d0 - move.l #(ICACHE_STATUS), %a1 /* icache */ - move.l #(DCACHE_STATUS), %a2 /* dcache */ - move.l %d0, (%a1) - move.l %d0, (%a2) + move.l #0, %d0 + move.l #(ICACHE_STATUS), %a1 /* icache */ + move.l #(DCACHE_STATUS), %a2 /* dcache */ + move.l %d0, (%a1) + move.l %d0, (%a2) /* invalidate and disable cache */ move.l #(CONFIG_SYS_ICACHE_INV + CONFIG_SYS_DCACHE_INV), %d0 @@ -658,10 +643,10 @@ _start: #endif /* put relocation table address to a5 */ - move.l #__got_start, %a5 + move.l #__got_start, %a5 /* setup stack initially on top of internal static ram */ - move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp + move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp /* * if configured, malloc_f arena will be reserved first, @@ -672,25 +657,26 @@ _start: jsr (%a1) /* update stack and frame-pointers */ - move.l %d0, %sp - move.l %sp, %fp + move.l %d0, %sp + move.l %sp, %fp /* initialize reserved area */ - move.l %d0, -(%sp) + move.l %d0, -(%sp) move.l #board_init_f_init_reserve, %a1 jsr (%a1) /* run low-level CPU init code (from flash) */ - move.l #cpu_init_f, %a1 - jsr (%a1) + move.l #cpu_init_f, %a1 + jsr (%a1) + /* run low-level board init code (from flash) */ clr.l %sp@- - move.l #board_init_f, %a1 - jsr (%a1) + move.l #board_init_f, %a1 + jsr (%a1) /* board_init_f() does not return */ -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ /* * void relocate_code (addr_sp, gd, addr_moni) @@ -703,23 +689,23 @@ _start: * r5 = length in bytes * r6 = cachelinesize */ - .globl relocate_code +.globl relocate_code relocate_code: - link.w %a6,#0 - move.l 8(%a6), %sp /* set new stack pointer */ + link.w %a6,#0 + move.l 8(%a6), %sp /* set new stack pointer */ - move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ - move.l 16(%a6), %a0 /* Save copy of Destination Address */ + move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ + move.l 16(%a6), %a0 /* Save copy of Destination Address */ - move.l #CONFIG_SYS_MONITOR_BASE, %a1 - move.l #__init_end, %a2 - move.l %a0, %a3 + move.l #CONFIG_SYS_MONITOR_BASE, %a1 + move.l #__init_end, %a2 + move.l %a0, %a3 /* copy the code to RAM */ 1: - move.l (%a1)+, (%a3)+ - cmp.l %a1,%a2 - bgt.s 1b + move.l (%a1)+, (%a3)+ + cmp.l %a1,%a2 + bgt.s 1b /* * We are done. Do not return, instead branch to second part of board @@ -749,7 +735,7 @@ clear_bss: */ move.l %a0, %a1 add.l #(__got_start - CONFIG_SYS_MONITOR_BASE),%a1 - move.l %a1,%a5 /* * fix got pointer register a5 */ + move.l %a1,%a5 /* fix got pointer register a5 */ move.l %a0, %a2 add.l #(__got_end - CONFIG_SYS_MONITOR_BASE),%a2 @@ -763,39 +749,40 @@ clear_bss: bne 7b /* calculate relative jump to board_init_r in ram */ - move.l %a0, %a1 - add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 + move.l %a0, %a1 + add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 /* set parameters for board_init_r */ - move.l %a0,-(%sp) /* dest_addr */ - move.l %d0,-(%sp) /* gd */ + move.l %a0,-(%sp) /* dest_addr */ + move.l %d0,-(%sp) /* gd */ jsr (%a1) -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ + /* exception code */ - .globl _fault +.globl _fault _fault: - bra _fault - .globl _exc_handler + bra _fault +.globl _exc_handler _exc_handler: SAVE_ALL movel %sp,%sp@- - bsr exc_handler + bsr exc_handler addql #4,%sp RESTORE_ALL - .globl _int_handler +.globl _int_handler _int_handler: SAVE_ALL movel %sp,%sp@- - bsr int_handler + bsr int_handler addql #4,%sp RESTORE_ALL -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ - .globl version_string +.globl version_string version_string: - .ascii U_BOOT_VERSION_STRING, "\0" - .align 4 +.ascii U_BOOT_VERSION_STRING, "\0" +.align 4 diff --git a/arch/m68k/cpu/mcf547x_8x/start.S b/arch/m68k/cpu/mcf547x_8x/start.S index 9a87a0da230..fecf253d4bb 100644 --- a/arch/m68k/cpu/mcf547x_8x/start.S +++ b/arch/m68k/cpu/mcf547x_8x/start.S @@ -28,41 +28,25 @@ rte; .text + /* - * Vector table. This is used for initial platform startup. - * These vectors are to catch any un-intended traps. + * Vector table. This is used for initial platform startup. + * These vectors are to catch any un-intended traps. */ _vectors: +INITSP: .long 0x00000000 /* Initial SP */ +INITPC: .long _START /* Initial PC */ -INITSP: .long 0x00000000 /* Initial SP */ -INITPC: .long _START /* Initial PC */ -vector02: .long _FAULT /* Access Error */ -vector03: .long _FAULT /* Address Error */ -vector04: .long _FAULT /* Illegal Instruction */ -vector05: .long _FAULT /* Reserved */ -vector06: .long _FAULT /* Reserved */ -vector07: .long _FAULT /* Reserved */ -vector08: .long _FAULT /* Privilege Violation */ -vector09: .long _FAULT /* Trace */ -vector0A: .long _FAULT /* Unimplemented A-Line */ -vector0B: .long _FAULT /* Unimplemented F-Line */ -vector0C: .long _FAULT /* Debug Interrupt */ -vector0D: .long _FAULT /* Reserved */ -vector0E: .long _FAULT /* Format Error */ -vector0F: .long _FAULT /* Unitialized Int. */ +vector02_0F: +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT /* Reserved */ vector10_17: .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT -vector18: .long _FAULT /* Spurious Interrupt */ -vector19: .long _FAULT /* Autovector Level 1 */ -vector1A: .long _FAULT /* Autovector Level 2 */ -vector1B: .long _FAULT /* Autovector Level 3 */ -vector1C: .long _FAULT /* Autovector Level 4 */ -vector1D: .long _FAULT /* Autovector Level 5 */ -vector1E: .long _FAULT /* Autovector Level 6 */ -vector1F: .long _FAULT /* Autovector Level 7 */ +vector18_1F: +.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT /* TRAP #0 - #15 */ vector20_2F: @@ -104,13 +88,13 @@ vector192_255: .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT .long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT - .text +.text - .globl _start +.globl _start _start: nop nop - move.w #0x2700,%sr /* Mask off Interrupt */ + move.w #0x2700,%sr /* Mask off Interrupt */ /* Set vector base register at the beginning of the Flash */ move.l #CONFIG_SYS_FLASH_BASE, %d0 @@ -122,7 +106,7 @@ _start: move.l #(CONFIG_SYS_INIT_RAM1_ADDR + CONFIG_SYS_INIT_RAM1_CTRL), %d0 movec %d0, %RAMBAR1 - move.l #CONFIG_SYS_MBAR, %d0 /* set MBAR address */ + move.l #CONFIG_SYS_MBAR, %d0 /* set MBAR address */ move.c %d0, %MBAR /* invalidate and disable cache */ @@ -135,17 +119,17 @@ _start: movec %d0, %ACR3 /* initialize general use internal ram */ - move.l #0, %d0 - move.l #(ICACHE_STATUS), %a1 /* icache */ - move.l #(DCACHE_STATUS), %a2 /* icache */ - move.l %d0, (%a1) - move.l %d0, (%a2) + move.l #0, %d0 + move.l #(ICACHE_STATUS), %a1 /* icache */ + move.l #(DCACHE_STATUS), %a2 /* icache */ + move.l %d0, (%a1) + move.l %d0, (%a2) /* put relocation table address to a5 */ - move.l #__got_start, %a5 + move.l #__got_start, %a5 /* setup stack initially on top of internal static ram */ - move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp + move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE), %sp /* * if configured, malloc_f arena will be reserved first, @@ -159,16 +143,19 @@ _start: move.l %sp, %fp /* initialize reserved area */ - move.l %d0, -(%sp) - bsr board_init_f_init_reserve + move.l %d0, -(%sp) + bsr board_init_f_init_reserve + + /* run low-level CPU init code (from flash) */ + jbsr cpu_init_f - jbsr cpu_init_f /* run low-level CPU init code (from flash) */ - clr.l %sp@- - jbsr board_init_f /* run low-level board init code (from flash) */ + /* run low-level board init code (from flash) */ + clr.l %sp@- + jbsr board_init_f /* board_init_f() does not return */ -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ /* * void relocate_code (addr_sp, gd, addr_moni) @@ -181,23 +168,23 @@ _start: * r5 = length in bytes * r6 = cachelinesize */ - .globl relocate_code +.globl relocate_code relocate_code: - link.w %a6,#0 - move.l 8(%a6), %sp /* set new stack pointer */ + link.w %a6,#0 + move.l 8(%a6), %sp /* set new stack pointer */ - move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ - move.l 16(%a6), %a0 /* Save copy of Destination Address */ + move.l 12(%a6), %d0 /* Save copy of Global Data pointer */ + move.l 16(%a6), %a0 /* Save copy of Destination Address */ - move.l #CONFIG_SYS_MONITOR_BASE, %a1 - move.l #__init_end, %a2 - move.l %a0, %a3 + move.l #CONFIG_SYS_MONITOR_BASE, %a1 + move.l #__init_end, %a2 + move.l %a0, %a3 /* copy the code to RAM */ 1: - move.l (%a1)+, (%a3)+ - cmp.l %a1,%a2 - bgt.s 1b + move.l (%a1)+, (%a3)+ + cmp.l %a1,%a2 + bgt.s 1b /* * We are done. Do not return, instead branch to second part of board @@ -227,7 +214,7 @@ clear_bss: */ move.l %a0, %a1 add.l #(__got_start - CONFIG_SYS_MONITOR_BASE),%a1 - move.l %a1,%a5 /* * fix got pointer register a5 */ + move.l %a1,%a5 /* fix got pointer register a5 */ move.l %a0, %a2 add.l #(__got_end - CONFIG_SYS_MONITOR_BASE),%a2 @@ -241,39 +228,40 @@ clear_bss: bne 7b /* calculate relative jump to board_init_r in ram */ - move.l %a0, %a1 - add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 + move.l %a0, %a1 + add.l #(board_init_r - CONFIG_SYS_MONITOR_BASE), %a1 /* set parameters for board_init_r */ - move.l %a0,-(%sp) /* dest_addr */ - move.l %d0,-(%sp) /* gd */ + move.l %a0,-(%sp) /* dest_addr */ + move.l %d0,-(%sp) /* gd */ jsr (%a1) -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ + /* exception code */ - .globl _fault +.globl _fault _fault: - bra _fault - .globl _exc_handler + bra _fault +.globl _exc_handler _exc_handler: SAVE_ALL movel %sp,%sp@- - bsr exc_handler + bsr exc_handler addql #4,%sp RESTORE_ALL - .globl _int_handler +.globl _int_handler _int_handler: SAVE_ALL movel %sp,%sp@- - bsr int_handler + bsr int_handler addql #4,%sp RESTORE_ALL -/*------------------------------------------------------------------------------*/ +/******************************************************************************/ - .globl version_string +.globl version_string version_string: - .ascii U_BOOT_VERSION_STRING, "\0" - .align 4 +.ascii U_BOOT_VERSION_STRING, "\0" +.align 4 |