[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250424084415.66457-5-j-choudhary@ti.com>
Date: Thu, 24 Apr 2025 14:14:15 +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 4/4] arm64: dts: ti: k3-am69-sk: Reserve 1904MiB of global CMA
Reserve 1904MiB 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.
AM69-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
AM69-SK can support 12 cameras so ~192MiB
2) 3840x2160@...ps MHDP via DisplayPort0
-> 3840 width x 2160 height x 4 bytesperpixel x 2 buffers :
63.281 MiB which is ~64 MiB
3) 1920x1080@...ps HDMI
-> 1920 width x 1080 height x 4 bytesperpixel x 2 buffers :
15.820 MiB which is ~16MiB
4) H264 Video Codec 1920x1080 resolution:
-> For 1080p resolution codec application, we require ~98-100 MiB
per channel. We require ~1600MiB for 16 channel codec application.
Total comes about 1872MiB. Adding 32MiB for other peripherals to
get 1904MiB.
Signed-off-by: Jayesh Choudhary <j-choudhary@...com>
---
arch/arm64/boot/dts/ti/k3-am69-sk.dts | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am69-sk.dts b/arch/arm64/boot/dts/ti/k3-am69-sk.dts
index b85227052f97..37228ec64852 100644
--- a/arch/arm64/boot/dts/ti/k3-am69-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am69-sk.dts
@@ -44,6 +44,14 @@ reserved_memory: reserved-memory {
#size-cells = <2>;
ranges;
+ /* global cma region */
+ linux,cma {
+ compatible = "shared-dma-pool";
+ reusable;
+ size = <0x00 0x77000000>;
+ linux,cma-default;
+ };
+
secure_ddr: optee@...00000 {
reg = <0x00 0x9e800000 0x00 0x01800000>;
no-map;
--
2.34.1
Powered by blists - more mailing lists