http://lists.infradead.org/pipermail/linux-arm-kernel/2013-September/198444.html diff -Nur linux-3.9.11.orig/arch/arm/common/sharpsl_param.c linux-3.9.11/arch/arm/common/sharpsl_param.c --- linux-3.9.11.orig/arch/arm/common/sharpsl_param.c 2013-07-21 02:16:17.000000000 +0200 +++ linux-3.9.11/arch/arm/common/sharpsl_param.c 2013-09-18 16:27:10.000000000 +0200 @@ -26,6 +26,7 @@ #ifdef CONFIG_ARCH_SA1100 #define PARAM_BASE 0xe8ffc000 #else +#include #define PARAM_BASE 0xa0000a00 #endif #define MAGIC_CHG(a,b,c,d) ( ( d << 24 ) | ( c << 16 ) | ( b << 8 ) | a ) @@ -41,7 +42,12 @@ void sharpsl_save_param(void) { - memcpy(&sharpsl_param, (void *)PARAM_BASE, sizeof(struct sharpsl_param_info)); +#ifdef CONFIG_ARCH_SA1100 + void *param_start = (void *)PARAM_BASE; +#else + void *param_start = phys_to_virt(PARAM_BASE); +#endif + memcpy(&sharpsl_param, param_start, sizeof(struct sharpsl_param_info)); if (sharpsl_param.comadj_keyword != COMADJ_MAGIC) sharpsl_param.comadj=-1;