Subversion Repositories HelenOS-historic

Rev

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();