]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Include/Chipset/AArch64.h
ArmPlatformPkg/ArmVExpressPkg: Add processor identifiers for Cortex A12/A7
[mirror_edk2.git] / ArmPkg / Include / Chipset / AArch64.h
CommitLineData
25402f5d
HL
1/** @file\r
2\r
3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
4 Copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>\r
5\r
6 This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10\r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14**/\r
15\r
16#ifndef __AARCH64_H__\r
17#define __AARCH64_H__\r
18\r
19#include <Chipset/AArch64Mmu.h>\r
20#include <Chipset/ArmArchTimer.h>\r
21\r
22// ARM Interrupt ID in Exception Table\r
23#define ARM_ARCH_EXCEPTION_IRQ EXCEPT_AARCH64_IRQ\r
24\r
25// CPACR - Coprocessor Access Control Register definitions\r
26#define CPACR_TTA_EN (1UL << 28)\r
27#define CPACR_FPEN_EL1 (1UL << 20)\r
28#define CPACR_FPEN_FULL (3UL << 20)\r
29#define CPACR_CP_FULL_ACCESS 0x300000\r
30\r
31// Coprocessor Trap Register (CPTR)\r
32#define AARCH64_CPTR_TFP (1 << 10)\r
33\r
34// ID_AA64PFR0 - AArch64 Processor Feature Register 0 definitions\r
35#define AARCH64_PFR0_FP (0xF << 16)\r
36\r
25402f5d
HL
37// SCR - Secure Configuration Register definitions\r
38#define SCR_NS (1 << 0)\r
39#define SCR_IRQ (1 << 1)\r
40#define SCR_FIQ (1 << 2)\r
41#define SCR_EA (1 << 3)\r
42#define SCR_FW (1 << 4)\r
43#define SCR_AW (1 << 5)\r
44\r
45// MIDR - Main ID Register definitions\r
46#define ARM_CPU_TYPE_MASK 0xFFF\r
47#define ARM_CPU_TYPE_AEMv8 0xD0F\r
48#define ARM_CPU_TYPE_A15 0xC0F\r
49#define ARM_CPU_TYPE_A9 0xC09\r
50#define ARM_CPU_TYPE_A5 0xC05\r
51\r
52// Hypervisor Configuration Register\r
53#define ARM_HCR_FMO BIT3\r
54#define ARM_HCR_IMO BIT4\r
55#define ARM_HCR_AMO BIT5\r
56#define ARM_HCR_TGE BIT27\r
57\r
58// AArch64 Exception Level\r
59#define AARCH64_EL3 0xC\r
60#define AARCH64_EL2 0x8\r
61#define AARCH64_EL1 0x4\r
62\r
63#define ARM_VECTOR_TABLE_ALIGNMENT ((1 << 11)-1)\r
64\r
65VOID\r
66EFIAPI\r
67ArmEnableSWPInstruction (\r
68 VOID\r
69 );\r
70\r
71UINTN\r
72EFIAPI\r
73ArmReadCbar (\r
74 VOID\r
75 );\r
76\r
77UINTN\r
78EFIAPI\r
79ArmReadTpidrurw (\r
80 VOID\r
81 );\r
82\r
83VOID\r
84EFIAPI\r
85ArmWriteTpidrurw (\r
86 UINTN Value\r
87 );\r
88\r
25402f5d
HL
89UINTN\r
90EFIAPI\r
91ArmGetTCR (\r
92 VOID\r
93 );\r
94\r
95VOID\r
96EFIAPI\r
97ArmSetTCR (\r
98 UINTN Value\r
99 );\r
100\r
101UINTN\r
102EFIAPI\r
103ArmGetMAIR (\r
104 VOID\r
105 );\r
106\r
107VOID\r
108EFIAPI\r
109ArmSetMAIR (\r
110 UINTN Value\r
111 );\r
112\r
113VOID\r
114EFIAPI\r
115ArmDisableAlignmentCheck (\r
116 VOID\r
117 );\r
118\r
119\r
120VOID\r
121EFIAPI\r
122ArmEnableAlignmentCheck (\r
123 VOID\r
124 );\r
125\r
126VOID\r
127EFIAPI\r
128ArmDisableAllExceptions (\r
129 VOID\r
130 );\r
131\r
132VOID\r
133ArmWriteHcr (\r
134 IN UINTN Hcr\r
135 );\r
136\r
137UINTN\r
138ArmReadCurrentEL (\r
139 VOID\r
140 );\r
141\r
142UINT64\r
143PageAttributeToGcdAttribute (\r
144 IN UINT64 PageAttributes\r
145 );\r
146\r
147UINT64\r
148GcdAttributeToPageAttribute (\r
149 IN UINT64 GcdAttributes\r
150 );\r
151\r
d6dc67ba
OM
152UINTN\r
153ArmWriteCptr (\r
154 IN UINT64 Cptr\r
155 );\r
156\r
25402f5d 157#endif // __AARCH64_H__\r