]> 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 d68b334e2aab32c7bfc96b59442e4672a7c02011..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,12 +151,19 @@ Cp15CacheInfo (
   VOID
   );
 
+BOOLEAN
+EFIAPI
+ArmIsMPCore (
+  VOID
+  );
+
 VOID
 EFIAPI
 ArmInvalidateDataCache (
   VOID
   );
 
+
 VOID
 EFIAPI
 ArmCleanInvalidateDataCache (
@@ -223,6 +236,12 @@ ArmDisableMmu (
   VOID
   );
 
+VOID
+EFIAPI
+ArmDisableCachesAndMmu (
+  VOID
+  );
+
 VOID
 EFIAPI
 ArmEnableInterrupts (
@@ -241,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 (
@@ -255,10 +299,16 @@ ArmSetDomainAccessControl (
 
 VOID
 EFIAPI
-ArmSetTranslationTableBaseAddress (
+ArmSetTTBR0 (
   IN  VOID  *TranslationTableBase
   );
 
+VOID *
+EFIAPI
+ArmGetTTBR0BaseAddress (
+  VOID
+  );
+
 VOID
 EFIAPI
 ArmConfigureMmu (
@@ -267,6 +317,12 @@ ArmConfigureMmu (
   OUT UINTN                         *TranslationTableSize  OPTIONAL
   );
   
+BOOLEAN
+EFIAPI
+ArmMmuEnabled (
+  VOID
+  );
+  
 VOID
 EFIAPI
 ArmSwitchProcessorMode (
@@ -291,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__