I gave the Nvidia 710b card a try: - booted with 2 cards, AMD primary, NVidia secondary - unbind noveau driver - use nvflash (see below) to dump nvidia vbios - rom-parser parser on it: Valid ROM signature found @600h, PCIR offset 190h PCIR: type 0 (x86 PC-AT), vendor: 10de, device: 128b, class: 030000 PCIR: revision 0, vendor revision: 1 Valid ROM signature found @fc00h, PCIR offset 1ch PCIR: type 3 (EFI), vendor: 10de, device: 128b, class: 030000 PCIR: revision 3, vendor revision: 0 EFI: Signature Valid, Subsystem: Boot, Machine: X64 Last image
However when I try to use nvidia_vbios_vfio_patcher.py I get an error: python nvidia_vbios_vfio_patcher.py -i ../nvidia.rom -o patched Opening the ROM file... Scanning for ROM offsets... Traceback (most recent call last): File "nvidia_vbios_vfio_patcher.py", line 194, in <module> main() File "nvidia_vbios_vfio_patcher.py", line 168, in main rom.detect_offsets() File "nvidia_vbios_vfio_patcher.py", line 77, in detect_offsets raise CheckException("Couldn't find the ROM footer!") __main__.CheckException: Couldn't find the ROM footer! It seems that my cards vbios is maybe too old (?). I looked at the "footer" and saw that the offset between "564e" and "NPDS" is 124 octels instead of 348 as the script expects: 00020e00: 564e 3f00 0000 0000 0000 0000 0000 0000 VN?............. 00020e10: 0000 0000 0000 0000 4000 65d0 163b 5159 ........@.e..;QY 00020e20: 6859 c05d 501e 0800 0000 0000 0000 0000 hY.]P........... 00020e30: 0000 0000 0000 0000 0000 002e 8bc0 8bc0 ................ 00020e40: 4e50 4453 de10 b012 0000 1800 0000 0000 NPDS............ 00020e50: 3f00 0000 e000 0000 2e8b c02e 8bc0 8bc0 ?............... 00020e60: 4e50 4445 0101 0c00 3f00 0000 0171 c3f9 NPDE....?....q.. 00020e70: c3f8 c30b e4c3 3bc0 c3b8 4f01 c3cb 0000 ......;...O..... When I do this change then nvidia_vbios_patcher.py finishes: diff --git a/nvidia_vbios_vfio_patcher.py b/nvidia_vbios_vfio_patcher.py index 0e899fd..cda844a 100755 --- a/nvidia_vbios_vfio_patcher.py +++ b/nvidia_vbios_vfio_patcher.py @@ -69,11 +69,13 @@ class VBIOSROM(object): # Search for the footer, which are shortly followed by # 'NPDS' and 'NPDE' strings. 'NPDS' and 'NPDE' markers are separated by # 28 ASCII characters - FOOTER_REGEX = ( - b'564e(([a-z]|[0-9]){348})(4e504453)(([a-z]|[0-9]){56})(4e504445)' + # 348 + FOOTER_REGEX = ( + b'564e(([a-z]|[0-9]){124})(4e504453)(([a-z]|[0-9]){56})(4e504445)' ) result = re.compile(FOOTER_REGEX).search(self.content) if not result or len(result.groups()) != 6: But actually I have no idea what the patcher actually does. Is it patching x86 vbios code? NVIDIA Firmware Update Utility (Version 5.414.0) Simplified Version For OEM Only Adapter: GeForce GT 710 (10DE,128B,0000,0000) H:--:NRM S:00,B:05,D:00,F:00 Identifying EEPROM... EEPROM ID (7F,9D42) : PMC Pm25LQ020 2.3-3.6V 2048Kx1S, page Reading adapter firmware image... IFR Data Size : 1164 bytes IFR CRC32 : CF1166A7 IFR Image Size : 1536 bytes IFR Image CRC32 : 66302A97 IFR Subsystem ID : 0000-0000 Image Size : 167936 bytes Version : 80.28.A6.00.11 RC32 : D3697E3F Image Hash : 2F6FCEF455A9D2462C3184827417106D Subsystem ID : 0000-0000 Hierarchy ID : Normal Board Chip SKU : 203-0 Project : 2132-0014 CDP : N/A Build Date : 10/09/15 Modification Date : 01/06/16 UEFI Support : Yes UEFI Version : 0x10033 (Jul 13 2015 @ 19761311 ) UEFI Variant Id : 0x0000000000000004 ( GK1xx ) UEFI Signer(s) : Microsoft Corporation UEFI CA 2011 InfoROM Version : N/A InfoROM Backup Exist : NO License Placeholder : Absent GPU Mode : N/A Saving of image completed. Am Di., 21. Aug. 2018 um 04:19 Uhr schrieb Alex John <a...@stty.io>: > On Mon, Aug 20, 2018 at 05:41:57PM +0200, Konrad Eisele wrote: > > How can I dump the rom image? > > I used > > $cd /sys/devices/pci0000:00/0000:00:02.0/0000:01:00.0 > > $echo 1>rom > > $cat rom > /mnt/nvidia_bios.rom > > This method did not work for me with a 1080 GTX. I reseated the GPU in > PCIe lane > 2 of my botherboard, swapped primary GPU to the iGPU and then dumped the > rom > using nvflash. > > While the device was still the primary GPU (after reseating and > rebooting), I > had to use a patching utility[0] before it could be passed through. > > Thanks > Alex > > [0] https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher > > _______________________________________________ > vfio-users mailing list > vfio-users@redhat.com > https://www.redhat.com/mailman/listinfo/vfio-users >
_______________________________________________ vfio-users mailing list vfio-users@redhat.com https://www.redhat.com/mailman/listinfo/vfio-users