• [^] # Re: Armada

    Posté par (site web personnel) . En réponse à la dépêche Sortie de Linux 3.13. Évalué à 1.

    Source (je grasse) :

    Wladimir J. van der Laan (etna_viv): Vivante did not release their full driver as open source. The kernel component is available as open source (GPL) however the user space components which consist of the GLES(2) implementations and a HAL library are not. These, however, contain the bulk of the driver logic. My work was to painstakingly find out and document the state bits, command stream, and shader ISA by studying how these blobs work by examining and manipulating command stream dumps. And now I am working on using this information to build a Gallium driver.

    http://blog.emmanueldeloget.com/index.php?post/2013/01/12/Open-source-drivers-for-SoC-GPUs#c2102

    Wladimir J. van der Laan (etna_viv): The starting point of my development was a rooted Rockchip 2918 tablet a friend gave me. I wanted to hack on it, and when I first started playing with android rendering internals, I hoped it'd have any of Mali, Adreno, etc GPU. But it turned to be this (new to me) Vivante GPU. As there was no project making open source drivers for those yet I thought it'd be fun to see how far I'd get. I also wanted to do some experiments with binary static analysis and symbolic execution to automatically map GL state to HW state.
    In contrary to the userspace, the kernel driver is GPLed, which is great and I found various instances of the GPL drivers in SoC kernel trees. Unfortunately at first, none exactly matched the interface of my device. It took some puzzling with fields to get that part right, but it helped me along greatly in understanding the hw and kernel interface.
    After a month or so I found out that there were some more things already out there. There is the (defunct) gcx project which was working on an accelerated 2D driver, and some TI OMAP documentation about the 2D hardware. Nothing about 3D, though (that's the same as with many other GPU vendors). This did help me fill in some gaps in the command stream format as the 2D and 3D pipe share the same DMA interface.

    http://blog.emmanueldeloget.com/index.php?post/2013/03/08/The-SoC-GPU-driver-interview