Home | History | Annotate | Download | only in Drivers
      1 /** @file
      2 *
      3 *  Copyright (c) 2011-2012, ARM 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 
     15 #ifndef __ARM_TRUSTZONE_H__
     16 #define __ARM_TRUSTZONE_H__
     17 
     18 #include <Uefi.h>
     19 
     20 // Setup TZ Protection Controller
     21 #define TZPC_DECPROT_0  0
     22 #define TZPC_DECPROT_1  1
     23 #define TZPC_DECPROT_2  2
     24 #define TZPC_DECPROT_MAX  2
     25 
     26 /**
     27     FIXME: Need documentation
     28 **/
     29 EFI_STATUS
     30 TZPCSetDecProtBits (
     31   IN  UINTN TzpcBase,
     32   IN  UINTN TzpcId,
     33   IN  UINTN Bits
     34   );
     35 
     36 /**
     37     FIXME: Need documentation
     38 **/
     39 EFI_STATUS
     40 TZPCClearDecProtBits (
     41   IN  UINTN TzpcBase,
     42   IN  UINTN TzpcId,
     43   IN  UINTN Bits
     44   );
     45 
     46 // Setup TZ Address Space Controller
     47 #define TZASC_REGION_ENABLED        1
     48 #define TZASC_REGION_DISABLED       0
     49 #define TZASC_REGION_SIZE_32KB      0xE
     50 #define TZASC_REGION_SIZE_64KB      0xF
     51 #define TZASC_REGION_SIZE_128KB     0x10
     52 #define TZASC_REGION_SIZE_256KB     0x11
     53 #define TZASC_REGION_SIZE_512KB     0x12
     54 #define TZASC_REGION_SIZE_1MB       0x13
     55 #define TZASC_REGION_SIZE_2MB       0x14
     56 #define TZASC_REGION_SIZE_4MB       0x15
     57 #define TZASC_REGION_SIZE_8MB       0x16
     58 #define TZASC_REGION_SIZE_16MB      0x17
     59 #define TZASC_REGION_SIZE_32MB      0x18
     60 #define TZASC_REGION_SIZE_64MB      0x19
     61 #define TZASC_REGION_SIZE_128MB     0x1A
     62 #define TZASC_REGION_SIZE_256MB     0x1B
     63 #define TZASC_REGION_SIZE_512MB     0x1C
     64 #define TZASC_REGION_SIZE_1GB       0x1D
     65 #define TZASC_REGION_SIZE_2GB       0x1E
     66 #define TZASC_REGION_SIZE_4GB       0x1F
     67 #define TZASC_REGION_SECURITY_SR    (1 << 3)
     68 #define TZASC_REGION_SECURITY_SW    (1 << 2)
     69 #define TZASC_REGION_SECURITY_SRW   (TZASC_REGION_SECURITY_SR|TZASC_REGION_SECURITY_SW)
     70 #define TZASC_REGION_SECURITY_NSR   (1 << 1)
     71 #define TZASC_REGION_SECURITY_NSW   1
     72 #define TZASC_REGION_SECURITY_NSRW  (TZASC_REGION_SECURITY_NSR|TZASC_REGION_SECURITY_NSW)
     73 
     74 /**
     75     FIXME: Need documentation
     76 **/
     77 EFI_STATUS
     78 TZASCSetRegion (
     79   IN  INTN  TzascBase,
     80   IN  UINTN RegionId,
     81   IN  UINTN Enabled,
     82   IN  UINTN LowAddress,
     83   IN  UINTN HighAddress,
     84   IN  UINTN Size,
     85   IN  UINTN Security
     86   );
     87 
     88 #endif
     89