ArmPlatformPkg RVCT: drop dependency on GCC macro library
The RVCT .asm files include AsmMacroIoLib.h only for the definition of LoadConstantToReg (), which makes it tedious to make change to that file without the risk of making the RVCT assembler unhappy. So simply replace LoadConstantToReg() with mov32, which does the right thing in all cases. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
@@ -11,7 +11,6 @@
|
||||
//
|
||||
//
|
||||
|
||||
#include <AsmMacroIoLib.h>
|
||||
#include <Library/ArmLib.h>
|
||||
|
||||
#include <ArmPlatform.h>
|
||||
@@ -48,7 +47,7 @@ ArmPlatformGetCorePosition FUNCTION
|
||||
ArmPlatformIsPrimaryCore FUNCTION
|
||||
// Extract cpu_id and cluster_id from ARM_SCC_CFGREG48
|
||||
// with cpu_id[0:3] and cluster_id[4:7]
|
||||
LoadConstantToReg (ARM_CTA15A7_SCC_CFGREG48, r1)
|
||||
mov32 r1, ARM_CTA15A7_SCC_CFGREG48
|
||||
ldr r1, [r1]
|
||||
lsr r1, #24
|
||||
|
||||
@@ -62,7 +61,7 @@ ArmPlatformIsPrimaryCore FUNCTION
|
||||
orr r1, r1, r2
|
||||
|
||||
// Keep the Cluster ID and Core ID from the MPID
|
||||
LoadConstantToReg (ARM_CLUSTER_MASK :OR: ARM_CORE_MASK, r2)
|
||||
mov32 r2, ARM_CLUSTER_MASK :OR: ARM_CORE_MASK
|
||||
and r0, r0, r2
|
||||
|
||||
// Compare mpid and boot cpu from ARM_SCC_CFGREG48
|
||||
@@ -79,7 +78,7 @@ ArmPlatformIsPrimaryCore FUNCTION
|
||||
ArmPlatformGetPrimaryCoreMpId FUNCTION
|
||||
// Extract cpu_id and cluster_id from ARM_SCC_CFGREG48
|
||||
// with cpu_id[0:3] and cluster_id[4:7]
|
||||
LoadConstantToReg (ARM_CTA15A7_SCC_CFGREG48, r0)
|
||||
mov32 r0, ARM_CTA15A7_SCC_CFGREG48
|
||||
ldr r0, [r0]
|
||||
lsr r0, #24
|
||||
|
||||
|
@@ -11,7 +11,6 @@
|
||||
//
|
||||
//
|
||||
|
||||
#include <AsmMacroIoLib.h>
|
||||
#include <Library/ArmLib.h>
|
||||
|
||||
#include <AutoGen.h>
|
||||
@@ -23,9 +22,6 @@
|
||||
EXPORT ArmPlatformGetPrimaryCoreMpId
|
||||
EXPORT ArmPlatformGetCorePosition
|
||||
|
||||
IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCore
|
||||
IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask
|
||||
|
||||
AREA CTA9x4Helper, CODE, READONLY
|
||||
|
||||
//UINTN
|
||||
@@ -33,8 +29,7 @@
|
||||
// VOID
|
||||
// );
|
||||
ArmPlatformGetPrimaryCoreMpId FUNCTION
|
||||
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
|
||||
ldr r0, [r0]
|
||||
mov32 r0, FixedPcdGet32(PcdArmPrimaryCore)
|
||||
bx lr
|
||||
ENDFUNC
|
||||
|
||||
@@ -43,11 +38,9 @@ ArmPlatformGetPrimaryCoreMpId FUNCTION
|
||||
// IN UINTN MpId
|
||||
// );
|
||||
ArmPlatformIsPrimaryCore FUNCTION
|
||||
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r1)
|
||||
ldr r1, [r1]
|
||||
mov32 r1, FixedPcdGet32(PcdArmPrimaryCoreMask)
|
||||
and r0, r0, r1
|
||||
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r1)
|
||||
ldr r1, [r1]
|
||||
mov32 r1, FixedPcdGet32(PcdArmPrimaryCore)
|
||||
cmp r0, r1
|
||||
moveq r0, #1
|
||||
movne r0, #0
|
||||
|
@@ -11,7 +11,6 @@
|
||||
//
|
||||
//
|
||||
|
||||
#include <AsmMacroIoLib.h>
|
||||
#include <Base.h>
|
||||
#include <Library/ArmLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
@@ -28,9 +27,6 @@
|
||||
EXPORT ArmPlatformGetPrimaryCoreMpId
|
||||
EXPORT ArmPlatformGetCorePosition
|
||||
|
||||
IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCore
|
||||
IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask
|
||||
|
||||
AREA RTSMHelper, CODE, READONLY
|
||||
|
||||
ArmPlatformPeiBootAction FUNCTION
|
||||
@@ -52,8 +48,7 @@ ArmGetScuBaseAddress FUNCTION
|
||||
// VOID
|
||||
// );
|
||||
ArmPlatformGetPrimaryCoreMpId FUNCTION
|
||||
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
|
||||
ldr r0, [r0]
|
||||
mov32 r0, FixedPcdGet32(PcdArmPrimaryCore)
|
||||
bx lr
|
||||
ENDFUNC
|
||||
|
||||
@@ -99,10 +94,9 @@ _Return
|
||||
// IN UINTN MpId
|
||||
// );
|
||||
ArmPlatformIsPrimaryCore FUNCTION
|
||||
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r1)
|
||||
ldr r1, [r1]
|
||||
mov32 r1, FixedPcdGet32(PcdArmPrimaryCoreMask)
|
||||
and r0, r0, r1
|
||||
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r1)
|
||||
mov32 r1, FixedPcdGet32(PcdArmPrimaryCore)
|
||||
ldr r1, [r1]
|
||||
cmp r0, r1
|
||||
moveq r0, #1
|
||||
|
@@ -11,7 +11,6 @@
|
||||
//
|
||||
//
|
||||
|
||||
#include <AsmMacroIoLib.h>
|
||||
#include <Base.h>
|
||||
#include <Library/ArmPlatformLib.h>
|
||||
#include <Drivers/PL35xSmc.h>
|
||||
@@ -90,7 +89,7 @@ ArmPlatformSecBootMemoryInit
|
||||
//
|
||||
// Initialize PL354 SMC
|
||||
//
|
||||
LoadConstantToReg (ARM_VE_SMC_CTRL_BASE, r1)
|
||||
mov32 r1, ARM_VE_SMC_CTRL_BASE
|
||||
ldr r2, =VersatileExpressSmcConfiguration
|
||||
ldr r3, =VersatileExpressSmcConfigurationEnd
|
||||
blx PL35xSmcInitialize
|
||||
@@ -98,7 +97,7 @@ ArmPlatformSecBootMemoryInit
|
||||
//
|
||||
// Page mode setup for VRAM
|
||||
//
|
||||
LoadConstantToReg (VRAM_MOTHERBOARD_BASE, r2)
|
||||
mov32 r2, VRAM_MOTHERBOARD_BASE
|
||||
|
||||
// Read current state
|
||||
ldr r0, [r2, #0]
|
||||
|
Reference in New Issue
Block a user