summaryrefslogtreecommitdiff
path: root/docs/porting-guide.md
diff options
context:
space:
mode:
authordanh-arm <dan.handley@arm.com>2016-02-01 19:06:03 +0000
committerdanh-arm <dan.handley@arm.com>2016-02-01 19:06:03 +0000
commit9f89feb919b59717abf05c9a7236b55bc422383f (patch)
tree979197b3ee9577a0125104dbdaddef4b30a61318 /docs/porting-guide.md
parent6874e723c4273d986fb8cf0a50da9f09fa9ad39e (diff)
parentef7fb9e48e6425be1efa569e951812902e2c843e (diff)
Merge pull request #504 from sandrine-bailleux/sb/fix-doc-mmap
Porting Guide: Clarify identity-mapping requirement
Diffstat (limited to 'docs/porting-guide.md')
-rw-r--r--docs/porting-guide.md18
1 files changed, 14 insertions, 4 deletions
diff --git a/docs/porting-guide.md b/docs/porting-guide.md
index be9a6946..56ddbb1c 100644
--- a/docs/porting-guide.md
+++ b/docs/porting-guide.md
@@ -72,10 +72,20 @@ either mandatory or optional.
2.1 Common mandatory modifications
----------------------------------
-A platform port must enable the Memory Management Unit (MMU) with identity
-mapped page tables, and enable both the instruction and data caches for each BL
-stage. In ARM standard platforms, each BL stage configures the MMU in
-the platform-specific architecture setup function, `blX_plat_arch_setup()`.
+
+A platform port must enable the Memory Management Unit (MMU) as well as the
+instruction and data caches for each BL stage. Setting up the translation
+tables is the responsibility of the platform port because memory maps differ
+across platforms. A memory translation library (see `lib/aarch64/xlat_helpers.c`
+and `lib/aarch64/xlat_tables.c`) is provided to help in this setup. Note that
+although this library supports non-identity mappings, this is intended only for
+re-mapping peripheral physical addresses and allows platforms with high I/O
+addresses to reduce their virtual address space. All other addresses
+corresponding to code and data must currently use an identity mapping.
+
+In ARM standard platforms, each BL stage configures the MMU in the
+platform-specific architecture setup function, `blX_plat_arch_setup()`, and uses
+an identity mapping for all addresses.
If the build option `USE_COHERENT_MEM` is enabled, each platform can allocate a
block of identity mapped secure memory with Device-nGnRE attributes aligned to