Skip to content

Tools and Resources

Ausdauersportler edited this page Aug 21, 2023 · 7 revisions

Used tools and helpful links

  1. ATOMTableResize Exchange and modify ATOM objects easily, automatically fixing the checksum upon saving - can be used together with "Hex Fiend" by adding the correct path in the file "editor.ini". Has some known nasty bugs and unfortunately no source code is available to fix it. Use upload on this site.
  2. Hex Fiend, together with PCI option ROM template - enhanced version of this original post.
  3. EfiRom from EDK2 EfiRom (BaseTools/Source/C/EfiRom) can be compiled for macOS relatively easy. Combines compressed EFI drivers and legacy VBIOS part into a VBIOS image ready for flashing
  4. AtomDis For checking the ATOM pointer tables after manually moving/modifying them, compiled executable attached, header file atombios.h contains valuable information about the structure of most ATOM objects
  5. netkas thread about how to modify port mapping in assembly code
  6. radeon_bios_decode and redsock_bios_decoder
  7. radeon_bios_decode with hotplug id output get information about port mappings in a VBIOS file, does not work for NAVI and later
  8. Red BIOS Editor tune clock settings (transferring the PowerPlayInfo to a VIBOS accepted by RBE, editing it and finally transfer the edited PowerPlayInfo back to the target VBIOS), can be used in macOS by means of wine
  9. Polaris BIOS Editor mainly helpful for quickly inspecting the VRAM_Info ATOM object and for correcting the checksum after manual modifications, doesn't run in wine, so Windows only
  10. UEFIRomExtract can be used to extract and decompress GOP or CoreEG2 EFI drivers from a VBIOS file
  11. GRML-FLASH to save the iMac firmware, flash AMD and NVIDIA graphics cards.
  12. UEFITool-NE can be used to modify the iMac firmware or extract modules for BIOS programming from it.
  13. Ghidra Disassembler can be used to dissemble and analyze EBC (EFI Byte Code) using the extension below (can be installed directly or using package managing tools like MacPorts and HomeBrew).
  14. Ghidra Disassembler EBC extension
  15. IDA Disassembler can be used to dissemble and analyze x32/64 efi code.
  16. NAVI version of radeon_bios_decode
  17. Anorak Windows AMD CRC checker
  18. atomtool.py - fixes checksum and allows table changes, made it python3 compliant and replaced md5 by hashlib call. If your current python installation is different change the first line of the Python script accordingly.

Other great resources:

  1. The AMD and NVIDIA GOP update explains in great detail how to add a GOP (manually and with a tool provided there) to an existing vBIOS and how the PCIR header structure is constructed. I am using the manual method described there when doing all modifications here. You can make the (original Windows only) python based tool work on macOS and Linux by adjusting the absolute path settings (change \ with /).
  2. The AMD Linux header files can be used to understand the legacy part, valid for NAVI and later.
  3. The older AMD Linux header files can be used to understand the legacy part of all other and older GPU versions we are talking about here.