aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2013-10-22 12:53:16 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2013-10-29 07:06:28 -0400
commit6a5014aa037495a14ea083b621ed97fd0c3c7e9e (patch)
tree4da123acd2de19c44db24d4e12004a27805e3638
parent1436c1aa626d0bc0e35c5c5231127086e80ab24a (diff)
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>
-rw-r--r--arch/arm/include/asm/setup.h2
-rw-r--r--arch/arm/kernel/setup.c6
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;
49#define bank_phys_end(bank) ((bank)->start + (bank)->size) 49#define bank_phys_end(bank) ((bank)->start + (bank)->size)
50#define bank_phys_size(bank) (bank)->size 50#define bank_phys_size(bank) (bank)->size
51 51
52extern int arm_add_memory(phys_addr_t start, phys_addr_t size); 52extern int arm_add_memory(u64 start, u64 size);
53extern void early_print(const char *str, ...); 53extern void early_print(const char *str, ...);
54extern void dump_machine_table(void); 54extern void dump_machine_table(void);
55 55
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index a4852dea088b..5ec4443af08b 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -621,7 +621,7 @@ void __init dump_machine_table(void)
621 /* can't use cpu_relax() here as it may require MMU setup */; 621 /* can't use cpu_relax() here as it may require MMU setup */;
622} 622}
623 623
624int __init arm_add_memory(phys_addr_t start, phys_addr_t size) 624int __init arm_add_memory(u64 start, u64 size)
625{ 625{
626 struct membank *bank = &meminfo.bank[meminfo.nr_banks]; 626 struct membank *bank = &meminfo.bank[meminfo.nr_banks];
627 627
@@ -671,8 +671,8 @@ int __init arm_add_memory(phys_addr_t start, phys_addr_t size)
671static int __init early_mem(char *p) 671static int __init early_mem(char *p)
672{ 672{
673 static int usermem __initdata = 0; 673 static int usermem __initdata = 0;
674 phys_addr_t size; 674 u64 size;
675 phys_addr_t start; 675 u64 start;
676 char *endp; 676 char *endp;
677 677
678 /* 678 /*