]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Include/Drivers/ArmTrustzone.h
ArmPlatformPkg: Moved 'ArmTrustZoneLib' from ArmPkg/Library to ArmPlatformPkg/Drivers
[mirror_edk2.git] / ArmPlatformPkg / Include / Drivers / ArmTrustzone.h
diff --git a/ArmPlatformPkg/Include/Drivers/ArmTrustzone.h b/ArmPlatformPkg/Include/Drivers/ArmTrustzone.h
new file mode 100644 (file)
index 0000000..da920bd
--- /dev/null
@@ -0,0 +1,88 @@
+/** @file\r
+*\r
+*  Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
+*  \r
+*  This program and the accompanying materials                          \r
+*  are licensed and made available under the terms and conditions of the BSD License         \r
+*  which accompanies this distribution.  The full text of the license may be found at        \r
+*  http://opensource.org/licenses/bsd-license.php                                            \r
+*\r
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+*\r
+**/\r
+\r
+#ifndef __ARM_TRUSTZONE_H__\r
+#define __ARM_TRUSTZONE_H__\r
+\r
+#include <Uefi.h>\r
+\r
+// Setup TZ Protection Controller\r
+#define TZPC_DECPROT_0  0\r
+#define TZPC_DECPROT_1  1\r
+#define TZPC_DECPROT_2  2\r
+#define TZPC_DECPROT_MAX  2\r
+\r
+/**\r
+    FIXME: Need documentation\r
+**/\r
+EFI_STATUS\r
+TZPCSetDecProtBits (\r
+  IN  UINTN TzpcBase,\r
+  IN  UINTN TzpcId,\r
+  IN  UINTN Bits\r
+  );\r
+\r
+/**\r
+    FIXME: Need documentation\r
+**/\r
+EFI_STATUS\r
+TZPCClearDecProtBits (\r
+  IN  UINTN TzpcBase,\r
+  IN  UINTN TzpcId,\r
+  IN  UINTN Bits\r
+  );\r
+\r
+// Setup TZ Address Space Controller\r
+#define TZASC_REGION_ENABLED        1\r
+#define TZASC_REGION_DISABLED       0\r
+#define TZASC_REGION_SIZE_32KB      0xE\r
+#define TZASC_REGION_SIZE_64KB      0xF\r
+#define TZASC_REGION_SIZE_128KB     0x10\r
+#define TZASC_REGION_SIZE_256KB     0x11\r
+#define TZASC_REGION_SIZE_512KB     0x12\r
+#define TZASC_REGION_SIZE_1MB       0x13\r
+#define TZASC_REGION_SIZE_2MB       0x14\r
+#define TZASC_REGION_SIZE_4MB       0x15\r
+#define TZASC_REGION_SIZE_8MB       0x16\r
+#define TZASC_REGION_SIZE_16MB      0x17\r
+#define TZASC_REGION_SIZE_32MB      0x18\r
+#define TZASC_REGION_SIZE_64MB      0x19\r
+#define TZASC_REGION_SIZE_128MB     0x1A\r
+#define TZASC_REGION_SIZE_256MB     0x1B\r
+#define TZASC_REGION_SIZE_512MB     0x1C\r
+#define TZASC_REGION_SIZE_1GB       0x1D\r
+#define TZASC_REGION_SIZE_2GB       0x1E\r
+#define TZASC_REGION_SIZE_4GB       0x1F\r
+#define TZASC_REGION_SECURITY_SR    (1 << 3)\r
+#define TZASC_REGION_SECURITY_SW    (1 << 2)\r
+#define TZASC_REGION_SECURITY_SRW   (TZASC_REGION_SECURITY_SR|TZASC_REGION_SECURITY_SW)\r
+#define TZASC_REGION_SECURITY_NSR   (1 << 1)\r
+#define TZASC_REGION_SECURITY_NSW   1\r
+#define TZASC_REGION_SECURITY_NSRW  (TZASC_REGION_SECURITY_NSR|TZASC_REGION_SECURITY_NSW)\r
+\r
+/**\r
+    FIXME: Need documentation\r
+**/\r
+EFI_STATUS\r
+TZASCSetRegion (\r
+  IN  INTN  TzascBase,\r
+  IN  UINTN RegionId,\r
+  IN  UINTN Enabled,\r
+  IN  UINTN LowAddress,\r
+  IN  UINTN HighAddress,\r
+  IN  UINTN Size,\r
+  IN  UINTN Security\r
+  );\r
+\r
+#endif\r