Initialize Page Attribute Table
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
This commit is contained in:
parent
55cdae7c83
commit
5eaf7d63a3
@ -53,6 +53,14 @@
|
||||
/* Initial MXCSR control */
|
||||
#define INITIAL_MXCSR 0x1F80
|
||||
|
||||
/* Page Attributes Table types */
|
||||
#define PAT_TYPE_STRONG_UC 0ULL
|
||||
#define PAT_TYPE_USWC 1ULL
|
||||
#define PAT_TYPE_WT 4ULL
|
||||
#define PAT_TYPE_WP 5ULL
|
||||
#define PAT_TYPE_WB 6ULL
|
||||
#define PAT_TYPE_WEAK_UC 7ULL
|
||||
|
||||
/* Segment defintions */
|
||||
#define SEGMENT_CS 0x2E
|
||||
#define SEGMENT_DS 0x3E
|
||||
@ -66,6 +74,7 @@
|
||||
#define X86_MSR_SYSENTER_ESP 0x00000175
|
||||
#define X86_MSR_SYSENTER_EIP 0x00000176
|
||||
#define X86_MSR_POWER_CONTROL 0x000001FC
|
||||
#define X86_MSR_PAT 0x00000277
|
||||
#define X86_MSR_EFER 0xC0000080
|
||||
#define X86_MSR_STAR 0xC0000081
|
||||
#define X86_MSR_LSTAR 0xC0000082
|
||||
|
@ -12,11 +12,11 @@
|
||||
#include <xtdefs.h>
|
||||
|
||||
|
||||
/* Architecture-related enumeration lists forward references */
|
||||
/* Architecture-specific enumeration lists forward references */
|
||||
typedef enum _CPUID_FEATURES CPUID_FEATURES, *PCPUID_FEATURES;
|
||||
typedef enum _CPUID_REQUESTS CPUID_REQUESTS, *PCPUID_REQUESTS;
|
||||
|
||||
/* Architecture-related structures forward references */
|
||||
/* Architecture-specific structures forward references */
|
||||
typedef struct _CONTEXT CONTEXT, *PCONTEXT;
|
||||
typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS;
|
||||
typedef struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
||||
|
@ -12,11 +12,11 @@
|
||||
#include <xtdefs.h>
|
||||
|
||||
|
||||
/* Architecture-related enumeration lists forward references */
|
||||
/* Architecture-specific enumeration lists forward references */
|
||||
typedef enum _CPUID_FEATURES CPUID_FEATURES, *PCPUID_FEATURES;
|
||||
typedef enum _CPUID_REQUESTS CPUID_REQUESTS, *PCPUID_REQUESTS;
|
||||
|
||||
/* Architecture-related structures forward references */
|
||||
/* Architecture-specific structures forward references */
|
||||
typedef struct _CONTEXT CONTEXT, *PCONTEXT;
|
||||
typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS;
|
||||
typedef struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
||||
|
@ -209,6 +209,8 @@ XTAPI
|
||||
VOID
|
||||
ArpInitializeProcessorRegisters(VOID)
|
||||
{
|
||||
ULONGLONG PatAttributes;
|
||||
|
||||
/* Enable FXSAVE restore */
|
||||
ArWriteControlRegister(4, ArReadControlRegister(4) | CR4_FXSR);
|
||||
|
||||
@ -247,6 +249,11 @@ ArpInitializeProcessorRegisters(VOID)
|
||||
|
||||
/* Enable No-Execute (NXE) in EFER MSR */
|
||||
ArWriteModelSpecificRegister(X86_MSR_EFER, ArReadModelSpecificRegister(X86_MSR_EFER) | X86_MSR_EFER_NXE);
|
||||
|
||||
/* Initialize Page Attribute Table */
|
||||
PatAttributes = (PAT_TYPE_WB << 0) | (PAT_TYPE_USWC << 8) | (PAT_TYPE_WEAK_UC << 16) | (PAT_TYPE_STRONG_UC << 24) |
|
||||
(PAT_TYPE_WB << 32) | (PAT_TYPE_USWC << 40) | (PAT_TYPE_WEAK_UC << 48) | (PAT_TYPE_STRONG_UC << 56);
|
||||
ArWriteModelSpecificRegister(X86_MSR_PAT, PatAttributes);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user