You are not logged in.

#1 2015-06-10 01:13:20

rb3
Member
Registered: 2012-09-17
Posts: 9

[SOLVED] How to Read Out rMBP Mid-2014 Nvidia ROM?

Hi, I've been looking around for weeks for a way to read out my GPU ROM into a file. I have a Mid-2014 rMBP with the Nvidia GT 750m graphics card. I'm trying to get VGA passthrough to work on KVM+Qemu. Qemu is not able to read the contents of the GPU ROM, so I need to pass it a valid ROM file.

I have tried fiddling with the corresponding PCI files in the "/dev" directory on Linux, but issuing `cat rom` results in a "input/output error". I have looked around in "/sys/firmware/efi/efivars", but I haven't been able to figure out if the two ROM files in there are for the GPU (`cat` doesn't output valid ROM contents). I have also tried booting into a Windows To Go external hard-drive, and using GPU-Z to try and extract the ROM, but GPU-Z complains about not being able to read the ROM.

Is there some trick or hack that I can do to get the ROM file? Or does anyone actually have a ROM file for this machine?

Thanks in advance for the help!

Last edited by rb3 (2015-06-24 02:08:03)

Offline

#2 2015-06-24 02:07:49

rb3
Member
Registered: 2012-09-17
Posts: 9

Re: [SOLVED] How to Read Out rMBP Mid-2014 Nvidia ROM?

So I just extracted the ROM from mapped memory instead of tying to use sysfs. Basically I used a variant of the script documented in the link.

cat /proc/iomem | grep 'PCI Bus 0000:01'

On my MBP, the above commands prints out two memory ranges. I used the values in the smaller memory range in the following command:

(m=c0000000-c10fffff; m=${m/ :*}; s=${m/-*}; e=${m/*-}; \
dd if=/dev/mem of=vgabios.bin bs=1c skip=$[0x$s] count=$[$[0x$e]-$[0x$s]+1])

...which, after a while, produced a valid ROM file that could be read the by ROM parser script documented here.

Last edited by rb3 (2015-06-24 02:18:25)

Offline

Board footer

Powered by FluxBB