[Openpvrsgx-devgroup] Current Status linux_openpvrsgx

H. Nikolaus Schaller hns at goldelico.com
Tue Apr 21 14:30:19 CEST 2020


> Am 21.04.2020 um 12:37 schrieb Philipp Rossak <embed3d at gmail.com>:
> 
> Hi Nikolaus,
> 
> On 11.04.20 11:35, H. Nikolaus Schaller wrote:
>> Hi Philipp,
>>> Am 11.04.2020 um 00:37 schrieb Philipp Rossak <embed3d at gmail.com>:
>>> 
>>> Hi Nikolaus,
>>> 
>>> Am Fr., 10. Apr. 2020 um 20:29 Uhr schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>>> Hi Philipp,
>>> 
>>>> Am 10.04.2020 um 18:32 schrieb Philipp Rossak <embed3d at gmail.com>:
>>>> 
>>>> Hi Nikolaus,
>>>> 
>>>> 
>>>> I think I found out, what I messed up: I used Jonathan's work as basis, but this is a SGX 540 and not a SGX 544 Board.
>>>> 
>>>> I think I will put the 1.17 ddk support on hold for now an continue on getting the 1.14.83xxx running and clean up the code there. Afterwards I will work on the 1.17 ddk support.
> 
> I reworked now the 1.14.3841212 driver and cleaned up the code, but I'm still not able to start the pvrsrvctl since it seems to miss the PDUMP support in the kernel.
> Do you or anybody else know how to enable it? When I add the defines that are required for pdump I get the following error: "implict declaration of function dbgdrv_ioctl". This call is located in pvr-drv.c

I think it is defined elsewhere:

iMac:master hns$ fgrep dbgdrv_ioctl -R drivers/
drivers//gpu/drm/pvrsgx/1.14.3699939/eurasia_km/services4/srvkm/env/linux/pvr_drm.c:	DRM_IOCTL_DEF_DRV(PVR_DBGDRV, dbgdrv_ioctl, PVR_DRM_RENDER_ALLOW | PVR_DRM_UNLOCKED),
drivers//gpu/drm/pvrsgx/1.14.3699939/eurasia_km/services4/srvkm/env/linux/pvr_drm.h:IMG_INT dbgdrv_ioctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile);
drivers//gpu/drm/pvrsgx/1.14.3699939/eurasia_km/tools/intern/debug/dbgdriv/linux/main.c:long dbgdrv_ioctl(struct file *, unsigned int, unsigned long);
drivers//gpu/drm/pvrsgx/1.14.3699939/eurasia_km/tools/intern/debug/dbgdriv/linux/main.c:	.unlocked_ioctl = dbgdrv_ioctl,
drivers//gpu/drm/pvrsgx/1.14.3699939/eurasia_km/tools/intern/debug/dbgdriv/linux/main.c:int dbgdrv_ioctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
drivers//gpu/drm/pvrsgx/1.14.3699939/eurasia_km/tools/intern/debug/dbgdriv/linux/main.c:long dbgdrv_ioctl(struct file *file, unsigned int ioctlCmd, unsigned long arg)
drivers//gpu/drm/pvrsgx/pvr-drv.c

It looks as if there are multiple definitions in

 drivers//gpu/drm/pvrsgx/1.14.3699939/eurasia_km/tools/intern/debug/dbgdriv/linux/main.c

and none is enabled for your setup. Maybe it needs another -D in the Makefile.

> 
> I will share/push my code to a branche in our repo, when I got a running demo and I will add some infos to the wiki, how to set everything up.
> 
> We should also add some more information, how to setup all the devices.
> 
>>> 
>>> I see. Well, the DDK 1.17 should also support SGX 540.
>>> At least for omap4 (droid 4) there are good results by Tony.
>>> But note that there are some "quirks" defined for omap4 in pvr_drv.
>>> Maybe they are more for sgx540?
>>> 
>>> You mean SGX544 ;)? That's at least the one I have on the sunxi devices.
>> Ah, sorry. I mixed this up...
>> But it may need a similar fix. Or another one.
> 
> I think the DDK's use a µkernel in the gpu that is loaded during the boot process that might be also a reason for some issues.

Yes. That is what pvrsrvctl --start is doing: downloading the µkernel which is likely stored inside the libum.so.
If I remember, it uses /dev/pvr for that purpose and does some mmap().

BR,
Nikolaus



More information about the openpvrsgx-devgroup mailing list