void __init plat_mem_setup(void)
 {
+       void *fdtp;
+
        panic_timeout   = 5;
        _machine_restart = (void (*)(char *))nlm_linux_exit;
        _machine_halt   = nlm_linux_exit;
        pm_power_off    = nlm_linux_exit;
+
+       /*
+        * If no FDT pointer is passed in, use the built-in FDT.
+        * device_tree_init() does not handle CKSEG0 pointers in
+        * 64-bit, so convert pointer.
+        */
+       fdtp = (void *)(long)fw_arg0;
+       if (!fdtp)
+               fdtp = __dtb_start;
+       fdtp = phys_to_virt(__pa(fdtp));
+       early_init_devtree(fdtp);
 }
 
 const char *get_system_type(void)
 
 void __init prom_init(void)
 {
-       void *fdtp;
-
        xlp_mmu_init();
        nlm_hal_init();
 
-       /*
-        * If no FDT pointer is passed in, use the built-in FDT.
-        * device_tree_init() does not handle CKSEG0 pointers in
-        * 64-bit, so convert pointer.
-        */
-       fdtp = (void *)(long)fw_arg0;
-       if (!fdtp)
-               fdtp = __dtb_start;
-       fdtp = phys_to_virt(__pa(fdtp));
-       early_init_devtree(fdtp);
-
        nlm_common_ebase = read_c0_ebase() & (~((1 << 12) - 1));
+
 #ifdef CONFIG_SMP
        nlm_wakeup_secondary_cpus(0xffffffff);