-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdoc.patch
118 lines (112 loc) · 5.88 KB
/
doc.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
--- grub.texi 2019-03-07 23:16:41.936942741 +0100
+++ grub.texi 2019-03-07 23:36:24.682714121 +0100
@@ -3931,6 +3931,7 @@
* play:: Play a tune
* probe:: Retrieve device info
* pxe_unload:: Unload the PXE environment
+* rdmsr:: Read values from model-specific registers
* read:: Read user input
* reboot:: Reboot your computer
* regexp:: Test if regular expression matches string
@@ -3953,6 +3954,7 @@
* verify_detached:: Verify detached digital signature
* videoinfo:: List available video modes
@comment * xen_*:: Xen boot commands for AArch64
+* wrmsr:: Write values to model-specific registers
* xen_hypervisor:: Load xen hypervisor binary (only on AArch64)
* xen_module:: Load xen modules for xen hypervisor (only on AArch64)
@end menu
@@ -4785,6 +4787,24 @@
@end deffn
+@node rdmsr
+@subsection rdmsr
+
+@deffn Command: rdmsr 0xADDR [-v VARNAME]
+Read a model-specific register at address 0xADDR. If the parameter
+@option{-v} is used and an environment variable @var{VARNAME} is
+given, set that environment variable to the value that was read.
+
+Please note that on SMP systems, reading from a MSR that has a
+scope per hardware thread, implies that the value that is returned
+only applies to the particular cpu/core/thread that runs the command.
+
+Also, if you specify a reserved or unimplemented MSR address, it will
+cause a general protection exception (which is not currently being handled)
+and the system will reboot.
+@end deffn
+
+
@node read
@subsection read
@@ -5223,6 +5243,21 @@
List available video modes. If resolution is given, show only matching modes.
@end deffn
+@node wrmsr
+@subsection wrmsr
+
+@deffn Command: wrmsr 0xADDR 0xVALUE
+Write a 0xVALUE to a model-specific register at address 0xADDR.
+
+Please note that on SMP systems, writing to a MSR that has a scope
+per hardware thread, implies that the value that is written
+only applies to the particular cpu/core/thread that runs the command.
+
+Also, if you specify a reserved or unimplemented MSR address, it will
+cause a general protection exception (which is not currently being handled)
+and the system will reboot.
+@end deffn
+
@node xen_hypervisor
@subsection xen_hypervisor
@@ -5716,11 +5751,11 @@
is recommend to build in this and other required modules into the @file{core.img}.
All modules not stored in the @file{core.img} and the ACPI tables for the
@command{acpi} command have to be signed, e.g. using PGP. Additionally, the
-@command{iorw} and the @command{memrw} commands are prohibited if the UEFI
-secure boot is enabled. This is done due to security reasons. All above
-mentioned requirements are enforced by the shim_lock module. And itself it
-is a persistent module which means that it cannot be unloaded if it was
-loaded into the memory.
+@command{iorw}, the @command{memrw} and the @command{wrmsr} commands are
+prohibited if the UEFI secure boot is enabled. This is done due to
+security reasons. All above mentioned requirements are enforced by the
+shim_lock module. And itself it is a persistent module which means that
+it cannot be unloaded if it was loaded into the memory.
@node Measured Boot
@section Measuring boot components
@@ -5831,6 +5866,8 @@
@item USB @tab yes @tab yes @tab yes @tab yes
@item chainloader @tab local @tab yes @tab yes @tab no
@item cpuid @tab partial @tab partial @tab partial @tab partial
+@item rdmsr @tab partial @tab partial @tab partial @tab partial
+@item wrmsr @tab partial @tab partial @tab partial @tab partial
@item hints @tab guess @tab guess @tab guess @tab guess
@item PCI @tab yes @tab yes @tab yes @tab yes
@item badram @tab yes @tab yes @tab yes @tab yes
@@ -5850,6 +5887,8 @@
@item USB @tab yes @tab yes @tab yes @tab no
@item chainloader @tab local @tab local @tab no @tab local
@item cpuid @tab partial @tab partial @tab partial @tab no
+@item rdmsr @tab partial @tab partial @tab partial @tab no
+@item wrmsr @tab partial @tab partial @tab partial @tab no
@item hints @tab guess @tab guess @tab good @tab guess
@item PCI @tab yes @tab yes @tab yes @tab no
@item badram @tab yes @tab yes @tab no @tab yes
@@ -5869,6 +5908,8 @@
@item USB @tab yes @tab no @tab no @tab no
@item chainloader @tab yes @tab no @tab no @tab no
@item cpuid @tab no @tab no @tab no @tab no
+@item rdmsr @tab no @tab no @tab no @tab no
+@item wrmsr @tab no @tab no @tab no @tab no
@item hints @tab good @tab good @tab good @tab no
@item PCI @tab yes @tab no @tab no @tab no
@item badram @tab yes (*) @tab no @tab no @tab no
@@ -5888,6 +5929,8 @@
@item USB @tab N/A @tab yes @tab no
@item chainloader @tab yes @tab no @tab yes
@item cpuid @tab no @tab no @tab yes
+@item rdmsr @tab no @tab no @tab yes
+@item wrmsr @tab no @tab no @tab yes
@item hints @tab guess @tab no @tab no
@item PCI @tab no @tab no @tab no
@item badram @tab yes (*) @tab no @tab no