diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2013-09-26 12:35:39 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-09-26 16:21:39 +0100 |
commit | 93483b04e29f959bff29b8e3f707f5c72d8c42c0 (patch) | |
tree | a6287f47215b7880127e663844ab53b8aca4ff4b /xen/include | |
parent | ac5a04eda393de164a03148bfa0ed75b0f68e97d (diff) | |
download | xen-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.h | 7 | ||||
-rw-r--r-- | xen/include/asm-arm/mm.h | 2 |
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 */ |