Commit | Line | Data |
---|---|---|
c7f81c94 AK |
1 | #ifndef _ASM_REQUIRED_FEATURES_H |
2 | #define _ASM_REQUIRED_FEATURES_H 1 | |
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 | |
ec481536 | 6 | kernel dies. Make sure to assign features to the proper mask! |
c7f81c94 AK |
7 | |
8 | Some requirements that are not in CPUID yet are also in the | |
ec481536 | 9 | CONFIG_X86_MINIMUM_CPU_FAMILY which is checked too. |
c7f81c94 AK |
10 | |
11 | The real information is in arch/i386/Kconfig.cpu, this just converts | |
12 | the CONFIGs into a bitmask */ | |
13 | ||
ec481536 PA |
14 | #ifndef CONFIG_MATH_EMULATION |
15 | # define NEED_FPU (1<<(X86_FEATURE_FPU & 31)) | |
16 | #else | |
17 | # define NEED_FPU 0 | |
18 | #endif | |
19 | ||
c7f81c94 | 20 | #ifdef CONFIG_X86_PAE |
ec481536 | 21 | # define NEED_PAE (1<<(X86_FEATURE_PAE & 31)) |
c7f81c94 | 22 | #else |
ec481536 | 23 | # define NEED_PAE 0 |
c7f81c94 AK |
24 | #endif |
25 | ||
26 | #ifdef CONFIG_X86_CMOV | |
ec481536 | 27 | # define NEED_CMOV (1<<(X86_FEATURE_CMOV & 31)) |
c7f81c94 | 28 | #else |
ec481536 | 29 | # define NEED_CMOV 0 |
c7f81c94 AK |
30 | #endif |
31 | ||
32 | #ifdef CONFIG_X86_CMPXCHG64 | |
ec481536 PA |
33 | # define NEED_CX8 (1<<(X86_FEATURE_CX8 & 31)) |
34 | #else | |
35 | # define NEED_CX8 0 | |
36 | #endif | |
37 | ||
38 | #define REQUIRED_MASK0 (NEED_FPU|NEED_PAE|NEED_CMOV|NEED_CX8) | |
39 | ||
40 | #ifdef CONFIG_X86_USE_3DNOW | |
41 | # define NEED_3DNOW (1<<(X86_FEATURE_3DNOW & 31)) | |
c7f81c94 | 42 | #else |
ec481536 | 43 | # define NEED_3DNOW 0 |
c7f81c94 AK |
44 | #endif |
45 | ||
ec481536 PA |
46 | #define REQUIRED_MASK1 (NEED_3DNOW) |
47 | ||
48 | #define REQUIRED_MASK2 0 | |
49 | #define REQUIRED_MASK3 0 | |
50 | #define REQUIRED_MASK4 0 | |
51 | #define REQUIRED_MASK5 0 | |
52 | #define REQUIRED_MASK6 0 | |
1d67953f | 53 | #define REQUIRED_MASK7 0 |
c7f81c94 AK |
54 | |
55 | #endif |