From: Sascha Hauer <s.hauer@pengutronix.de>
To: barebox@lists.infradead.org
Subject: [PATCH 30/34] ARM: Enable mmu early
Date: Fri, 1 Feb 2013 08:59:43 +0100 [thread overview]
Message-ID: <1359705587-9762-31-git-send-email-s.hauer@pengutronix.de> (raw)
In-Reply-To: <1359705587-9762-1-git-send-email-s.hauer@pengutronix.de>
This optionally enabled the MMU in the PBL or during early startup for
the non PBL case. The regular MMU init code will pickup the already enabled
MMU later. This might complicate debugging early code, so this has been
made optional.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/cpu/start-pbl.c | 8 +++++++-
arch/arm/cpu/start.c | 12 ++++++++++++
common/Kconfig | 9 +++++++++
3 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/arch/arm/cpu/start-pbl.c b/arch/arm/cpu/start-pbl.c
index 0599c57..a825e9f 100644
--- a/arch/arm/cpu/start-pbl.c
+++ b/arch/arm/cpu/start-pbl.c
@@ -32,7 +32,7 @@
#include <asm/pgtable.h>
#include <asm/cache.h>
-#include "mmu.h"
+#include "mmu-early.h"
unsigned long free_mem_ptr;
unsigned long free_mem_end_ptr;
@@ -83,6 +83,12 @@ static noinline __noreturn void __barebox_arm_entry(uint32_t membase,
setup_c();
+ if (IS_ENABLED(CONFIG_MMU_EARLY)) {
+ endmem &= ~0x3fff;
+ endmem -= SZ_16K; /* ttb */
+ mmu_early_enable(membase, memsize, endmem);
+ }
+
endmem -= SZ_128K; /* early malloc */
free_mem_ptr = endmem;
free_mem_end_ptr = free_mem_ptr + SZ_128K;
diff --git a/arch/arm/cpu/start.c b/arch/arm/cpu/start.c
index a621161..d90b244 100644
--- a/arch/arm/cpu/start.c
+++ b/arch/arm/cpu/start.c
@@ -19,6 +19,7 @@
#include <common.h>
#include <init.h>
+#include <sizes.h>
#include <asm/barebox-arm.h>
#include <asm/barebox-arm-head.h>
#include <asm-generic/memory_layout.h>
@@ -26,6 +27,8 @@
#include <asm/cache.h>
#include <memory.h>
+#include "mmu-early.h"
+
unsigned long arm_stack_top;
static noinline __noreturn void __start(uint32_t membase, uint32_t memsize,
@@ -38,6 +41,15 @@ static noinline __noreturn void __start(uint32_t membase, uint32_t memsize,
arm_stack_top = endmem;
endmem -= STACK_SIZE; /* Stack */
+ if (IS_ENABLED(CONFIG_MMU_EARLY)) {
+
+ endmem &= ~0x3fff;
+ endmem -= SZ_16K; /* ttb */
+
+ if (!IS_ENABLED(CONFIG_PBL_IMAGE))
+ mmu_early_enable(membase, memsize, endmem);
+ }
+
start_barebox();
}
diff --git a/common/Kconfig b/common/Kconfig
index 595e91f..3f6c11e 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -114,6 +114,15 @@ config MMU
to enable the data cache which depends on the MMU. See Documentation/mmu.txt
for further information.
+config MMU_EARLY
+ bool "Enable MMU early"
+ depends on ARM
+ depends on MMU
+ default y
+ help
+ This enables the MMU during early startup. This speeds up things during startup
+ of barebox, but may lead to harder to debug code. If unsure say yes here.
+
config HAVE_CONFIGURABLE_TEXT_BASE
bool
--
1.7.10.4
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2013-02-01 8:00 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-01 7:59 [PATCH v2] Add new ARM entry point for barebox Sascha Hauer
2013-02-01 7:59 ` [PATCH 01/34] ARM: Add new " Sascha Hauer
2013-02-01 7:59 ` [PATCH 02/34] ARM: add __noreturn to board_init_lowlevel_return Sascha Hauer
2013-02-01 7:59 ` [PATCH 03/34] ARM i.MX: Use SRAM stack in lowlevel code Sascha Hauer
2013-02-01 7:59 ` [PATCH 04/34] ARM i.MX: Add i.MX specific entry point for barebox Sascha Hauer
2013-02-01 7:59 ` [PATCH 05/34] ARM i.MX: prepare external nand boot for SoC specific entry Sascha Hauer
2013-02-01 7:59 ` [PATCH 06/34] ARM i.MX boards: switch to barebox_arm_entry Sascha Hauer
2013-02-01 7:59 ` [PATCH 07/34] ARM MXS " Sascha Hauer
2013-02-01 7:59 ` [PATCH 08/34] ARM OMAP " Sascha Hauer
2013-02-01 7:59 ` [PATCH 09/34] ARM Samsung " Sascha Hauer
2013-02-01 7:59 ` [PATCH 10/34] ARM PXA " Sascha Hauer
2013-02-01 7:59 ` [PATCH 11/34] ARM ep93xx " Sascha Hauer
2013-02-01 7:59 ` [PATCH 12/34] ARM tegra " Sascha Hauer
2013-02-01 7:59 ` [PATCH 13/34] ARM nomadik " Sascha Hauer
2013-02-01 7:59 ` [PATCH 14/34] ARM versatile " Sascha Hauer
2013-02-01 7:59 ` [PATCH 15/34] ARM netx " Sascha Hauer
2013-02-01 7:59 ` [PATCH 16/34] ARM clep7212: " Sascha Hauer
2013-02-01 7:59 ` [PATCH 17/34] ARM raspberrypi: " Sascha Hauer
2013-02-01 7:59 ` [PATCH 18/34] ARM AT91: switch to barebox_arm_entry part1 Sascha Hauer
2013-02-01 8:11 ` Jean-Christophe PLAGNIOL-VILLARD
2013-02-03 10:13 ` Jean-Christophe PLAGNIOL-VILLARD
2013-02-01 7:59 ` [PATCH 19/34] ARM AT91: switch at91rm9200 board to barebox_arm_entry Sascha Hauer
2013-02-01 7:59 ` [PATCH 20/34] ARM AT91: switch sama5d3 " Sascha Hauer
2013-02-01 7:59 ` [PATCH 21/34] ARM AT91: switch remaining boards " Sascha Hauer
2013-02-01 8:12 ` Jean-Christophe PLAGNIOL-VILLARD
2013-02-02 21:23 ` Jean-Christophe PLAGNIOL-VILLARD
2013-02-01 7:59 ` [PATCH 22/34] ARM: remove now unused MACH_[HAS|DO]_LOWLEVEL_INIT Sascha Hauer
2013-02-01 7:59 ` [PATCH 23/34] ARM start-pbl: make board_init_lowlevel_return static Sascha Hauer
2013-02-01 7:59 ` [PATCH 24/34] ARM start-pbl: call uncompressed binary with arguments Sascha Hauer
2013-02-01 7:59 ` [PATCH 25/34] ARM start: pickup parameters from pbl Sascha Hauer
2013-02-01 7:59 ` [PATCH 26/34] ARM: Setup stack at end of SDRAM Sascha Hauer
2013-02-01 7:59 ` [PATCH 27/34] ARM pbl: Use dynamic parameters for early malloc space Sascha Hauer
2013-02-01 7:59 ` [PATCH 28/34] ARM mmu: pickup already enabled mmu Sascha Hauer
2013-02-01 7:59 ` [PATCH 29/34] ARM: Factor out early mmu code Sascha Hauer
2013-02-01 7:59 ` Sascha Hauer [this message]
2013-02-01 7:59 ` [PATCH 31/34] ARM: Automatically determine malloc size Sascha Hauer
2013-02-01 7:59 ` [PATCH 32/34] generic memory layout: fix deps for [MALLOC|STACK]_BASE Sascha Hauer
2013-02-01 7:59 ` [PATCH 33/34] ARM: disable HAVE_CONFIGURABLE_MEMORY_LAYOUT Sascha Hauer
2013-02-01 7:59 ` [PATCH 34/34] ARM pbl: inline decompress function Sascha Hauer
2013-02-01 8:15 ` [PATCH v2] Add new ARM entry point for barebox Jean-Christophe PLAGNIOL-VILLARD
-- strict thread matches above, loose matches on Subject: below --
2013-01-27 10:46 [PATCH] " Sascha Hauer
2013-01-27 10:46 ` [PATCH 30/34] ARM: Enable mmu early Sascha Hauer
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=1359705587-9762-31-git-send-email-s.hauer@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.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