| From 8a46a984b291fb9753340b18b804fdaa5c31487f Mon Sep 17 00:00:00 2001 |
| From: Magnus Damm <damm@opensource.se> |
| Date: Tue, 22 Oct 2013 17:53:16 +0100 |
| Subject: ARM: 7863/1: Let arm_add_memory() always use 64-bit arguments |
| |
| The DTB and/or the kernel command line may pass |
| 64-bit addresses regardless of kernel configuration, |
| so update arm_add_memory() to take 64-bit arguments |
| independently of the phys_addr_t size. |
| |
| This allows non-wrapping handling of high memory |
| banks such as the second memory bank of APE6EVM |
| (at 0x2_0000_0000) in case of 32-bit phys_addr_t. |
| |
| Signed-off-by: Magnus Damm <damm@opensource.se> |
| Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> |
| (cherry picked from commit 6a5014aa037495a14ea083b621ed97fd0c3c7e9e) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| arch/arm/include/asm/setup.h | 2 +- |
| arch/arm/kernel/setup.c | 6 +++--- |
| 2 files changed, 4 insertions(+), 4 deletions(-) |
| |
| diff --git a/arch/arm/include/asm/setup.h b/arch/arm/include/asm/setup.h |
| index c50f05609501..8d6a089dfb76 100644 |
| --- a/arch/arm/include/asm/setup.h |
| +++ b/arch/arm/include/asm/setup.h |
| @@ -49,7 +49,7 @@ extern struct meminfo meminfo; |
| #define bank_phys_end(bank) ((bank)->start + (bank)->size) |
| #define bank_phys_size(bank) (bank)->size |
| |
| -extern int arm_add_memory(phys_addr_t start, phys_addr_t size); |
| +extern int arm_add_memory(u64 start, u64 size); |
| extern void early_print(const char *str, ...); |
| extern void dump_machine_table(void); |
| |
| diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c |
| index d62772f49907..23497e4c94c6 100644 |
| --- a/arch/arm/kernel/setup.c |
| +++ b/arch/arm/kernel/setup.c |
| @@ -532,7 +532,7 @@ void __init dump_machine_table(void) |
| /* can't use cpu_relax() here as it may require MMU setup */; |
| } |
| |
| -int __init arm_add_memory(phys_addr_t start, phys_addr_t size) |
| +int __init arm_add_memory(u64 start, u64 size) |
| { |
| struct membank *bank = &meminfo.bank[meminfo.nr_banks]; |
| |
| @@ -582,8 +582,8 @@ int __init arm_add_memory(phys_addr_t start, phys_addr_t size) |
| static int __init early_mem(char *p) |
| { |
| static int usermem __initdata = 0; |
| - phys_addr_t size; |
| - phys_addr_t start; |
| + u64 size; |
| + u64 start; |
| char *endp; |
| |
| /* |
| -- |
| 1.8.5.rc3 |
| |