X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ArmPkg%2FInclude%2FAsmMacroIoLib.inc;h=ce7a1488daea088c0b42b11790b589e5c7e21307;hb=0f87c53d0d0eb7e7c003e209705ec79264e0852b;hp=5ed9e05775d7f46c193db3a9584f9c48669e94d1;hpb=a32dae4878f692ede61536ca900d342d636848ca;p=mirror_edk2.git
diff --git a/ArmPkg/Include/AsmMacroIoLib.inc b/ArmPkg/Include/AsmMacroIoLib.inc
index 5ed9e05775..ce7a1488da 100644
--- a/ArmPkg/Include/AsmMacroIoLib.inc
+++ b/ArmPkg/Include/AsmMacroIoLib.inc
@@ -5,107 +5,35 @@
; Copyright (c) 2009, Apple Inc. All rights reserved.
; Copyright (c) 2011-2012, ARM Ltd. All rights reserved.
;
-; This program and the accompanying materials
-; are licensed and made available under the terms and conditions of the BSD License
-; which accompanies this distribution. The full text of the license may be found at
-; http://opensource.org/licenses/bsd-license.php
-;
-; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+; This program and the accompanying materials
+; are licensed and made available under the terms and conditions of the BSD License
+; which accompanies this distribution. The full text of the license may be found at
+; http://opensource.org/licenses/bsd-license.php
+;
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
;
;**/
- MACRO
- MmioWrite32Macro $Address, $Data
- ldr r1, = ($Address)
- ldr r0, = ($Data)
- str r0, [r1]
- MEND
-
- MACRO
- MmioOr32Macro $Address, $OrData
- ldr r1, =($Address)
- ldr r2, =($OrData)
- ldr r0, [r1]
- orr r0, r0, r2
- str r0, [r1]
- MEND
-
- MACRO
- MmioAnd32Macro $Address, $AndData
- ldr r1, =($Address)
- ldr r2, =($AndData)
- ldr r0, [r1]
- and r0, r0, r2
- str r0, [r1]
- MEND
-
- MACRO
- MmioAndThenOr32Macro $Address, $AndData, $OrData
- ldr r1, =($Address)
- ldr r0, [r1]
- ldr r2, =($AndData)
- and r0, r0, r2
- ldr r2, =($OrData)
- orr r0, r0, r2
- str r0, [r1]
- MEND
-
- MACRO
- MmioWriteFromReg32Macro $Address, $Reg
- ldr r1, =($Address)
- str $Reg, [r1]
- MEND
-
- MACRO
- MmioRead32Macro $Address
- ldr r1, =($Address)
- ldr r0, [r1]
- MEND
-
- MACRO
- MmioReadToReg32Macro $Address, $Reg
- ldr r1, =($Address)
- ldr $Reg, [r1]
- MEND
-
- MACRO
- LoadConstantMacro $Data
- ldr r0, =($Data)
- MEND
-
- MACRO
- LoadConstantToRegMacro $Data, $Reg
- ldr $Reg, =($Data)
- MEND
-
MACRO
- GetCorePositionFromMpId $Pos, $MpId, $Tmp
- lsr $Pos, $MpId, #6
- and $Tmp, $MpId, #3
- add $Pos, $Pos, $Tmp
+ adrll $Reg, $Symbol
+ add $Reg, pc, #-8
+ RELOC R_ARM_ALU_PC_G0_NC, $Symbol
+ add $Reg, $Reg, #-4
+ RELOC R_ARM_ALU_PC_G1_NC, $Symbol
+ add $Reg, $Reg, #0
+ RELOC R_ARM_ALU_PC_G2, $Symbol
MEND
-
- ; The reserved place must be 8-bytes aligned for pushing 64-bit variable on the stack
- ; Note: Global Size will be modified
- MACRO
- SetPrimaryStack $StackTop, $GlobalSize, $Tmp
- and $Tmp, $GlobalSize, #7
- rsbne $Tmp, $Tmp, #8
- add $GlobalSize, $GlobalSize, $Tmp
- sub sp, $StackTop, $GlobalSize
- ; Set all the global variables to 0
- mov $Tmp, sp
- mov $GlobalSize, #0x0
-_SetPrimaryStackInitGlobals
- cmp $Tmp, $StackTop
- beq _SetPrimaryStackEnd
- str $GlobalSize, [$Tmp], #4
- b _SetPrimaryStackInitGlobals
-
-_SetPrimaryStackEnd
+ MACRO
+ ldrl $Reg, $Symbol
+ add $Reg, pc, #-8
+ RELOC R_ARM_ALU_PC_G0_NC, $Symbol
+ add $Reg, $Reg, #-4
+ RELOC R_ARM_ALU_PC_G1_NC, $Symbol
+ ldr $Reg, [$Reg, #0]
+ RELOC R_ARM_LDR_PC_G2, $Symbol
MEND
END