[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250424084415.66457-4-j-choudhary@ti.com>
Date: Thu, 24 Apr 2025 14:14:14 +0530
From: Jayesh Choudhary <j-choudhary@...com>
To: <nm@...com>, <vigneshr@...com>, <linux-kernel@...r.kernel.org>
CC: <robh@...nel.org>, <krzk+dt@...nel.org>, <conor+dt@...nel.org>,
<kristo@...nel.org>, <u-kumar1@...com>, <devicetree@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>, <devarsht@...com>,
<j-choudhary@...com>
Subject: [PATCH 3/4] arm64: dts: ti: k3-am68-sk-som: Reserve 1008MiB of global CMA
Reserve 1008MiB of global CMA pool which is also marked as re-usable
so that OS can also use this region if peripheral drivers are not
using it.
AM68-SK has different multimedia components such as Camera, Dual-
Display and H264 Video Codec which uses CMA for buffer allocations.
Assuming the worst case scenario where all three run in parallel,
below is the calculation:
1) IMX390 camera sensor 1920x1080
-> 1920 width x 1080 height x 2 bytesperpixel x 4 buffers :
15.820 MiB which is ~16MiB
AM68-SK can support 8 cameras so ~128MiB
2) 1920x1080 HDMI
-> 1920 width x 1080 height x 4 bytesperpixel x 2 buffers :
15.820 MiB which is ~16MiB
3) 2560x1440@...ps DSI via DisplayPort0
-> 2560 width x 1440 height x 4 bytesperpixel x 2 buffers :
28.125 MiB which is ~29 MiB
4) H264 Video Codec 1920x1080 resolution:
-> For 1080p resolution codec application, we require ~98-100 MiB
per channel. We require ~800MiB for 8 channel codec application.
Total comes about 973MiB. Adding 32MiB for other peripherals and
and additional 3MiB for rounding it off to 1008MiB.
Signed-off-by: Jayesh Choudhary <j-choudhary@...com>
---
arch/arm64/boot/dts/ti/k3-am68-sk-som.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am68-sk-som.dtsi b/arch/arm64/boot/dts/ti/k3-am68-sk-som.dtsi
index 4ca2d4e2fb9b..2b02575549eb 100644
--- a/arch/arm64/boot/dts/ti/k3-am68-sk-som.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am68-sk-som.dtsi
@@ -22,6 +22,14 @@ reserved_memory: reserved-memory {
#size-cells = <2>;
ranges;
+ /* global cma region */
+ linux,cma {
+ compatible = "shared-dma-pool";
+ reusable;
+ size = <0x00 0x3f000000>;
+ linux,cma-default;
+ };
+
secure_ddr: optee@...00000 {
reg = <0x00 0x9e800000 0x00 0x01800000>;
no-map;
--
2.34.1
Powered by blists - more mailing lists