]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm
Remove dead file, and update startup code to null out vector table.
[mirror_edk2.git] / BeagleBoardPkg / Sec / Arm / ModuleEntryPoint.asm
index 52171692b5d319511ecc5971d30266846385106c..eef6c3dc6be2307377cb60bb64ac643b466b784e 100644 (file)
@@ -40,8 +40,19 @@ _ModuleEntryPoint
   mcr     p15, 0, r0, c1, c0, 0\r
  \r
   // Set CPU vectors to start of DRAM\r
-  mov     r0, #0x80000000\r
+  LoadConstantToReg (FixedPcdGet32(PcdMemoryBase) ,r0) /* memory size arg0         */\r
   mcr     p15, 0, r0, c12, c0, 0\r
+  isb                               // Sync changes to control registers\r
+\r
+  // Fill vector table with branchs to current pc (jmp $)\r
+  ldr     r1, ShouldNeverGetHere\r
+  movs    r2, #0\r
+FillVectors\r
+  str     r1, [r0, r2]\r
+  adds    r2, r2, #4\r
+  cmp     r2, #32\r
+  bne     FillVectors\r
+   \r
   /* before we call C code, lets setup the stack pointer in internal RAM*/\r
 stack_pointer_setup\r
 \r
@@ -54,13 +65,13 @@ stack_pointer_setup
   add     r4, r2, r3\r
 \r
   //Enter SVC mode and set up SVC stack pointer\r
-  mov     r0,#0x13|0x80|0x40\r
-  msr     CPSR_c,r0\r
+  mov     r5,#0x13|0x80|0x40\r
+  msr     CPSR_c,r5\r
   mov     r13,r4\r
 \r
   // Call C entry point\r
   LoadConstantToReg (FixedPcdGet32(PcdMemorySize) ,r1)    /* memory size arg1          */\r
-  LoadConstantToReg (FixedPcdGet32(PcdMemoryBase) ,r0)    /* memory size arg0         */\r
+//  LoadConstantToReg (FixedPcdGet32(PcdMemoryBase) ,r0)  Done above  \r
   blx     CEntryPoint       /* Assume C code is thumb    */\r
 \r
 ShouldNeverGetHere\r