blob: 90fdf935aa5eab6a2a051cac7a3adfc96c040c91 [file] [log] [blame]
Divya Bharathie8a60aa2020-10-27 19:19:44 +05301What: /sys/class/firmware-attributes/*/attributes/*/
2Date: February 2021
3KernelVersion: 5.11
4Contact: Divya Bharathi <Divya.Bharathi@Dell.com>,
Divya Bharathie8a60aa2020-10-27 19:19:44 +05305 Prasanth KSR <prasanth.ksr@dell.com>
Hans de Goede8599a122021-08-10 18:09:00 +02006 Dell.Client.Kernel@dell.com
Divya Bharathie8a60aa2020-10-27 19:19:44 +05307Description:
8 A sysfs interface for systems management software to enable
9 configuration capability on supported systems. This directory
10 exposes interfaces for interacting with configuration options.
11
12 Unless otherwise specified in an attribute description all attributes are optional
13 and will accept UTF-8 input.
14
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010015 type:
16 A file that can be read to obtain the type of attribute.
17 This attribute is mandatory.
Divya Bharathie8a60aa2020-10-27 19:19:44 +053018
19 The following are known types:
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010020
Divya Bharathie8a60aa2020-10-27 19:19:44 +053021 - enumeration: a set of pre-defined valid values
22 - integer: a range of numerical values
23 - string
24
25 All attribute types support the following values:
26
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010027 current_value:
28 A file that can be read to obtain the current
Divya Bharathie8a60aa2020-10-27 19:19:44 +053029 value of the <attr>.
30
31 This file can also be written to in order to update the value of a
32 <attr>
33
34 This attribute is mandatory.
35
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010036 default_value:
37 A file that can be read to obtain the default
Divya Bharathie8a60aa2020-10-27 19:19:44 +053038 value of the <attr>
39
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010040 display_name:
41 A file that can be read to obtain a user friendly
Divya Bharathie8a60aa2020-10-27 19:19:44 +053042 description of the at <attr>
43
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010044 display_name_language_code:
45 A file that can be read to obtain
Divya Bharathie8a60aa2020-10-27 19:19:44 +053046 the IETF language tag corresponding to the
47 "display_name" of the <attr>
48
49 "enumeration"-type specific properties:
50
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010051 possible_values:
52 A file that can be read to obtain the possible
Divya Bharathie8a60aa2020-10-27 19:19:44 +053053 values of the <attr>. Values are separated using
54 semi-colon (``;``).
55
56 "integer"-type specific properties:
57
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010058 min_value:
59 A file that can be read to obtain the lower
Divya Bharathie8a60aa2020-10-27 19:19:44 +053060 bound value of the <attr>
61
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010062 max_value:
63 A file that can be read to obtain the upper
Divya Bharathie8a60aa2020-10-27 19:19:44 +053064 bound value of the <attr>
65
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010066 scalar_increment:
67 A file that can be read to obtain the scalar value used for
Divya Bharathie8a60aa2020-10-27 19:19:44 +053068 increments of current_value this attribute accepts.
69
70 "string"-type specific properties:
71
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010072 max_length:
73 A file that can be read to obtain the maximum
Divya Bharathie8a60aa2020-10-27 19:19:44 +053074 length value of the <attr>
75
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010076 min_length:
77 A file that can be read to obtain the minimum
Divya Bharathie8a60aa2020-10-27 19:19:44 +053078 length value of the <attr>
79
80 Dell specific class extensions
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010081 ------------------------------
Divya Bharathie8a60aa2020-10-27 19:19:44 +053082
83 On Dell systems the following additional attributes are available:
84
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010085 dell_modifier:
86 A file that can be read to obtain attribute-level
Divya Bharathie8a60aa2020-10-27 19:19:44 +053087 dependency rule. It says an attribute X will become read-only or
88 suppressed, if/if-not attribute Y is configured.
89
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010090 modifier rules can be in following format::
Divya Bharathie8a60aa2020-10-27 19:19:44 +053091
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +010092 [ReadOnlyIf:<attribute>=<value>]
93 [ReadOnlyIfNot:<attribute>=<value>]
94 [SuppressIf:<attribute>=<value>]
95 [SuppressIfNot:<attribute>=<value>]
96
97 For example::
98
99 AutoOnFri/dell_modifier has value,
100 [SuppressIfNot:AutoOn=SelectDays]
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530101
102 This means AutoOnFri will be suppressed in BIOS setup if AutoOn
103 attribute is not "SelectDays" and its value will not be effective
104 through sysfs until this rule is met.
105
106 Enumeration attributes also support the following:
107
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100108 dell_value_modifier:
109 A file that can be read to obtain value-level dependency.
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530110 This file is similar to dell_modifier but here, an
111 attribute's current value will be forcefully changed based
112 dependent attributes value.
113
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100114 dell_value_modifier rules can be in following format::
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530115
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100116 <value>[ForceIf:<attribute>=<value>]
117 <value>[ForceIfNot:<attribute>=<value>]
118
119 For example:
120
121 LegacyOrom/dell_value_modifier has value:
122 Disabled[ForceIf:SecureBoot=Enabled]
123
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530124 This means LegacyOrom's current value will be forced to
125 "Disabled" in BIOS setup if SecureBoot is Enabled and its
126 value will not be effective through sysfs until this rule is
127 met.
128
129What: /sys/class/firmware-attributes/*/authentication/
130Date: February 2021
131KernelVersion: 5.11
132Contact: Divya Bharathi <Divya.Bharathi@Dell.com>,
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530133 Prasanth KSR <prasanth.ksr@dell.com>
Hans de Goede8599a122021-08-10 18:09:00 +0200134 Dell.Client.Kernel@dell.com
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100135Description:
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530136 Devices support various authentication mechanisms which can be exposed
137 as a separate configuration object.
138
139 For example a "BIOS Admin" password and "System" Password can be set,
140 reset or cleared using these attributes.
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100141
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530142 - An "Admin" password is used for preventing modification to the BIOS
143 settings.
144 - A "System" password is required to boot a machine.
145
146 Change in any of these two authentication methods will also generate an
147 uevent KOBJ_CHANGE.
148
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100149 is_enabled:
150 A file that can be read to obtain a 0/1 flag to see if
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530151 <attr> authentication is enabled.
152 This attribute is mandatory.
153
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100154 role:
155 The type of authentication used.
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530156 This attribute is mandatory.
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530157
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100158 Known types:
159 bios-admin:
160 Representing BIOS administrator password
161 power-on:
162 Representing a password required to use
163 the system
164
165 mechanism:
166 The means of authentication. This attribute is mandatory.
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530167 Only supported type currently is "password".
168
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100169 max_password_length:
170 A file that can be read to obtain the
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530171 maximum length of the Password
172
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100173 min_password_length:
174 A file that can be read to obtain the
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530175 minimum length of the Password
176
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100177 current_password:
178 A write only value used for privileged access such as
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530179 setting attributes when a system or admin password is set
180 or resetting to a new password
181
182 This attribute is mandatory when mechanism == "password".
183
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100184 new_password:
185 A write only value that when used in tandem with
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530186 current_password will reset a system or admin password.
187
188 Note, password management is session specific. If Admin password is set,
189 same password must be written into current_password file (required for
190 password-validation) and must be cleared once the session is over.
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100191 For example::
192
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530193 echo "password" > current_password
194 echo "disabled" > TouchScreen/current_value
195 echo "" > current_password
196
197 Drivers may emit a CHANGE uevent when a password is set or unset
198 userspace may check it again.
199
Mark Pearsona40cd7e2021-05-30 18:31:11 -0400200 On Dell and Lenovo systems, if Admin password is set, then all BIOS attributes
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530201 require password validation.
Mark Pearsona40cd7e2021-05-30 18:31:11 -0400202 On Lenovo systems if you change the Admin password the new password is not active until
203 the next boot.
204
205 Lenovo specific class extensions
206 ------------------------------
207
208 On Lenovo systems the following additional settings are available:
209
210 lenovo_encoding:
211 The encoding method that is used. This can be either "ascii"
212 or "scancode". Default is set to "ascii"
213
214 lenovo_kbdlang:
215 The keyboard language method that is used. This is generally a
216 two char code (e.g. "us", "fr", "gr") and may vary per platform.
217 Default is set to "us"
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530218
219What: /sys/class/firmware-attributes/*/attributes/pending_reboot
220Date: February 2021
221KernelVersion: 5.11
222Contact: Divya Bharathi <Divya.Bharathi@Dell.com>,
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530223 Prasanth KSR <prasanth.ksr@dell.com>
Hans de Goede8599a122021-08-10 18:09:00 +0200224 Dell.Client.Kernel@dell.com
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530225Description:
226 A read-only attribute reads 1 if a reboot is necessary to apply
227 pending BIOS attribute changes. Also, an uevent_KOBJ_CHANGE is
228 generated when it changes to 1.
229
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100230 == =========================================
231 0 All BIOS attributes setting are current
232 1 A reboot is necessary to get pending BIOS
233 attribute changes applied
234 == =========================================
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530235
236 Note, userspace applications need to follow below steps for efficient
237 BIOS management,
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100238
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530239 1. Check if admin password is set. If yes, follow session method for
240 password management as briefed under authentication section above.
241 2. Before setting any attribute, check if it has any modifiers
242 or value_modifiers. If yes, incorporate them and then modify
243 attribute.
244
245 Drivers may emit a CHANGE uevent when this value changes and userspace
246 may check it again.
247
248What: /sys/class/firmware-attributes/*/attributes/reset_bios
249Date: February 2021
250KernelVersion: 5.11
251Contact: Divya Bharathi <Divya.Bharathi@Dell.com>,
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530252 Prasanth KSR <prasanth.ksr@dell.com>
Hans de Goede8599a122021-08-10 18:09:00 +0200253 Dell.Client.Kernel@dell.com
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530254Description:
255 This attribute can be used to reset the BIOS Configuration.
256 Specifically, it tells which type of reset BIOS configuration is being
257 requested on the host.
258
259 Reading from it returns a list of supported options encoded as:
260
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100261 - 'builtinsafe' (Built in safe configuration profile)
262 - 'lastknowngood' (Last known good saved configuration profile)
263 - 'factory' (Default factory settings configuration profile)
264 - 'custom' (Custom saved configuration profile)
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530265
266 The currently selected option is printed in square brackets as
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100267 shown below::
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530268
Mauro Carvalho Chehab5b090812020-10-29 10:31:23 +0100269 # echo "factory" > /sys/class/firmware-attributes/*/device/attributes/reset_bios
270 # cat /sys/class/firmware-attributes/*/device/attributes/reset_bios
271 # builtinsafe lastknowngood [factory] custom
Divya Bharathie8a60aa2020-10-27 19:19:44 +0530272
273 Note that any changes to this attribute requires a reboot
274 for changes to take effect.
Mark Pearsonf5bc0152021-08-16 20:15:01 -0400275
276What: /sys/class/firmware-attributes/*/attributes/debug_cmd
277Date: July 2021
278KernelVersion: 5.14
279Contact: Mark Pearson <markpearson@lenovo.com>
280Description:
281 This write only attribute can be used to send debug commands to the BIOS.
282 This should only be used when recommended by the BIOS vendor. Vendors may
283 use it to enable extra debug attributes or BIOS features for testing purposes.
284
285 Note that any changes to this attribute requires a reboot for changes to take effect.