feat: Generate dummy rom for amd RX7000 series cards

By recommendation from gnif on discord.

Co-authored-by: Geoffrey McRae <geoff@hostfission.com>
This commit is contained in:
HikariKnight 2024-06-15 02:53:38 +02:00
parent 1002f4d64c
commit 4d0086df41

View file

@ -30,17 +30,28 @@ func genVBIOS_dumper(config *configs.Config) {
vbios_path := lsiommu.GetIOMMU("-g", "-i", config.Gpu_Group, "--rom")[0] vbios_path := lsiommu.GetIOMMU("-g", "-i", config.Gpu_Group, "--rom")[0]
configs.GenerateVBIOSDumper(vbios_path) configs.GenerateVBIOSDumper(vbios_path)
// Make the qemu config folder
os.Mkdir(fmt.Sprintf("%s/%s", scriptdir, config.Path.QEMU), os.ModePerm)
// Generate a dummy rom (1MB rom of zeroes) for use with AMD RX 7000 series cards by recommendation from Gnif
// Source: https://forum.level1techs.com/t/the-state-of-amd-rx-7000-series-vfio-passthrough-april-2024/210242
command.Run("dd", "if=/dev/zero", fmt.Sprintf("of=%s/%s/dummy.rom", scriptdir, config.Path.QEMU), "bs=1M", "count=1")
// Write a title // Write a title
title := color.New(color.BgHiBlue, color.White, color.Bold) title := color.New(color.BgHiBlue, color.White, color.Bold)
title.Println("Generated \"dump VBIOS\" script") title.Println("VBIOS roms for Passthrough")
// Tell users about the VBIOS dumper script // Tell users about the VBIOS dumper script and dummy rom for RX 7000 series cards
fmt.Print( fmt.Print(
"For some GPUs, you will need to dump the VBIOS and pass the\n", "If you have an RX 7000 series (and possibly newer AMD cards) GPUs, please use the dummy.rom file\n",
fmt.Sprintf("%s/%s/dummy.rom\n", scriptdir, config.Path.QEMU),
"Or disable ROM BAR for the card in qemu/libvirt\n",
"\n",
"For some other GPUs, you will need to instead dump the VBIOS (and possibly patch it) and pass the\n",
"rom to the VM along with the card in order to get a functional passthrough.\n", "rom to the VM along with the card in order to get a functional passthrough.\n",
"In many cases you can find your vbios at https://www.techpowerup.com/vgabios/\n", "In many cases you can find your vbios at https://www.techpowerup.com/vgabios/\n",
"\n", "\n",
"You can also attempt to dump your own vbios using the script in\n", "You can also attempt to dump your own vbios from TTY using the script in\n",
fmt.Sprintf("%s/utils/dump_vbios.sh\n", scriptdir), fmt.Sprintf("%s/utils/dump_vbios.sh\n", scriptdir),
"\n", "\n",
) )