diff options
author | Magnus Damm <damm@opensource.se> | 2013-10-22 12:53:16 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-10-29 07:06:28 -0400 |
commit | 6a5014aa037495a14ea083b621ed97fd0c3c7e9e (patch) | |
tree | 4da123acd2de19c44db24d4e12004a27805e3638 | |
parent | 1436c1aa626d0bc0e35c5c5231127086e80ab24a (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.h | 2 | ||||
-rw-r--r-- | 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; | |||
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 | ||
52 | extern int arm_add_memory(phys_addr_t start, phys_addr_t size); | 52 | extern int arm_add_memory(u64 start, u64 size); |
53 | extern void early_print(const char *str, ...); | 53 | extern void early_print(const char *str, ...); |
54 | extern void dump_machine_table(void); | 54 | extern 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 | ||
624 | int __init arm_add_memory(phys_addr_t start, phys_addr_t size) | 624 | int __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) | |||
671 | static int __init early_mem(char *p) | 671 | static 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 | /* |