cpu/x86: add paging_set_default_pat() function

Add paging_set_default_pat() which sets up the PAT MSR according
to util/x86/x86_page_tables.go. Using page attribute types require
a matching of the PAT values with the page table entries. This function
is just providing the default PAT MSR value to match against the
utility.

BUG=b:72728953

Change-Id: I7ed34a3565647ffc359ff102d3f6a59fbc93cc22
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/25715
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Justin TerAvest <teravest@chromium.org>
This commit is contained in:
Aaron Durbin
2018-04-17 11:45:32 -06:00
committed by Patrick Georgi
parent d5e4746cf8
commit c82e48d7e4
2 changed files with 35 additions and 0 deletions

View File

@@ -14,8 +14,18 @@ void paging_disable_pae(void);
/* Set/Clear NXE bit in IA32_EFER MSR */
void paging_set_nxe(int enable);
#define PAT_UC 0
#define PAT_WC 1
#define PAT_WT 4
#define PAT_WP 5
#define PAT_WB 6
#define PAT_UC_MINUS 7
#define PAT_ENCODE(type, idx) (((uint64_t)PAT_ ## type) << 8*(idx))
/* Set PAT MSR */
void paging_set_pat(uint64_t pat);
/* Set coreboot default PAT value. */
void paging_set_default_pat(void);
#define MAPPING_ERROR ((void *)0xffffffffUL)
void *map_2M_page(unsigned long page);