This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA2E: 【TDA2XX】Remove DSP and EVE to increase A15 Linux memory space

Part Number: TDA2E

1. Our project currently does not use DSP and EVE, so I want to delete DSP and EVE, and the saved memory will be used by A15

2. Deleting DSP and EVE can save a total of 128MB. Through modification, the 64MB saved by EVE has been added to A15. The current problem is that the 64MB memory saved by DSP cannot be used by A15.

3. The vision_sdk_ipu2_release.xem4.map file can see that the MEMORY CONFIGURATION of DSP and EVE has disappeared

MEMORY CONFIGURATION

name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
L2_ROM 00000000 00004000 00000184 00003e7c RWIX
L2_RAM 20000000 00010000 00000000 00010000 RWIX
OCMC_RAM1 40300000 00080000 00000000 00080000 RWIX
OCMC_RAM2 40400000 00100000 00000000 00100000 RWIX
OCMC_RAM3 40500000 00100000 00000000 00100000 RWIX
NDK_MEM 84000000 00200000 00000000 00200000 RWIX
SR1_BUFF_ECC_ASIL_MEM 84200000 00001000 00000000 00001000 RWIX
SR1_BUFF_ECC_QM_MEM 84201000 00001000 00000000 00001000 RWIX
SR1_BUFF_NON_ECC_ASIL 84202000 00001000 00000000 00001000 RWIX
SR1_FRAME_BUFFER_MEM 84203000 12c00000 00000000 12c00000 RWIX
IPU2_CODE_MEM 99000000 00800000 004c36e3 0033c91d RWIX
IPU2_DATA_MEM 99800000 01400000 0088dd43 00b722bd RWIX
IPU1_0_CODE_MEM 9e000000 00800000 00000000 00800000 RWIX
IPU1_0_DATA_MEM 9e800000 01500000 00000000 01500000 RWIX
SR0 a0100000 00100000 00100000 00000000 RWIX
REMOTE_LOG_MEM a0200000 00040000 000278a0 00018760 RWIX
LINK_STATS_MEM a0240000 00080000 00024df4 0005b20c RWIX
SYSTEM_IPC_SHM_MEM a02c0000 00080000 00062388 0001dc78 RWIX
SYSTEM_AUTOSAR_IPC_SH a0340000 00080000 00000000 00080000 RWIX
HDVPSS_DESC_MEM a03c0000 00100000 0001d4c0 000e2b40 RWIX
TRACE_BUF a04c0000 00060000 00008000 00058000 RWIX
EXC_DATA a0520000 00010000 00000000 00010000 RWIX
PM_DATA a0530000 00080000 00000000 00080000 RWIX
SR2_MEM a9000000 02000000 00000000 02000000 RWIX

4. My modified patch is as follows

4.1 kernel patch
arch/arm/boot/dts/ofilm_board_c52x_apa.dts
+// Disable DSP1 and DSP2 by yanglijie, 20220215, start
+&dsp1_cma_pool {
+ reg = <0x0 0xa1000000 0x0 0x2000000>;
+ status = "disabled";
+};
+
+&dsp2_cma_pool {
+ reg = <0x0 0xa3000000 0x0 0x2000000>;
+ status = "disabled";
+};
+
+&dsp1 {
+ /delete-property/ watchdog-timers;
+ status = "disabled";
+};
+
+&dsp2 {
+ /delete-property/ watchdog-timers;
+ status = "disabled";
+};
+// Disable DSP1 and DSP2 by yanglijie, 20220215, end


&reserved_mem {
cmem_ocmc: cmem@40300000 {
compatible = "shared-dma-pool";
reg = <0x0 0x40300000 0x0 0x300000>;
sram = <&ocmcram1>;
no-map;
status = "okay";
};

cmem_pool: cmem@A9000000 {
compatible = "shared-dma-pool";
reg = <0x0 0xA9000000 0x0 0x2000000>;
no-map;
status = "okay";
};

vsdk_sr1_mem: vsdk_sr1_mem@84000000 {
compatible = "shared-dma-pool";
reg = <0x0 0x84000000 0x0 0x13000000>;
status = "okay";
};

vsdk_sr0_mem: vsdk_sr0_mem@A0000000 {
compatible = "shared-dma-pool";
reg = <0x0 0xA0000000 0x0 0x1000000>;
status = "okay";
};

vsdk_eve_mem: vsdk_eve_mem@A5000000 {
compatible = "shared-dma-pool";
reg = <0x0 0xA5000000 0x0 0x4000000>;
+ status = "disabled";
};
};

arch/arm/configs/ofilm_board_c52x_apa_defconfig
+ # CONFIG_DSP_ENABLE is not set

4.2 vsdk patch

Delete all code related to DSP and EVE in the .xs file

vsdk/apps/build/tda2xx/mem_segment_definition_linux.xs

4.2.1  disable DSP 和 EVE core

vsdk/apps/configs/tda2xx_evm_linux_all/cfg.mk
PROC_DSP1_INCLUDE=no
PROC_DSP2_INCLUDE=no
PROC_EVE1_INCLUDE=no
PROC_EVE2_INCLUDE=no
PROC_EVE3_INCLUDE=no
PROC_EVE4_INCLUDE=no

4.2.2 Modifications to resolve compilation errors

links_fw/src/rtos/bios_app_common/tda2xx/cfg/IPC_RpMsgDrv.cfg

delete the code below

- Program.global.XDC_CFG_DSP1_CODE = DSP1_CODE_MEM.base;
- Program.global.XDC_CFG_DSP1_CODE_SIZE = DSP1_CODE_MEM.len;
- Program.global.XDC_CFG_DSP1_DATA = DSP1_DATA_MEM.base;
- Program.global.XDC_CFG_DSP1_DATA_SIZE = DSP1_DATA_MEM.len;
- Program.global.XDC_CFG_DSP2_CODE = DSP2_CODE_MEM.base;
- Program.global.XDC_CFG_DSP2_CODE_SIZE = DSP2_CODE_MEM.len;
- Program.global.XDC_CFG_DSP2_DATA = DSP2_DATA_MEM.base;
- Program.global.XDC_CFG_DSP2_DATA_SIZE = DSP2_DATA_MEM.len;
-
- Program.global.XDC_CFG_EVE_MEM = EVE1_VECS_MEM.base;
- Program.global.XDC_CFG_EVE_MEM_SIZE = EVE1_VECS_MEM.len + EVE1_CODE_MEM.len + EVE1_DATA_MEM.len +
- EVE2_VECS_MEM.len + EVE2_CODE_MEM.len + EVE2_DATA_MEM.len +
- EVE3_VECS_MEM.len + EVE3_CODE_MEM.len + EVE3_DATA_MEM.len +
- EVE4_VECS_MEM.len + EVE4_CODE_MEM.len + EVE4_DATA_MEM.len;

links_fw/src/rtos/bios_app_common/tda2xx/ipu2/Ipu2.cfg

delete the code below

- var DSP1_DATA_MEM = Program.cpu.memoryMap['DSP1_DATA_MEM'];
- Program.global.gXdcDsp1DataAddr = DSP1_DATA_MEM.base;
- Program.global.gXdcDsp1DataSize = DSP1_DATA_MEM.len;
- var DSP2_DATA_MEM = Program.cpu.memoryMap['DSP2_DATA_MEM'];
- Program.global.gXdcDsp2DataAddr = DSP2_DATA_MEM.base;
- Program.global.gXdcDsp2DataSize = DSP2_DATA_MEM.len;
- var EVE1_DATA_MEM = Program.cpu.memoryMap['EVE1_DATA_MEM'];
- Program.global.gXdcEve1DataAddr = EVE1_DATA_MEM.base;
- Program.global.gXdcEve1DataSize = EVE1_DATA_MEM.len;