diff --git a/include/asm-sh/auxvec.h b/include/asm-sh/auxvec.h index 4069858f813..a6b9d4f4859 100644 --- a/include/asm-sh/auxvec.h +++ b/include/asm-sh/auxvec.h @@ -6,6 +6,12 @@ * for more of them. */ +/* + * This entry gives some information about the FPU initialization + * performed by the kernel. + */ +#define AT_FPUCW 18 /* Used FPU control word. */ + #ifdef CONFIG_VSYSCALL /* * Only define this in the vsyscall case, the entry point to diff --git a/include/asm-sh/elf.h b/include/asm-sh/elf.h index 9a95f8cb2e1..e00a58cb476 100644 --- a/include/asm-sh/elf.h +++ b/include/asm-sh/elf.h @@ -169,13 +169,22 @@ extern void __kernel_vsyscall; #define VSYSCALL_AUX_ENT #endif /* CONFIG_VSYSCALL */ +#ifdef CONFIG_SH_FPU +#define FPU_AUX_ENT NEW_AUX_ENT(AT_FPUCW, FPSCR_INIT) +#else +#define FPU_AUX_ENT +#endif + extern int l1i_cache_shape, l1d_cache_shape, l2_cache_shape; /* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */ #define ARCH_DLINFO \ do { \ + /* Optional FPU initialization */ \ + FPU_AUX_ENT; \ + \ /* Optional vsyscall entry */ \ - VSYSCALL_AUX_ENT \ + VSYSCALL_AUX_ENT; \ \ /* Cache desc */ \ NEW_AUX_ENT(AT_L1I_CACHESHAPE, l1i_cache_shape); \ diff --git a/include/asm-sh/system.h b/include/asm-sh/system.h index 84592555ba2..772cd1a0a67 100644 --- a/include/asm-sh/system.h +++ b/include/asm-sh/system.h @@ -12,7 +12,7 @@ #include #include -#define AT_VECTOR_SIZE_ARCH 4 /* entries in ARCH_DLINFO */ +#define AT_VECTOR_SIZE_ARCH 5 /* entries in ARCH_DLINFO */ #if defined(CONFIG_CPU_SH4A) || defined(CONFIG_CPU_SH5) #define __icbi() \