From 88533ddeca8815c8bfaf3cd186159cec3319b002 Mon Sep 17 00:00:00 2001
From: Lucas Weaver <l-weaver@ti.com>
Date: Mon, 12 Jul 2021 08:46:24 -0500
Subject: [PATCH] arm64: dts: ti: Add DTB overlays for vision apps and edgeai
 apps

Confine the memory map changes into a separate rtos-memory-map.dts
which describes the common memory map for all RTOS remoteprocs.

vision-apps.dtbo uses this and also disables capture and display
related peripherals from Linux so that it can be used by RTOS.

edgeai-apps.dtbo expects these devices to be owned by linux, so
it uses the rtos-memory-map customization only.

Signed-off-by: Nikhil Devshatwar <nikhil.nd@ti.com>
---
 arch/arm64/boot/dts/ti/Makefile               |   2 +
 .../boot/dts/ti/k3-j721e-edgeai-apps.dts      |   9 +
 .../boot/dts/ti/k3-j721e-rtos-memory-map.dtsi | 287 ++++++++++++++++++
 .../boot/dts/ti/k3-j721e-vision-apps.dts      |  36 +++
 4 files changed, 334 insertions(+)
 create mode 100644 arch/arm64/boot/dts/ti/k3-j721e-edgeai-apps.dts
 create mode 100644 arch/arm64/boot/dts/ti/k3-j721e-rtos-memory-map.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-j721e-vision-apps.dts

diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
index 27a6b79d99023..99ae97bdf30a8 100644
--- a/arch/arm64/boot/dts/ti/Makefile
+++ b/arch/arm64/boot/dts/ti/Makefile
@@ -29,6 +29,8 @@ dtb-$(CONFIG_ARCH_K3) += k3-j721e-quad-port-eth-exp.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-j721e-sk.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-j721e-sk-csi2-ov5640.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-j721e-sk-rpi-cam-imx219.dtbo
+dtb-$(CONFIG_ARCH_K3) += k3-j721e-edgeai-apps.dtbo
+dtb-$(CONFIG_ARCH_K3) += k3-j721e-vision-apps.dtbo
 
 dtb-$(CONFIG_ARCH_K3) += k3-j7200-common-proc-board.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-j7200-common-proc-board-sr1.dtbo
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-edgeai-apps.dts b/arch/arm64/boot/dts/ti/k3-j721e-edgeai-apps.dts
new file mode 100644
index 0000000000000..5defaca9ccf19
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-j721e-edgeai-apps.dts
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * edgeai-apps: device-tree overlay
+ *
+ * Copyright (C) 2019 - 2021 Texas Instruments Incorporated - http://www.ti.com/
+ */
+
+#include "k3-j721e-rtos-memory-map.dtsi"
+
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-rtos-memory-map.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-rtos-memory-map.dtsi
new file mode 100644
index 0000000000000..3f5b7c4ca066a
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-j721e-rtos-memory-map.dtsi
@@ -0,0 +1,287 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Vision-apps: device-tree overlay
+ *
+ * Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/
+ */
+
+#include <dt-bindings/soc/ti,sci_pm_domain.h>
+
+/dts-v1/;
+/plugin/;
+
+/ {
+	fragment@101 {
+		target-path = "/";
+
+		__overlay__ {
+
+			dma_buf_phys {
+				compatible = "ti,dma_buf_phys";
+			};
+		};
+	};
+};
+
+&mcu_r5fss0_core0_memory_region {
+	status = "disabled";
+};
+
+&mcu_r5fss0_core0_dma_memory_region {
+	status = "disabled";
+};
+
+&mcu_r5fss0_core1_dma_memory_region {
+	status = "disabled";
+};
+
+&mcu_r5fss0_core1_memory_region {
+	status = "disabled";
+};
+
+&main_r5fss0_core0_dma_memory_region {
+	status = "disabled";
+};
+
+&main_r5fss0_core0_memory_region {
+	status = "disabled";
+};
+
+&main_r5fss0_core1_dma_memory_region {
+	status = "disabled";
+};
+
+&main_r5fss0_core1_memory_region {
+	status = "disabled";
+};
+
+&main_r5fss1_core0_dma_memory_region {
+	status = "disabled";
+};
+
+&main_r5fss1_core0_memory_region {
+	status = "disabled";
+};
+
+&main_r5fss1_core1_dma_memory_region {
+	status = "disabled";
+};
+
+&main_r5fss1_core1_memory_region {
+	status = "disabled";
+};
+
+&c66_0_dma_memory_region {
+	status = "disabled";
+};
+
+&c66_0_memory_region {
+	status = "disabled";
+};
+
+&c66_1_dma_memory_region {
+	status = "disabled";
+};
+
+&c66_1_memory_region {
+	status = "disabled";
+};
+
+&c71_0_dma_memory_region {
+	status = "disabled";
+};
+
+&c71_0_memory_region {
+	status = "disabled";
+};
+
+&rtos_ipc_memory_region {
+	status = "disabled";
+};
+
+&main_r5fss0_core0_shared_memory_queue_region {
+	status = "disabled";
+};
+
+&main_r5fss0_core0_shared_memory_bufpool_region {
+	status = "disabled";
+};
+
+&reserved_memory {
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	vision_apps_mcu_r5fss0_core0_dma_memory_region: vision-apps-r5f-dma-memory@a0000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa0000000 0x00 0x00100000>;
+		no-map;
+	};
+	vision_apps_mcu_r5fss0_core0_memory_region: vision-apps-r5f-memory@a0100000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa0100000 0x00 0x00f00000>;
+		no-map;
+	};
+	vision_apps_mcu_r5fss0_core1_dma_memory_region: vision-apps-r5f-dma-memory@a1000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa1000000 0x00 0x00100000>;
+		no-map;
+	};
+	vision_apps_mcu_r5fss0_core1_memory_region: vision-apps-r5f-memory@a1100000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa1100000 0x00 0x00f00000>;
+		no-map;
+	};
+	vision_apps_main_r5fss0_core0_dma_memory_region: vision-apps-r5f-dma-memory@a2000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa2000000 0x00 0x00100000>;
+		no-map;
+	};
+	vision_apps_main_r5fss0_core0_memory_region: vision-apps-r5f-memory@a2100000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa2100000 0x00 0x01f00000>;
+		no-map;
+	};
+	vision_apps_main_r5fss0_core1_dma_memory_region: vision-apps-r5f-dma-memory@a4000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa4000000 0x00 0x00100000>;
+		no-map;
+	};
+	vision_apps_main_r5fss0_core1_memory_region: vision-apps-r5f-memory@a4100000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa4100000 0x00 0x01f00000>;
+		no-map;
+	};
+	vision_apps_main_r5fss1_core0_dma_memory_region: vision-apps-r5f-dma-memory@a6000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa6000000 0x00 0x00100000>;
+		no-map;
+	};
+	vision_apps_main_r5fss1_core0_memory_region: vision-apps-r5f-memory@a6100000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa6100000 0x00 0x00f00000>;
+		no-map;
+	};
+	vision_apps_main_r5fss1_core1_dma_memory_region: vision-apps-r5f-dma-memory@a7000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa7000000 0x00 0x00100000>;
+		no-map;
+	};
+	vision_apps_main_r5fss1_core1_memory_region: vision-apps-r5f-memory@a7100000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa7100000 0x00 0x00f00000>;
+		no-map;
+	};
+	vision_apps_c66_1_dma_memory_region: vision-apps-c66-dma-memory@a8000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa8000000 0x00 0x00100000>;
+		no-map;
+	};
+	vision_apps_c66_0_memory_region: vision-apps-c66-memory@a8100000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa8100000 0x00 0x00f00000>;
+		no-map;
+	};
+	vision_apps_c66_0_dma_memory_region: vision-apps-c66-dma-memory@a9000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa9000000 0x00 0x00100000>;
+		no-map;
+	};
+	vision_apps_c66_1_memory_region: vision-apps-c66-memory@a9100000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xa9100000 0x00 0x00f00000>;
+		no-map;
+	};
+	vision_apps_c71_0_dma_memory_region: vision-apps-c71-dma-memory@aa000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xaa000000 0x00 0x00100000>;
+		no-map;
+	};
+	vision_apps_c71_0_memory_region: vision-apps-c71-memory@aa100000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xaa100000 0x00 0x04f00000>;
+		no-map;
+	};
+	vision_apps_rtos_ipc_memory_region: vision-apps-rtos-ipc-memory-region {
+		reg = <0x00 0xb0000000 0x00 0x02000000>;
+		alignment = <0x1000>;
+		no-map;
+	};
+	vision_apps_memory_region: vision-apps-dma-memory@b2000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xb2000000 0x00 0x06000000>;
+		no-map;
+	};
+	vision_apps_shared_region: vision_apps_shared-memories {
+		compatible = "dma-heap-carveout";
+		reg = <0x00 0xb8000000 0x00 0x20000000>;
+	};
+	vision_apps_core_heaps_lo: vision-apps-core-heap-memory-lo@d8000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xd8000000 0x00 0x23000000>;
+		no-map;
+	};
+	vision_apps_main_r5fss0_core0_shared_memory_queue_region: vision-apps-r5f-virtual-eth-queues@fb000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xfb000000 0x00 0x00800000>;
+		no-map;
+	};
+	vision_apps_main_r5fss0_core0_shared_memory_bufpool_region: vision-apps-r5f-virtual-eth-buffers@fb800000 {
+		compatible = "shared-dma-pool";
+		reg = <0x00 0xfb800000 0x00 0x01800000>;
+		no-map;
+	};
+	vision_apps_core_heaps_hi: vision-apps-core-heap-memory-hi@880000000 {
+		compatible = "shared-dma-pool";
+		reg = <0x08 0x80000000 0x00 0x10000000>;
+		no-map;
+	};
+};
+
+&mcu_r5fss0_core0 {
+	memory-region = <&vision_apps_mcu_r5fss0_core0_dma_memory_region>,
+			<&vision_apps_mcu_r5fss0_core0_memory_region>;
+};
+
+&mcu_r5fss0_core1 {
+	memory-region = <&vision_apps_mcu_r5fss0_core1_dma_memory_region>,
+			<&vision_apps_mcu_r5fss0_core1_memory_region>;
+};
+
+&main_r5fss0_core0 {
+	memory-region = <&vision_apps_main_r5fss0_core0_dma_memory_region>,
+			<&vision_apps_main_r5fss0_core0_memory_region>,
+			<&vision_apps_main_r5fss0_core0_shared_memory_queue_region>,
+			<&vision_apps_main_r5fss0_core0_shared_memory_bufpool_region>;
+};
+
+&main_r5fss0_core1 {
+	memory-region = <&vision_apps_main_r5fss0_core1_dma_memory_region>,
+			<&vision_apps_main_r5fss0_core1_memory_region>;
+};
+
+&main_r5fss1_core0 {
+	memory-region = <&vision_apps_main_r5fss1_core0_dma_memory_region>,
+			<&vision_apps_main_r5fss1_core0_memory_region>;
+};
+
+&main_r5fss1_core1 {
+	memory-region = <&vision_apps_main_r5fss1_core1_dma_memory_region>,
+			<&vision_apps_main_r5fss1_core1_memory_region>;
+};
+
+&c66_0 {
+	memory-region = <&vision_apps_c66_0_dma_memory_region>,
+			<&vision_apps_c66_0_memory_region>;
+};
+
+&c66_1 {
+	memory-region = <&vision_apps_c66_1_dma_memory_region>,
+			<&vision_apps_c66_1_memory_region>;
+};
+
+&c71_0 {
+	memory-region = <&vision_apps_c71_0_dma_memory_region>,
+			<&vision_apps_c71_0_memory_region>;
+};
+
+
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-vision-apps.dts b/arch/arm64/boot/dts/ti/k3-j721e-vision-apps.dts
new file mode 100644
index 0000000000000..a1860839a627d
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-j721e-vision-apps.dts
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * vision-apps: device-tree overlay
+ *
+ * Copyright (C) 2019 - 2021 Texas Instruments Incorporated - http://www.ti.com/
+ */
+
+#include "k3-j721e-rtos-memory-map.dtsi"
+
+&main_i2c6 {
+	status = "disabled";
+};
+
+&serdes_wiz4 {
+	status = "disabled";
+};
+
+&mhdp {
+	status = "disabled";
+};
+
+&dss {
+	status = "disabled";
+};
+
+&main_i2c1 {
+	status = "disabled";
+};
+
+&ti_csi2rx0 {
+	status = "disabled";
+};
+
+&ti_csi2rx1 {
+	status = "disabled";
+};
-- 
GitLab