|
@@ -785,6 +785,32 @@ void * __init __weak early_init_dt_alloc_memory_arch(u64 size, u64 align)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+bool __init early_init_dt_scan(void *params)
|
|
|
+{
|
|
|
+ if (!params)
|
|
|
+ return false;
|
|
|
+
|
|
|
+ /* Setup flat device-tree pointer */
|
|
|
+ initial_boot_params = params;
|
|
|
+
|
|
|
+ /* check device tree validity */
|
|
|
+ if (be32_to_cpu(initial_boot_params->magic) != OF_DT_HEADER) {
|
|
|
+ initial_boot_params = NULL;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Retrieve various information from the /chosen node */
|
|
|
+ of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line);
|
|
|
+
|
|
|
+ /* Initialize {size,address}-cells info */
|
|
|
+ of_scan_flat_dt(early_init_dt_scan_root, NULL);
|
|
|
+
|
|
|
+ /* Setup memory, calling early_init_dt_add_memory_arch */
|
|
|
+ of_scan_flat_dt(early_init_dt_scan_memory, NULL);
|
|
|
+
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* unflatten_device_tree - create tree of device_nodes from flat blob
|
|
|
*
|