Re: Lay common foundation to make PVR/SGX work without hacks on OMAP34xx, OMAP36xx, AM335x and potentially OMAP4, OMAP5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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







[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux