SGX544MP/ReverseEngineering

Current Status
This has just started. Right now I'm trying to find out as much as possible about the GPU and get debug informations from available drivers.

If you want to support please contact embed3d[at]gmail[dot]com.

WIP Datasheet source code: https://github.com/embed-3d/PVRSGX_hwdoc

WIP Datasheet as html: http://pvrsgx-hwdoc.readthedocs.io/en/latest/

''' I decided to pause this project/put it one hold. There are multible reasons for that:

'''- I received some "leaked" documents that makes it impossible for me to write an opensource driver without any legal issue.

'''- General legal issues.

'''- I asked myself: How can I proof, that I used my reverse engineered infos and didn't look at the code? Answers: Its impossible!!

'''- The A83T requires some patches that are right now not mainlined.

'''- Allwinner H6 boards are available right now and it is more important to support H6 in mainline.

'''- Reading the blog post from libv: http://libv.livejournal.com/26972.html

'''If Img Tech changes its mind and supports an opensource driver I will continue to work on this. embed-3d'''

''' Update 09/05/2018: Arround Mid Dezember 2018 till mid Januar 2019 I'm planning to start a clean-room reverse engineering project with a proof of concept software.

A83T - Bananapi M3
WIP (Right now I'm working on this!! This is not finished yet!! - embed-3d) :

clone the following repo: https://github.com/embed-3d/BPI-M3-PVR-SGX.git ( It contains a better pvr driver integration and some additional printouts.

Follow the instructions in the Readme.md on my github project.

Right now I just implemented a few debug printouts. A first log could be found here (The messages start with: #PVR_DBG)

If you have any problems/questions please contact me.

Application Debugging
Under /usr/home/local/bin/ is a binary called pdump (at least in the BPI-M3 Images). This application can connect to the PDUMP stream of the kernel driver and writes a detailed log. It generates 3 output files: out2.txt (This is the detailed log, example log), out_drvinfo.txt (this is empty?), and a out2.prm (some binary file, might be the SGX ukernel USE programm). These options are available: pi@bpi-iot-ros-ai:~$ /usr/local/bin/pdump -h Command line options... -h Displays this help. -c, start and stop frames for param capture. m - Hotkey parameter capture. Note: in order for pdump to shut-down automatically, some platforms require the target application to generate at least one more frame than is being captured. E.G. for 'pdump -c0-3', the application would need to generate at least 5 frames. -fo Output file name excluding extension. -sr Specifies rate at which to grab parameters: -kill to close pdump down -nodac Disables DAC stream. -noref Disables REF stream.

In this directory is also test software.

Folder structure

 * eurasia_km/services4/system/sunxi : connector for the system initalization (like clocks, power, ...)
 * eurasia_km/services4/3rdparty/dc_sunxi : connector to the frame buffer
 * eurasia_km/include4/aw : some additional defines


 * eurasia_km/services4/srvkm/devices/sgx : SGX Hardware functions
 * eurasia_km/services4/srvkm/hwdefs : Hardware defines (seems like this is not complete, see log files)

Links
Enable SGX Debugging