Re: [PATCH 6/6] ARM: dts: Configure rstctrl reset for SGX

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

 



> Am 16.09.2019 um 20:12 schrieb H. Nikolaus Schaller <hns@xxxxxxxxxxxxx>:
> 
> 
>> Am 16.09.2019 um 20:04 schrieb Tony Lindgren <tony@xxxxxxxxxxx>:
>> 
>> Hi,
>> 
>> * Tony Lindgren <tony@xxxxxxxxxxx> [190916 15:18]:
>>> * H. Nikolaus Schaller <hns@xxxxxxxxxxxxx> [190913 09:50]:
>>>> Hi Tony,
>>>> 
>>>>> Am 14.08.2019 um 15:14 schrieb Tony Lindgren <tony@xxxxxxxxxxx>:
>>>>> 
>>>>> The following can be tested via sysfs with the following to ensure the SGX
>>>>> module gets enabled and disabled properly:
>>>>> 
>>>>> # echo on > /sys/bus/platform/devices/5600fe00.target-module/power/control
>>>>> # rwmem 0x5600fe00		# revision register
>>>>> 0x5600fe00 = 0x40000000
>>>>> # echo auto > /sys/bus/platform/devices/5600fe00.target-module/power/control
>>>>> # rwmem 0x5000fe00
>>>>> Bus error
>>>>> 
>>>>> Note that this patch depends on the PRM rstctrl driver that has
>>>>> been recently posted.
>>>> 
>>>> Do you have a list of these patches or a git for pulling the complete set
>>>> of changes? Does it depend on mainline or linux-next?
>>> 
>>> You need the drivers/bus/ti-sysc.c changes from Linux next,
>>> and the most recent clkctrl and rstctrl patches posted by
>>> Tero.
>>> 
>>>> I tried to find the correct patches but it does not seem to work for
>>>> me on beaglebone.
>>> 
>>> OK can you please check the dependencies again and let me know
>>> if you still have issues?
>> 
>> To make things easier to test, I pushed out a test branch with
>> all the pending dependencies :)
>> 
>> It's basically v5.3 + ti-sysc changes in Linux next, and
>> the following patches posted by Tero:
>> 
>> [PATCHv5 00/10] soc: ti: add OMAP PRM driver (for reset)
>> [PATCHv3 00/10] clk: ti: remoteproc / iommu support patches
>> [PATCH 00/10] ARM: dts: omap changes for IOMMU / reset support
>> 
>> And then finally the $subject patch applied on top, and the
>> tests above still work for me.
> 
> Ok, fine!
> 
>> 
>> The test branch is test-pending-ti-sysc-clkctrl-rstctrl-v5.3
>> at [0] and [1] below.
>> 
>> Can you please test and see if that works for you?
>> 
>> Regards,
>> 
>> Tony
>> 
>> [0] git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git test-pending-ti-sysc-clkctrl-rstctrl-v5.3
>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git/log/?h=test-pending-ti-sysc-clkctrl-rstctrl-v5.3
> 
> I'll check out and try to locate missing pieces.

Ok, this variant works as a basis! At least for register access.

root@letux:~# devmem2 0x5600fe00
Value at address 0x5600FE00 (0xb6fede00): 0x40000000
root@letux:~# devmem2 0x5600fe04
Value at address 0x5600FE04 (0xb6fa1e04): 0x5
root@letux:~# devmem2 0x5600fe10
Value at address 0x5600FE10 (0xb6f80e10): 0x28
root@letux:~# 

This is quite similar to OMAP5 where I got

> root@letux:~# devmem2 0x5600fe00
> Value at address 0x5600FE00 (0xb6f87e00): 0x40000000
> root@letux:~# devmem2 0x5600fe04
> Value at address 0x5600FE04 (0xb6f11e04): 0x5
> root@letux:~# devmem2 0x5600fe10
> Value at address 0x5600FE10 (0xb6f93e10): 0x3C

or OMAP3:

> root@letux:~# devmem2 0x5000fe00
> Value at address 0x5000FE00 (0xb6f81e00): 0x40000000
> root@letux:~# devmem2 0x5000fe04
> Value at address 0x5000FE04 (0xb6f28e04): 0x5
> root@letux:~# devmem2 0x5000fe10
> Value at address 0x5000FE10 (0xb6f5fe10): 0x28
> root@letux:~# 

But SGX driver initialization still fails with a reset_deassert timeout.

root@letux:~# modprobe pvrsrvkm_omap_am335x_sgx530_125
[  187.528139] pvrsrvkm_omap_am335x_sgx530_125: module is from the staging directory, the quality is unknown, you have been warned.
[  187.584580] omap_reset_deassert: timedout waiting for gfx:0
[  187.614430] [drm] Initialized pvr 1.14.3699939 20110701 for 56000000.sgx on minor 1
root@letux:~# pvrsrvctl --start --no-module
[  209.085931] PVR_K: UM DDK-(3699939) and KM DDK-(3699939) match. [ OK ]
[  209.116399] PVR_K:(Error): BridgedDispatchKM: Initialisation failed.  Driver unusable.
PVR:(Error): LoaduKernelProgram : SGX ukernel program Device Addr: 0xe400000 invalid alignment [0, ]
PVR:(Error): SetupuKernel : Failed to load uKernel programs [0, ]
PVR:(Error): SrvInit: Initialisation for device of class 0, type 7, index 0, failed (1) [0, ]
PVR:(Error): PVRSRVBridgeCall: Failed to access device.  Function ID:3223086862 (strerror returns no value.). [0, ]
pvrsrvctl: SrvInit failed (already initialized?) (err=PVRSRV_ERROR_OUT_OF_MEMORY - Unable to allocate required memory)
root@letux:~#

A simple reason may be that I have a bad offset in my device tree setup
and the driver doesn't see feedback from SGX.

" for 56000000.sgx on minor 1" is suspect.
IMHO, it should have to be " for 5600fe00.sgx on minor 1"
But anyways this is a big step forwards having giving me three different
platforms for testing and comparisons.

BR and thanks,
Nikolaus






[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux