ralink: Introduce fw_passed_dtb to arch/mips/ralink
authorTobias Wolf <dev-NTEO@vplace.de>
Tue, 13 Dec 2016 10:46:41 +0000 (11:46 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 3 Jan 2017 15:34:43 +0000 (16:34 +0100)
This patch adds fw_passed_dtb to arch/mips/ralink to support
CONFIG_MIPS_RAW_APPENDED_DTB. Furthermore it adds a check that __dtb_start is
not the same address as __dtb_end.

Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
Acked-by: John Crispin <john@phrozen.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14662/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/ralink/of.c

index 0aa67a2d0ae6e015f4111793f73b66f6fecce936..4c843e039b96fa6e5ee7dce6e1e73766001ae783 100644 (file)
@@ -66,13 +66,21 @@ static int __init early_init_dt_find_memory(unsigned long node,
 
 void __init plat_mem_setup(void)
 {
+       void *dtb = NULL;
+
        set_io_port_base(KSEG1);
 
        /*
         * Load the builtin devicetree. This causes the chosen node to be
-        * parsed resulting in our memory appearing
+        * parsed resulting in our memory appearing. fw_passed_dtb is used
+        * by CONFIG_MIPS_APPENDED_RAW_DTB as well.
         */
-       __dt_setup_arch(__dtb_start);
+       if (fw_passed_dtb)
+               dtb = (void *)fw_passed_dtb;
+       else if (__dtb_start != __dtb_end)
+               dtb = (void *)__dtb_start;
+
+       __dt_setup_arch(dtb);
 
        of_scan_flat_dt(early_init_dt_find_memory, NULL);
        if (memory_dtb)