Message ID | 20181115145013.3378-15-paul.kocialkowski@bootlin.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Cedrus support for the Allwinner H5 and A64 platforms | expand |
On Thu, Nov 15, 2018 at 10:51 PM Paul Kocialkowski <paul.kocialkowski@bootlin.com> wrote: > > This adds nodes for the Video Engine and the associated reserved memory > for the H5. Up to 96 MiB of memory are dedicated to the CMA pool. > > The pool is located at the end of the first 256 MiB of RAM so that the > VPU can access it. It is unclear whether this is still a hard > requirement for this platform, but it seems safer that way. I think we can actually test this. You could move the reserved memory pool beyond 256 MiB, and have cedrus decode stuff, and try to display the results. If it's gibberish, or the system crashes, it's likely the memory access wrapped around at 256 MiB. What do you think? ChenYu
Hi, On Thu, 2018-11-15 at 23:35 +0800, Chen-Yu Tsai wrote: > On Thu, Nov 15, 2018 at 10:51 PM Paul Kocialkowski > <paul.kocialkowski@bootlin.com> wrote: > > This adds nodes for the Video Engine and the associated reserved memory > > for the H5. Up to 96 MiB of memory are dedicated to the CMA pool. > > > > The pool is located at the end of the first 256 MiB of RAM so that the > > VPU can access it. It is unclear whether this is still a hard > > requirement for this platform, but it seems safer that way. > > I think we can actually test this. You could move the reserved memory > pool beyond 256 MiB, and have cedrus decode stuff, and try to display > the results. If it's gibberish, or the system crashes, it's likely the > memory access wrapped around at 256 MiB. > > What do you think? I did the test on various platforms and found that starting with the A33, the VPU can map any address in RAM! SO we shouldn't need reserved memory nodes for these devices after all. Cheers, Paul
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi index 4f0e2df875ba..6cc9698cab49 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi @@ -93,6 +93,20 @@ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; }; + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + cma_pool: cma@4a000000 { + compatible = "shared-dma-pool"; + size = <0x6000000>; + alloc-ranges = <0x4a000000 0x6000000>; + reusable; + linux,cma-default; + }; + }; + soc { syscon: system-control@1c00000 { compatible = "allwinner,sun50i-h5-system-control"; @@ -116,6 +130,17 @@ }; }; + video-codec@1c0e000 { + compatible = "allwinner,sun50i-h5-video-engine"; + reg = <0x01c0e000 0x1000>; + clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>, + <&ccu CLK_DRAM_VE>; + clock-names = "ahb", "mod", "ram"; + resets = <&ccu RST_BUS_VE>; + interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; + allwinner,sram = <&ve_sram 1>; + }; + mali: gpu@1e80000 { compatible = "allwinner,sun50i-h5-mali", "arm,mali-450"; reg = <0x01e80000 0x30000>;
This adds nodes for the Video Engine and the associated reserved memory for the H5. Up to 96 MiB of memory are dedicated to the CMA pool. The pool is located at the end of the first 256 MiB of RAM so that the VPU can access it. It is unclear whether this is still a hard requirement for this platform, but it seems safer that way. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> --- arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+)