aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/asm-offsets.c
diff options
context:
space:
mode:
authorFranck Bui-Huu <fbuihuu@gmail.com>2007-02-02 11:41:47 -0500
committerRalf Baechle <ralf@linux-mips.org>2007-02-21 19:50:44 -0500
commit9693a85378b590cc7a4aa2db2174422585c7c8c4 (patch)
tree43d031f8e555d9276e68bdb158bd264c2d260346 /arch/mips/kernel/asm-offsets.c
parent9654640d0af8f2de40ff3807d3695109d3463f54 (diff)
[MIPS] Add basic SMARTMIPS ASE support
This patch adds trivial support for SMARTMIPS extension. This extension is currently implemented by 4KS[CD] CPUs. Basically it saves/restores ACX register, which is part of the SMARTMIPS ASE, when needed. This patch does *not* add any support for Smartmips MMU features. Futhermore this patch does not add explicit support for 4KS[CD] CPUs since they are respectively mips32 and mips32r2 compliant. So with the current processor configuration, a platform that has such CPUs needs to select both configs: CPU_HAS_SMARTMIPS SYS_HAS_CPU_MIPS32_R[12] This is due to the processor configuration which is mixing up all the architecture variants and the processor types. The drawback of this, is that we currently pass '-march=mips32' option to gcc when building a kernel instead of '-march=4ksc' for 4KSC case. This can lead to a kernel image a little bit bigger than required. Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/asm-offsets.c')
-rw-r--r--arch/mips/kernel/asm-offsets.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c
index c0b089d47181..222de465db73 100644
--- a/arch/mips/kernel/asm-offsets.c
+++ b/arch/mips/kernel/asm-offsets.c
@@ -64,6 +64,9 @@ void output_ptreg_defines(void)
64 offset("#define PT_R31 ", struct pt_regs, regs[31]); 64 offset("#define PT_R31 ", struct pt_regs, regs[31]);
65 offset("#define PT_LO ", struct pt_regs, lo); 65 offset("#define PT_LO ", struct pt_regs, lo);
66 offset("#define PT_HI ", struct pt_regs, hi); 66 offset("#define PT_HI ", struct pt_regs, hi);
67#ifdef CONFIG_CPU_HAS_SMARTMIPS
68 offset("#define PT_ACX ", struct pt_regs, acx);
69#endif
67 offset("#define PT_EPC ", struct pt_regs, cp0_epc); 70 offset("#define PT_EPC ", struct pt_regs, cp0_epc);
68 offset("#define PT_BVADDR ", struct pt_regs, cp0_badvaddr); 71 offset("#define PT_BVADDR ", struct pt_regs, cp0_badvaddr);
69 offset("#define PT_STATUS ", struct pt_regs, cp0_status); 72 offset("#define PT_STATUS ", struct pt_regs, cp0_status);
@@ -246,6 +249,7 @@ void output_sc_defines(void)
246 text("/* Linux sigcontext offsets. */"); 249 text("/* Linux sigcontext offsets. */");
247 offset("#define SC_REGS ", struct sigcontext, sc_regs); 250 offset("#define SC_REGS ", struct sigcontext, sc_regs);
248 offset("#define SC_FPREGS ", struct sigcontext, sc_fpregs); 251 offset("#define SC_FPREGS ", struct sigcontext, sc_fpregs);
252 offset("#define SC_ACX ", struct sigcontext, sc_acx);
249 offset("#define SC_MDHI ", struct sigcontext, sc_mdhi); 253 offset("#define SC_MDHI ", struct sigcontext, sc_mdhi);
250 offset("#define SC_MDLO ", struct sigcontext, sc_mdlo); 254 offset("#define SC_MDLO ", struct sigcontext, sc_mdlo);
251 offset("#define SC_PC ", struct sigcontext, sc_pc); 255 offset("#define SC_PC ", struct sigcontext, sc_pc);