Timeline for How can I verify if GPU firmware was loaded on boot?
Current License: CC BY-SA 4.0
18 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| May 14 at 10:34 | comment | added | Time4Tea | According to the Wikipedia article on microcode: "Some hardware vendors, notably IBM and Lenovo, use the term microcode interchangeably with firmware." So, there seems to be some general confusion over the distinction between the two terms? | |
| May 13 at 18:25 | comment | added | Marcus Müller | @grawity might be! The point is that this is a question whether the firmware loading mechanism used by the linux system ran; not whether the thing loaded was firmware for the RGB led controller on the graphics card, firmware for the power controller on the same board, firmware for the GPU scheduling, or microcode for specific stream processors. | |
| May 13 at 17:07 | comment | added | grawity |
@MarcusMüller I looked closer at /lib/firmware – it seems that Intel Wi-Fi NICs actually call their firmware images "iwlwifi-*-ucode" (though judging by the size, larger than most actual CPU microcode patches, I'd call those "firmware" rather than microcode). The Nvidia firmware tree used by the nouveau driver also contains 'ucode' files, from comments in the driver (and from drivers/gpu/drm/nouveau/nvkm/engine/sec/fuc/g98.fuc0s) I guess the term "microcode" kind of fits for those?
|
|
| May 12 at 17:39 | comment | added | grawity | It's still a separate PCI device that just happens to share the physical package (and maybe RAM) with the CPU, but is still "booted up" separately and everything. | |
| May 12 at 17:29 | comment | added | Time4Tea | @grawity although, it should be noted that, in this case, I am referring to an AMD GPU that is integrated with the CPU. In that case, would the GPU microcode still be loaded with the GPU firmware, or might it be loaded together with the CPU microcode? I believe the CPU microcode is being loaded (that seems to be in the dmesg log). | |
| May 12 at 16:19 | comment | added | grawity | I doubt it would make practical sense for GPU manufacturers to issue stand-alone microcode updates. CPU manufacturers do so, because their CPU is integrated into someone else's product – the CPU and ucode come from Intel or AMD, while the firmware and software (both on the same level) come from ASUS or Gigabyte or Microsoft or whoever. But GPUs are an integrated unit, with the processing unit and the software (firmware) it runs being made by the same company – so if the ucode of some units is updateable, they just develop and ship it together with the firmware for all the units. | |
| May 12 at 16:19 | comment | added | Time4Tea | Ok. Thank you @grawity for clarifying. So, GPU microcode might comprise part of the firmware that is loaded during boot, but it typically wouldn't be loaded just by itself. | |
| May 12 at 16:17 | comment | added | Marcus Müller | @Time4Tea they can, but your problem has nothing to do with that; this is not about whether the processor cores inside your GPU have had a microcode update, but about whether the GPU firmware was loaded. It's simply not about microcode! See grawity's comment. | |
| May 12 at 16:11 | comment | added | grawity | Generally speaking, "Firmware" is the program code that consists out of CPU instructions, while "Microcode" is what CPU instructions themselves are made of. I've not heard of any GPU manufacturers issue stand-alone microcode updates. While it's in theory possible that the firmware image of a GPU can also include microcode updates (just like PC BIOS firmwares often have CPU microcode bundled into them), it would be a very small part of the entire image – maybe 1% or 0.1% – while the vast majority would be regular "program" code that runs on top of that microcode. | |
| May 12 at 15:42 | comment | added | Time4Tea | @MarcusMüller I thought that GPUs, as well as CPUs, can require microcode to be loaded? In which case, why could my initial question not apply to microcode? I would also argue that 'hardware initialization' is a part of the boot process of the PC. | |
| May 12 at 15:29 | history | edited | Marcus Müller | CC BY-SA 4.0 |
deleted 3 characters in body; edited title
|
| May 12 at 15:28 | comment | added | Marcus Müller | one would argue that yes, microcode is one type of firmware. Your question is not about microcode, but about firmware loaded at hardware initialization time (not even at boot time). There's nothing relating to microcode in what you are referring to. It's a bit as if you didn't read the comment I gave, then said "yes, I agree with you, Marcus", then said the opposite of what I wrote. | |
| May 12 at 14:33 | comment | added | Time4Tea | @MarcusMüller I have tried to change the 'firmware' tag to 'microcode', but that doesn't seem to be sticking for some reason. Does the 'firmware' tag perhaps also cover microcode? | |
| May 12 at 14:29 | comment | added | Time4Tea | @MarcusMüller ok, fair enough. My question relates to 'microcode' as you describe it: i.e. small pieces of code that need to be loaded onto the GPU at boot time, for it to function. That is what I meant and perhaps my use of the term 'firmware' in my comment above was erroneous. | |
| May 12 at 14:04 | comment | added | Marcus Müller | That is a wrong understanding of microcode. Microcode specifically refers to the implementation of instructions that a processor supports by means of small (hence "micro") programs running on parts of the processor's execution pipeline. "Firmware that needs to be loaded at boot time" is just "firmware". | |
| May 12 at 13:47 | comment | added | Time4Tea | @MarcusMüller my understanding is that 'microcode' refers to a kind of firmware that needs to be loaded at boot time, for these devices to work properly (as opposed to persistent onboard firmware). My understanding is that both NVidia and AMD GPUs typically require microcode to be loaded on boot. So, my question is: how to verify if that microcode has been loaded (and what to do, if it hasn't been)? (of course, my understanding in these areas could be wrong!) | |
| May 12 at 13:40 | comment | added | Marcus Müller | is "microcode" something specific to amdgpu? Or is this just asking whether the firmware was loaded? | |
| May 12 at 12:59 | history | asked | Time4Tea | CC BY-SA 4.0 |