summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/ppc/mach-mpc5xxx/Kconfig1
-rw-r--r--arch/ppc/mach-mpc5xxx/cpu.c18
2 files changed, 18 insertions, 1 deletions
diff --git a/arch/ppc/mach-mpc5xxx/Kconfig b/arch/ppc/mach-mpc5xxx/Kconfig
index 1ecce3a56c..180aa32ad1 100644
--- a/arch/ppc/mach-mpc5xxx/Kconfig
+++ b/arch/ppc/mach-mpc5xxx/Kconfig
@@ -32,7 +32,6 @@ config ARCH_MPC5200
config MPC5xxx
bool
depends on MACH_PHYCORE_MPC5200B_TINY
- select HAVE_CONFIGURABLE_MEMORY_LAYOUT
default y
menu "Board specific settings"
diff --git a/arch/ppc/mach-mpc5xxx/cpu.c b/arch/ppc/mach-mpc5xxx/cpu.c
index 42ced9ac54..ab58967aa4 100644
--- a/arch/ppc/mach-mpc5xxx/cpu.c
+++ b/arch/ppc/mach-mpc5xxx/cpu.c
@@ -33,6 +33,8 @@
#include <of.h>
#include <restart.h>
#include <mach/clock.h>
+#include <asm-generic/memory_layout.h>
+#include <memory.h>
int checkcpu (void)
{
@@ -60,6 +62,22 @@ int checkcpu (void)
/* ------------------------------------------------------------------------- */
+static int mpc5xxx_reserve_region(void)
+{
+ struct resource *r;
+
+ /* keep this in sync with the assembler routines setting up the stack */
+ r = request_sdram_region("stack", _text_base - STACK_SIZE, STACK_SIZE);
+ if (r == NULL) {
+ pr_err("Failed to request stack region at: 0x%08lx/0x%08lx\n",
+ _text_base - STACK_SIZE, _text_base - 1);
+ return -EBUSY;
+ }
+
+ return 0;
+}
+coredevice_initcall(mpc5xxx_reserve_region);
+
static void __noreturn mpc5xxx_restart_soc(struct restart_handler *rst)
{
ulong msr;