misc cleanup
[rpi-open-firmware.git] / start.s
diff --git a/start.s b/start.s
index 464a364..1f03200 100644 (file)
--- a/start.s
+++ b/start.s
@@ -1,5 +1,5 @@
 /*=============================================================================
 /*=============================================================================
-Copyright (C) 2016 Kristina Brooks
+Copyright (C) 2016-2017 Authors of rpi-open-firmware
 All rights reserved.
 
 This program is free software; you can redistribute it and/or
 All rights reserved.
 
 This program is free software; you can redistribute it and/or
@@ -25,20 +25,17 @@ Exception names are from the public release from:
 
 =============================================================================*/
 
 
 =============================================================================*/
 
-
 .text
 
 empty_space:
        .space 0x200
 
 .text
 
 empty_space:
        .space 0x200
 
-.include "ghetto.s"
-
 /* main entry point */
 
 .globl _start
 .align 2
 _start:
 /* main entry point */
 
 .globl _start
 .align 2
 _start:
-        version r0
+       version r0
        mov r5, r0
 
        /* vectors */
        mov r5, r0
 
        /* vectors */
@@ -55,7 +52,6 @@ _start:
        add r1, #4
 .endm
 
        add r1, #4
 .endm
 
-
        RegExceptionHandler zero, #0
        RegExceptionHandler misaligned, #1
        RegExceptionHandler dividebyzero, #2
        RegExceptionHandler zero, #0
        RegExceptionHandler misaligned, #1
        RegExceptionHandler dividebyzero, #2
@@ -89,15 +85,13 @@ _start:
        RegExceptionHandler unknown, #30
        RegExceptionHandler unknown, #31
 
        RegExceptionHandler unknown, #30
        RegExceptionHandler unknown, #31
 
-       //add r1, r3, #252
-        add r1, r3, #128
+       add r1, r3, #128
        lea r2, fleh_irq
        lea r2, fleh_irq
-       //mov r4, #492
-        add r4, r3, #492
+       add r4, r3, #572
 
 L_setup_hw_irq:
        st r2, (r1)
 
 L_setup_hw_irq:
        st r2, (r1)
-        add r1, #4
+       add r1, #4
        ble r1, r4, L_setup_hw_irq
 
        /*
        ble r1, r4, L_setup_hw_irq
 
        /*
@@ -108,70 +102,18 @@ L_setup_hw_irq:
        mov r28, #0x1D000 
        mov sp, #0x1C000
 
        mov r28, #0x1D000 
        mov sp, #0x1C000
 
-        /* unmask ARM interrupts */
-        mov r0, #(IC0_BASE + 0x10)
-        mov r1, #(IC1_BASE + 0x10)
-        mov r2, 0x11111111
-        mov r3, #(IC0_BASE + 0x10 + 0x20)
-
-    unmask_all:
-        st r2, (r0)
-        st r2, (r1)
-        add r0, 4
-        add r1, 4
-        ble r0, r3, unmask_all
-       /* set interrupt vector bases */
-       mov r3, #0x1B000
-       mov r0, #IC0_VADDR
-       st r3, (r0)
-       mov r0, #IC1_VADDR
-       st r3, (r0)
-
-
-        /* enable interrupts */
-       ei
-
        /* jump to C code */
        mov r0, r5
        lea r1, _start
 
        bl _main
 
        /* jump to C code */
        mov r0, r5
        lea r1, _start
 
        bl _main
 
-/************************************************************
- * Debug
- ************************************************************/
-
-blinker:
-       mov r1, #GPFSEL1
-       ld r0, (r1)
-       and r0, #(~(7<<18))
-       or r0, #(1<<18)
-       st r0, (r1)
-       mov r1, #GPSET0
-       mov r2, #GPCLR0
-       mov r3, #(1<<16)
-loop:
-       st r3, (r1)
-       mov r0, #0
-delayloop1:
-       add r0, #1
-       cmp r0, #0x100000
-       bne delayloop1
-       st r3, (r2)
-       mov r0, #0
-delayloop2:
-       add r0, #1
-       cmp r0, #0x100000
-       bne delayloop2
-       b loop
-
 /************************************************************
  * Exception Handling
  ************************************************************/
 
 .macro SaveRegsLower 
 /************************************************************
  * Exception Handling
  ************************************************************/
 
 .macro SaveRegsLower 
-        stm lr, (--sp)
+       stm lr, (--sp)
        stm r0-r5, (--sp)
 .endm
 
        stm r0-r5, (--sp)
 .endm
 
@@ -218,6 +160,7 @@ fleh_irq:
 
        /* top of savearea */
        mov r0, sp
 
        /* top of savearea */
        mov r0, sp
+       mov r1, r29
        bl sleh_irq
 
 return_from_exception:
        bl sleh_irq
 
 return_from_exception:
@@ -226,3 +169,14 @@ return_from_exception:
        ldm r0-r5, (sp++)
        ld lr, (sp++)
        rti
        ldm r0-r5, (sp++)
        ld lr, (sp++)
        rti
+
+/* include chainloader */
+
+.align 2
+.globl L_arm_code_start
+L_arm_code_start:
+
+       .incbin "arm_chainloader/build/arm_chainloader.bin"
+
+.globl L_arm_code_end
+L_arm_code_end:
This page took 0.028125 seconds and 4 git commands to generate.