diff options
author | Paul Burton <paul.burton@imgtec.com> | 2015-05-24 16:11:42 +0100 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2015-06-21 21:53:22 +0200 |
commit | 6ec127fb3c7754d3dc6614e9744386fbe652927f (patch) | |
tree | a8b9195f3351f800cba73611e2b7da148f8d490d /arch/mips/jz4740 | |
parent | 1237496af309bc0551949418fb06f63d3b1f45b5 (diff) | |
download | op-kernel-dev-6ec127fb3c7754d3dc6614e9744386fbe652927f.zip op-kernel-dev-6ec127fb3c7754d3dc6614e9744386fbe652927f.tar.gz |
MIPS: JZ4740: only detect RAM size if not specified in DT
Allow a devicetree to specify the memory present in the system rather
than probing it from the memory controller. This both saves the probing
for systems where the amount of memory is fixed, and will simplify the
bringup of later Ingenic SoCs where the memory controller register
layout differs.
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/10163/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/jz4740')
-rw-r--r-- | arch/mips/jz4740/Makefile | 2 | ||||
-rw-r--r-- | arch/mips/jz4740/setup.c | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/arch/mips/jz4740/Makefile b/arch/mips/jz4740/Makefile index 7636432..70a9578 100644 --- a/arch/mips/jz4740/Makefile +++ b/arch/mips/jz4740/Makefile @@ -7,6 +7,8 @@ obj-y += prom.o time.o reset.o setup.o \ gpio.o platform.o timer.o serial.o +CFLAGS_setup.o = -I$(src)/../../../scripts/dtc/libfdt + # board specific support obj-$(CONFIG_JZ4740_QI_LB60) += board-qi_lb60.o diff --git a/arch/mips/jz4740/setup.c b/arch/mips/jz4740/setup.c index 8c08d7d..1bed3cb 100644 --- a/arch/mips/jz4740/setup.c +++ b/arch/mips/jz4740/setup.c @@ -18,6 +18,7 @@ #include <linux/io.h> #include <linux/irqchip.h> #include <linux/kernel.h> +#include <linux/libfdt.h> #include <linux/of_fdt.h> #include <linux/of_platform.h> @@ -55,9 +56,14 @@ static void __init jz4740_detect_mem(void) void __init plat_mem_setup(void) { + int offset; + jz4740_reset_init(); - jz4740_detect_mem(); __dt_setup_arch(__dtb_start); + + offset = fdt_path_offset(__dtb_start, "/memory"); + if (offset < 0) + jz4740_detect_mem(); } void __init device_tree_init(void) |