[Openpvrsgx-devgroup] New branch and tree structure

H. Nikolaus Schaller hns at goldelico.com
Sat Nov 16 13:20:53 CET 2019

after our discussion about staging or gpu/drm I have reworked our
branches and tree structure.

Files are now all residing in


On top level we have the Kconfig and Makefile and initial patches
by Tony going towards a generic driver.

And we have subdirectories for different DDK versions I have collected.
This leads to the following source tree structure:

iMac:master hns$ ls -l drivers/gpu/drm/pvrsgx/
total 392
drwxr-xr-x  4 hns  staff     238 Nov 16 09:48 1.10.2359475
drwx------@ 3 hns  staff     238 Nov 16 09:47 1.13.3341330
drwxr-xr-x  3 hns  staff     102 Nov 15 18:19 1.14.3699939
drwx------@ 3 hns  staff     238 Nov 16 09:47 1.14.3759903
drwxr-xr-x  3 hns  staff     102 Nov 16 08:52 1.14.3841212
drwxr-xr-x  3 hns  staff     102 Nov 16 09:52 1.15.4564147
drwxr-xr-x  3 hns  staff     102 Nov 15 17:37 1.17.4948957
drwxr-xr-x  4 hns  staff     272 Nov 16 09:47 1.9.2253347
-rw-r--r--  1 hns  staff    2037 Nov 16 09:47 Kconfig
-rw-r--r--  1 hns  staff    8259 Nov 16 09:47 Makefile
-rw-r--r--  1 hns  staff    3277 Nov 16 09:47 TODO
-rw-r--r--  1 hns  staff    7958 Nov 16 09:47 pvr-drv.c
-rw-r--r--  1 hns  staff    3207 Nov 16 09:47 pvr-drv.h
iMac:master hns$ 

I hope piling up all these DDK versions will allow to compare
them and learn somethings, towards developing a common and
generic driver picking the best from all.

If you have pointers to other DDK releases, please let me know.

To cope with these multiple DDK variants, I have added a choice
selector to Kconfig. This replaces the older CONFIG_SGX_114 flag:

# CONFIG_PVRSGX_1_9_2253347 is not set
# CONFIG_PVRSGX_1_10_2359475 is not set
# CONFIG_PVRSGX_1_13_3341330 is not set
# CONFIG_PVRSGX_1_14_3759903 is not set
# CONFIG_PVRSGX_1_14_3841212 is not set
# CONFIG_PVRSGX_1_15_4564147 is not set
# CONFIG_PVRSGX_1_17_4948957 is not set
# CONFIG_SGX_DEBUG is not set

Adding a new DDK variant isn't very difficult. It must be
tree-filtered to the right location and we have to modify
Kconfig and the Makefile to add another choice option.

Note that these DDK branches are based on linus/master and will
be rebased regularly. And another note: some of the DDKs have
an eurasia_km subdirectory. I have kept that intact since it
only influences the SUBPATH in the Makefile.

About the branch structure it now looks as follows:

letux/omap-sysc-prm-gfx		OMAP related clock, reset infrastructure additions
				almost in linux-next or soon (5.5-rc1) in mainline
letux/omap-pvr-soc-glue		mainly bindings and  DTS additions for OMAP (and JZ4780)
letux/pvrsrvkm			Kconfig, Makefile, and new generic driver code
letux/pvrsrvkm-1.9.2253347	individual DDK versions
letux/pvr-demo			gpu-demo and sgxdump scripts

All this is merged together into the branch


after adding CONFIGs for omap2plus_defconfig and ci20_defconfig.
So you should find an almost current mainline+pvrsgx kernel here.

This structure is IMHO now mature and allows to add further
components (e.g. DDK versions, code clean up) without breaking
the overall structure.


PS: latest video: https://youtu.be/G_QGU6e3eyA

More information about the openpvrsgx-devgroup mailing list