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