]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Include/Chipset/ArmV7.h
Arm Packages: Fixed coding style/Line endings to follow EDK2 coding convention
[mirror_edk2.git] / ArmPkg / Include / Chipset / ArmV7.h
CommitLineData
2ef2b01e
A
1/** @file\r
2\r
d6ebcab7 3 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
2ef2b01e 4\r
d6ebcab7 5 This program and the accompanying materials\r
2ef2b01e
A
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
5dea9bd6 15#ifndef __ARM_V7_H__\r
16#define __ARM_V7_H__\r
2ef2b01e 17\r
11c20f4e 18#include <Chipset/ArmV7Mmu.h>\r
19\r
2ef2b01e
A
20// Domain Access Control Register\r
21#define DOMAIN_ACCESS_CONTROL_MASK(a) (3UL << (2 * (a)))\r
22#define DOMAIN_ACCESS_CONTROL_NONE(a) (0UL << (2 * (a)))\r
23#define DOMAIN_ACCESS_CONTROL_CLIENT(a) (1UL << (2 * (a)))\r
24#define DOMAIN_ACCESS_CONTROL_RESERVED(a) (2UL << (2 * (a)))\r
25#define DOMAIN_ACCESS_CONTROL_MANAGER(a) (3UL << (2 * (a)))\r
26\r
1bfda055 27// Cortex A9 feature bit definitions\r
28#define A9_FEATURE_PARITY (1<<9)\r
29#define A9_FEATURE_AOW (1<<8)\r
30#define A9_FEATURE_EXCL (1<<7)\r
31#define A9_FEATURE_SMP (1<<6)\r
32#define A9_FEATURE_FOZ (1<<3)\r
33#define A9_FEATURE_DPREF (1<<2)\r
34#define A9_FEATURE_HINT (1<<1)\r
35#define A9_FEATURE_FWD (1<<0)\r
36\r
37// SCU register offsets & masks\r
38#define SCU_CONTROL_OFFSET 0x0\r
39#define SCU_CONFIG_OFFSET 0x4\r
40#define SCU_INVALL_OFFSET 0xC\r
41#define SCU_FILT_START_OFFSET 0x40\r
42#define SCU_FILT_END_OFFSET 0x44\r
43#define SCU_SACR_OFFSET 0x50\r
44#define SCU_SSACR_OFFSET 0x54\r
45\r
46#define SMP_GIC_CPUIF_BASE 0x100\r
47#define SMP_GIC_DIST_BASE 0x1000\r
48\r
11c20f4e 49// CPACR - Coprocessor Access Control Register definitions\r
1bfda055 50#define CPACR_CP_DENIED(cp) 0x00\r
51#define CPACR_CP_PRIV(cp) ((0x1 << ((cp) << 1)) & 0x0FFFFFFF)\r
52#define CPACR_CP_FULL(cp) ((0x3 << ((cp) << 1)) & 0x0FFFFFFF)\r
53#define CPACR_ASEDIS (1 << 31)\r
54#define CPACR_D32DIS (1 << 30)\r
55#define CPACR_CP_FULL_ACCESS 0x0FFFFFFF\r
56\r
11c20f4e 57// NSACR - Non-Secure Access Control Register definitions\r
1bfda055 58#define NSACR_CP(cp) ((1 << (cp)) & 0x3FFF)\r
59#define NSACR_NSD32DIS (1 << 14)\r
60#define NSACR_NSASEDIS (1 << 15)\r
61#define NSACR_PLE (1 << 16)\r
62#define NSACR_TL (1 << 17)\r
63#define NSACR_NS_SMP (1 << 18)\r
64#define NSACR_RFR (1 << 19)\r
65\r
11c20f4e 66// SCR - Secure Configuration Register definitions\r
1bfda055 67#define SCR_NS (1 << 0)\r
68#define SCR_IRQ (1 << 1)\r
69#define SCR_FIQ (1 << 2)\r
70#define SCR_EA (1 << 3)\r
71#define SCR_FW (1 << 4)\r
72#define SCR_AW (1 << 5)\r
73\r
74VOID\r
75EFIAPI\r
76ArmEnableSWPInstruction (\r
77 VOID\r
78 );\r
79\r
80VOID\r
81EFIAPI\r
82ArmWriteNsacr (\r
83 IN UINT32 SetWayFormat\r
84 );\r
85\r
86VOID\r
87EFIAPI\r
88ArmWriteScr (\r
89 IN UINT32 SetWayFormat\r
90 );\r
91\r
92VOID\r
93EFIAPI\r
94ArmWriteVMBar (\r
95 IN UINT32 SetWayFormat\r
96 );\r
97\r
98VOID\r
99EFIAPI\r
100ArmWriteVBar (\r
101 IN UINT32 SetWayFormat\r
102 );\r
103\r
104UINT32\r
105EFIAPI\r
106ArmReadVBar (\r
107 VOID\r
108 );\r
109\r
110VOID\r
111EFIAPI\r
112ArmWriteCPACR (\r
113 IN UINT32 SetWayFormat\r
114 );\r
115\r
116VOID\r
117EFIAPI\r
118ArmEnableVFP (\r
119 VOID\r
120 );\r
121\r
122VOID\r
123EFIAPI\r
124ArmCallWFI (\r
125 VOID\r
126 );\r
127\r
128VOID\r
129EFIAPI\r
130ArmInvalidScu (\r
131 VOID\r
132 );\r
133\r
1bfda055 134UINTN\r
135EFIAPI\r
136ArmGetScuBaseAddress (\r
137 VOID\r
138 );\r
139\r
140UINT32\r
141EFIAPI\r
9e2b420e 142ArmIsScuEnable (\r
1bfda055 143 VOID\r
144 );\r
145\r
146VOID\r
147EFIAPI\r
148ArmWriteAuxCr (\r
149 IN UINT32 Bit\r
150 );\r
151\r
152UINT32\r
153EFIAPI\r
154ArmReadAuxCr (\r
155 VOID\r
156 );\r
157\r
158VOID\r
159EFIAPI\r
160ArmSetAuxCrBit (\r
161 IN UINT32 Bits\r
162 );\r
163\r
164VOID\r
165EFIAPI\r
166ArmSetupSmpNonSecure (\r
167 IN UINTN CoreId\r
168 );\r
169\r
1bfda055 170UINTN \r
171EFIAPI\r
9e2b420e 172ArmReadCbar (\r
173 VOID\r
174 );\r
1bfda055 175\r
176VOID\r
177EFIAPI\r
9e2b420e 178ArmInvalidateInstructionAndDataTlb (\r
179 VOID\r
180 );\r
1bfda055 181\r
182\r
183UINTN\r
184EFIAPI\r
9e2b420e 185ArmReadMpidr (\r
186 VOID\r
187 );\r
1bfda055 188\r
0530bfe3 189UINTN\r
190EFIAPI\r
9e2b420e 191ArmReadTpidrurw (\r
192 VOID\r
193 );\r
0530bfe3 194\r
0530bfe3 195VOID\r
196EFIAPI\r
9e2b420e 197ArmWriteTpidrurw (\r
198 UINTN Value\r
199 );\r
0530bfe3 200\r
5dea9bd6 201#endif // __ARM_V7_H__\r