powerpc: Add VSX CPU feature
Add a VSX CPU feature. Also add code to detect if VSX is available from the device tree. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Joel Schopp <jschopp@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Родитель
c6e6771b87
Коммит
b962ce9d26
|
@ -609,6 +609,10 @@ static struct feature_property {
|
||||||
{"altivec", 0, CPU_FTR_ALTIVEC, PPC_FEATURE_HAS_ALTIVEC},
|
{"altivec", 0, CPU_FTR_ALTIVEC, PPC_FEATURE_HAS_ALTIVEC},
|
||||||
{"ibm,vmx", 1, CPU_FTR_ALTIVEC, PPC_FEATURE_HAS_ALTIVEC},
|
{"ibm,vmx", 1, CPU_FTR_ALTIVEC, PPC_FEATURE_HAS_ALTIVEC},
|
||||||
#endif /* CONFIG_ALTIVEC */
|
#endif /* CONFIG_ALTIVEC */
|
||||||
|
#ifdef CONFIG_VSX
|
||||||
|
/* Yes, this _really_ is ibm,vmx == 2 to enable VSX */
|
||||||
|
{"ibm,vmx", 2, CPU_FTR_VSX, PPC_FEATURE_HAS_VSX},
|
||||||
|
#endif /* CONFIG_VSX */
|
||||||
#ifdef CONFIG_PPC64
|
#ifdef CONFIG_PPC64
|
||||||
{"ibm,dfp", 1, 0, PPC_FEATURE_HAS_DFP},
|
{"ibm,dfp", 1, 0, PPC_FEATURE_HAS_DFP},
|
||||||
{"ibm,purr", 1, CPU_FTR_PURR, 0},
|
{"ibm,purr", 1, CPU_FTR_PURR, 0},
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#define PPC_FEATURE_HAS_DFP 0x00000400
|
#define PPC_FEATURE_HAS_DFP 0x00000400
|
||||||
#define PPC_FEATURE_POWER6_EXT 0x00000200
|
#define PPC_FEATURE_POWER6_EXT 0x00000200
|
||||||
#define PPC_FEATURE_ARCH_2_06 0x00000100
|
#define PPC_FEATURE_ARCH_2_06 0x00000100
|
||||||
|
#define PPC_FEATURE_HAS_VSX 0x00000080
|
||||||
|
|
||||||
#define PPC_FEATURE_TRUE_LE 0x00000002
|
#define PPC_FEATURE_TRUE_LE 0x00000002
|
||||||
#define PPC_FEATURE_PPC_LE 0x00000001
|
#define PPC_FEATURE_PPC_LE 0x00000001
|
||||||
|
@ -183,6 +184,7 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start,
|
||||||
#define CPU_FTR_DSCR LONG_ASM_CONST(0x0002000000000000)
|
#define CPU_FTR_DSCR LONG_ASM_CONST(0x0002000000000000)
|
||||||
#define CPU_FTR_1T_SEGMENT LONG_ASM_CONST(0x0004000000000000)
|
#define CPU_FTR_1T_SEGMENT LONG_ASM_CONST(0x0004000000000000)
|
||||||
#define CPU_FTR_NO_SLBIE_B LONG_ASM_CONST(0x0008000000000000)
|
#define CPU_FTR_NO_SLBIE_B LONG_ASM_CONST(0x0008000000000000)
|
||||||
|
#define CPU_FTR_VSX LONG_ASM_CONST(0x0010000000000000)
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
|
@ -201,6 +203,17 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start,
|
||||||
#define PPC_FEATURE_HAS_ALTIVEC_COMP 0
|
#define PPC_FEATURE_HAS_ALTIVEC_COMP 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* We only set the VSX features if the kernel was compiled with VSX
|
||||||
|
* support
|
||||||
|
*/
|
||||||
|
#ifdef CONFIG_VSX
|
||||||
|
#define CPU_FTR_VSX_COMP CPU_FTR_VSX
|
||||||
|
#define PPC_FEATURE_HAS_VSX_COMP PPC_FEATURE_HAS_VSX
|
||||||
|
#else
|
||||||
|
#define CPU_FTR_VSX_COMP 0
|
||||||
|
#define PPC_FEATURE_HAS_VSX_COMP 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/* We only set the spe features if the kernel was compiled with spe
|
/* We only set the spe features if the kernel was compiled with spe
|
||||||
* support
|
* support
|
||||||
*/
|
*/
|
||||||
|
@ -404,7 +417,7 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start,
|
||||||
(CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \
|
(CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \
|
||||||
CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_POWER6 | \
|
CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_POWER6 | \
|
||||||
CPU_FTRS_POWER7 | CPU_FTRS_CELL | CPU_FTRS_PA6T | \
|
CPU_FTRS_POWER7 | CPU_FTRS_CELL | CPU_FTRS_PA6T | \
|
||||||
CPU_FTR_1T_SEGMENT)
|
CPU_FTR_1T_SEGMENT | CPU_FTR_VSX)
|
||||||
#else
|
#else
|
||||||
enum {
|
enum {
|
||||||
CPU_FTRS_POSSIBLE =
|
CPU_FTRS_POSSIBLE =
|
||||||
|
|
Загрузка…
Ссылка в новой задаче