]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/ArmVirtualizationPkg/Library/ArmVirtualizationPlatformLib/ARM/VirtHelper.asm
ArmPlatformPkg/ArmVirtualizationPkg: Add ArmVirtualizationQemu platform
[mirror_edk2.git] / ArmPlatformPkg / ArmVirtualizationPkg / Library / ArmVirtualizationPlatformLib / ARM / VirtHelper.asm
1 //
2 // Copyright (c) 2011-2014, ARM Limited. All rights reserved.
3 // Copyright (c) 2014, Linaro Limited. All rights reserved.
4 //
5 // This program and the accompanying materials
6 // are licensed and made available under the terms and conditions of the BSD License
7 // which accompanies this distribution. The full text of the license may be found at
8 // http://opensource.org/licenses/bsd-license.php
9 //
10 // THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 //
13
14 #include <AsmMacroIoLib.h>
15 #include <Base.h>
16 #include <Library/ArmLib.h>
17 #include <Library/PcdLib.h>
18 #include <AutoGen.h>
19
20 INCLUDE AsmMacroIoLib.inc
21
22 EXPORT ArmPlatformPeiBootAction
23 EXPORT ArmPlatformIsPrimaryCore
24 EXPORT ArmPlatformGetPrimaryCoreMpId
25 EXPORT ArmPlatformGetCorePosition
26 EXPORT ArmGetPhysAddrTop
27
28 IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCore
29 IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask
30 IMPORT _gPcd_FixedAtBuild_PcdCoreCount
31
32 AREA VirtHelper, CODE, READONLY
33
34 ArmPlatformPeiBootAction FUNCTION
35 bx lr
36 ENDFUNC
37
38 //UINTN
39 //ArmPlatformGetPrimaryCoreMpId (
40 // VOID
41 // );
42 ArmPlatformGetPrimaryCoreMpId FUNCTION
43 LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
44 ldr r0, [r0]
45 bx lr
46 ENDFUNC
47
48 //UINTN
49 //ArmPlatformIsPrimaryCore (
50 // IN UINTN MpId
51 // );
52 ArmPlatformIsPrimaryCore FUNCTION
53 mov r0, #1
54 bx lr
55 ENDFUNC
56
57 //UINTN
58 //ArmPlatformGetCorePosition (
59 // IN UINTN MpId
60 // );
61 // With this function: CorePos = (ClusterId * 4) + CoreId
62 ArmPlatformGetCorePosition FUNCTION
63 and r1, r0, #ARM_CORE_MASK
64 and r0, r0, #ARM_CLUSTER_MASK
65 add r0, r1, r0, LSR #6
66 bx lr
67 ENDFUNC
68
69 //EFI_PHYSICAL_ADDRESS
70 //GetPhysAddrTop (
71 // VOID
72 // );
73 ArmGetPhysAddrTop FUNCTION
74 mov r0, #0x00000000
75 mov r1, #0x10000
76 bx lr
77 ENDFUNC
78
79 END