]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/xtensa/kernel/setup.c
xtensa: use early_init_dt_scan
[karo-tx-linux.git] / arch / xtensa / kernel / setup.c
index fc31ec1e977dc170fa7d966b0a21a3c9928f7f02..65974a8f41a4b7b2a8899c1734988a8d1e839758 100644 (file)
@@ -219,9 +219,13 @@ static int __init parse_bootparam(const bp_tag_t* tag)
 }
 
 #ifdef CONFIG_OF
+bool __initdata dt_memory_scan = false;
 
 void __init early_init_dt_add_memory_arch(u64 base, u64 size)
 {
+       if (!dt_memory_scan)
+               return;
+
        size &= PAGE_MASK;
        add_sysmem_bank(MEMORY_TYPE_CONVENTIONAL, base, base + size);
 }
@@ -233,20 +237,13 @@ void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align)
 
 void __init early_init_devtree(void *params)
 {
-       /* Setup flat device-tree pointer */
-       initial_boot_params = params;
+       if (sysmem.nr_banks == 0)
+               dt_memory_scan = true;
 
-       /* Retrieve various informations from the /chosen node of the
-        * device-tree, including the platform type, initrd location and
-        * size, TCE reserve, and more ...
-        */
-       if (!command_line[0])
-               of_scan_flat_dt(early_init_dt_scan_chosen, command_line);
+       early_init_dt_scan(params);
 
-       /* Scan memory nodes and rebuild MEMBLOCKs */
-       of_scan_flat_dt(early_init_dt_scan_root, NULL);
-       if (sysmem.nr_banks == 0)
-               of_scan_flat_dt(early_init_dt_scan_memory, NULL);
+       if (!command_line[0])
+               strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
 }
 
 static int __init xtensa_device_probe(void)