Message ID | 20171014122925.13220-1-icenowy@aosc.io (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sat, Oct 14, 2017 at 08:29:24PM +0800, Icenowy Zheng wrote:
> A64's Display Engine 2.0 needs a section of SRAM (SRAM C) to be claimed.
Why?
在 2017-10-16 17:11,Maxime Ripard 写道: > On Sat, Oct 14, 2017 at 08:29:24PM +0800, Icenowy Zheng wrote: >> A64's Display Engine 2.0 needs a section of SRAM (SRAM C) to be >> claimed. > > Why? Allwinner didn't document this, but if the SRAM is not claimed, the DE2 MMIO zone is totally not accessible. It seems that Allwinner uses the SRAM C in the DE2 internally. > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Mon, Oct 16, 2017 at 05:41:10PM +0800, icenowy@aosc.io wrote: > 在 2017-10-16 17:11,Maxime Ripard 写道: > > On Sat, Oct 14, 2017 at 08:29:24PM +0800, Icenowy Zheng wrote: > > > A64's Display Engine 2.0 needs a section of SRAM (SRAM C) to be > > > claimed. > > > > Why? > > Allwinner didn't document this, but if the SRAM is not claimed, the > DE2 MMIO zone is totally not accessible. Not accessible how? It generates an abort when you access it? It returns 0? > It seems that Allwinner uses the SRAM C in the DE2 internally. Then shouldn't it be tied to all the DE2 devices then? So mixers too. Either way, this should be mentionned in your commit logs. How you're fixing things is much less interesting than why you're doing them. You can tell how you're doing them from your code already. Maxime
在 2017-10-16 20:09,Maxime Ripard 写道: > On Mon, Oct 16, 2017 at 05:41:10PM +0800, icenowy@aosc.io wrote: >> 在 2017-10-16 17:11,Maxime Ripard 写道: >> > On Sat, Oct 14, 2017 at 08:29:24PM +0800, Icenowy Zheng wrote: >> > > A64's Display Engine 2.0 needs a section of SRAM (SRAM C) to be >> > > claimed. >> > >> > Why? >> >> Allwinner didn't document this, but if the SRAM is not claimed, the >> DE2 MMIO zone is totally not accessible. > > Not accessible how? It generates an abort when you access it? It > returns 0? > >> It seems that Allwinner uses the SRAM C in the DE2 internally. > > Then shouldn't it be tied to all the DE2 devices then? So mixers > too. Either way, this should be mentionned in your commit logs. How > you're fixing things is much less interesting than why you're doing > them. You can tell how you're doing them from your code already. Yes I checked and when the SRAM is not claimed any part in DE2 memory zone can't be accessed. Should I also add the code that claims the SRAM in the mixer code? Or just place the device tree property is enough? (As the mixers depend on the DE2 CCU) Or just ignore this? > > Maxime > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Fri, Oct 27, 2017 at 10:33:29PM +0800, icenowy@aosc.io wrote: > 在 2017-10-16 20:09,Maxime Ripard 写道: > > On Mon, Oct 16, 2017 at 05:41:10PM +0800, icenowy@aosc.io wrote: > > > 在 2017-10-16 17:11,Maxime Ripard 写道: > > > > On Sat, Oct 14, 2017 at 08:29:24PM +0800, Icenowy Zheng wrote: > > > > > A64's Display Engine 2.0 needs a section of SRAM (SRAM C) to be > > > > > claimed. > > > > > > > > Why? > > > > > > Allwinner didn't document this, but if the SRAM is not claimed, the > > > DE2 MMIO zone is totally not accessible. > > > > Not accessible how? It generates an abort when you access it? It > > returns 0? > > > > > It seems that Allwinner uses the SRAM C in the DE2 internally. > > > > Then shouldn't it be tied to all the DE2 devices then? So mixers > > too. Either way, this should be mentionned in your commit logs. How > > you're fixing things is much less interesting than why you're doing > > them. You can tell how you're doing them from your code already. > > Yes I checked and when the SRAM is not claimed any part in DE2 memory > zone can't be accessed. Then all the nodes that depend on it should have it, and the bindings should be modified appropriately. Maxime
diff --git a/Documentation/devicetree/bindings/clock/sun8i-de2.txt b/Documentation/devicetree/bindings/clock/sun8i-de2.txt index 631d27cd89d6..8b1f86080d3d 100644 --- a/Documentation/devicetree/bindings/clock/sun8i-de2.txt +++ b/Documentation/devicetree/bindings/clock/sun8i-de2.txt @@ -5,6 +5,7 @@ Required properties : - compatible: must contain one of the following compatibles: - "allwinner,sun8i-a83t-de2-clk" - "allwinner,sun8i-v3s-de2-clk" + - "allwinner,sun50i-a64-de2-clk" - "allwinner,sun50i-h5-de2-clk" - reg: Must contain the registers base address and length @@ -17,6 +18,10 @@ Required properties : - #clock-cells : must contain 1 - #reset-cells : must contain 1 +Additional required properties for "allwinner,sun50i-a64-de2-clk" : +- allwinner,sram: See Documentation/devicetree/bindings/sram/sunxi-sram.txt, + should be the SRAM C section on A64 SoC. + Example: de2_clocks: clock@1000000 { compatible = "allwinner,sun8i-a83t-de2-clk";
A64's Display Engine 2.0 needs a section of SRAM (SRAM C) to be claimed. Add binding for this. Signed-off-by: Icenowy Zheng <icenowy@aosc.io> --- Documentation/devicetree/bindings/clock/sun8i-de2.txt | 5 +++++ 1 file changed, 5 insertions(+)