]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ARM Packages: Fixed th 'NS' (Non Secure) bit in the MMU page Table Descriptor
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 2 May 2012 20:00:54 +0000 (20:00 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 2 May 2012 20:00:54 +0000 (20:00 +0000)
The 'NS' bit must only be set in Secure world to define the Non-Secure region
of the Non-Secure World.
This bit must not be set in Non-Secure World.

Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13252 6f19259b-4bc3-4df7-8a09-765794883524

ArmPkg/Include/Chipset/ARM1176JZ-S.h
ArmPkg/Include/Chipset/ArmV7Mmu.h
ArmPkg/Include/Library/ArmLib.h
ArmPkg/Library/ArmLib/Arm11/Arm11LibMem.c
ArmPkg/Library/ArmLib/Arm9/Arm9Lib.c
ArmPkg/Library/ArmLib/ArmV7/ArmV7Mmu.c
ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbMem.c
ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Mem.c
ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/RTSMMem.c
ArmPlatformPkg/Library/EblCmdLib/EblCmdMmu.c

index 8ae43c735d48ff8631f39f089fe33b49d7467433..ba24bcb6262690de1224cf933784a05fc116e67f 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
 \r
   Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\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
@@ -38,8 +39,7 @@
 #define TT_DESCRIPTOR_SECTION_SIZE                              (0x00100000)\r
 \r
 #define TT_DESCRIPTOR_SECTION_NS_MASK                           (1UL << 19)\r
-#define TT_DESCRIPTOR_SECTION_NS_SECURE                         (0UL << 19)\r
-#define TT_DESCRIPTOR_SECTION_NS_NON_SECURE                     (1UL << 19)\r
+#define TT_DESCRIPTOR_SECTION_NS                                (1UL << 19)\r
 \r
 #define TT_DESCRIPTOR_SECTION_NG_MASK                           (1UL << 17)\r
 #define TT_DESCRIPTOR_SECTION_NG_GLOBAL                         (0UL << 17)\r
 #define TT_DESCRIPTOR_SECTION_BASE_ADDRESS_MASK                 (0xFFF00000)\r
 #define TT_DESCRIPTOR_SECTION_BASE_ADDRESS(a)                   (a & TT_DESCRIPTOR_SECTION_BASE_ADDRESS_MASK)\r
 \r
-#define TT_DESCRIPTOR_SECTION_WRITE_BACK(Secure)       (TT_DESCRIPTOR_TYPE_SECTION                                                          | \\r
-                                                        (Secure ? TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )   | \\r
-                                                   TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                   TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                   TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                   TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                   TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_BACK_ALLOC)\r
-#define TT_DESCRIPTOR_SECTION_WRITE_THROUGH(Secure)    (TT_DESCRIPTOR_TYPE_SECTION                                                          | \\r
-                                                        (Secure ? TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )   | \\r
-                                                   TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                   TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                   TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                   TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                   TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC)\r
-#define TT_DESCRIPTOR_SECTION_UNCACHED(Secure)         (TT_DESCRIPTOR_TYPE_SECTION                                                          | \\r
-                                                        (Secure ? TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )   | \\r
-                                                   TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                   TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                   TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                   TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                   TT_DESCRIPTOR_SECTION_CACHE_POLICY_NON_CACHEABLE)\r
+#define TT_DESCRIPTOR_SECTION_WRITE_BACK(NonSecure)             (TT_DESCRIPTOR_TYPE_SECTION                                                          | \\r
+                                                                (NonSecure ? TT_DESCRIPTOR_SECTION_NS : 0)   | \\r
+                                                                TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                                TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                                TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                                TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                                TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_BACK_ALLOC)\r
+#define TT_DESCRIPTOR_SECTION_WRITE_THROUGH(NonSecure)          (TT_DESCRIPTOR_TYPE_SECTION                                                          | \\r
+                                                                (NonSecure ? TT_DESCRIPTOR_SECTION_NS : 0)   | \\r
+                                                                TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                                TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                                TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                                TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                                TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC)\r
+#define TT_DESCRIPTOR_SECTION_UNCACHED(NonSecure)               (TT_DESCRIPTOR_TYPE_SECTION                                                          | \\r
+                                                                (NonSecure ? TT_DESCRIPTOR_SECTION_NS : 0)   | \\r
+                                                                TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                                TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                                TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                                TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                                TT_DESCRIPTOR_SECTION_CACHE_POLICY_NON_CACHEABLE)\r
 \r
 #define CPACR_CP_FULL_ACCESS    0x0FFFFFFF\r
 \r
index 581cd9572ca92aa41027ed6a3391f9066350ec6e..380ab9f229cc033d784b54af848ee54ba35068cf 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 *\r
-*  Copyright (c) 2011, ARM Limited. All rights reserved.\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
@@ -66,8 +66,7 @@
 #define TT_DESCRIPTOR_SECTION_SIZE                              (0x00100000)\r
 \r
 #define TT_DESCRIPTOR_SECTION_NS_MASK                           (1UL << 19)\r
-#define TT_DESCRIPTOR_SECTION_NS_SECURE                         (0UL << 19)\r
-#define TT_DESCRIPTOR_SECTION_NS_NON_SECURE                     (1UL << 19)\r
+#define TT_DESCRIPTOR_SECTION_NS                                (1UL << 19)\r
 \r
 #define TT_DESCRIPTOR_SECTION_NG_MASK                           (1UL << 17)\r
 #define TT_DESCRIPTOR_SECTION_NG_GLOBAL                         (0UL << 17)\r
 #define TT_DESCRIPTOR_PAGE_BASE_ADDRESS(a)                   ((a) & TT_DESCRIPTOR_PAGE_BASE_ADDRESS_MASK)\r
 #define TT_DESCRIPTOR_PAGE_BASE_SHIFT                        12\r
 \r
-#define TT_DESCRIPTOR_SECTION_WRITE_BACK(Secure)       (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
-                                                        ((Secure) ?  TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )    | \\r
-                                                                     TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                                     TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                                     TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_BACK_ALLOC)\r
-#define TT_DESCRIPTOR_SECTION_WRITE_THROUGH(Secure)    (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
-                                                        ((Secure) ?  TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )    | \\r
-                                                                     TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                                     TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                                     TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC)\r
-#define TT_DESCRIPTOR_SECTION_DEVICE(Secure)           (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
-                                                        ((Secure) ?  TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )    | \\r
-                                                                     TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                                     TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                                     TT_DESCRIPTOR_SECTION_CACHE_POLICY_SHAREABLE_DEVICE)\r
-#define TT_DESCRIPTOR_SECTION_UNCACHED(Secure)         (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
-                                                        ((Secure) ?  TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )    | \\r
-                                                                     TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                                     TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                                     TT_DESCRIPTOR_SECTION_CACHE_POLICY_NON_CACHEABLE)\r
+#define TT_DESCRIPTOR_SECTION_WRITE_BACK(NonSecure)         (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
+                                                            ((NonSecure) ?  TT_DESCRIPTOR_SECTION_NS : 0)    | \\r
+                                                            TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                            TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                            TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_BACK_ALLOC)\r
+#define TT_DESCRIPTOR_SECTION_WRITE_THROUGH(NonSecure)      (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
+                                                            ((NonSecure) ?  TT_DESCRIPTOR_SECTION_NS : 0)    | \\r
+                                                            TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                            TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                            TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC)\r
+#define TT_DESCRIPTOR_SECTION_DEVICE(NonSecure)             (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
+                                                            ((NonSecure) ?  TT_DESCRIPTOR_SECTION_NS : 0)    | \\r
+                                                            TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                            TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                            TT_DESCRIPTOR_SECTION_CACHE_POLICY_SHAREABLE_DEVICE)\r
+#define TT_DESCRIPTOR_SECTION_UNCACHED(NonSecure)          (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
+                                                           ((NonSecure) ?  TT_DESCRIPTOR_SECTION_NS : 0)    | \\r
+                                                           TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                           TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                           TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                           TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                           TT_DESCRIPTOR_SECTION_CACHE_POLICY_NON_CACHEABLE)\r
 \r
 #define TT_DESCRIPTOR_PAGE_WRITE_BACK              (TT_DESCRIPTOR_PAGE_TYPE_PAGE                                                           | \\r
                                                         TT_DESCRIPTOR_PAGE_NG_GLOBAL                                                      | \\r
index 9b4a036befe94d7d67db2e66c2138e0bb569e1da..50cd50212fc204e70ae9914aeea2a2ab1799753f 100644 (file)
@@ -1,6 +1,7 @@
 /** @file
 
   Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
+  Copyright (c) 2011 - 2012, ARM Ltd. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -47,15 +48,21 @@ typedef struct {
   UINTN                   InstructionCacheLineLength;
 } ARM_CACHE_INFO;
 
+/**
+ * The UEFI firmware must not use the ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_* attributes.
+ *
+ * The Non Secure memory attribute (ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_*) should only
+ * be used in Secure World to distinguished Secure to Non-Secure memory.
+ */
 typedef enum {
   ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED = 0,
-  ARM_MEMORY_REGION_ATTRIBUTE_SECURE_UNCACHED_UNBUFFERED,
+  ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_UNCACHED_UNBUFFERED,
   ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK,
-  ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_BACK,
+  ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK,
   ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH,
-  ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_THROUGH,
+  ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH,
   ARM_MEMORY_REGION_ATTRIBUTE_DEVICE,
-  ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE
+  ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_DEVICE
 } ARM_MEMORY_REGION_ATTRIBUTES;
 
 #define IS_ARM_MEMORY_REGION_ATTRIBUTES_SECURE(attr) ((UINT32)(attr) & 1)
index 1257be8cf60a67f6e274904e7d6cc2c092cbccd0..86427035ed8e1ba5b36d0bdcda89703ae1aa69c3 100644 (file)
@@ -39,13 +39,13 @@ FillTranslationTable (
     case ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED:
       Attributes = TT_DESCRIPTOR_SECTION_UNCACHED(0);
       break;
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_BACK:
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK:
       Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK(1);
       break;
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_THROUGH:
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH:
       Attributes = TT_DESCRIPTOR_SECTION_WRITE_THROUGH(1);
       break;
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_UNCACHED_UNBUFFERED:
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_UNCACHED_UNBUFFERED:
       Attributes = TT_DESCRIPTOR_SECTION_UNCACHED(1);
       break;
     default:
index 6b698a3356d3ea49888b71d3fcacb2999211a269..7c3a384a976c6c204c9b4c094bee7a9ee9351c86 100644 (file)
@@ -40,9 +40,9 @@ FillTranslationTable (
     case ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED:
       Attributes = TT_DESCRIPTOR_SECTION_UNCACHED_UNBUFFERED;
       break;
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_BACK:
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_THROUGH:
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_UNCACHED_UNBUFFERED:
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK:
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH:
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_UNCACHED_UNBUFFERED:
       ASSERT(0); // Trustzone is not supported on ARMv5
     default:
       Attributes = TT_DESCRIPTOR_SECTION_UNCACHED_UNBUFFERED;
index 69f360c3a66dc0bd2682eebfa9614dfc66bd6d87..a0fbc1ff5c0e69be2ba3f478060b63c243fc2c39 100644 (file)
@@ -41,19 +41,19 @@ PopulateLevel2PageTable (
 \r
   switch (Attributes) {\r
     case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK:\r
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_BACK:\r
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK:\r
       PageAttributes = TT_DESCRIPTOR_PAGE_WRITE_BACK;\r
       break;\r
     case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH:\r
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_THROUGH:\r
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH:\r
       PageAttributes = TT_DESCRIPTOR_PAGE_WRITE_THROUGH;\r
       break;\r
     case ARM_MEMORY_REGION_ATTRIBUTE_DEVICE:\r
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE:\r
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_DEVICE:\r
       PageAttributes = TT_DESCRIPTOR_PAGE_DEVICE;\r
       break;\r
     case ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED:\r
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_UNCACHED_UNBUFFERED:\r
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_UNCACHED_UNBUFFERED:\r
       PageAttributes = TT_DESCRIPTOR_PAGE_UNCACHED;\r
       break;\r
     default:\r
@@ -146,16 +146,16 @@ FillTranslationTable (
     case ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED:\r
       Attributes = TT_DESCRIPTOR_SECTION_UNCACHED(0);\r
       break;\r
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_BACK:\r
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK:\r
       Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK(1);\r
       break;\r
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_THROUGH:\r
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH:\r
       Attributes = TT_DESCRIPTOR_SECTION_WRITE_THROUGH(1);\r
       break;\r
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE:\r
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_DEVICE:\r
       Attributes = TT_DESCRIPTOR_SECTION_DEVICE(1);\r
       break;\r
-    case ARM_MEMORY_REGION_ATTRIBUTE_SECURE_UNCACHED_UNBUFFERED:\r
+    case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_UNCACHED_UNBUFFERED:\r
       Attributes = TT_DESCRIPTOR_SECTION_UNCACHED(1);\r
       break;\r
     default:\r
@@ -245,20 +245,20 @@ ArmConfigureMmu (
 \r
   // Translate the Memory Attributes into Translation Table Register Attributes\r
   if ((TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED) || \r
-      (TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_SECURE_UNCACHED_UNBUFFERED)) {\r
+      (TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_UNCACHED_UNBUFFERED)) {\r
     TTBRAttributes = TTBR_NON_CACHEABLE;\r
   } else if ((TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK) || \r
-      (TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_BACK)) {\r
+      (TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK)) {\r
     TTBRAttributes = TTBR_WRITE_BACK_ALLOC;\r
   } else if ((TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH) || \r
-      (TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_THROUGH)) {\r
+      (TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH)) {\r
     TTBRAttributes = TTBR_WRITE_THROUGH_NO_ALLOC;\r
   } else {\r
     //TODO: We should raise an error here\r
     TTBRAttributes = TTBR_NON_CACHEABLE;\r
   }\r
 \r
-  ArmSetTTBR0 ((VOID *)(UINTN)((TranslationTable & 0xFFFFC000) | (TTBRAttributes & 0x7F)));\r
+  ArmSetTTBR0 ((VOID *)(UINTN)((TranslationTable & ~TRANSLATION_TABLE_SECTION_ALIGNMENT_MASK) | (TTBRAttributes & 0x7F)));\r
     \r
   ArmSetDomainAccessControl (DOMAIN_ACCESS_CONTROL_NONE(15) |\r
                              DOMAIN_ACCESS_CONTROL_NONE(14) |\r
index 66b149c8e4c3000142ee84d175ebf7099f50a0ee..d1a55a8360b2e1a7eb456e80ef7dde13fe8cad39 100644 (file)
@@ -74,13 +74,13 @@ ArmPlatformGetVirtualMemoryMap (
   VirtualMemoryTable[++Index].PhysicalBase = ARM_EB_SMB_MB_ON_CHIP_PERIPH_BASE;\r
   VirtualMemoryTable[Index].VirtualBase  = ARM_EB_SMB_MB_ON_CHIP_PERIPH_BASE;\r
   VirtualMemoryTable[Index].Length       = ARM_EB_SMB_MB_ON_CHIP_PERIPH_SZ;\r
-  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE;\r
+  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 \r
   // SMB CS0-CS1 - NOR Flash 1 & 2\r
   VirtualMemoryTable[++Index].PhysicalBase = ARM_EB_SMB_NOR_BASE;\r
   VirtualMemoryTable[Index].VirtualBase  = ARM_EB_SMB_NOR_BASE;\r
   VirtualMemoryTable[Index].Length       = ARM_EB_SMB_NOR_SZ + ARM_EB_SMB_DOC_SZ;\r
-  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE;\r
+  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 \r
   // SMB CS2 - SRAM\r
   VirtualMemoryTable[++Index].PhysicalBase = ARM_EB_SMB_SRAM_BASE;\r
@@ -92,14 +92,14 @@ ArmPlatformGetVirtualMemoryMap (
   VirtualMemoryTable[++Index].PhysicalBase = ARM_EB_SMB_PERIPH_BASE;\r
   VirtualMemoryTable[Index].VirtualBase  = ARM_EB_SMB_PERIPH_BASE;\r
   VirtualMemoryTable[Index].Length       = ARM_EB_SMB_PERIPH_SZ;\r
-  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE;\r
+  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 \r
   // If a Logic Tile is connected to The ARM Versatile Express Motherboard\r
   if (MmioRead32(ARM_EB_SYS_PROCID1_REG) != 0) {\r
       VirtualMemoryTable[++Index].PhysicalBase = ARM_EB_LOGIC_TILE_BASE;\r
       VirtualMemoryTable[Index].VirtualBase  = ARM_EB_LOGIC_TILE_BASE;\r
       VirtualMemoryTable[Index].Length       = ARM_EB_LOGIC_TILE_SZ;\r
-      VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE;\r
+      VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 \r
       ASSERT((Index + 1) == (MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS + 1));\r
   } else {\r
index 13ec5de8d09c1177995e634a030cdc3e8ae54b7f..ef8fa4191a565dc6203649e8750f60fba5d1d355 100644 (file)
@@ -26,8 +26,6 @@
 // DDR attributes\r
 #define DDR_ATTRIBUTES_CACHED           ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK\r
 #define DDR_ATTRIBUTES_UNCACHED         ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED\r
-#define DDR_ATTRIBUTES_SECURE_CACHED    ARM_MEMORY_REGION_ATTRIBUTE_SECURE_WRITE_BACK\r
-#define DDR_ATTRIBUTES_SECURE_UNCACHED  ARM_MEMORY_REGION_ATTRIBUTE_SECURE_UNCACHED_UNBUFFERED\r
 \r
 /**\r
   Return the Virtual Memory Map of your platform\r
@@ -45,7 +43,6 @@ ArmPlatformGetVirtualMemoryMap (
   )\r
 {\r
   ARM_MEMORY_REGION_ATTRIBUTES  CacheAttributes;\r
-  BOOLEAN                       TrustzoneSupport;\r
   UINTN                         Index = 0;\r
   ARM_MEMORY_REGION_DESCRIPTOR  *VirtualMemoryTable;\r
 \r
@@ -56,14 +53,10 @@ ArmPlatformGetVirtualMemoryMap (
       return;\r
   }\r
 \r
-  // Check if SMC TZASC is enabled. If Trustzone not enabled then all the entries remain in Secure World.\r
-  // As this value can be changed in the Board Configuration file, the UEFI firmware needs to work for both case\r
-  TrustzoneSupport = PcdGetBool (PcdTrustzoneSupport);\r
-\r
   if (FeaturePcdGet(PcdCacheEnable) == TRUE) {\r
-      CacheAttributes = (TrustzoneSupport ? DDR_ATTRIBUTES_CACHED : DDR_ATTRIBUTES_SECURE_CACHED);\r
+      CacheAttributes = DDR_ATTRIBUTES_CACHED;\r
   } else {\r
-      CacheAttributes = (TrustzoneSupport ? DDR_ATTRIBUTES_UNCACHED : DDR_ATTRIBUTES_SECURE_UNCACHED);\r
+      CacheAttributes = DDR_ATTRIBUTES_UNCACHED;\r
   }\r
 \r
   if (FeaturePcdGet(PcdNorFlashRemapping) == FALSE) {\r
@@ -84,13 +77,13 @@ ArmPlatformGetVirtualMemoryMap (
   VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_MB_ON_CHIP_PERIPH_BASE;\r
   VirtualMemoryTable[Index].VirtualBase  = ARM_VE_SMB_MB_ON_CHIP_PERIPH_BASE;\r
   VirtualMemoryTable[Index].Length       = ARM_VE_SMB_MB_ON_CHIP_PERIPH_SZ;\r
-  VirtualMemoryTable[Index].Attributes   = (TrustzoneSupport ? ARM_MEMORY_REGION_ATTRIBUTE_DEVICE : ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE);\r
+  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 \r
   // SMB CS0-CS1 - NOR Flash 1 & 2\r
   VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_NOR0_BASE;\r
   VirtualMemoryTable[Index].VirtualBase  = ARM_VE_SMB_NOR0_BASE;\r
   VirtualMemoryTable[Index].Length       = ARM_VE_SMB_NOR0_SZ + ARM_VE_SMB_NOR1_SZ;\r
-  VirtualMemoryTable[Index].Attributes   = (TrustzoneSupport ? ARM_MEMORY_REGION_ATTRIBUTE_DEVICE : ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE);\r
+  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 \r
   // SMB CS2 - SRAM\r
   VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_SRAM_BASE;\r
@@ -102,14 +95,14 @@ ArmPlatformGetVirtualMemoryMap (
   VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_PERIPH_BASE;\r
   VirtualMemoryTable[Index].VirtualBase  = ARM_VE_SMB_PERIPH_BASE;\r
   VirtualMemoryTable[Index].Length       = ARM_VE_SMB_PERIPH_SZ;\r
-  VirtualMemoryTable[Index].Attributes   = (TrustzoneSupport ? ARM_MEMORY_REGION_ATTRIBUTE_DEVICE : ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE);\r
+  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 \r
   // If a Logic Tile is connected to The ARM Versatile Express Motherboard\r
   if (MmioRead32(ARM_VE_SYS_PROCID1_REG) != 0) {\r
       VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_EXT_AXI_BASE;\r
       VirtualMemoryTable[Index].VirtualBase  = ARM_VE_EXT_AXI_BASE;\r
       VirtualMemoryTable[Index].Length       = ARM_VE_EXT_AXI_SZ;\r
-      VirtualMemoryTable[Index].Attributes   = (TrustzoneSupport ? ARM_MEMORY_REGION_ATTRIBUTE_DEVICE : ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE);\r
+      VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 \r
       ASSERT((Index + 1) == (MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS + 1));\r
   } else {\r
index 4537a71456ba762ccb897071e0096dd3c51b2062..f3e8cafc0f9efed671fce835b2ed2befb8b92d35 100644 (file)
@@ -85,13 +85,13 @@ ArmPlatformGetVirtualMemoryMap (
   VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_ON_CHIP_PERIPH_BASE;\r
   VirtualMemoryTable[Index].VirtualBase  = ARM_VE_ON_CHIP_PERIPH_BASE;\r
   VirtualMemoryTable[Index].Length       = ARM_VE_ON_CHIP_PERIPH_SZ;\r
-  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE;\r
+  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 \r
   // SMB CS0-CS1 - NOR Flash 1 & 2\r
   VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_NOR0_BASE;\r
   VirtualMemoryTable[Index].VirtualBase  = ARM_VE_SMB_NOR0_BASE;\r
   VirtualMemoryTable[Index].Length       = ARM_VE_SMB_NOR0_SZ + ARM_VE_SMB_NOR1_SZ;\r
-  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE;\r
+  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 \r
   // SMB CS2 - SRAM\r
   VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_SRAM_BASE;\r
@@ -103,7 +103,7 @@ ArmPlatformGetVirtualMemoryMap (
   VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_SMB_PERIPH_BASE;\r
   VirtualMemoryTable[Index].VirtualBase  = ARM_VE_SMB_PERIPH_BASE;\r
   VirtualMemoryTable[Index].Length       = 2 * ARM_VE_SMB_PERIPH_SZ;\r
-  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE;
+  VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;
 \r
 //TODO:This should be enabled for final release. Right now, ARM VE RTSM crashes.\r
 //  // If a Logic Tile is connected to The ARM Versatile Express Motherboard\r
@@ -111,7 +111,7 @@ ArmPlatformGetVirtualMemoryMap (
 //      VirtualMemoryTable[++Index].PhysicalBase = ARM_VE_EXT_AXI_BASE;\r
 //      VirtualMemoryTable[Index].VirtualBase  = ARM_VE_EXT_AXI_BASE;\r
 //      VirtualMemoryTable[Index].Length       = ARM_VE_EXT_AXI_SZ;\r
-//      VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_SECURE_DEVICE;\r
+//      VirtualMemoryTable[Index].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
 //\r
 //      ASSERT((Index + 1) == (MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS + 1));\r
 //  } else {\r
index 34776939163f2c8438cdb06566cf29affb4f0f08..138216e9b739237531a2b3c6f29959ff10360253 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 *\r
-*  Copyright (c) 2011, ARM Limited. All rights reserved.\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
@@ -27,7 +27,6 @@
 \r
 // Section\r
 #define TT_DESCRIPTOR_SECTION_STRONGLY_ORDER      (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                                                                    | \\r
-                                                                                                       TT_DESCRIPTOR_SECTION_NS_NON_SECURE                                                                                           | \\r
                                                                                                        TT_DESCRIPTOR_SECTION_NG_GLOBAL                                                                                                           | \\r
                                                                                                        TT_DESCRIPTOR_SECTION_S_NOT_SHARED                                                                                                        | \\r
                                                                                                        TT_DESCRIPTOR_SECTION_DOMAIN(0)                                                                                                           | \\r