Skip to content
Golden Delicious Computers GmbH&Co. KG edited this page Mar 2, 2019 · 9 revisions

This project is about shaping existing GPL Linux kernel drivers for the PVR/SGX5 architecture so that they can become accepted into drivers/staging (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/staging).

It is NOT about reverse engineering or user-space components (firmware and libraries). Just the device driver which handles reset, clock, memory/dma interface, open/ioctl, firmware download, framebuffers/DRM.

There may also be some glue code here for interfacing to the processor of the SoC (OMAP, Sunxi, Poulsbo, Cedarview, jz4780) but that should go separately to the arch/ subdirectories and device tree sources.

For communication, please subscribe and CC: all discussion to the linux-omap mailing list (http://vger.kernel.org/vger-lists.html#linux-omap), even if you work for non-omap architectures. We plan to get our own mailing list, but the request was not yet accepted.

Current work is being done based on DDK 1.14.3699939. The plan is to

  1. make it compile within the kernel tree for omap e.g. CONFIG_SGX=y, CONFIG_SGX_114, CONFIG_SGX_OMAP=m (done)
  2. make it compile within the kernel tree for sunxi, jz4780, cedarview, poulsbo (tbd)
  3. make it load on omap3 (done)
  4. make it successfully download the firmware on omap3 (tbd)
  5. make it successfully download the firmware on other omap (tbd)
  6. rework the driver module so that we read more config information from device tree and do not need separate builds for each combination of SoC and SGX version/variant (tbd)
  7. clean up so that it can be accepted into drivers/staging

How to build current work-in-progress:

git checkout -B work-pvr114 letux/latest-pvr
git merge letux/omap-pvr
git merge letux/omap-soc-glue
...add compatible = "ti,omap3-gpu", "ti,sgx", "ti,omap-omap3630-sgx530-125", "img,sgx530-125"; to arch/arm/boot/dts/omap36xx.dtsi
echo CONFIG_SGX=y >>arch/arm/configs/omap2plus_defconfig
echo CONFIG_SGX_114 >>arch/arm/configs/omap2plus_defconfig
echo CONFIG_SGX_OMAP=m >>arch/arm/configs/omap2plus_defconfig

make

This should build multiple kernel modules but DT will load the right one by matching ti,omap-omap3630-sgx530-125.

Clone this wiki locally