powerpc/64: Move the content of setup_system() to setup_arch()
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 5 Jul 2016 05:04:09 +0000 (15:04 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 21 Jul 2016 09:14:29 +0000 (19:14 +1000)
And kill setup_system().

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/head_64.S
arch/powerpc/kernel/setup_64.c

index 064cd93..f765b04 100644 (file)
@@ -941,7 +941,7 @@ start_here_multiplatform:
        mtspr   SPRN_SRR1,r4
        RFI
        b       .       /* prevent speculative execution */
-       
+
        /* This is where all platforms converge execution */
 
 start_here_common:
@@ -951,9 +951,6 @@ start_here_common:
        /* Load the TOC (virtual address) */
        ld      r2,PACATOC(r13)
 
-       /* Do more system initializations in virtual mode */
-       bl      setup_system
-
        /* Mark interrupts soft and hard disabled (they might be enabled
         * in the PACA when doing hotplug)
         */
index aca215d..61c3e6c 100644 (file)
@@ -512,78 +512,6 @@ static __init void print_system_info(void)
        pr_info("-----------------------------------------------------\n");
 }
 
-/*
- * Do some initial setup of the system.  The parameters are those which 
- * were passed in from the bootloader.
- */
-void __init setup_system(void)
-{
-       DBG(" -> setup_system()\n");
-
-       /*
-        * Unflatten the device-tree passed by prom_init or kexec
-        */
-       unflatten_device_tree();
-
-       /*
-        * Fill the ppc64_caches & systemcfg structures with informations
-        * retrieved from the device-tree.
-        */
-       initialize_cache_info();
-
-#ifdef CONFIG_PPC_RTAS
-       /*
-        * Initialize RTAS if available
-        */
-       rtas_initialize();
-#endif /* CONFIG_PPC_RTAS */
-
-       /*
-        * Check if we have an initrd provided via the device-tree
-        */
-       check_for_initrd();
-
-       /* Probe the machine type */
-       probe_machine();
-
-       /*
-        * We can discover serial ports now since the above did setup the
-        * hash table management for us, thus ioremap works. We do that early
-        * so that further code can be debugged
-        */
-       find_legacy_serial_ports();
-
-       /*
-        * Register early console
-        */
-       register_early_udbg_console();
-
-       /*
-        * Initialize xmon
-        */
-       xmon_setup();
-
-       smp_setup_cpu_maps();
-       check_smt_enabled();
-       setup_tlb_core_data();
-
-       /*
-        * Freescale Book3e parts spin in a loop provided by firmware,
-        * so smp_release_cpus() does nothing for them
-        */
-#if defined(CONFIG_SMP)
-       /* Release secondary cpus out of their spinloops at 0x60 now that
-        * we can map physical -> logical CPU ids
-        */
-       smp_release_cpus();
-#endif
-
-       /* Print various info about the machine that has been gathered so far. */
-       print_system_info();
-
-       DBG(" <- setup_system()\n");
-}
-
 /* This returns the limit below which memory accesses to the linear
  * mapping are guarnateed not to cause a TLB or SLB miss. This is
  * used to allocate interrupt or emergency stacks for which our
@@ -695,6 +623,68 @@ void __init setup_arch(char **cmdline_p)
 {
        *cmdline_p = boot_command_line;
 
+       /*
+        * Unflatten the device-tree passed by prom_init or kexec
+        */
+       unflatten_device_tree();
+
+       /*
+        * Fill the ppc64_caches & systemcfg structures with informations
+        * retrieved from the device-tree.
+        */
+       initialize_cache_info();
+
+#ifdef CONFIG_PPC_RTAS
+       /*
+        * Initialize RTAS if available
+        */
+       rtas_initialize();
+#endif /* CONFIG_PPC_RTAS */
+
+       /*
+        * Check if we have an initrd provided via the device-tree
+        */
+       check_for_initrd();
+
+       /* Probe the machine type */
+       probe_machine();
+
+       /*
+        * We can discover serial ports now since the above did setup the
+        * hash table management for us, thus ioremap works. We do that early
+        * so that further code can be debugged
+        */
+       find_legacy_serial_ports();
+
+       /*
+        * Register early console
+        */
+       register_early_udbg_console();
+
+       /*
+        * Initialize xmon
+        */
+       xmon_setup();
+
+       smp_setup_cpu_maps();
+       check_smt_enabled();
+       setup_tlb_core_data();
+
+       /*
+        * Freescale Book3e parts spin in a loop provided by firmware,
+        * so smp_release_cpus() does nothing for them
+        */
+#if defined(CONFIG_SMP)
+       /*
+        * Release secondary cpus out of their spinloops at 0x60 now that
+        * we can map physical -> logical CPU ids
+        */
+       smp_release_cpus();
+#endif
+
+       /* Print various info about the machine that has been gathered so far. */
+       print_system_info();
+
        /* Reserve large chunks of memory for use by CMA for KVM */
        kvm_cma_reserve();