On 24/11/14 11:19, Dave Airlie wrote:> Hey,
>
> Probably mostly for Ben, but I had this idea that it might be possible
> to write a userspace wrapper for the binary driver that run as root
> could be used to do the card init for the current or even a fake GPU
> then produce traces to pull the firmwares out.
>
> Not sure how insane it is, vs having to mmiotrace, but I just thought
> I'd see if anyone had considered it.
>
>
> Dave.
Hello Dave,
For the moment, we have an even-better solution developed by Ilia. This
script extracts firmwares from the blob's installer without having to
run it further than decompressing it.
Here it is:
https://raw.githubusercontent.com/imirkin/re-vp2/master/extract_firmware.py
And there is a package for archlinux here:
https://aur.archlinux.org/packages/nouveau-fw/
This solution is not perfect but, at XDC2014, we discussed it with Andy
Ritger from NVIDIA and we are looking into a way for them to release
their firmwares separately from the blob for our usage (along with the
rights to redistribute them).
As for your proposal of faking the GPU, we would need to change the
mmiotracing tool to fake any MMIO request and couple that with a minimal
hw model of NVIDIA GPUs. That being done, we would still need a
mmiotrace with the real card to produce the golden context (the initial
values for the context-switched registers).
In the end, i am not sure it is worth the effort as we will need to have
most chipsets anyway for testing purposes...
Martin