[Nouveau] idea of extracting microcode

Martin Peres martin.peres at free.fr
Mon Nov 24 05:50:36 PST 2014


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


More information about the Nouveau mailing list