summaryrefslogtreecommitdiffstats
path: root/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm
diff options
context:
space:
mode:
Diffstat (limited to 'BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm')
-rw-r--r--BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm34
1 files changed, 17 insertions, 17 deletions
diff --git a/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm b/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm
index d31a29b7c9..63174d4b84 100644
--- a/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm
+++ b/BeagleBoardPkg/Sec/Arm/ModuleEntryPoint.asm
@@ -1,4 +1,4 @@
-//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
//
// Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
//
@@ -16,21 +16,21 @@
#include <Library/PcdLib.h>
#include <AutoGen.h>
INCLUDE AsmMacroIoLib.inc
-
+
IMPORT CEntryPoint
EXPORT _ModuleEntryPoint
-
+
PRESERVE8
AREA ModuleEntryPoint, CODE, READONLY
-
+
_ModuleEntryPoint
-
+
//Disable L2 cache
mrc p15, 0, r0, c1, c0, 1 // read Auxiliary Control Register
bic r0, r0, #0x00000002 // disable L2 cache
mcr p15, 0, r0, c1, c0, 1 // store Auxiliary Control Register
-
+
//Enable Strict alignment checking & Instruction cache
mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #0x00002300 /* clear bits 13, 9:8 (--V- --RS) */
@@ -38,14 +38,14 @@ _ModuleEntryPoint
orr r0, r0, #0x00000002 /* set bit 1 (A) Align */
orr r0, r0, #0x00001000 /* set bit 12 (I) enable I-Cache */
mcr p15, 0, r0, c1, c0, 0
-
+
// Enable NEON register in case folks want to use them for optimizations (CopyMem)
mrc p15, 0, r0, c1, c0, 2
orr r0, r0, #0x00f00000 // Enable VPF access (V* instructions)
mcr p15, 0, r0, c1, c0, 2
mov r0, #0x40000000 // Set EN bit in FPEXC
msr FPEXC,r0
-
+
// Set CPU vectors to start of DRAM
LoadConstantToReg (FixedPcdGet32(PcdCpuVectorBaseAddress) ,r0) // Get vector base
mcr p15, 0, r0, c12, c0, 0
@@ -59,16 +59,16 @@ FillVectors
adds r2, r2, #4
cmp r2, #32
bne FillVectors
-
+
/* before we call C code, lets setup the stack pointer in internal RAM */
stack_pointer_setup
//
- // Set stack based on PCD values. Need to do it this way to make C code work
- // when it runs from FLASH.
- //
- LoadConstantToReg (FixedPcdGet32(PcdPrePiStackBase) ,r2) // stack base arg2
- LoadConstantToReg (FixedPcdGet32(PcdPrePiStackSize) ,r3) // stack size arg3
+ // Set stack based on PCD values. Need to do it this way to make C code work
+ // when it runs from FLASH.
+ //
+ LoadConstantToReg (FixedPcdGet32(PcdPrePiStackBase) ,r2) // stack base arg2
+ LoadConstantToReg (FixedPcdGet32(PcdPrePiStackSize) ,r3) // stack size arg3
add r4, r2, r3
//Enter SVC mode and set up SVC stack pointer
@@ -77,13 +77,13 @@ stack_pointer_setup
mov r13,r4
// Call C entry point
- LoadConstantToReg (FixedPcdGet32(PcdMemorySize) ,r1) // memory size arg1
+ LoadConstantToReg (FixedPcdGet32(PcdMemorySize) ,r1) // memory size arg1
LoadConstantToReg (FixedPcdGet32(PcdMemoryBase) ,r0) // memory start arg0
- blx CEntryPoint // Assume C code is thumb
+ blx CEntryPoint // Assume C code is thumb
ShouldNeverGetHere
/* _CEntryPoint should never return */
b ShouldNeverGetHere
-
+
END