[PATCH v2 10/28] ARM: mmu: Share code for initial flat mapping creation
Andrey Smirnov
andrew.smirnov at gmail.com
Wed May 16 13:00:18 PDT 2018
Code creating inital 4GiB flat mapping is identical between mmu.c and
mmu-early.c, so move it to mmu.h and share.
Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
---
arch/arm/cpu/mmu-early.c | 4 +---
arch/arm/cpu/mmu.c | 6 +-----
arch/arm/cpu/mmu.h | 9 +++++++++
3 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/arch/arm/cpu/mmu-early.c b/arch/arm/cpu/mmu-early.c
index 136b33c3a..1ff48d1da 100644
--- a/arch/arm/cpu/mmu-early.c
+++ b/arch/arm/cpu/mmu-early.c
@@ -5,7 +5,6 @@
#include <asm/memory.h>
#include <asm/system.h>
#include <asm/cache.h>
-#include <asm/pgtable.h>
#include "mmu.h"
@@ -30,8 +29,7 @@ void mmu_early_enable(unsigned long membase, unsigned long memsize,
set_ttbr(ttb);
set_domain(DOMAIN_MANAGER);
- create_sections(ttb, 0, SZ_4G, PMD_SECT_AP_WRITE |
- PMD_SECT_AP_READ | PMD_TYPE_SECT);
+ create_flat_mapping(ttb);
map_cachable(membase, memsize);
diff --git a/arch/arm/cpu/mmu.c b/arch/arm/cpu/mmu.c
index f02c99f65..5600cfbe2 100644
--- a/arch/arm/cpu/mmu.c
+++ b/arch/arm/cpu/mmu.c
@@ -27,14 +27,12 @@
#include <asm/barebox-arm.h>
#include <asm/system.h>
#include <asm/cache.h>
-#include <asm/pgtable.h>
#include <memory.h>
#include <asm/system_info.h>
#include <asm/sections.h>
#include "mmu.h"
-#define PMD_SECT_DEF_UNCACHED (PMD_SECT_AP_WRITE | PMD_SECT_AP_READ | PMD_TYPE_SECT)
#define PMD_SECT_DEF_CACHED (PMD_SECT_WB | PMD_SECT_DEF_UNCACHED)
static uint32_t *ttb;
@@ -459,9 +457,7 @@ static int mmu_init(void)
set_ttbr(ttb);
set_domain(DOMAIN_MANAGER);
- /* create a flat mapping using 1MiB sections */
- create_sections(ttb, 0, SZ_4G, PMD_SECT_AP_WRITE | PMD_SECT_AP_READ |
- PMD_TYPE_SECT);
+ create_flat_mapping(ttb);
__mmu_cache_flush();
vectors_init();
diff --git a/arch/arm/cpu/mmu.h b/arch/arm/cpu/mmu.h
index 52689359a..87dd17710 100644
--- a/arch/arm/cpu/mmu.h
+++ b/arch/arm/cpu/mmu.h
@@ -1,6 +1,7 @@
#ifndef __ARM_MMU_H
#define __ARM_MMU_H
+#include <asm/pgtable.h>
#include <linux/sizes.h>
#ifdef CONFIG_MMU
@@ -49,4 +50,12 @@ __create_sections(uint32_t *ttb, unsigned long first,
})
+#define PMD_SECT_DEF_UNCACHED (PMD_SECT_AP_WRITE | PMD_SECT_AP_READ | PMD_TYPE_SECT)
+
+static inline void create_flat_mapping(uint32_t *ttb)
+{
+ /* create a flat mapping using 1MiB sections */
+ create_sections(ttb, 0, SZ_4G, PMD_SECT_DEF_UNCACHED);
+}
+
#endif /* __ARM_MMU_H */
--
2.17.0
More information about the barebox
mailing list