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 25e8a60aa7SDivya Bharathi All attribute types support the following values: 26e8a60aa7SDivya Bharathi 275b09081fSMauro Carvalho Chehab current_value: 285b09081fSMauro Carvalho Chehab A file that can be read to obtain the current 29e8a60aa7SDivya Bharathi value of the <attr>. 30e8a60aa7SDivya Bharathi 31e8a60aa7SDivya Bharathi This file can also be written to in order to update the value of a 32e8a60aa7SDivya Bharathi <attr> 33e8a60aa7SDivya Bharathi 34e8a60aa7SDivya Bharathi This attribute is mandatory. 35e8a60aa7SDivya Bharathi 365b09081fSMauro Carvalho Chehab default_value: 375b09081fSMauro Carvalho Chehab A file that can be read to obtain the default 38e8a60aa7SDivya Bharathi value of the <attr> 39e8a60aa7SDivya Bharathi 405b09081fSMauro Carvalho Chehab display_name: 415b09081fSMauro Carvalho Chehab A file that can be read to obtain a user friendly 42e8a60aa7SDivya Bharathi description of the at <attr> 43e8a60aa7SDivya Bharathi 445b09081fSMauro Carvalho Chehab display_name_language_code: 455b09081fSMauro Carvalho Chehab A file that can be read to obtain 46e8a60aa7SDivya Bharathi the IETF language tag corresponding to the 47e8a60aa7SDivya Bharathi "display_name" of the <attr> 48e8a60aa7SDivya Bharathi 49e8a60aa7SDivya Bharathi "enumeration"-type specific properties: 50e8a60aa7SDivya Bharathi 515b09081fSMauro Carvalho Chehab possible_values: 525b09081fSMauro Carvalho Chehab A file that can be read to obtain the possible 53e8a60aa7SDivya Bharathi values of the <attr>. Values are separated using 54e8a60aa7SDivya Bharathi semi-colon (``;``). 55e8a60aa7SDivya Bharathi 56e8a60aa7SDivya Bharathi "integer"-type specific properties: 57e8a60aa7SDivya Bharathi 585b09081fSMauro Carvalho Chehab min_value: 595b09081fSMauro Carvalho Chehab A file that can be read to obtain the lower 60e8a60aa7SDivya Bharathi bound value of the <attr> 61e8a60aa7SDivya Bharathi 625b09081fSMauro Carvalho Chehab max_value: 635b09081fSMauro Carvalho Chehab A file that can be read to obtain the upper 64e8a60aa7SDivya Bharathi bound value of the <attr> 65e8a60aa7SDivya Bharathi 665b09081fSMauro Carvalho Chehab scalar_increment: 675b09081fSMauro Carvalho Chehab A file that can be read to obtain the scalar value used for 68e8a60aa7SDivya Bharathi increments of current_value this attribute accepts. 69e8a60aa7SDivya Bharathi 70e8a60aa7SDivya Bharathi "string"-type specific properties: 71e8a60aa7SDivya Bharathi 725b09081fSMauro Carvalho Chehab max_length: 735b09081fSMauro Carvalho Chehab A file that can be read to obtain the maximum 74e8a60aa7SDivya Bharathi length value of the <attr> 75e8a60aa7SDivya Bharathi 765b09081fSMauro Carvalho Chehab min_length: 775b09081fSMauro Carvalho Chehab A file that can be read to obtain the minimum 78e8a60aa7SDivya Bharathi length value of the <attr> 79e8a60aa7SDivya Bharathi 80e8a60aa7SDivya Bharathi Dell specific class extensions 815b09081fSMauro Carvalho Chehab ------------------------------ 82e8a60aa7SDivya Bharathi 83e8a60aa7SDivya Bharathi On Dell systems the following additional attributes are available: 84e8a60aa7SDivya Bharathi 855b09081fSMauro Carvalho Chehab dell_modifier: 865b09081fSMauro Carvalho Chehab A file that can be read to obtain attribute-level 87e8a60aa7SDivya Bharathi dependency rule. It says an attribute X will become read-only or 88e8a60aa7SDivya Bharathi suppressed, if/if-not attribute Y is configured. 89e8a60aa7SDivya Bharathi 905b09081fSMauro Carvalho Chehab modifier rules can be in following format:: 915b09081fSMauro Carvalho Chehab 92e8a60aa7SDivya Bharathi [ReadOnlyIf:<attribute>=<value>] 93e8a60aa7SDivya Bharathi [ReadOnlyIfNot:<attribute>=<value>] 94e8a60aa7SDivya Bharathi [SuppressIf:<attribute>=<value>] 95e8a60aa7SDivya Bharathi [SuppressIfNot:<attribute>=<value>] 96e8a60aa7SDivya Bharathi 975b09081fSMauro Carvalho Chehab For example:: 985b09081fSMauro Carvalho Chehab 99e8a60aa7SDivya Bharathi AutoOnFri/dell_modifier has value, 100e8a60aa7SDivya Bharathi [SuppressIfNot:AutoOn=SelectDays] 101e8a60aa7SDivya Bharathi 102e8a60aa7SDivya Bharathi This means AutoOnFri will be suppressed in BIOS setup if AutoOn 103e8a60aa7SDivya Bharathi attribute is not "SelectDays" and its value will not be effective 104e8a60aa7SDivya Bharathi through sysfs until this rule is met. 105e8a60aa7SDivya Bharathi 106e8a60aa7SDivya Bharathi Enumeration attributes also support the following: 107e8a60aa7SDivya Bharathi 1085b09081fSMauro Carvalho Chehab dell_value_modifier: 1095b09081fSMauro Carvalho Chehab A file that can be read to obtain value-level dependency. 110e8a60aa7SDivya Bharathi This file is similar to dell_modifier but here, an 111e8a60aa7SDivya Bharathi attribute's current value will be forcefully changed based 112e8a60aa7SDivya Bharathi dependent attributes value. 113e8a60aa7SDivya Bharathi 1145b09081fSMauro Carvalho Chehab dell_value_modifier rules can be in following format:: 1155b09081fSMauro Carvalho Chehab 116e8a60aa7SDivya Bharathi <value>[ForceIf:<attribute>=<value>] 117e8a60aa7SDivya Bharathi <value>[ForceIfNot:<attribute>=<value>] 118e8a60aa7SDivya Bharathi 1195b09081fSMauro Carvalho Chehab For example: 1205b09081fSMauro Carvalho Chehab 121e8a60aa7SDivya Bharathi LegacyOrom/dell_value_modifier has value: 122e8a60aa7SDivya Bharathi Disabled[ForceIf:SecureBoot=Enabled] 1235b09081fSMauro Carvalho Chehab 124e8a60aa7SDivya Bharathi This means LegacyOrom's current value will be forced to 125e8a60aa7SDivya Bharathi "Disabled" in BIOS setup if SecureBoot is Enabled and its 126e8a60aa7SDivya Bharathi value will not be effective through sysfs until this rule is 127e8a60aa7SDivya Bharathi met. 128e8a60aa7SDivya Bharathi 129e8a60aa7SDivya BharathiWhat: /sys/class/firmware-attributes/*/authentication/ 130e8a60aa7SDivya BharathiDate: February 2021 131e8a60aa7SDivya BharathiKernelVersion: 5.11 132e8a60aa7SDivya BharathiContact: Divya Bharathi <Divya.Bharathi@Dell.com>, 133e8a60aa7SDivya Bharathi Prasanth KSR <prasanth.ksr@dell.com> 1348599a12bSHans de Goede Dell.Client.Kernel@dell.com 1355b09081fSMauro Carvalho ChehabDescription: 136e8a60aa7SDivya Bharathi Devices support various authentication mechanisms which can be exposed 137e8a60aa7SDivya Bharathi as a separate configuration object. 138e8a60aa7SDivya Bharathi 139e8a60aa7SDivya Bharathi For example a "BIOS Admin" password and "System" Password can be set, 140e8a60aa7SDivya Bharathi reset or cleared using these attributes. 1415b09081fSMauro Carvalho Chehab 142e8a60aa7SDivya Bharathi - An "Admin" password is used for preventing modification to the BIOS 143e8a60aa7SDivya Bharathi settings. 144e8a60aa7SDivya Bharathi - A "System" password is required to boot a machine. 145e8a60aa7SDivya Bharathi 146e8a60aa7SDivya Bharathi Change in any of these two authentication methods will also generate an 147e8a60aa7SDivya Bharathi uevent KOBJ_CHANGE. 148e8a60aa7SDivya Bharathi 1495b09081fSMauro Carvalho Chehab is_enabled: 1505b09081fSMauro Carvalho Chehab A file that can be read to obtain a 0/1 flag to see if 151e8a60aa7SDivya Bharathi <attr> authentication is enabled. 152e8a60aa7SDivya Bharathi This attribute is mandatory. 153e8a60aa7SDivya Bharathi 1545b09081fSMauro Carvalho Chehab role: 1555b09081fSMauro Carvalho Chehab The type of authentication used. 156e8a60aa7SDivya Bharathi This attribute is mandatory. 1575b09081fSMauro Carvalho Chehab 158e8a60aa7SDivya Bharathi Known types: 1595b09081fSMauro Carvalho Chehab bios-admin: 1605b09081fSMauro Carvalho Chehab Representing BIOS administrator password 1615b09081fSMauro Carvalho Chehab power-on: 1625b09081fSMauro Carvalho Chehab Representing a password required to use 163e8a60aa7SDivya Bharathi the system 164e8a60aa7SDivya Bharathi 1655b09081fSMauro Carvalho Chehab mechanism: 1665b09081fSMauro Carvalho Chehab The means of authentication. This attribute is mandatory. 167e8a60aa7SDivya Bharathi Only supported type currently is "password". 168e8a60aa7SDivya Bharathi 1695b09081fSMauro Carvalho Chehab max_password_length: 1705b09081fSMauro Carvalho Chehab A file that can be read to obtain the 171e8a60aa7SDivya Bharathi maximum length of the Password 172e8a60aa7SDivya Bharathi 1735b09081fSMauro Carvalho Chehab min_password_length: 1745b09081fSMauro Carvalho Chehab A file that can be read to obtain the 175e8a60aa7SDivya Bharathi minimum length of the Password 176e8a60aa7SDivya Bharathi 1775b09081fSMauro Carvalho Chehab current_password: 1785b09081fSMauro Carvalho Chehab A write only value used for privileged access such as 179e8a60aa7SDivya Bharathi setting attributes when a system or admin password is set 180e8a60aa7SDivya Bharathi or resetting to a new password 181e8a60aa7SDivya Bharathi 182e8a60aa7SDivya Bharathi This attribute is mandatory when mechanism == "password". 183e8a60aa7SDivya Bharathi 1845b09081fSMauro Carvalho Chehab new_password: 1855b09081fSMauro Carvalho Chehab A write only value that when used in tandem with 186e8a60aa7SDivya Bharathi current_password will reset a system or admin password. 187e8a60aa7SDivya Bharathi 188e8a60aa7SDivya Bharathi Note, password management is session specific. If Admin password is set, 189e8a60aa7SDivya Bharathi same password must be written into current_password file (required for 190e8a60aa7SDivya Bharathi password-validation) and must be cleared once the session is over. 1915b09081fSMauro Carvalho Chehab For example:: 1925b09081fSMauro Carvalho Chehab 193e8a60aa7SDivya Bharathi echo "password" > current_password 194e8a60aa7SDivya Bharathi echo "disabled" > TouchScreen/current_value 195e8a60aa7SDivya Bharathi echo "" > current_password 196e8a60aa7SDivya Bharathi 197e8a60aa7SDivya Bharathi Drivers may emit a CHANGE uevent when a password is set or unset 198e8a60aa7SDivya Bharathi userspace may check it again. 199e8a60aa7SDivya Bharathi 200a40cd7efSMark Pearson On Dell and Lenovo systems, if Admin password is set, then all BIOS attributes 201e8a60aa7SDivya Bharathi require password validation. 202a40cd7efSMark Pearson On Lenovo systems if you change the Admin password the new password is not active until 203a40cd7efSMark Pearson the next boot. 204a40cd7efSMark Pearson 205a40cd7efSMark Pearson Lenovo specific class extensions 206a40cd7efSMark Pearson ------------------------------ 207a40cd7efSMark Pearson 208a40cd7efSMark Pearson On Lenovo systems the following additional settings are available: 209a40cd7efSMark Pearson 210a40cd7efSMark Pearson lenovo_encoding: 211a40cd7efSMark Pearson The encoding method that is used. This can be either "ascii" 212a40cd7efSMark Pearson or "scancode". Default is set to "ascii" 213a40cd7efSMark Pearson 214a40cd7efSMark Pearson lenovo_kbdlang: 215a40cd7efSMark Pearson The keyboard language method that is used. This is generally a 216a40cd7efSMark Pearson two char code (e.g. "us", "fr", "gr") and may vary per platform. 217a40cd7efSMark Pearson Default is set to "us" 218e8a60aa7SDivya Bharathi 219e8a60aa7SDivya BharathiWhat: /sys/class/firmware-attributes/*/attributes/pending_reboot 220e8a60aa7SDivya BharathiDate: February 2021 221e8a60aa7SDivya BharathiKernelVersion: 5.11 222e8a60aa7SDivya BharathiContact: Divya Bharathi <Divya.Bharathi@Dell.com>, 223e8a60aa7SDivya Bharathi Prasanth KSR <prasanth.ksr@dell.com> 2248599a12bSHans de Goede Dell.Client.Kernel@dell.com 225e8a60aa7SDivya BharathiDescription: 226e8a60aa7SDivya Bharathi A read-only attribute reads 1 if a reboot is necessary to apply 227e8a60aa7SDivya Bharathi pending BIOS attribute changes. Also, an uevent_KOBJ_CHANGE is 228e8a60aa7SDivya Bharathi generated when it changes to 1. 229e8a60aa7SDivya Bharathi 2305b09081fSMauro Carvalho Chehab == ========================================= 2315b09081fSMauro Carvalho Chehab 0 All BIOS attributes setting are current 2325b09081fSMauro Carvalho Chehab 1 A reboot is necessary to get pending BIOS 2335b09081fSMauro Carvalho Chehab attribute changes applied 2345b09081fSMauro Carvalho Chehab == ========================================= 235e8a60aa7SDivya Bharathi 236e8a60aa7SDivya Bharathi Note, userspace applications need to follow below steps for efficient 237e8a60aa7SDivya Bharathi BIOS management, 2385b09081fSMauro Carvalho Chehab 239e8a60aa7SDivya Bharathi 1. Check if admin password is set. If yes, follow session method for 240e8a60aa7SDivya Bharathi password management as briefed under authentication section above. 241e8a60aa7SDivya Bharathi 2. Before setting any attribute, check if it has any modifiers 242e8a60aa7SDivya Bharathi or value_modifiers. If yes, incorporate them and then modify 243e8a60aa7SDivya Bharathi attribute. 244e8a60aa7SDivya Bharathi 245e8a60aa7SDivya Bharathi Drivers may emit a CHANGE uevent when this value changes and userspace 246e8a60aa7SDivya Bharathi may check it again. 247e8a60aa7SDivya Bharathi 248e8a60aa7SDivya BharathiWhat: /sys/class/firmware-attributes/*/attributes/reset_bios 249e8a60aa7SDivya BharathiDate: February 2021 250e8a60aa7SDivya BharathiKernelVersion: 5.11 251e8a60aa7SDivya BharathiContact: Divya Bharathi <Divya.Bharathi@Dell.com>, 252e8a60aa7SDivya Bharathi Prasanth KSR <prasanth.ksr@dell.com> 2538599a12bSHans de Goede Dell.Client.Kernel@dell.com 254e8a60aa7SDivya BharathiDescription: 255e8a60aa7SDivya Bharathi This attribute can be used to reset the BIOS Configuration. 256e8a60aa7SDivya Bharathi Specifically, it tells which type of reset BIOS configuration is being 257e8a60aa7SDivya Bharathi requested on the host. 258e8a60aa7SDivya Bharathi 259e8a60aa7SDivya Bharathi Reading from it returns a list of supported options encoded as: 260e8a60aa7SDivya Bharathi 2615b09081fSMauro Carvalho Chehab - 'builtinsafe' (Built in safe configuration profile) 2625b09081fSMauro Carvalho Chehab - 'lastknowngood' (Last known good saved configuration profile) 2635b09081fSMauro Carvalho Chehab - 'factory' (Default factory settings configuration profile) 2645b09081fSMauro Carvalho Chehab - 'custom' (Custom saved configuration profile) 265e8a60aa7SDivya Bharathi 266e8a60aa7SDivya Bharathi The currently selected option is printed in square brackets as 2675b09081fSMauro Carvalho Chehab shown below:: 268e8a60aa7SDivya Bharathi 269e8a60aa7SDivya Bharathi # echo "factory" > /sys/class/firmware-attributes/*/device/attributes/reset_bios 270e8a60aa7SDivya Bharathi # cat /sys/class/firmware-attributes/*/device/attributes/reset_bios 271e8a60aa7SDivya Bharathi # builtinsafe lastknowngood [factory] custom 272e8a60aa7SDivya Bharathi 273e8a60aa7SDivya Bharathi Note that any changes to this attribute requires a reboot 274e8a60aa7SDivya Bharathi for changes to take effect. 275*f5bc0157SMark Pearson 276*f5bc0157SMark PearsonWhat: /sys/class/firmware-attributes/*/attributes/debug_cmd 277*f5bc0157SMark PearsonDate: July 2021 278*f5bc0157SMark PearsonKernelVersion: 5.14 279*f5bc0157SMark PearsonContact: Mark Pearson <markpearson@lenovo.com> 280*f5bc0157SMark PearsonDescription: 281*f5bc0157SMark Pearson This write only attribute can be used to send debug commands to the BIOS. 282*f5bc0157SMark Pearson This should only be used when recommended by the BIOS vendor. Vendors may 283*f5bc0157SMark Pearson use it to enable extra debug attributes or BIOS features for testing purposes. 284*f5bc0157SMark Pearson 285*f5bc0157SMark Pearson Note that any changes to this attribute requires a reboot for changes to take effect. 286