|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v4 12/13] xen/arm: mmu: relocate copy_from_paddr() to setup.c
From: Penny Zheng <Penny.Zheng@xxxxxxx>
Function copy_from_paddr() is defined in asm/setup.h, so it is better
to be implemented in setup.c.
Current copy_from_paddr() implementation is mmu-specific, so this
commit moves copy_from_paddr() into mmu/setup.c, and it is also
benefical for us to implement MPU version of copy_from_paddr() in
later commit.
Signed-off-by: Penny Zheng <penny.zheng@xxxxxxx>
Signed-off-by: Wei Chen <wei.chen@xxxxxxx>
Signed-off-by: Henry Wang <Henry.Wang@xxxxxxx>
---
v4:
- No change
v3:
- new commit
---
xen/arch/arm/kernel.c | 27 ---------------------------
xen/arch/arm/mmu/setup.c | 27 +++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 508c54824d..0d433a32e7 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -41,33 +41,6 @@ struct minimal_dtb_header {
#define DTB_MAGIC 0xd00dfeedU
-/**
- * copy_from_paddr - copy data from a physical address
- * @dst: destination virtual address
- * @paddr: source physical address
- * @len: length to copy
- */
-void __init copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
-{
- void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
-
- while (len) {
- unsigned long l, s;
-
- s = paddr & (PAGE_SIZE-1);
- l = min(PAGE_SIZE - s, len);
-
- set_fixmap(FIXMAP_MISC, maddr_to_mfn(paddr), PAGE_HYPERVISOR_WC);
- memcpy(dst, src + s, l);
- clean_dcache_va_range(dst, l);
- clear_fixmap(FIXMAP_MISC);
-
- paddr += l;
- dst += l;
- len -= l;
- }
-}
-
static void __init place_modules(struct kernel_info *info,
paddr_t kernbase, paddr_t kernend)
{
diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
index e05cca3f86..889ada6b87 100644
--- a/xen/arch/arm/mmu/setup.c
+++ b/xen/arch/arm/mmu/setup.c
@@ -329,6 +329,33 @@ void __init setup_mm(void)
}
#endif
+/*
+ * copy_from_paddr - copy data from a physical address
+ * @dst: destination virtual address
+ * @paddr: source physical address
+ * @len: length to copy
+ */
+void __init copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
+{
+ void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
+
+ while (len) {
+ unsigned long l, s;
+
+ s = paddr & (PAGE_SIZE-1);
+ l = min(PAGE_SIZE - s, len);
+
+ set_fixmap(FIXMAP_MISC, maddr_to_mfn(paddr), PAGE_HYPERVISOR_WC);
+ memcpy(dst, src + s, l);
+ clean_dcache_va_range(dst, l);
+ clear_fixmap(FIXMAP_MISC);
+
+ paddr += l;
+ dst += l;
+ len -= l;
+ }
+}
+
/*
* Local variables:
* mode: C
--
2.25.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |