[PATCH v2 6/6] x86/pat: Document PAT initializations

From: Toshi Kani
Date: Wed Mar 16 2016 - 19:55:17 EST


Update PAT documentation to describe how PAT is initialized under
various configurations.

Signed-off-by: Toshi Kani <toshi.kani@xxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
---
Documentation/x86/pat.txt | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

diff --git a/Documentation/x86/pat.txt b/Documentation/x86/pat.txt
index 54944c7..f619e1d 100644
--- a/Documentation/x86/pat.txt
+++ b/Documentation/x86/pat.txt
@@ -196,3 +196,35 @@ Another, more verbose way of getting PAT related debug messages is with
"debugpat" boot parameter. With this parameter, various debug messages are
printed to dmesg log.

+PAT Initialization
+------------------
+
+The following table describes how PAT is initialized under various
+configurations. PAT must be set to enable to initialize PAT MSR in order
+to support WC and WT attributes. Otherwise, PAT keeps PAT MSR value set
+by BIOS. Note, Xen enables WC attribute in BIOS setup for guests.
+
+ MTRR PAT Call Sequence PAT State PAT MSR
+ =========================================================
+ E E MTRR -> pat_init() Enable OS
+ E D MTRR -> pat_init() Disable -
+ D E MTRR -> pat_disable() Disable BIOS
+ D D MTRR -> pat_disable() Disable -
+ - np/E nopat() -> pat_disable() Disable BIOS
+ - np/D nopat() -> pat_disable() Disable -
+ E !P/E MTRR -> pat_init() Disable BIOS
+ D !P/E MTRR -> pat_disable() Disable BIOS
+ !M !P/E MTRR stub -> pat_disable() Disable BIOS
+
+ Legend
+ ------------------------------------------------
+ E Feature enabled in CPU
+ D Feature disabled/unsupported in CPU
+ np "nopat" boot option specified
+ !P CONFIG_X86_PAT option unset
+ !M CONFIG_MTRR option unset
+ Enable PAT state set to enable
+ Disable PAT state set to disable
+ OS PAT initializes PAT MSR with OS setup
+ BIOS PAT keeps PAT MSR with BIOS setup
+