[Letux-kernel] build log :) - towards working OMAP3 + SGX530

H. Nikolaus Schaller hns at goldelico.com
Sun Oct 30 20:46:31 CET 2016


Hi,
interesting news...

> Am 29.10.2016 um 22:56 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
> 
>> Am 29.10.2016 um 11:25 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>> 
>>>> 
>>>> Here is the tree:
>>>> 
>>>> http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/work/hns/gpu/pvr-v2
>>> 
>>> I have looked a little into the DM3730 TRM and it appears as if the power domain
>>> and reset registers are well documented.
>>> 
>>> For example the PM_PWSTST_SGX @ 0x4830 6BE4 should tell something about the
>>> power state of the SGX module.
>>> 
>>> CM_FCLKEN_SGX @ 0x4800 4B00 and CM_ICLKEN_SGX @ 0x4800 4B10 tell if the clocks are enabled.
>>> 
>>> CM_IDLEST_SGX @ 0x4800 4B20 should tell if theSGX is active or in standby.
>>> 
>>> Finally RM_RSTST_SGX @ 0x4830 6B58 should say something about the reset state.
>>> 
>>> And section 8.2.1.2 explicitly says:
>>> 
>>> "Software controls the release of SGX_RST using the PRCM.RM_RSTCTRL_SGX[0] SGX_RST bit."
>>> 
>>> All these registers can be inspected by devmem2. And even written...
>>> 
>>> I am quite sure that we have all information we need to fix the SGX reset control.
>>> Then I hope the SGX starts up.
>> 
>> I did look a little deeper into the code and the warnings and there is a second problem.
>> 
>> There is no OMAP reset-controller driver but the reset-controller framework assumes
>> to have properly defined device tree nodes for all resets. E.g. reset_control_get()
>> looks explicitly for a "resets = " property which we likely have to define for the sgx DT
>> node.
>> 
>> There was a patch set a while ago but it appears to have not been rejected or accepted:
>> 
>> http://lists.infradead.org/pipermail/linux-arm-kernel/2015-September/372314.html
>> 
>> So I will ask Tero Kristo what happened to it.
> 
> In parallel I tried to apply the patch set posted in Sept 2015 but it failed.
> 
> After some experimentation I finally found that they apply well to linus/v4.3.
> 
> Then, I was able to rebase them to v4.4, v4.5 etc. and to v4.9-rc2 which I could
> finally rebase to letux-base... There were only 4 merge conflicts to be manually
> fixed. Only one was non-trivial but there were minor additions in mainline that
> were incompatible.
> 
> Untfortunately, it compiles but hangs right after "Starting kernel ..."

I have doe some experiments with the merge on top of linus/v4.3
and the version manually rebased to linus/v4.9.rc2.

After adding some letux_defconfig I was able to compile both.

The v4.3 boots while the v4.9-rc2 hangs as described.

So there is something incompatible to rebasing... Anyways this is good news. Basically it is
possible to bisect the bug between v4.9-rc2 and the merged patches.

If anyone finds time to look into it:

http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/work/test/omap/reset-cont-v4.9
http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/work/test/omap/reset-cont-v4.3

BR,
Nikolaus


> 
> Independently of this we are urgently needing one missing piece:
> 
> 		WANTED!
> 	address and bit pattern of
> 	PRCM.RM_RSTCTRL_SGX[0] SGX_RST
> 
> 	Is hiding somewhere...
> 
> Any hints about this register are welcome!
> 
> BR,
> Nikolaus
> 
> I have pushed the branches:
> 
> http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/work/test/omap/reset-controller
> http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/work/hns/gpu/pvr-v3
> http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/letux-4.9-rc2%2Breset-controller%2Bpvr
> 



More information about the Letux-kernel mailing list