OpenOCD and the iMX6

Sometimes is is quite handy to have access to a JTAG interface to look more deeply into problems.  The weapon of choice is an Olimex ARM-USB-OCD-H JTAG in combination with OpenOCD 0.8.0. First we will need to install OpenOCD. apt-get install libftdi-dev Download and extract OpenOCD 0.8.0 run ./configure run make && make install 461Read more …

Vivante MMU v1

I did spend quite some time the last days to figure out how the MMU v1 could work and what all the code in the v4 Kernel sources does. It took quite some time and a little hint from Russel to finally understand it. So lets start with the technical details. The MMU uses a page table with a maximum size of 256KB. Where each Page Table Entry (PTE) is 4 byte long. The used page size is 4K and can not be changed via some registers etc. Lets have a look at…Read more …

The next steps for etnaviv

I did spend some time to find the cause for the rendering issues during running some egls2 demos. The fix is a simple one-liner and I would say that GC8xx and GC2000 are 'equal' now. That means general work on etnaviv can start now. Currently I am looking in different problem zones and where to start. Update mesa fork Start working on an improved compiler Start working on an kernel interface I think that Rob will start soon on the kernel interface and the mesa update should be doable during some hours. So…Read more …

Mesa meets GC2000

Here is the first result of running mesatest_gles on mesa&etna: Following tests are showing good visual results compared to swrast: Hello_Triangle/CH02_HelloTriangle Simple_VertexShader/CH08_SimpleVertexShader CubeVBO/cube_vbo ParticleSystem/CH13_ParticleSystem Viewports/viewports All other are visual corrupted or segfault. So there is still some work done to get all demos up and running.Read more …

GC2000 support for etnaviv

Today I hit an important milestone for etnaviv - an open source user-space driver for the Vivante GCxxx series of embedded GPUs. I finally got GC2000 support to a level that it seems to work. It took me some months to get there. At the beginning it sounds easy to rebuild a 'driver' if you get readable command buffer dumps. I did start with working on a simple replay program to render a cube in the same was as the binary blob does it. But what should I say... it is quite boring…Read more …

Rebase Github fork

Today I needed to rebase my etnaviv fork to the current master of upstream. I need to say that I never did this before but with git this is a breeze. If you get a merge conflict during rebase, you only need to follow the instructions git gives you.Read more …

CMake: Post install scripts for debian

I am using cmake during my job to create Debian installation packages for different kind of software projects. Today I run into an issue. I needed to run some post installation steps. I know that this is quite easy possible within a deb file, but how to archive the same with cmake? It turned out to be quite easy: Where postinst is the script which gets executed after the deb got installed.Read more …