Messages in this thread Patch in this message | | | From | Paul Cercueil <> | Subject | [PATCH] MIPS: ingenic: Add support for appended devicetree | Date | Thu, 21 Feb 2019 17:38:20 -0300 |
| |
Add support for booting the kernel from an externally-appended devicetree, if no devicetree was built-in.
Signed-off-by: Paul Cercueil <paul@crapouillou.net> --- arch/mips/Kconfig | 2 +- arch/mips/jz4740/setup.c | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index a84c24d894aa..8b7ea9062198 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -391,7 +391,7 @@ config MACH_INGENIC select GPIOLIB select COMMON_CLK select GENERIC_IRQ_CHIP - select BUILTIN_DTB + select BUILTIN_DTB if MIPS_NO_APPENDED_DTB select USE_OF select LIBFDT diff --git a/arch/mips/jz4740/setup.c b/arch/mips/jz4740/setup.c index afb40f8bce96..5c00064937c4 100644 --- a/arch/mips/jz4740/setup.c +++ b/arch/mips/jz4740/setup.c @@ -31,6 +31,7 @@ #define JZ4740_EMC_SDRAM_CTRL 0x80 +extern const char __appended_dtb; static void __init jz4740_detect_mem(void) { @@ -66,15 +67,22 @@ static unsigned long __init get_board_mach_type(const void *fdt) void __init plat_mem_setup(void) { int offset; + void *dtb; jz4740_reset_init(); - __dt_setup_arch(__dtb_start); - offset = fdt_path_offset(__dtb_start, "/memory"); + if (__dtb_start != __dtb_end) + dtb = __dtb_start; + else + dtb = (void *)&__appended_dtb; + + __dt_setup_arch(dtb); + + offset = fdt_path_offset(dtb, "/memory"); if (offset < 0) jz4740_detect_mem(); - mips_machtype = get_board_mach_type(__dtb_start); + mips_machtype = get_board_mach_type(dtb); } void __init device_tree_init(void) -- 2.11.0
| |