[Letux-kernel] Lay common foundation to make PVR/SGX work without hacks on OMAP34xx, OMAP36xx, AM335x and potentially OMAP4, OMAP5
H. Nikolaus Schaller
hns at goldelico.com
Wed Feb 13 08:15:01 CET 2019
Hi,
>>
>> I'm looking now into that PVR SGX driver since a while. I already reworked that old "opensource" driver to work with a quite new kernel (4.16 or 4.17) [But that code got lost].
>> For the sunxi devices this was only a short coding session to get that running. For OMAP this might be easier/faster since the general linux situation is better.
>>
>> I'm not sure if we are able to provide a generic driver since there are different userspace versions that are only compatible with their own kernel driver. Not all compile flags for the kernel driver work with all userspace lib versions, at least on sunxi. Be aware that there are also different versions of those GPU ip cores and all have different features and bug fixes.
>
> Regarding that the DDK contains a lot of compile switches (#if for all bug fixes/errata). And different SoC and version glue are handled by code in
> different eurasia_km / services4 / system subdirectories.
Here are some hints which SGX versions and errata are supported by the TI/IMG kernel driver tree:
http://git.goldelico.com/?p=letux-kernel.git;a=blob;f=drivers/staging/pvr/omap3/services4/srvkm/hwdefs/sgxerrata.h;h=92f721e06f26216c89b1f047c3aa7c4fc1cc35ad;hb=refs/heads/letux/omap-pvr
From that I see support of
SGX520
SGX530
SGX531
SGX535
SGX540
SGX543
SGX544
SGX545
SGX554
Unfortunately this is handled by #ifdefs and therefore we can not (yet) build a single
driver that fits al devices. Each one needs different CONFIG and emits a different binary
kernel module.
But IMHO it could be possible to replace the #if defined(SGX540) by some dynamic call
to check for the compatible value. And also refine enabling individual errata handlers like
"#define FIX_HW_BRN_31671 /* workaround in uKernel */"
This will slow down code a little and make it grow, but would be more universal.
I have also checked the latest DDK. These errata just add more SGX versions (SGX5300),
but the code structure is the same.
But his is some idea for future work. We need to really lay the common foundation first by
agreeing how to work together.
BTW: what about a specific mailing list? There was one installed by FSF and there
was a Wiki but they are dead now
https://libreplanet.org/wiki/Group:PowerVR_drivers
Fortunately we have the wayback machine: https://web.archive.org/web/20170923050320/http://powervr.gnu.org.ve/doku.php
BR,
Nikolaus
More information about the Letux-kernel
mailing list