]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Include/Library/ArmLib.h
ArmPkg: Introduce ArmSetLowVectors/ArmSetHighVectors functions
[mirror_edk2.git] / ArmPkg / Include / Library / ArmLib.h
index 371075b132f2d2f4b685bffc7fea6159a60d2d27..468e663989234fb42a6e0750c60846492a1cbcd0 100644 (file)
@@ -1,8 +1,8 @@
 /** @file
 
-  Copyright (c) 2008-2009 Apple Inc. All rights reserved.<BR>
+  Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
 
-  All rights reserved. This program and the accompanying materials
+  This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
   which accompanies this distribution.  The full text of the license may be found at
   http://opensource.org/licenses/bsd-license.php
@@ -40,12 +40,18 @@ typedef struct {
 } ARM_CACHE_INFO;
 
 typedef enum {
-  ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED,
+  ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED = 0,
+  ARM_MEMORY_REGION_ATTRIBUTE_SECURE_UNCACHED_UNBUFFERED,
   ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK,
+  ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_BACK,
   ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH,
-  ARM_MEMORY_REGION_ATTRIBUTE_DEVICE
+  ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_THROUGH,
+  ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,
+  ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE
 } ARM_MEMORY_REGION_ATTRIBUTES;
 
+#define IS_ARM_MEMORY_REGION_ATTRIBUTES_SECURE(attr) ((UINT32)(attr) & 1)
+
 typedef struct {
   UINT32                        PhysicalBase;
   UINT32                        VirtualBase;
@@ -145,6 +151,12 @@ Cp15CacheInfo (
   VOID
   );
 
+BOOLEAN
+EFIAPI
+ArmIsMPCore (
+  VOID
+  );
+
 VOID
 EFIAPI
 ArmInvalidateDataCache (
@@ -224,6 +236,12 @@ ArmDisableMmu (
   VOID
   );
 
+VOID
+EFIAPI
+ArmDisableCachesAndMmu (
+  VOID
+  );
+
 VOID
 EFIAPI
 ArmEnableInterrupts (
@@ -242,12 +260,37 @@ ArmGetInterruptState (
   VOID
   );
 
+VOID
+EFIAPI
+ArmEnableFiq (
+  VOID
+  );
+
+UINTN
+EFIAPI
+ArmDisableFiq (
+  VOID
+  );
+  
+BOOLEAN
+EFIAPI
+ArmGetFiqState (
+  VOID
+  );
+
 VOID
 EFIAPI
 ArmInvalidateTlb (
   VOID
   );
   
+VOID
+EFIAPI
+ArmUpdateTranslationTableEntry (
+  IN  VOID     *TranslationTableEntry,
+  IN  VOID     *Mva
+  );
+  
 VOID
 EFIAPI
 ArmSetDomainAccessControl (
@@ -256,13 +299,13 @@ ArmSetDomainAccessControl (
 
 VOID
 EFIAPI
-ArmSetTranslationTableBaseAddress (
+ArmSetTTBR0 (
   IN  VOID  *TranslationTableBase
   );
 
 VOID *
 EFIAPI
-ArmGetTranslationTableBaseAddress (
+ArmGetTTBR0BaseAddress (
   VOID
   );
 
@@ -304,4 +347,35 @@ ArmDisableBranchPrediction (
   VOID
   );
 
+VOID
+EFIAPI
+ArmSetLowVectors (
+  VOID
+  );
+
+VOID
+EFIAPI
+ArmSetHighVectors (
+  VOID
+  );
+
+VOID
+EFIAPI
+ArmDataMemoryBarrier (
+  VOID
+  );
+  
+VOID
+EFIAPI
+ArmDataSyncronizationBarrier (
+  VOID
+  );
+  
+VOID
+EFIAPI
+ArmInstructionSynchronizationBarrier (
+  VOID
+  );
+  
+
 #endif // __ARM_LIB__