diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2006-10-24 02:42:40 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-10-24 21:42:10 -0400 |
commit | 42c4aaadb737e0e672b3fb86b2c41ff59f0fb8bc (patch) | |
tree | 368a26a61085e567357b3974e7799e56069032eb /arch/powerpc/kernel/head_64.S | |
parent | fb20f65a01a97bdf4bb746eecfc24a08561e2648 (diff) |
[POWERPC] Consolidate feature fixup code
There are currently two versions of the functions for applying the
feature fixups, one for CPU features and one for firmware features. In
addition, they are both in assembly and with separate implementations
for 32 and 64 bits. identify_cpu() is also implemented in assembly and
separately for 32 and 64 bits.
This patch replaces them with a pair of C functions. The call sites are
slightly moved on ppc64 as well to be called from C instead of from
assembly, though it's a very small change, and thus shouldn't cause any
problem.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/head_64.S')
-rw-r--r-- | arch/powerpc/kernel/head_64.S | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 645c7f10fb28..f12e3c55520d 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -1580,11 +1580,6 @@ _STATIC(__start_initialization_iSeries) | |||
1580 | li r0,0 | 1580 | li r0,0 |
1581 | stdu r0,-STACK_FRAME_OVERHEAD(r1) | 1581 | stdu r0,-STACK_FRAME_OVERHEAD(r1) |
1582 | 1582 | ||
1583 | LOAD_REG_IMMEDIATE(r3,cpu_specs) | ||
1584 | LOAD_REG_IMMEDIATE(r4,cur_cpu_spec) | ||
1585 | li r5,0 | ||
1586 | bl .identify_cpu | ||
1587 | |||
1588 | LOAD_REG_IMMEDIATE(r2,__toc_start) | 1583 | LOAD_REG_IMMEDIATE(r2,__toc_start) |
1589 | addi r2,r2,0x4000 | 1584 | addi r2,r2,0x4000 |
1590 | addi r2,r2,0x4000 | 1585 | addi r2,r2,0x4000 |
@@ -1964,13 +1959,6 @@ _STATIC(start_here_multiplatform) | |||
1964 | addi r2,r2,0x4000 | 1959 | addi r2,r2,0x4000 |
1965 | add r2,r2,r26 | 1960 | add r2,r2,r26 |
1966 | 1961 | ||
1967 | LOAD_REG_IMMEDIATE(r3, cpu_specs) | ||
1968 | add r3,r3,r26 | ||
1969 | LOAD_REG_IMMEDIATE(r4,cur_cpu_spec) | ||
1970 | add r4,r4,r26 | ||
1971 | mr r5,r26 | ||
1972 | bl .identify_cpu | ||
1973 | |||
1974 | /* Do very early kernel initializations, including initial hash table, | 1962 | /* Do very early kernel initializations, including initial hash table, |
1975 | * stab and slb setup before we turn on relocation. */ | 1963 | * stab and slb setup before we turn on relocation. */ |
1976 | 1964 | ||
@@ -2000,13 +1988,6 @@ _STATIC(start_here_common) | |||
2000 | li r0,0 | 1988 | li r0,0 |
2001 | stdu r0,-STACK_FRAME_OVERHEAD(r1) | 1989 | stdu r0,-STACK_FRAME_OVERHEAD(r1) |
2002 | 1990 | ||
2003 | /* Apply the CPUs-specific fixups (nop out sections not relevant | ||
2004 | * to this CPU | ||
2005 | */ | ||
2006 | li r3,0 | ||
2007 | bl .do_cpu_ftr_fixups | ||
2008 | bl .do_fw_ftr_fixups | ||
2009 | |||
2010 | /* ptr to current */ | 1991 | /* ptr to current */ |
2011 | LOAD_REG_IMMEDIATE(r4, init_task) | 1992 | LOAD_REG_IMMEDIATE(r4, init_task) |
2012 | std r4,PACACURRENT(r13) | 1993 | std r4,PACACURRENT(r13) |