Plugin: AMDGPU
Introduction
This plugin reports the vbios version of APU devices supported by amdgpu and supports flashing the IFWI of some dGPU devices.
External Interface Access
This plugin requires R/W access to sysfs files located within /sys/bus/pci/drivers/*/amdgpu
.
This plugin requires ioctl access to DRM_IOCTL_AMDGPU_INFO
.
Firmware Format
This plugin supports the following protocol ID:
com.amd.pspvbflash
GUID Generation
The plugin will use standard PCI GUIDs, but also generate an AMD GPU specific GUID
with the part number: AMD\$PART_NUMBER
Update behavior
The dGPU will boot into the new firmware when the system is rebooted. The dGPU contains two partitions, and the update will be applied to the inactive partition. If the active partition becomes corrupted for any reason the dGPU may revert back to an older firmware present on the inactive partition.
Version Considerations
This plugin has been available since fwupd version 1.8.11
.
Update functionality has been available since fwupd version 1.9.6
.
Threat Model
The plugin runs within the privileged fwupd process. The plugin doesn’t directly interface with the hardware, but rather interfaces with the kernel driver which interfaces with the hardware.
flowchart LR
subgraph dGPU
PSP
SPI[(SPI)]
end
subgraph fwupd Process
fwupdengine(FuEngine)
plugin(AmdGpu\nPlugin)
end
subgraph Linux Kernel
kernel(amdgpu driver)
end
PSP <-.->SPI
kernel<--"mailbox"-->PSP
plugin--"psp_vbflash\nsysfs"-->kernel
plugin<--"psp_vbflash_status\nsysfs"-->kernel
plugin<--"DRM_IOCTL_AMDGPU_INFO()"-->kernel
fwupdengine -.- plugin
PSP ~~~ kernel
kernel ~~~ fwupdengine
Owners
Anyone can submit a pull request to modify this plugin, but the following people should be consulted before making major or functional changes:
- Mario Limonciello:
superm1