diff options
-rw-r--r-- | arch/ppc/mach-mpc5xxx/Kconfig | 1 | ||||
-rw-r--r-- | arch/ppc/mach-mpc5xxx/cpu.c | 18 |
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; |