Rev 265 | Rev 422 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 265 | Rev 282 | ||
---|---|---|---|
Line 41... | Line 41... | ||
41 | #include <arch/mm/memory_init.h> |
41 | #include <arch/mm/memory_init.h> |
42 | #include <arch/cpu.h> |
42 | #include <arch/cpu.h> |
43 | #include <print.h> |
43 | #include <print.h> |
44 | #include <arch/cpuid.h> |
44 | #include <arch/cpuid.h> |
45 | #include <arch/acpi/acpi.h> |
45 | #include <arch/acpi/acpi.h> |
- | 46 | #include <panic.h> |
|
46 | 47 | ||
47 | void arch_pre_mm_init(void) |
48 | void arch_pre_mm_init(void) |
48 | { |
49 | { |
49 | struct cpu_info cpuid_s; |
50 | struct cpu_info cpuid_s; |
50 | 51 | ||
51 | cpuid(AMD_CPUID_EXTENDED,&cpuid_s); |
52 | cpuid(AMD_CPUID_EXTENDED,&cpuid_s); |
52 | if (! (cpuid_s.cpuid_edx & (1<<AMD_EXT_NOEXECUTE))) { |
53 | if (! (cpuid_s.cpuid_edx & (1<<AMD_EXT_NOEXECUTE))) |
53 | printf("We do not support NX!!-----------\n"); |
54 | panic("Processor does not support No-execute pages.\n"); |
- | 55 | ||
54 | printf("%X------\n",cpuid_s.cpuid_edx); |
56 | cpuid(INTEL_CPUID_STANDARD,&cpuid_s); |
55 | cpu_halt(); |
57 | if (! (cpuid_s.cpuid_edx & (1<<INTEL_FXSAVE))) |
- | 58 | panic("Processor does not support FXSAVE/FXRESTORE.\n"); |
|
56 | } |
59 | |
- | 60 | if (! (cpuid_s.cpuid_edx & (1<<INTEL_SSE2))) |
|
- | 61 | panic("Processor does not support SSE2 instructions.\n"); |
|
- | 62 | ||
- | 63 | /* Enable No-execute pages */ |
|
57 | set_efer_flag(AMD_NXE_FLAG); |
64 | set_efer_flag(AMD_NXE_FLAG); |
- | 65 | /* Enable FPU */ |
|
- | 66 | cpu_setup_fpu(); |
|
58 | 67 | ||
59 | pm_init(); |
68 | pm_init(); |
60 | 69 | ||
61 | if (config.cpu_active == 1) { |
70 | if (config.cpu_active == 1) { |
62 | bios_init(); |
71 | bios_init(); |