aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2013-09-26 12:35:39 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-09-26 16:21:39 +0100
commit93483b04e29f959bff29b8e3f707f5c72d8c42c0 (patch)
treea6287f47215b7880127e663844ab53b8aca4ff4b /xen/include
parentac5a04eda393de164a03148bfa0ed75b0f68e97d (diff)
downloadxen-93483b04e29f959bff29b8e3f707f5c72d8c42c0.tar.gz
xen-93483b04e29f959bff29b8e3f707f5c72d8c42c0.tar.bz2
xen-93483b04e29f959bff29b8e3f707f5c72d8c42c0.zip
xen/arm: Support dtb /memreserve/ regions
This requires a mapping of the DTB during setup_mm. Previously this was in the BOOT_MISC slot, which is clobbered by setup_pagetables. Split it out into its own slot which can be preserved. Also handle these regions as part of consider_modules() and when adding pages to the heaps to ensure we do not locate any part of Xen or the heaps over them. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'xen/include')
-rw-r--r--xen/include/asm-arm/config.h7
-rw-r--r--xen/include/asm-arm/mm.h2
2 files changed, 6 insertions, 3 deletions
diff --git a/xen/include/asm-arm/config.h b/xen/include/asm-arm/config.h
index 624c73e54f..efeb9525df 100644
--- a/xen/include/asm-arm/config.h
+++ b/xen/include/asm-arm/config.h
@@ -80,10 +80,10 @@
* 0 - 2M Unmapped
* 2M - 4M Xen text, data, bss
* 4M - 6M Fixmap: special-purpose 4K mapping slots
- * 6M - 8M Early boot misc (see below)
+ * 6M - 8M Early boot mapping of FDT
+ * 8M - 10M Early boot misc (see below)
*
* The early boot misc area is used:
- * - in head.S for the DTB for device_tree_early_init().
* - in setup_pagetables() when relocating Xen.
*
* ARM32 layout:
@@ -116,7 +116,8 @@
#define XEN_VIRT_START _AT(vaddr_t,0x00200000)
#define FIXMAP_ADDR(n) (_AT(vaddr_t,0x00400000) + (n) * PAGE_SIZE)
-#define BOOT_MISC_VIRT_START _AT(vaddr_t,0x00600000)
+#define BOOT_FDT_VIRT_START _AT(vaddr_t,0x00600000)
+#define BOOT_MISC_VIRT_START _AT(vaddr_t,0x00800000)
#define HYPERVISOR_VIRT_START XEN_VIRT_START
diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
index 173db1b9c7..0129cd10fa 100644
--- a/xen/include/asm-arm/mm.h
+++ b/xen/include/asm-arm/mm.h
@@ -147,6 +147,8 @@ extern unsigned long total_pages;
/* Boot-time pagetable setup */
extern void setup_pagetables(unsigned long boot_phys_offset, paddr_t xen_paddr);
+/* Remove early mappings */
+extern void remove_early_mappings(void);
/* Allocate and initialise pagetables for a secondary CPU */
extern int __cpuinit init_secondary_pagetables(int cpu);
/* Switch secondary CPUS to its own pagetables and finalise MMU setup */