Hello, long time lurker and watcher. Can’t believe this was the topic that would get me to finally register but I had a lot of questions on my mind when this hack was mentioned in the video and reading the post and learning it is definitively a cross-flash, I wanted to share some thoughts and concerns from my own research to hopefully have it addressed in some way in the future since I am sure I probably hit a brick wall on that front and do want to know if I can get it answered if and when a guide/video comes out about this. Hopefully not giving too much away here but anyways, If one looks at the documentation for the Intel Graphics Firmware flash tool, IGSC, on Github, there’s a bunch of options around the firmware updating including allowing for downgrading. Due to the separation of the GSC Firmware and OPROM, it isn’t clear if you can get away with only needing the OPROM updated here but it would be great if that was the case.
It does get a little murky once you are forced to deal with the GSC Firmware. I’m not entirely sure how you can modify or get that firmware flashed onto a device with IGSC itself since there isn’t an option there to force flashing. Weirdly enough however, XPUManager or xpumcli
/xpu-smi
, which is basically nvidia-smi
or rocm-smi
for Intel, does have this as seen here (And yes, it does work partially on Intel Arc despite it only officially supporting Intel Flex and is criminally underrated due to Intel not even doing much with it outside of the datacenter, it seems).
❯ xpu-smi updatefw --help
Update GPU firmware
Usage: xpu-smi updatefw [Options]
xpu-smi updatefw -d [deviceId] -t GFX -f [imageFilePath]
xpu-smi updatefw -d [pciBdfAddress] -t GFX -f [imageFilePath]
Options:
-h,--help Print this help message and exit
-j,--json Print result in JSON format
-d,--device The device ID or PCI BDF address
-t,--type The firmware name. Valid options: GFX, GFX_DATA, GFX_CODE_DATA, GFX_PSCBIN, AMC. AMC firmware update just works on Intel M50CYP server (BMC firmware version is 2.82 or newer) and Supermicro SYS-620C-TN12R server (BMC firmware version is 11.01 or newer).
-f,--file The firmware image file path on this server
-u,--username Username used to authenticate for host redfish access
-p,--password Password used to authenticate for host redfish access
-y,--assumeyes Assume that the answer to any question which would be asked is yes
--force Force GFX firmware update. This parameter only works for GFX firmware.
That implies strongly that this functionality should exist in IGSC as well somewhere but I’m not entirely sure if it is user facing.
The other thing though that does concern me a bit afterwards is the prerequisites for making SR-IOV work even after the crossflash works and what is supposedly needed. If you run the precheck command as seen in the documentation, I see the following on my home system running an AMD CPU.
❯ xpu-smi vgpu --precheck
+----------+---------------------------------------------------------------------------------------+
| VMX Flag | Result: Fail |
| | Message: No VMX flag, Please ensure Intel VT enabled in BIOS |
+----------+---------------------------------------------------------------------------------------+
| SR-IOV | Result: Fail |
| | Message: Failed to read sriov_totalvfs. |
+----------+---------------------------------------------------------------------------------------+
| IOMMU | Result: Pass |
| | Message: |
+----------+---------------------------------------------------------------------------------------+
To pass the check, it seems like VT-x/VMX flag is required but that is Intel-only. I don’t see any reason why this shouldn’t work using AMD’s virtualization instead, SVM, but I think that alone will block you from using the utility to manage vGPUs Intel’s way so it’s either manually editing a file or doing it via some Linux internal manner of which I would be surprised at the latter since SR-IOV right now heavily depends on vendor support to be functional. Anyways, looking forward to learning about this when the time is right and hopefully the concerns and thoughts I expressed here can be addressed when that time comes.
Also really regretting only registering now since I can’t include links which would’ve made my post even better. (Edit: Now I can, thank you, and have edited my post to add the appropriate links).