xref: /openbmc/linux/Documentation/ABI/testing/sysfs-class-firmware-attributes (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1e8a60aa7SDivya BharathiWhat:		/sys/class/firmware-attributes/*/attributes/*/
2e8a60aa7SDivya BharathiDate:		February 2021
3e8a60aa7SDivya BharathiKernelVersion:	5.11
4e8a60aa7SDivya BharathiContact:	Divya Bharathi <Divya.Bharathi@Dell.com>,
5e8a60aa7SDivya Bharathi		Prasanth KSR <prasanth.ksr@dell.com>
68599a12bSHans de Goede		Dell.Client.Kernel@dell.com
7e8a60aa7SDivya BharathiDescription:
8e8a60aa7SDivya Bharathi		A sysfs interface for systems management software to enable
9e8a60aa7SDivya Bharathi		configuration capability on supported systems.  This directory
10e8a60aa7SDivya Bharathi		exposes interfaces for interacting with configuration options.
11e8a60aa7SDivya Bharathi
12e8a60aa7SDivya Bharathi		Unless otherwise specified in an attribute description all attributes are optional
13e8a60aa7SDivya Bharathi		and will accept UTF-8 input.
14e8a60aa7SDivya Bharathi
155b09081fSMauro Carvalho Chehab		type:
165b09081fSMauro Carvalho Chehab		    A file that can be read to obtain the type of attribute.
175b09081fSMauro Carvalho Chehab		    This attribute is mandatory.
18e8a60aa7SDivya Bharathi
19e8a60aa7SDivya Bharathi		The following are known types:
205b09081fSMauro Carvalho Chehab
21e8a60aa7SDivya Bharathi			- enumeration: a set of pre-defined valid values
22e8a60aa7SDivya Bharathi			- integer: a range of numerical values
23e8a60aa7SDivya Bharathi			- string
24e8a60aa7SDivya Bharathi
25*00d4b352SJorge Lopez		HP specific types
26*00d4b352SJorge Lopez		-----------------
27*00d4b352SJorge Lopez			- ordered-list - a set of ordered list valid values
28*00d4b352SJorge Lopez
29*00d4b352SJorge Lopez
30e8a60aa7SDivya Bharathi		All attribute types support the following values:
31e8a60aa7SDivya Bharathi
325b09081fSMauro Carvalho Chehab		current_value:
335b09081fSMauro Carvalho Chehab				A file that can be read to obtain the current
34e8a60aa7SDivya Bharathi				value of the <attr>.
35e8a60aa7SDivya Bharathi
36e8a60aa7SDivya Bharathi				This file can also be written to in order to update the value of a
37e8a60aa7SDivya Bharathi				<attr>
38e8a60aa7SDivya Bharathi
39e8a60aa7SDivya Bharathi				This attribute is mandatory.
40e8a60aa7SDivya Bharathi
415b09081fSMauro Carvalho Chehab		default_value:
425b09081fSMauro Carvalho Chehab				A file that can be read to obtain the default
43e8a60aa7SDivya Bharathi				value of the <attr>
44e8a60aa7SDivya Bharathi
455b09081fSMauro Carvalho Chehab		display_name:
465b09081fSMauro Carvalho Chehab				A file that can be read to obtain a user friendly
47e8a60aa7SDivya Bharathi				description of the at <attr>
48e8a60aa7SDivya Bharathi
495b09081fSMauro Carvalho Chehab		display_name_language_code:
505b09081fSMauro Carvalho Chehab						A file that can be read to obtain
51e8a60aa7SDivya Bharathi						the IETF language tag corresponding to the
52e8a60aa7SDivya Bharathi						"display_name" of the <attr>
53e8a60aa7SDivya Bharathi
54e8a60aa7SDivya Bharathi		"enumeration"-type specific properties:
55e8a60aa7SDivya Bharathi
565b09081fSMauro Carvalho Chehab		possible_values:
575b09081fSMauro Carvalho Chehab					A file that can be read to obtain the possible
58e8a60aa7SDivya Bharathi					values of the <attr>. Values are separated using
59e8a60aa7SDivya Bharathi					semi-colon (``;``).
60e8a60aa7SDivya Bharathi
61e8a60aa7SDivya Bharathi		"integer"-type specific properties:
62e8a60aa7SDivya Bharathi
635b09081fSMauro Carvalho Chehab		min_value:
645b09081fSMauro Carvalho Chehab				A file that can be read to obtain the lower
65e8a60aa7SDivya Bharathi				bound value of the <attr>
66e8a60aa7SDivya Bharathi
675b09081fSMauro Carvalho Chehab		max_value:
685b09081fSMauro Carvalho Chehab				A file that can be read to obtain the upper
69e8a60aa7SDivya Bharathi				bound value of the <attr>
70e8a60aa7SDivya Bharathi
715b09081fSMauro Carvalho Chehab		scalar_increment:
725b09081fSMauro Carvalho Chehab					A file that can be read to obtain the scalar value used for
73e8a60aa7SDivya Bharathi					increments of current_value this attribute accepts.
74e8a60aa7SDivya Bharathi
75e8a60aa7SDivya Bharathi		"string"-type specific properties:
76e8a60aa7SDivya Bharathi
775b09081fSMauro Carvalho Chehab		max_length:
785b09081fSMauro Carvalho Chehab				A file that can be read to obtain the maximum
79e8a60aa7SDivya Bharathi				length value of the <attr>
80e8a60aa7SDivya Bharathi
815b09081fSMauro Carvalho Chehab		min_length:
825b09081fSMauro Carvalho Chehab				A file that can be read to obtain the minimum
83e8a60aa7SDivya Bharathi				length value of the <attr>
84e8a60aa7SDivya Bharathi
85e8a60aa7SDivya Bharathi		Dell specific class extensions
865b09081fSMauro Carvalho Chehab		------------------------------
87e8a60aa7SDivya Bharathi
88e8a60aa7SDivya Bharathi		On Dell systems the following additional attributes are available:
89e8a60aa7SDivya Bharathi
905b09081fSMauro Carvalho Chehab		dell_modifier:
915b09081fSMauro Carvalho Chehab				A file that can be read to obtain attribute-level
92e8a60aa7SDivya Bharathi				dependency rule. It says an attribute X will become read-only or
93e8a60aa7SDivya Bharathi				suppressed, if/if-not attribute Y is configured.
94e8a60aa7SDivya Bharathi
955b09081fSMauro Carvalho Chehab				modifier rules can be in following format::
965b09081fSMauro Carvalho Chehab
97e8a60aa7SDivya Bharathi				    [ReadOnlyIf:<attribute>=<value>]
98e8a60aa7SDivya Bharathi				    [ReadOnlyIfNot:<attribute>=<value>]
99e8a60aa7SDivya Bharathi				    [SuppressIf:<attribute>=<value>]
100e8a60aa7SDivya Bharathi				    [SuppressIfNot:<attribute>=<value>]
101e8a60aa7SDivya Bharathi
1025b09081fSMauro Carvalho Chehab				For example::
1035b09081fSMauro Carvalho Chehab
104e8a60aa7SDivya Bharathi				    AutoOnFri/dell_modifier has value,
105e8a60aa7SDivya Bharathi					    [SuppressIfNot:AutoOn=SelectDays]
106e8a60aa7SDivya Bharathi
107e8a60aa7SDivya Bharathi				This means AutoOnFri will be suppressed in BIOS setup if AutoOn
108e8a60aa7SDivya Bharathi				attribute is not "SelectDays" and its value will not be effective
109e8a60aa7SDivya Bharathi				through sysfs until this rule is met.
110e8a60aa7SDivya Bharathi
111e8a60aa7SDivya Bharathi		Enumeration attributes also support the following:
112e8a60aa7SDivya Bharathi
1135b09081fSMauro Carvalho Chehab		dell_value_modifier:
1145b09081fSMauro Carvalho Chehab					A file that can be read to obtain value-level dependency.
115e8a60aa7SDivya Bharathi					This file is similar to dell_modifier but here,	an
116e8a60aa7SDivya Bharathi					attribute's current value will be forcefully changed based
117e8a60aa7SDivya Bharathi					dependent attributes value.
118e8a60aa7SDivya Bharathi
1195b09081fSMauro Carvalho Chehab					dell_value_modifier rules can be in following format::
1205b09081fSMauro Carvalho Chehab
121e8a60aa7SDivya Bharathi					    <value>[ForceIf:<attribute>=<value>]
122e8a60aa7SDivya Bharathi					    <value>[ForceIfNot:<attribute>=<value>]
123e8a60aa7SDivya Bharathi
1249aa64714SHans de Goede					For example::
1255b09081fSMauro Carvalho Chehab
126e8a60aa7SDivya Bharathi					    LegacyOrom/dell_value_modifier has value:
127e8a60aa7SDivya Bharathi						    Disabled[ForceIf:SecureBoot=Enabled]
1285b09081fSMauro Carvalho Chehab
129e8a60aa7SDivya Bharathi					This means LegacyOrom's current value will be forced to
130e8a60aa7SDivya Bharathi					"Disabled" in BIOS setup if SecureBoot is Enabled and its
131e8a60aa7SDivya Bharathi					value will not be effective through sysfs until this rule is
132e8a60aa7SDivya Bharathi					met.
133e8a60aa7SDivya Bharathi
134*00d4b352SJorge Lopez		HP specific class extensions
135*00d4b352SJorge Lopez		------------------------------
136*00d4b352SJorge Lopez
137*00d4b352SJorge Lopez		On HP systems the following additional attributes are available:
138*00d4b352SJorge Lopez
139*00d4b352SJorge Lopez		"ordered-list"-type specific properties:
140*00d4b352SJorge Lopez
141*00d4b352SJorge Lopez		elements:
142*00d4b352SJorge Lopez					A file that can be read to obtain the possible
143*00d4b352SJorge Lopez					list of values of the <attr>. Values are separated using
144*00d4b352SJorge Lopez					semi-colon (``;``) and listed according to their priority.
145*00d4b352SJorge Lopez					An element listed first has the highest priority. Writing
146*00d4b352SJorge Lopez					the list in a different order to current_value alters
147*00d4b352SJorge Lopez					the priority order for the particular attribute.
148*00d4b352SJorge Lopez
149e8a60aa7SDivya BharathiWhat:		/sys/class/firmware-attributes/*/authentication/
150e8a60aa7SDivya BharathiDate:		February 2021
151e8a60aa7SDivya BharathiKernelVersion:	5.11
152e8a60aa7SDivya BharathiContact:	Divya Bharathi <Divya.Bharathi@Dell.com>,
153e8a60aa7SDivya Bharathi		Prasanth KSR <prasanth.ksr@dell.com>
1548599a12bSHans de Goede		Dell.Client.Kernel@dell.com
1555b09081fSMauro Carvalho ChehabDescription:
156e8a60aa7SDivya Bharathi		Devices support various authentication mechanisms which can be exposed
157e8a60aa7SDivya Bharathi		as a separate configuration object.
158e8a60aa7SDivya Bharathi
159e8a60aa7SDivya Bharathi		For example a "BIOS Admin" password and "System" Password can be set,
160e8a60aa7SDivya Bharathi		reset or cleared using these attributes.
1615b09081fSMauro Carvalho Chehab
162e8a60aa7SDivya Bharathi		- An "Admin" password is used for preventing modification to the BIOS
163e8a60aa7SDivya Bharathi		  settings.
164e8a60aa7SDivya Bharathi		- A "System" password is required to boot a machine.
165e8a60aa7SDivya Bharathi
166e8a60aa7SDivya Bharathi		Change in any of these two authentication methods will also generate an
167e8a60aa7SDivya Bharathi		uevent KOBJ_CHANGE.
168e8a60aa7SDivya Bharathi
1695b09081fSMauro Carvalho Chehab		is_enabled:
1705b09081fSMauro Carvalho Chehab					A file that can be read to obtain a 0/1 flag to see if
171e8a60aa7SDivya Bharathi					<attr> authentication is enabled.
172e8a60aa7SDivya Bharathi					This attribute is mandatory.
173e8a60aa7SDivya Bharathi
1745b09081fSMauro Carvalho Chehab		role:
1755b09081fSMauro Carvalho Chehab					The type of authentication used.
176e8a60aa7SDivya Bharathi					This attribute is mandatory.
1775b09081fSMauro Carvalho Chehab
178e8a60aa7SDivya Bharathi					Known types:
1795b09081fSMauro Carvalho Chehab						bios-admin:
1805b09081fSMauro Carvalho Chehab							Representing BIOS administrator password
1815b09081fSMauro Carvalho Chehab						power-on:
1825b09081fSMauro Carvalho Chehab							Representing a password required to use
183e8a60aa7SDivya Bharathi							the system
184adca4b68SMark Pearson						system-mgmt:
185adca4b68SMark Pearson							Representing System Management password.
186adca4b68SMark Pearson							See Lenovo extensions section for details
187adca4b68SMark Pearson						HDD:
188adca4b68SMark Pearson							Representing HDD password
189adca4b68SMark Pearson							See Lenovo extensions section for details
190adca4b68SMark Pearson						NVMe:
191adca4b68SMark Pearson							Representing NVMe password
192adca4b68SMark Pearson							See Lenovo extensions section for details
193e8a60aa7SDivya Bharathi
1945b09081fSMauro Carvalho Chehab		mechanism:
1955b09081fSMauro Carvalho Chehab					The means of authentication.  This attribute is mandatory.
196e8a60aa7SDivya Bharathi					Only supported type currently is "password".
197e8a60aa7SDivya Bharathi
1985b09081fSMauro Carvalho Chehab		max_password_length:
1995b09081fSMauro Carvalho Chehab					A file that can be read to obtain the
200e8a60aa7SDivya Bharathi					maximum length of the Password
201e8a60aa7SDivya Bharathi
2025b09081fSMauro Carvalho Chehab		min_password_length:
2035b09081fSMauro Carvalho Chehab					A file that can be read to obtain the
204e8a60aa7SDivya Bharathi					minimum length of the Password
205e8a60aa7SDivya Bharathi
2065b09081fSMauro Carvalho Chehab		current_password:
2075b09081fSMauro Carvalho Chehab					A write only value used for privileged access such as
208e8a60aa7SDivya Bharathi					setting	attributes when a system or admin password is set
209e8a60aa7SDivya Bharathi					or resetting to a new password
210e8a60aa7SDivya Bharathi
211e8a60aa7SDivya Bharathi					This attribute is mandatory when mechanism == "password".
212e8a60aa7SDivya Bharathi
2135b09081fSMauro Carvalho Chehab		new_password:
2145b09081fSMauro Carvalho Chehab					A write only value that when used in tandem with
215e8a60aa7SDivya Bharathi					current_password will reset a system or admin password.
216e8a60aa7SDivya Bharathi
217e8a60aa7SDivya Bharathi		Note, password management is session specific. If Admin password is set,
218e8a60aa7SDivya Bharathi		same password must be written into current_password file (required for
219e8a60aa7SDivya Bharathi		password-validation) and must be cleared once the session is over.
2205b09081fSMauro Carvalho Chehab		For example::
2215b09081fSMauro Carvalho Chehab
222e8a60aa7SDivya Bharathi			echo "password" > current_password
223e8a60aa7SDivya Bharathi			echo "disabled" > TouchScreen/current_value
224e8a60aa7SDivya Bharathi			echo "" > current_password
225e8a60aa7SDivya Bharathi
226e8a60aa7SDivya Bharathi		Drivers may emit a CHANGE uevent when a password is set or unset
227e8a60aa7SDivya Bharathi		userspace may check it again.
228e8a60aa7SDivya Bharathi
229*00d4b352SJorge Lopez		On Dell, Lenovo and HP systems, if Admin password is set, then all BIOS attributes
230e8a60aa7SDivya Bharathi		require password validation.
231a40cd7efSMark Pearson		On Lenovo systems if you change the Admin password the new password is not active until
232a40cd7efSMark Pearson		the next boot.
233a40cd7efSMark Pearson
234a40cd7efSMark Pearson		Lenovo specific class extensions
2359aa64714SHans de Goede		--------------------------------
236a40cd7efSMark Pearson
237a40cd7efSMark Pearson		On Lenovo systems the following additional settings are available:
238a40cd7efSMark Pearson
239adca4b68SMark Pearson		role: system-mgmt	This gives the same authority as the bios-admin password to control
240adca4b68SMark Pearson					security related features. The authorities allocated can be set via
241adca4b68SMark Pearson					the BIOS menu SMP Access Control Policy
242adca4b68SMark Pearson
243adca4b68SMark Pearson		role: HDD & NVMe	This password is used to unlock access to the drive at boot. Note see
244adca4b68SMark Pearson					'level' and 'index' extensions below.
245adca4b68SMark Pearson
246a40cd7efSMark Pearson		lenovo_encoding:
247a40cd7efSMark Pearson					The encoding method that is used. This can be either "ascii"
248a40cd7efSMark Pearson					or "scancode". Default is set to "ascii"
249a40cd7efSMark Pearson
250a40cd7efSMark Pearson		lenovo_kbdlang:
251a40cd7efSMark Pearson					The keyboard language method that is used. This is generally a
252a40cd7efSMark Pearson					two char code (e.g. "us", "fr", "gr") and may vary per platform.
253a40cd7efSMark Pearson					Default is set to "us"
254e8a60aa7SDivya Bharathi
255adca4b68SMark Pearson		level:
256adca4b68SMark Pearson					Available for HDD and NVMe authentication to set 'user' or 'master'
257adca4b68SMark Pearson					privilege level.
258adca4b68SMark Pearson					If only the user password is configured then this should be used to
259adca4b68SMark Pearson					unlock the drive at boot. If both master and user passwords are set
260adca4b68SMark Pearson					then either can be used. If a master password is set a user password
261adca4b68SMark Pearson					is required.
262adca4b68SMark Pearson					This attribute defaults to 'user' level
263adca4b68SMark Pearson
264adca4b68SMark Pearson		index:
265adca4b68SMark Pearson					Used with HDD and NVME authentication to set the drive index
2663206001fSMark Pearson					that is being referenced (e.g hdd1, hdd2 etc)
2673206001fSMark Pearson					This attribute defaults to device 1.
268adca4b68SMark Pearson
26945440a1dSHans de Goede		certificate, signature, save_signature:
27006384573SMark Pearson					These attributes are used for certificate based authentication. This is
27106384573SMark Pearson					used in conjunction with a signing server as an alternative to password
27206384573SMark Pearson					based authentication.
27306384573SMark Pearson					The user writes to the attribute(s) with a BASE64 encoded string obtained
27406384573SMark Pearson					from the signing server.
27506384573SMark Pearson					The attributes can be displayed to check the stored value.
27606384573SMark Pearson
27706384573SMark Pearson					Some usage examples:
27806384573SMark Pearson
27945440a1dSHans de Goede						Installing a certificate to enable feature::
28006384573SMark Pearson
28145440a1dSHans de Goede							echo "supervisor password" > authentication/Admin/current_password
28245440a1dSHans de Goede							echo "signed certificate" > authentication/Admin/certificate
28306384573SMark Pearson
28445440a1dSHans de Goede						Updating the installed certificate::
28545440a1dSHans de Goede
28645440a1dSHans de Goede							echo "signature" > authentication/Admin/signature
28745440a1dSHans de Goede							echo "signed certificate" > authentication/Admin/certificate
28845440a1dSHans de Goede
28945440a1dSHans de Goede						Removing the installed certificate::
29045440a1dSHans de Goede
29145440a1dSHans de Goede							echo "signature" > authentication/Admin/signature
29245440a1dSHans de Goede							echo "" > authentication/Admin/certificate
29345440a1dSHans de Goede
29445440a1dSHans de Goede						Changing a BIOS setting::
29545440a1dSHans de Goede
29645440a1dSHans de Goede							echo "signature" > authentication/Admin/signature
29745440a1dSHans de Goede							echo "save signature" > authentication/Admin/save_signature
29806384573SMark Pearson							echo Enable > attribute/PasswordBeep/current_value
29906384573SMark Pearson
30006384573SMark Pearson					You cannot enable certificate authentication if a supervisor password
30106384573SMark Pearson					has not been set.
30206384573SMark Pearson					Clearing the certificate results in no bios-admin authentication method
30306384573SMark Pearson					being configured allowing anyone to make changes.
30406384573SMark Pearson					After any of these operations the system must reboot for the changes to
30506384573SMark Pearson					take effect.
30606384573SMark Pearson
30706384573SMark Pearson		certificate_thumbprint:
30806384573SMark Pearson					Read only attribute used to display the MD5, SHA1 and SHA256 thumbprints
30906384573SMark Pearson					for the certificate installed in the BIOS.
31006384573SMark Pearson
31106384573SMark Pearson		certificate_to_password:
31206384573SMark Pearson					Write only attribute used to switch from certificate based authentication
31306384573SMark Pearson					back to password based.
31445440a1dSHans de Goede					Usage::
31545440a1dSHans de Goede
31645440a1dSHans de Goede						echo "signature" > authentication/Admin/signature
31745440a1dSHans de Goede						echo "password" > authentication/Admin/certificate_to_password
318adca4b68SMark Pearson
319*00d4b352SJorge Lopez		HP specific class extensions
320*00d4b352SJorge Lopez		--------------------------------
321*00d4b352SJorge Lopez
322*00d4b352SJorge Lopez		On HP systems the following additional settings are available:
323*00d4b352SJorge Lopez
324*00d4b352SJorge Lopez		role: enhanced-bios-auth:
325*00d4b352SJorge Lopez					This role is specific to Secure Platform Management (SPM) attribute.
326*00d4b352SJorge Lopez					It requires configuring an endorsement (kek) and signing certificate (sk).
327*00d4b352SJorge Lopez
328adca4b68SMark Pearson
329e8a60aa7SDivya BharathiWhat:		/sys/class/firmware-attributes/*/attributes/pending_reboot
330e8a60aa7SDivya BharathiDate:		February 2021
331e8a60aa7SDivya BharathiKernelVersion:	5.11
332e8a60aa7SDivya BharathiContact:	Divya Bharathi <Divya.Bharathi@Dell.com>,
333e8a60aa7SDivya Bharathi		Prasanth KSR <prasanth.ksr@dell.com>
3348599a12bSHans de Goede		Dell.Client.Kernel@dell.com
335e8a60aa7SDivya BharathiDescription:
336e8a60aa7SDivya Bharathi		A read-only attribute reads 1 if a reboot is necessary to apply
337e8a60aa7SDivya Bharathi		pending BIOS attribute changes. Also, an uevent_KOBJ_CHANGE is
338e8a60aa7SDivya Bharathi		generated when it changes to 1.
339e8a60aa7SDivya Bharathi
3405b09081fSMauro Carvalho Chehab			==	=========================================
3415b09081fSMauro Carvalho Chehab			0	All BIOS attributes setting are current
3425b09081fSMauro Carvalho Chehab			1	A reboot is necessary to get pending BIOS
3435b09081fSMauro Carvalho Chehab				attribute changes applied
3445b09081fSMauro Carvalho Chehab			==	=========================================
345e8a60aa7SDivya Bharathi
346e8a60aa7SDivya Bharathi		Note, userspace applications need to follow below steps for efficient
347e8a60aa7SDivya Bharathi		BIOS management,
3485b09081fSMauro Carvalho Chehab
349e8a60aa7SDivya Bharathi		1.	Check if admin password is set. If yes, follow session method for
350e8a60aa7SDivya Bharathi			password management as briefed under authentication section above.
351e8a60aa7SDivya Bharathi		2.	Before setting any attribute, check if it has any modifiers
352e8a60aa7SDivya Bharathi			or value_modifiers. If yes, incorporate them and then modify
353e8a60aa7SDivya Bharathi			attribute.
354e8a60aa7SDivya Bharathi
355e8a60aa7SDivya Bharathi		Drivers may emit a CHANGE uevent when this value changes and userspace
356e8a60aa7SDivya Bharathi		may check it again.
357e8a60aa7SDivya Bharathi
358e8a60aa7SDivya BharathiWhat:		/sys/class/firmware-attributes/*/attributes/reset_bios
359e8a60aa7SDivya BharathiDate:		February 2021
360e8a60aa7SDivya BharathiKernelVersion:	5.11
361e8a60aa7SDivya BharathiContact:	Divya Bharathi <Divya.Bharathi@Dell.com>,
362e8a60aa7SDivya Bharathi		Prasanth KSR <prasanth.ksr@dell.com>
3638599a12bSHans de Goede		Dell.Client.Kernel@dell.com
364e8a60aa7SDivya BharathiDescription:
365e8a60aa7SDivya Bharathi		This attribute can be used to reset the BIOS Configuration.
366e8a60aa7SDivya Bharathi		Specifically, it tells which type of reset BIOS configuration is being
367e8a60aa7SDivya Bharathi		requested on the host.
368e8a60aa7SDivya Bharathi
369e8a60aa7SDivya Bharathi		Reading from it returns a list of supported options encoded as:
370e8a60aa7SDivya Bharathi
3715b09081fSMauro Carvalho Chehab			- 'builtinsafe' (Built in safe configuration profile)
3725b09081fSMauro Carvalho Chehab			- 'lastknowngood' (Last known good saved configuration profile)
3735b09081fSMauro Carvalho Chehab			- 'factory' (Default factory settings configuration profile)
3745b09081fSMauro Carvalho Chehab			- 'custom' (Custom saved configuration profile)
375e8a60aa7SDivya Bharathi
376e8a60aa7SDivya Bharathi		The currently selected option is printed in square brackets as
3775b09081fSMauro Carvalho Chehab		shown below::
378e8a60aa7SDivya Bharathi
379e8a60aa7SDivya Bharathi		    # echo "factory" > /sys/class/firmware-attributes/*/device/attributes/reset_bios
380e8a60aa7SDivya Bharathi		    # cat /sys/class/firmware-attributes/*/device/attributes/reset_bios
3819aa64714SHans de Goede		    builtinsafe lastknowngood [factory] custom
382e8a60aa7SDivya Bharathi
383e8a60aa7SDivya Bharathi		Note that any changes to this attribute requires a reboot
384e8a60aa7SDivya Bharathi		for changes to take effect.
385f5bc0157SMark Pearson
386f5bc0157SMark PearsonWhat:		/sys/class/firmware-attributes/*/attributes/debug_cmd
387f5bc0157SMark PearsonDate:		July 2021
388f5bc0157SMark PearsonKernelVersion:	5.14
389f5bc0157SMark PearsonContact:	Mark Pearson <markpearson@lenovo.com>
390f5bc0157SMark PearsonDescription:
391f5bc0157SMark Pearson		This write only attribute can be used to send debug commands to the BIOS.
392f5bc0157SMark Pearson		This should only be used when recommended by the BIOS vendor. Vendors may
393f5bc0157SMark Pearson		use it to enable extra debug attributes or BIOS features for testing purposes.
394f5bc0157SMark Pearson
395f5bc0157SMark Pearson		Note that any changes to this attribute requires a reboot for changes to take effect.
396*00d4b352SJorge Lopez
397*00d4b352SJorge Lopez
398*00d4b352SJorge Lopez		HP specific class extensions - Secure Platform Manager (SPM)
399*00d4b352SJorge Lopez		--------------------------------
400*00d4b352SJorge Lopez
401*00d4b352SJorge LopezWhat:		/sys/class/firmware-attributes/*/authentication/SPM/kek
402*00d4b352SJorge LopezDate:		March 2023
403*00d4b352SJorge LopezKernelVersion:	5.18
404*00d4b352SJorge LopezContact:	"Jorge Lopez" <jorge.lopez2@hp.com>
405*00d4b352SJorge LopezDescription:
406*00d4b352SJorge Lopez		'kek' Key-Encryption-Key is a write-only file that can be used to configure the
407*00d4b352SJorge Lopez		RSA public key that will be used by the BIOS to verify
408*00d4b352SJorge Lopez		signatures when setting the signing key.  When written,
409*00d4b352SJorge Lopez		the bytes should correspond to the KEK certificate
410*00d4b352SJorge Lopez		(x509 .DER format containing an OU).  The size of the
411*00d4b352SJorge Lopez		certificate must be less than or equal to 4095 bytes.
412*00d4b352SJorge Lopez
413*00d4b352SJorge LopezWhat:		/sys/class/firmware-attributes/*/authentication/SPM/sk
414*00d4b352SJorge LopezDate:		March 2023
415*00d4b352SJorge LopezKernelVersion:	5.18
416*00d4b352SJorge LopezContact:	"Jorge Lopez" <jorge.lopez2@hp.com>
417*00d4b352SJorge LopezDescription:
418*00d4b352SJorge Lopez		'sk' Signature Key is a write-only file that can be used to configure the RSA
419*00d4b352SJorge Lopez		public key that will be used by the BIOS to verify signatures
420*00d4b352SJorge Lopez		when configuring BIOS settings and security features.  When
421*00d4b352SJorge Lopez		written, the bytes should correspond to the modulus of the
422*00d4b352SJorge Lopez		public key.  The exponent is assumed to be 0x10001.
423*00d4b352SJorge Lopez
424*00d4b352SJorge LopezWhat:		/sys/class/firmware-attributes/*/authentication/SPM/status
425*00d4b352SJorge LopezDate:		March 2023
426*00d4b352SJorge LopezKernelVersion:	5.18
427*00d4b352SJorge LopezContact:	"Jorge Lopez" <jorge.lopez2@hp.com>
428*00d4b352SJorge LopezDescription:
429*00d4b352SJorge Lopez		'status' is a read-only file that returns ASCII text in JSON format reporting
430*00d4b352SJorge Lopez		the status information.
431*00d4b352SJorge Lopez
432*00d4b352SJorge Lopez		  "State": "not provisioned | provisioned | provisioning in progress",
433*00d4b352SJorge Lopez		  "Version": "Major.Minor",
434*00d4b352SJorge Lopez		  "Nonce": <16-bit unsigned number display in base 10>,
435*00d4b352SJorge Lopez		  "FeaturesInUse": <16-bit unsigned number display in base 10>,
436*00d4b352SJorge Lopez		  "EndorsementKeyMod": "<256 bytes in base64>",
437*00d4b352SJorge Lopez		  "SigningKeyMod": "<256 bytes in base64>"
438*00d4b352SJorge Lopez
439*00d4b352SJorge LopezWhat:		/sys/class/firmware-attributes/*/attributes/Sure_Start/audit_log_entries
440*00d4b352SJorge LopezDate:		March 2023
441*00d4b352SJorge LopezKernelVersion:	5.18
442*00d4b352SJorge LopezContact:	"Jorge Lopez" <jorge.lopez2@hp.com>
443*00d4b352SJorge LopezDescription:
444*00d4b352SJorge Lopez		'audit_log_entries' is a read-only file that returns the events in the log.
445*00d4b352SJorge Lopez
446*00d4b352SJorge Lopez			Audit log entry format
447*00d4b352SJorge Lopez
448*00d4b352SJorge Lopez			Byte 0-15:   Requested Audit Log entry  (Each Audit log is 16 bytes)
449*00d4b352SJorge Lopez			Byte 16-127: Unused
450*00d4b352SJorge Lopez
451*00d4b352SJorge LopezWhat:		/sys/class/firmware-attributes/*/attributes/Sure_Start/audit_log_entry_count
452*00d4b352SJorge LopezDate:		March 2023
453*00d4b352SJorge LopezKernelVersion:	5.18
454*00d4b352SJorge LopezContact:	"Jorge Lopez" <jorge.lopez2@hp.com>
455*00d4b352SJorge LopezDescription:
456*00d4b352SJorge Lopez		'audit_log_entry_count' is a read-only file that returns the number of existing
457*00d4b352SJorge Lopez		audit log events available to be read. Values are separated using comma. (``,``)
458*00d4b352SJorge Lopez
459*00d4b352SJorge Lopez			[No of entries],[log entry size],[Max number of entries supported]
460*00d4b352SJorge Lopez
461*00d4b352SJorge Lopez		log entry size identifies audit log size for the current BIOS version.
462*00d4b352SJorge Lopez		The current size is 16 bytes but it can be up to 128 bytes long in future BIOS
463*00d4b352SJorge Lopez		versions.
464