#include <AsmMacroIoLibV8.h>\r
#include <Chipset/AArch64.h>\r
\r
-#start of the code section\r
-.text\r
-.align 3\r
-\r
-GCC_ASM_EXPORT(SetupExceptionLevel1)\r
-GCC_ASM_EXPORT(SetupExceptionLevel2)\r
-\r
// Setup EL1 while in EL1\r
-ASM_PFX(SetupExceptionLevel1):\r
+ASM_FUNC(SetupExceptionLevel1)\r
mov x5, x30 // Save LR\r
\r
mov x0, #CPACR_CP_FULL_ACCESS\r
ret x5\r
\r
// Setup EL2 while in EL2\r
-ASM_PFX(SetupExceptionLevel2):\r
+ASM_FUNC(SetupExceptionLevel2)\r
msr sctlr_el2, xzr\r
mrs x0, hcr_el2 // Read EL2 Hypervisor configuration Register\r
\r
//\r
\r
#include <AsmMacroIoLibV8.h>\r
-#include <Base.h>\r
-#include <Library/PcdLib.h>\r
-#include <AutoGen.h>\r
\r
-.text\r
-.align 3\r
-\r
-GCC_ASM_IMPORT(CEntryPoint)\r
-GCC_ASM_IMPORT(ArmPlatformGetCorePosition)\r
-GCC_ASM_IMPORT(ArmPlatformIsPrimaryCore)\r
-GCC_ASM_IMPORT(ArmReadMpidr)\r
-GCC_ASM_IMPORT(ArmPlatformPeiBootAction)\r
-GCC_ASM_EXPORT(_ModuleEntryPoint)\r
-\r
-StartupAddr: .8byte CEntryPoint\r
-\r
-ASM_PFX(_ModuleEntryPoint):\r
+ASM_FUNC(_ModuleEntryPoint)\r
// Do early platform specific actions\r
bl ASM_PFX(ArmPlatformPeiBootAction)\r
\r
bl ASM_PFX(ArmPlatformIsPrimaryCore)\r
\r
// Get the top of the primary stacks (and the base of the secondary stacks)\r
- LoadConstantToReg (FixedPcdGet64(PcdCPUCoresStackBase), x1)\r
- LoadConstantToReg (FixedPcdGet32(PcdCPUCorePrimaryStackSize), x2)\r
- add x1, x1, x2\r
+ MOV64 (x1, FixedPcdGet64(PcdCPUCoresStackBase) + FixedPcdGet32(PcdCPUCorePrimaryStackSize))\r
\r
// x0 is equal to 1 if I am the primary core\r
cmp x0, #1\r
add x0, x0, #1\r
\r
// StackOffset = CorePos * StackSize\r
- LoadConstantToReg (FixedPcdGet32(PcdCPUCoreSecondaryStackSize), x2)\r
+ MOV32 (x2, FixedPcdGet32(PcdCPUCoreSecondaryStackSize))\r
mul x0, x0, x2\r
// SP = StackBase + StackOffset\r
add sp, x6, x0\r
\r
_PrepareArguments:\r
// The PEI Core Entry Point has been computed by GenFV and stored in the second entry of the Reset Vector\r
- LoadConstantToReg (FixedPcdGet64(PcdFvBaseAddress), x2)\r
- add x2, x2, #8\r
- ldr x1, [x2]\r
+ MOV64 (x2, FixedPcdGet64(PcdFvBaseAddress))\r
+ ldr x1, [x2, #8]\r
\r
// Move sec startup address into a data register\r
// Ensure we're jumping to FV version of the code (not boot remapped alias)\r
- ldr x3, StartupAddr\r
+ ldr x3, =ASM_PFX(CEntryPoint)\r
\r
// Jump to PrePeiCore C code\r
// x0 = mp_id\r
#\r
#------------------------------------------------------------------------------\r
\r
-.text\r
-.align 3\r
-\r
-GCC_ASM_EXPORT(SecSwitchStack)\r
-\r
-\r
+#include <AsmMacroIoLibV8.h>\r
\r
#/**\r
# This allows the caller to switch the stack and return\r
# VOID *StackDelta\r
# )#\r
#\r
-ASM_PFX(SecSwitchStack):\r
+ASM_FUNC(SecSwitchStack)\r
mov x1, sp\r
add x1, x0, x1\r
mov sp, x1\r
//\r
\r
#include <AsmMacroIoLib.h>\r
-#include <Base.h>\r
-#include <Library/PcdLib.h>\r
-#include <AutoGen.h>\r
\r
-.text\r
-.align 3\r
-\r
-GCC_ASM_IMPORT(CEntryPoint)\r
-GCC_ASM_IMPORT(ArmPlatformGetCorePosition)\r
-GCC_ASM_IMPORT(ArmPlatformIsPrimaryCore)\r
-GCC_ASM_IMPORT(ArmReadMpidr)\r
-GCC_ASM_IMPORT(ArmPlatformPeiBootAction)\r
-GCC_ASM_EXPORT(_ModuleEntryPoint)\r
-\r
-StartupAddr: .word CEntryPoint\r
-\r
-ASM_PFX(_ModuleEntryPoint):\r
+ASM_FUNC(_ModuleEntryPoint)\r
// Do early platform specific actions\r
bl ASM_PFX(ArmPlatformPeiBootAction)\r
\r
bl ASM_PFX(ArmPlatformIsPrimaryCore)\r
\r
// Get the top of the primary stacks (and the base of the secondary stacks)\r
- LoadConstantToReg (FixedPcdGet64(PcdCPUCoresStackBase), r1)\r
- LoadConstantToReg (FixedPcdGet32(PcdCPUCorePrimaryStackSize), r2)\r
- add r1, r1, r2\r
+ MOV32 (r1, FixedPcdGet64(PcdCPUCoresStackBase) + FixedPcdGet32(PcdCPUCorePrimaryStackSize))\r
\r
// r0 is equal to 1 if I am the primary core\r
cmp r0, #1\r
add r0, r0, #1\r
\r
// StackOffset = CorePos * StackSize\r
- LoadConstantToReg (FixedPcdGet32(PcdCPUCoreSecondaryStackSize), r2)\r
+ MOV32 (r2, FixedPcdGet32(PcdCPUCoreSecondaryStackSize))\r
mul r0, r0, r2\r
// SP = StackBase + StackOffset\r
add sp, r6, r0\r
\r
_PrepareArguments:\r
// The PEI Core Entry Point has been computed by GenFV and stored in the second entry of the Reset Vector\r
- LoadConstantToReg (FixedPcdGet32(PcdFvBaseAddress), r2)\r
- add r2, r2, #4\r
- ldr r1, [r2]\r
+ MOV32 (r2, FixedPcdGet32(PcdFvBaseAddress))\r
+ ldr r1, [r2, #4]\r
\r
// Move sec startup address into a data register\r
// Ensure we're jumping to FV version of the code (not boot remapped alias)\r
- ldr r3, StartupAddr\r
+ ldr r3, =ASM_PFX(CEntryPoint)\r
\r
// Jump to PrePeiCore C code\r
// r0 = mp_id\r
#\r
#------------------------------------------------------------------------------\r
\r
-.text\r
-.align 3\r
-\r
-GCC_ASM_EXPORT(SecSwitchStack)\r
-\r
-\r
+#include <AsmMacroIoLib.h>\r
\r
#/**\r
# This allows the caller to switch the stack and return\r
# VOID *StackDelta\r
# )#\r
#\r
-ASM_PFX(SecSwitchStack):\r
+ASM_FUNC(SecSwitchStack)\r
mov R1, R13\r
add R1, R0, R1\r
mov R13, R1\r