All pastes #680981 Raw Edit

Something

public text v1 · immutable
#680981 ·published 2007-09-04 13:11 UTC
rendered paste body
asm (".global _start   \n"
     "_start: b __init \n"); /* Has to be at the very beginning */

void _start();

/*
 * Init CPU and COP to known state.
 */

asm ("__init:                   \n"

     /* Make sure we run at right address */

     "adr   r0, _start          \n"
     "ldr   r1, =_start         \n"
     "ldr   r2, =__bss_start__  \n"

     "1:                        \n"
     "cmp   r1, r2              \n"
     "ldrlo r3, [r0], #4        \n"
     "strlo r3, [r1], #4        \n"
     "blo   1b                  \n"

     "ldr   r0, =__setup        \n"
     "bx    r0                  \n"
     "__setup:                  \n"

     /* Get processor id */

     "mov   r0, #0x60000000     \n"
     "ldrb  r4, [r0]            \n"

     /* Setup stacks */

     "cmp   r4, #0x55           \n"
     "ldreq r5, =cpu_stack_end  \n"
     "ldrne r5, =cop_stack_end  \n"
     "ldr   sp, [r5]            \n"