arch/x86/include/asm/required-features.h
changeset 0 aa628870c1d3
equal deleted inserted replaced
-1:000000000000 0:aa628870c1d3
       
     1 #ifndef _ASM_X86_REQUIRED_FEATURES_H
       
     2 #define _ASM_X86_REQUIRED_FEATURES_H
       
     3 
       
     4 /* Define minimum CPUID feature set for kernel These bits are checked
       
     5    really early to actually display a visible error message before the
       
     6    kernel dies.  Make sure to assign features to the proper mask!
       
     7 
       
     8    Some requirements that are not in CPUID yet are also in the
       
     9    CONFIG_X86_MINIMUM_CPU_FAMILY which is checked too.
       
    10 
       
    11    The real information is in arch/x86/Kconfig.cpu, this just converts
       
    12    the CONFIGs into a bitmask */
       
    13 
       
    14 #ifndef CONFIG_MATH_EMULATION
       
    15 # define NEED_FPU	(1<<(X86_FEATURE_FPU & 31))
       
    16 #else
       
    17 # define NEED_FPU	0
       
    18 #endif
       
    19 
       
    20 #if defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64)
       
    21 # define NEED_PAE	(1<<(X86_FEATURE_PAE & 31))
       
    22 #else
       
    23 # define NEED_PAE	0
       
    24 #endif
       
    25 
       
    26 #ifdef CONFIG_X86_CMPXCHG64
       
    27 # define NEED_CX8	(1<<(X86_FEATURE_CX8 & 31))
       
    28 #else
       
    29 # define NEED_CX8	0
       
    30 #endif
       
    31 
       
    32 #if defined(CONFIG_X86_CMOV) || defined(CONFIG_X86_64)
       
    33 # define NEED_CMOV	(1<<(X86_FEATURE_CMOV & 31))
       
    34 #else
       
    35 # define NEED_CMOV	0
       
    36 #endif
       
    37 
       
    38 #ifdef CONFIG_X86_USE_3DNOW
       
    39 # define NEED_3DNOW	(1<<(X86_FEATURE_3DNOW & 31))
       
    40 #else
       
    41 # define NEED_3DNOW	0
       
    42 #endif
       
    43 
       
    44 #if defined(CONFIG_X86_P6_NOP) || defined(CONFIG_X86_64)
       
    45 # define NEED_NOPL	(1<<(X86_FEATURE_NOPL & 31))
       
    46 #else
       
    47 # define NEED_NOPL	0
       
    48 #endif
       
    49 
       
    50 #ifdef CONFIG_X86_64
       
    51 #define NEED_PSE	0
       
    52 #define NEED_MSR	(1<<(X86_FEATURE_MSR & 31))
       
    53 #define NEED_PGE	(1<<(X86_FEATURE_PGE & 31))
       
    54 #define NEED_FXSR	(1<<(X86_FEATURE_FXSR & 31))
       
    55 #define NEED_XMM	(1<<(X86_FEATURE_XMM & 31))
       
    56 #define NEED_XMM2	(1<<(X86_FEATURE_XMM2 & 31))
       
    57 #define NEED_LM		(1<<(X86_FEATURE_LM & 31))
       
    58 #else
       
    59 #define NEED_PSE	0
       
    60 #define NEED_MSR	0
       
    61 #define NEED_PGE	0
       
    62 #define NEED_FXSR	0
       
    63 #define NEED_XMM	0
       
    64 #define NEED_XMM2	0
       
    65 #define NEED_LM		0
       
    66 #endif
       
    67 
       
    68 #define REQUIRED_MASK0	(NEED_FPU|NEED_PSE|NEED_MSR|NEED_PAE|\
       
    69 			 NEED_CX8|NEED_PGE|NEED_FXSR|NEED_CMOV|\
       
    70 			 NEED_XMM|NEED_XMM2)
       
    71 #define SSE_MASK	(NEED_XMM|NEED_XMM2)
       
    72 
       
    73 #define REQUIRED_MASK1	(NEED_LM|NEED_3DNOW)
       
    74 
       
    75 #define REQUIRED_MASK2	0
       
    76 #define REQUIRED_MASK3	(NEED_NOPL)
       
    77 #define REQUIRED_MASK4	0
       
    78 #define REQUIRED_MASK5	0
       
    79 #define REQUIRED_MASK6	0
       
    80 #define REQUIRED_MASK7	0
       
    81 
       
    82 #endif /* _ASM_X86_REQUIRED_FEATURES_H */