Merge tag 'renesas-soc-cleanups-for-v3.19' of git://git.kernel.org/pub/scm/linux...
[cascardo/linux.git] / arch / sparc / kernel / head_64.S
index 4fdeb80..3d61fca 100644 (file)
@@ -672,14 +672,12 @@ tlb_fixup_done:
        sethi   %hi(init_thread_union), %g6
        or      %g6, %lo(init_thread_union), %g6
        ldx     [%g6 + TI_TASK], %g4
-       mov     %sp, %l6
 
        wr      %g0, ASI_P, %asi
        mov     1, %g1
        sllx    %g1, THREAD_SHIFT, %g1
        sub     %g1, (STACKFRAME_SZ + STACK_BIAS), %g1
        add     %g6, %g1, %sp
-       mov     0, %fp
 
        /* Set per-cpu pointer initially to zero, this makes
         * the boot-cpu use the in-kernel-image per-cpu areas
@@ -706,44 +704,14 @@ tlb_fixup_done:
         nop
 #endif
 
-       mov     %l6, %o1                        ! OpenPROM stack
        call    prom_init
         mov    %l7, %o0                        ! OpenPROM cif handler
 
-       /* Initialize current_thread_info()->cpu as early as possible.
-        * In order to do that accurately we have to patch up the get_cpuid()
-        * assembler sequences.  And that, in turn, requires that we know
-        * if we are on a Starfire box or not.  While we're here, patch up
-        * the sun4v sequences as well.
+       /* To create a one-register-window buffer between the kernel's
+        * initial stack and the last stack frame we use from the firmware,
+        * do the rest of the boot from a C helper function.
         */
-       call    check_if_starfire
-        nop
-       call    per_cpu_patch
-        nop
-       call    sun4v_patch
-        nop
-
-#ifdef CONFIG_SMP
-       call    hard_smp_processor_id
-        nop
-       cmp     %o0, NR_CPUS
-       blu,pt  %xcc, 1f
-        nop
-       call    boot_cpu_id_too_large
-        nop
-       /* Not reached... */
-
-1:
-#else
-       mov     0, %o0
-#endif
-       sth     %o0, [%g6 + TI_CPU]
-
-       call    prom_init_report
-        nop
-
-       /* Off we go.... */
-       call    start_kernel
+       call    start_early_boot
         nop
        /* Not reached... */