> 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