Hi Tomi, Thanks for the review. On 23/01/24 13:59, Tomi Valkeinen wrote: > Hi, > > On 16/01/2024 15:41, Devarsh Thakkar wrote: >> This overlay needs to be used with display sharing supported device >> manager firmware only. >> >> Remote core running this firmware has write access to "common" register >> space, VIDL pipeline, OVR1 overlay and VP1 videoport. >> >> The processing core running Linux is provided write access to VID >> pipeline and "common1" register space. >> >> The VP1 video port is shared between Linux and remote core with remote >> core configuring the overlay manager to set Zorder 1 for VID pipeline >> and Zorder 2 for VIDL pipeline. >> >> Add reserved memory region for framebuffer region used by remote core in >> dss shared mode overlay file so that Linux does not re-use the same >> while allocating memory. > > I don't understand this one. Why is RAM used by RTOS accessible by Linux > in the first place? > Well, I think the R5 SPL initializes full DDR before starting firmwares on remote cores and the regions used by this remote cores be it for IPC or Code/data are marked as reserved both in Linux as well as U-boot so that Linux/U-boot does not use it [1]. Same scheme is followed here w.r. t RTOS framebuffer too. [1] : https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi?h=v6.7#n63 Regards Devarsh > Tomi > >> Also add a label for reserved memory region in base device-tree file so >> that it can be referred back in overlay file. >> >> Signed-off-by: Devarsh Thakkar <devarsht@xxxxxx> >> --- >> arch/arm64/boot/dts/ti/Makefile | 1 + >> .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 2 +- >> .../dts/ti/k3-am62x-sk-dss-shared-mode.dtso | 33 +++++++++++++++++++ >> 3 files changed, 35 insertions(+), 1 deletion(-) >> create mode 100644 >> arch/arm64/boot/dts/ti/k3-am62x-sk-dss-shared-mode.dtso >> >> diff --git a/arch/arm64/boot/dts/ti/Makefile >> b/arch/arm64/boot/dts/ti/Makefile >> index 52c1dc910308..ff832741b367 100644 >> --- a/arch/arm64/boot/dts/ti/Makefile >> +++ b/arch/arm64/boot/dts/ti/Makefile >> @@ -35,6 +35,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-csi2-ov5640.dtbo >> dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-csi2-tevi-ov5640.dtbo >> dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-csi2-imx219.dtbo >> dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-hdmi-audio.dtbo >> +dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-dss-shared-mode.dtbo >> # Boards with AM64x SoC >> dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb >> diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi >> b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi >> index 33768c02d8eb..8b55ca10102f 100644 >> --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi >> +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi >> @@ -34,7 +34,7 @@ memory@80000000 { >> reg = <0x00000000 0x80000000 0x00000000 0x80000000>; >> }; >> - reserved-memory { >> + reserved_memory: reserved-memory { >> #address-cells = <2>; >> #size-cells = <2>; >> ranges; >> diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-dss-shared-mode.dtso >> b/arch/arm64/boot/dts/ti/k3-am62x-sk-dss-shared-mode.dtso >> new file mode 100644 >> index 000000000000..02153748a5c2 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-dss-shared-mode.dtso >> @@ -0,0 +1,33 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +/** >> + * DT overlay to enable display sharing mode for AM62P DSS0 >> + * This is compatible with custom AM62 Device Manager firmware >> + * >> + * Copyright (C) 2023 Texas Instruments Incorporated - >> http://www.ti.com/ >> + */ >> + >> +/dts-v1/; >> +/plugin/; >> + >> +#include <dt-bindings/interrupt-controller/irq.h> >> +#include <dt-bindings/interrupt-controller/arm-gic.h> >> + >> +&dss0 { >> + ti,dss-shared-mode; >> + ti,dss-shared-mode-vp = "vp1"; >> + ti,dss-shared-mode-vp-owned = <0>; >> + ti,dss-shared-mode-common = "common1"; >> + ti,dss-shared-mode-planes = "vid"; >> + ti,dss-shared-mode-plane-zorder = <0>; >> + interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; >> +}; >> + >> +&reserved_memory { >> + #address-cells = <2>; >> + #size-cells = <2>; >> + rtos_framebuffer_memory_region: rtos-framebuffer-memory@94800000 { >> + compatible = "shared-dma-pool"; >> + reg = <0x00 0x94800000 0x00 0x08000000>; >> + no-map; >> + }; >> +}; > >