Hello, The Tegra GPU system software team has begun to align our new-chip development efforts with Nouveau. In particular we would like to arrive at a place where the Nouveau kernel driver code base is our primary development environment. To that end I'd like to add some "official" hardware reference headers to Nouveau. The headers are derived from the information we use internally. I have arranged the definitions such that the similarities and differences between GPUs is made explicit. I am happy to explain the rationale for any design choices and since I wrote the generator I am able to tweak them in almost any way the community prefers. For this specific phase I can provide information already available for GK20A and GM20B (via either nvgpu and/or the ongoing work to add Tegra support to Nouveau). We have already gone through an internal IP review process on those... but, over the long-term I'm confident any information we need to fill-in functionality >= NV50/G80 will be made public eventually. We just need to go through the internal steps necessary to make that happen. I started a Nouveau branch of my own to treat as a scratch pad and for keeping track of discussion: https://github.com/kfractal/nouveau/tree/hwref That branch tracks: https://github.com/Gnurou/nouveau/tree/staging I also have: https://github.com/kfractal/nouveau/tree/old-hwref which has some earlier notes and discussion on use-patterns. Once we're happy with the placement and organization of these headers and accessors, I've been given the freedom (i.e. time and space) to follow through and help make Nouveau our go-to chip development kernel driver. I'm looking forward to comments and to actually, finally, jumping in :) Thanks! --- Ken Adams kadams at nvidia.com
Hello again, I've updated my nouveau branch to incorporate some suggested tweaks, etc. Also, this version breaks out all the chips separately. Seeing it expressed this way shows how many files it is... :) I've removed the drf macros from this version as well, as we can treat those separately. https://github.com/kfractal/nouveau/commit/f2e6c736a0d9475bc65f5d41a9df3bf5 6a0c823c --- ken
On 7 July 2015 at 23:40, Ken Adams <KAdams at nvidia.com> wrote:> Hello again, > > I've updated my nouveau branch to incorporate some suggested tweaks, etc. > Also, this version breaks out all the chips separately. Seeing it > expressed this way shows how many files it is... :) I've removed the drf > macros from this version as well, as we can treat those separately.Hey Ken, Despite the fact it's a lot more LoC, I like this version a lot better. It's far easier to see what you're looking at exactly now :) The only nit-pick I have left (I think...) is that the hwref/chipset/nv_device_hwref.h is a bit redundant, and could be hwref/chipset/device.h :) What are the chances that the exposed registers can be expanded to (at least) cover the stuff that nouveau currently touches? For example, NV_PTIMER_TIME_0/1 (etc) doesn't seem particularly IP-sensitive and are missing ;) nv04-g7x would be nice too at some point! Thanks, Ben.> > https://github.com/kfractal/nouveau/commit/f2e6c736a0d9475bc65f5d41a9df3bf5 > 6a0c823c > > > --- > ken > > _______________________________________________ > Nouveau mailing list > Nouveau at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/nouveau