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

From: H. Nikolaus Schaller
Date: Wed Aug 14 2019 - 04:56:51 EST


Hi all,

> Am 17.07.2019 um 12:51 schrieb Merlijn Wajer <merlijn@xxxxxxxxxx>:
>
> Hi,
>
> On 10/03/2019 08:07, H. Nikolaus Schaller wrote:
>>
>>> Am 10.03.2019 um 00:14 schrieb Merlijn Wajer <merlijn@xxxxxxxxxx>:
>>>
>>> Hi,
>>>
>>> On 15/02/2019 14:09, H. Nikolaus Schaller wrote:
>>>
>>>>>> At least I can download and start firmware. I just have to find a way to fix the omaplfb so that it works
>>>>>> with our omapdrm based panels to runs the CLipBlit test [1] on modern kernels...
>>>>>
>>>>> Maybe you can compare with what we have here:
>>>>> https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-4.15.7/drivers/gpu/pvr
>>>>
>>>> I'll take a look into it especially how omaplfb is done.
>>>>
>>>> First observation is that there is a "flat" tree while I am working on a structured one...
>>>> But that is just a marginal difference (mainly significant for Makefile writers).
>>>
>>> I've ported the Maemo Leste kernel + pvr to 5.0 and it seems to work:
>>> https://github.com/maemo-leste/n9xx-linux/commits/pvr-wip-5.0.y
>>>
>>> Should I add this as maemo-leste-n900-5.0 branch (or something) to
>>> https://github.com/openpvrsgx-devgroup/linux_openpvrsgx ?
>>
>> Yes, that would be nice to be able to easily compare stuff.
>
> I've just pushed the Maemo Leste v5.1 branch + patches here:
>
> https://github.com/openpvrsgx-devgroup/linux_openpvrsgx/tree/n900/v5.1-patch
>
> This works on N900 with X, but it doesn't use DRM yet. I'm wondering
> what a next logical step would be: to try and modules to load/probe on
> another device (I have a droid4 or a Pandaboard ES rev B1), or to try
> and get DRM PowerVR to work on the N900, with omapdrmfb and dri3wsegl.
>
> For either path, I'll probably need some help. Any updates from anyone
> else? Maybe we should list things people can work - perhaps document
> progress in github issues. (Mailing list is also fine, BTW)
>
> Cheers,
> Merlijn
>

I also have pushed good news to

https://github.com/openpvrsgx-devgroup/linux_openpvrsgx/tree/letux-pvr

Thanks to the help from the Pyra community, I was able to get a (binary) reference
implementation using DRM that works on Pyra/OMAP5. At least the gles1test1.

With that reference setup I was able to fix my Makefiles for the staging/pvr implementation.

I have tested that it works with v4.19.66 and v5.3-rc4 (LPAE build of the LetuxOS kernel tree)
on the Pyra.

In which areas does this tree go beyond the TI SDK/IMG DDK 1.14?

* includes internal API fixes for kernels up to v5.3
* lives in drivers/staging/pvr/1.14.3699939 - so that we can ask for inclusion in linux-next
* has Kconfig and Makefiles for in-kernel configuration (no separate build system)
* builds separate kernel modules for omap3430, omap3630, am335x, omap4, omap5, dra7 etc.
pvrsrvkm
e.g. pvrsrvkm_omap_omap5_sgx544_116
* the correct kernel module is automatically probed by matching .compatible in device tree
so that the code is multi-platform friendly
* includes SoC integration for OMAP3/4/5 and has some preliminary bindings documentation
* code base should also support JZ4780/CI20 and some Intel Atom processors (CedarView, Poulsbo)
* has got a ToDo to describe what should be done during staging phase

https://github.com/openpvrsgx-devgroup/linux_openpvrsgx/blob/letux/latest-pvr/drivers/staging/pvr/TODO

My plans for the next steps are:

* do more testing (e.g. X11, kmscube)
* check if and/or how it can run on am335x (BeagleBone) or OMAP3 (e.g. GTA04, OpenPandora)
* try a JZ480/CI20 build (unfortuantely I have no HDMI there with mainline kernels and I am
missing the user-space libraries for MIPS).

BR,
Nikolaus