From: Ian Campbell <ian.campbell@citrix.com>
To: xen-devel@lists.xen.org
Cc: Ian Campbell <ian.campbell@citrix.com>
Subject: [PATCH 05/16] arm: move get_paddr_function to arch setup.c from device_tree.c
Date: Mon, 3 Sep 2012 13:30:45 +0000 [thread overview]
Message-ID: <1346679056-8108-5-git-send-email-ian.campbell@citrix.com> (raw)
In-Reply-To: <1346678886.32462.9.camel@zakaz.uk.xensource.com>
It's not realy got any DT functionality in it and its only caller is
setup_pagetables.
Put it here because future patches want to incorporate of the module
layout in memory and I'd like to confine that to setup.c
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
xen/arch/arm/mm.c | 5 +----
xen/arch/arm/setup.c | 35 ++++++++++++++++++++++++++++++++++-
xen/common/device_tree.c | 32 --------------------------------
xen/include/asm-arm/mm.h | 2 +-
xen/include/xen/device_tree.h | 1 -
5 files changed, 36 insertions(+), 39 deletions(-)
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 08bc55b..52bb5c7 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -206,15 +206,12 @@ void unmap_domain_page(const void *va)
/* Boot-time pagetable setup.
* Changes here may need matching changes in head.S */
-void __init setup_pagetables(unsigned long boot_phys_offset)
+void __init setup_pagetables(unsigned long boot_phys_offset, paddr_t xen_paddr)
{
- paddr_t xen_paddr;
unsigned long dest_va;
lpae_t pte, *p;
int i;
- xen_paddr = device_tree_get_xen_paddr();
-
/* Map the destination in the boot misc area. */
dest_va = BOOT_MISC_VIRT_START;
pte = mfn_to_xen_entry(xen_paddr >> PAGE_SHIFT);
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index c4ca270..b466875 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -37,6 +37,7 @@
#include <asm/current.h>
#include <asm/setup.h>
#include <asm/vfp.h>
+#include <asm/early_printk.h>
#include "gic.h"
static __attribute_used__ void init_done(void)
@@ -66,6 +67,38 @@ static void __init processor_id(void)
READ_CP32(ID_ISAR3), READ_CP32(ID_ISAR4), READ_CP32(ID_ISAR5));
}
+/**
+ * get_xen_paddr - get physical address to relocate Xen to
+ *
+ * Xen is relocated to the top of RAM and aligned to a XEN_PADDR_ALIGN
+ * boundary.
+ */
+static paddr_t __init get_xen_paddr(void)
+{
+ struct dt_mem_info *mi = &early_info.mem;
+ paddr_t min_size;
+ paddr_t paddr = 0, t;
+ int i;
+
+ min_size = (_end - _start + (XEN_PADDR_ALIGN-1)) & ~(XEN_PADDR_ALIGN-1);
+
+ /* Find the highest bank with enough space. */
+ for ( i = 0; i < mi->nr_banks; i++ )
+ {
+ if ( mi->bank[i].size >= min_size )
+ {
+ t = mi->bank[i].start + mi->bank[i].size - min_size;
+ if ( t > paddr )
+ paddr = t;
+ }
+ }
+
+ if ( !paddr )
+ early_panic("Not enough memory to relocate Xen\n");
+
+ return paddr;
+}
+
static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
{
paddr_t ram_start;
@@ -155,7 +188,7 @@ void __init start_xen(unsigned long boot_phys_offset,
cmdline_parse(device_tree_bootargs(fdt));
- setup_pagetables(boot_phys_offset);
+ setup_pagetables(boot_phys_offset, get_xen_paddr());
#ifdef EARLY_UART_ADDRESS
/* Map the UART */
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
index 04619f4..3d1f0f4 100644
--- a/xen/common/device_tree.c
+++ b/xen/common/device_tree.c
@@ -273,38 +273,6 @@ size_t __init device_tree_early_init(const void *fdt)
return fdt_totalsize(fdt);
}
-/**
- * device_tree_get_xen_paddr - get physical address to relocate Xen to
- *
- * Xen is relocated to the top of RAM and aligned to a XEN_PADDR_ALIGN
- * boundary.
- */
-paddr_t __init device_tree_get_xen_paddr(void)
-{
- struct dt_mem_info *mi = &early_info.mem;
- paddr_t min_size;
- paddr_t paddr = 0, t;
- int i;
-
- min_size = (_end - _start + (XEN_PADDR_ALIGN-1)) & ~(XEN_PADDR_ALIGN-1);
-
- /* Find the highest bank with enough space. */
- for ( i = 0; i < mi->nr_banks; i++ )
- {
- if ( mi->bank[i].size >= min_size )
- {
- t = mi->bank[i].start + mi->bank[i].size - min_size;
- if ( t > paddr )
- paddr = t;
- }
- }
-
- if ( !paddr )
- early_panic("Not enough memory to relocate Xen\n");
-
- return paddr;
-}
-
/*
* Local variables:
* mode: C
diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
index 6498322..b0e5a67 100644
--- a/xen/include/asm-arm/mm.h
+++ b/xen/include/asm-arm/mm.h
@@ -138,7 +138,7 @@ extern unsigned long max_page;
extern unsigned long total_pages;
/* Boot-time pagetable setup */
-extern void setup_pagetables(unsigned long boot_phys_offset);
+extern void setup_pagetables(unsigned long boot_phys_offset, paddr_t xen_paddr);
/* MMU setup for seccondary CPUS (which already have paging enabled) */
extern void __cpuinit mmu_init_secondary_cpu(void);
/* Set up the xenheap: up to 1GB of contiguous, always-mapped memory.
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index 8e1626c..4d010c0 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -39,7 +39,6 @@ extern struct dt_early_info early_info;
extern void *device_tree_flattened;
size_t device_tree_early_init(const void *fdt);
-paddr_t device_tree_get_xen_paddr(void);
void device_tree_get_reg(const u32 **cell, u32 address_cells, u32 size_cells,
u64 *start, u64 *size);
--
1.7.9.1
next prev parent reply other threads:[~2012-09-03 13:30 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-03 13:28 [PATCH 0/16] arm: support for initial modules (e.g. dom0) and DTB supplied in RAM Ian Campbell
2012-09-03 13:30 ` [PATCH 01/16] arm: Zero the BSS at start of day Ian Campbell
2012-09-06 9:56 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 02/16] Create a raw binary target Ian Campbell
2012-09-06 10:01 ` Tim Deegan
2012-09-06 10:29 ` Ian Campbell
2012-09-03 13:30 ` [PATCH 03/16] arm: make virtual address defines unsigned Ian Campbell
2012-09-06 10:02 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 04/16] arm: handle xenheap which isn't at the start of RAM Ian Campbell
2012-09-06 11:36 ` Tim Deegan
2012-09-03 13:30 ` Ian Campbell [this message]
2012-09-06 11:40 ` [PATCH 05/16] arm: move get_paddr_function to arch setup.c from device_tree.c Tim Deegan
2012-09-03 13:30 ` [PATCH 06/16] arm: parse modules from DT during early boot Ian Campbell
2012-09-06 11:47 ` Tim Deegan
2012-09-06 11:53 ` Ian Campbell
2012-11-30 14:58 ` Stefano Stabellini
2012-09-03 13:30 ` [PATCH 07/16] arm: avoid placing Xen over any modules Ian Campbell
2012-09-06 12:01 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 08/16] arm: really allocate boot frametable pages with 32M alignment Ian Campbell
2012-09-06 12:04 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 09/16] arm: avoid allocating the heaps over modules or xen itself Ian Campbell
2012-09-06 12:08 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 10/16] arm: print a message if multiple banks of memory are present Ian Campbell
2012-09-06 12:31 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 11/16] arm: mark heap and frametable limits as read mostly Ian Campbell
2012-09-06 13:29 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 12/16] arm: const-correctness in virt_to_maddr Ian Campbell
2012-09-06 13:33 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 13/16] device-tree: get_val cannot cope with cells > 2, add a BUG Ian Campbell
2012-09-06 13:35 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 14/16] arm: load dom0 kernel from first boot module Ian Campbell
2012-09-06 13:44 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 15/16] arm: discard boot modules after building domain 0 Ian Campbell
2012-09-06 13:53 ` Tim Deegan
2012-09-06 13:57 ` Ian Campbell
2012-09-06 14:03 ` Tim Deegan
2012-09-03 13:30 ` [PATCH 16/16] arm: use /chosen/module1-args for domain 0 command line Ian Campbell
2012-09-06 13:50 ` Tim Deegan
2012-09-06 13:55 ` Ian Campbell
2012-09-06 13:58 ` Tim Deegan
2012-09-06 13:59 ` Ian Campbell
2012-09-06 14:19 ` David Vrabel
2012-09-06 14:28 ` Ian Campbell
2012-09-06 14:46 ` [PATCH 0/16] arm: support for initial modules (e.g. dom0) and DTB supplied in RAM David Vrabel
2012-09-10 16:12 ` Ian Campbell
2012-09-17 11:39 ` Stefano Stabellini
2012-10-11 14:57 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1346679056-8108-5-git-send-email-ian.campbell@citrix.com \
--to=ian.campbell@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).