BIOS Configuration
BMC supports configuring the NVIDIA® BlueField®'s BIOS using Redfish commands.
curl -k -H "X-Auth-Token: <token>" -X GET https://<bmc_ip>/redfish/v1/Registries/BiosAttributeRegistry/BiosAttributeRegistry
Output example:
In the following output, there is only one BIOS attribute, UefiPassword.
{
"@odata.type": "#AttributeRegistry.v1_3_6.AttributeRegistry",
"Description": "This registry defines a representation of BIOS attribute instances",
"Id": "BiosAttributeRegistry",
"Language": "en",
"Name": "BF2 BIOS Attribute Registry",
"OwningEntity": "NVIDIA BlueField",
"RegistryEntries": {
"Attributes": [
{
"AttributeName": "UefiPassword",
"CurrentValue": "",
"DisplayName": "New UEFI Password",
"DisplayOrder": 16,
"HelpText": "Set the UEFI password.",
"Hidden": false,
"Immutable": false,
"MaxLength": 50,
"MenuPath": "./SystemConfiguration/UefiPassword",
"MinLength": 0,
"ReadOnly": false,
"ResetRequired": false,
"Type": "String",
"WriteOnly": false
}
],
"Dependencies": [],
"Menus": [
{
"DisplayName": "Set the UEFI Password.",
"DisplayOrder": 18,
"Hidden": false,
"MenuName": "UefiPassword",
"MenuPath": "./SystemConfiguration/UefiPassword",
"ReadOnly": false
}
]
},
"RegistryVersion": "1.0.0",
"SupportedSystems": [
{
"FirmwareVersion": "BlueField:4.2.0-33-gbe969d4",
"ProductName": "NVIDIA BF2",
"SystemId": "BF2-DPU"
}
]
}
curl -k -H "X-Auth-Token: <token>" -H Content-Type: application/octet-stream -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/Bios/
Output example:
The current value of UefiPassword is an empty string.
{
"@Redfish.Settings": {
"@odata.type": "#Settings.v1_3_5.Settings",
"SettingsObject": {
"@odata.id": "/redfish/v1/Systems/Bluefield/Bios/Settings"
}
},
"@odata.id": "/redfish/v1/Systems/Bluefield/Bios",
"@odata.type": "#Bios.v1_2_0.Bios",
"Actions": {
"#Bios.ChangePassword": {
"target": "/redfish/v1/Systems/Bluefield/Bios/Actions/Bios.ChangePassword"
},
"#Bios.ResetBios": {
"target": "/redfish/v1/Systems/Bluefield/Bios/Actions/Bios.ResetBios"
}
},
"Attributes": {
"UefiPassword": ""
},
"Description": "BIOS Configuration Service",
"Id": "BIOS",
"Name": "BIOS Configuration",
"ResetBiosToDefaultsPending": false
}
curl -k -H "X-Auth-Token: <token>" -X PATCH https://<bmc_ip>/redfish/v1/Systems/Bluefield/Bios/Settings -d '{Attributes:{UefiPassword : NewPassword123}}'
This command example requests changing the UefiPassword attribute to NewPassword123. At the next boot cycle of the DPU, the UEFI changes the requested attribute if the requested value is valid.
curl -k -H "X-Auth-Token: <token>" -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/Bios/Settings
Pending values are a list of values that that user has requested to change. The list of pending values is purged once the UEFI changes the pending attributes.
Output example:
UefiPassword appears in the pending attributes list.
{
"@odata.id": "/redfish/v1/Systems/Bluefield/Bios/Settings",
"@odata.type": "#Bios.v1_2_0.Bios",
"Attributes": {
"UefiPassword": "NewPassword123"
},
"Description": "BIOS Settings",
"Id": "BIOS_Settings",
"Name": "BIOS Configuration"
}
The active BIOS attribute list is updated only after the UEFI approves the changes during the next reboot cycle.
Changing UEFI Password
curl -k -u root:<password> -X PATCH -H "Content-Type: application/json" https://<bmc_ip>/redfish/v1/Systems/Bluefield/Bios/Settings -d '{"Attributes":{"CurrentUefiPassword":"CurrentPassword", "UefiPassword":"NewPassword321"}}'