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.

TDA4AL-Q1: Issue with j721s2 Linux IPC Service Not Starting on Our Board

Part Number: TDA4AL-Q1

SDK: ti-processor-sdk-rtos-j721s2-evm-08_06_01_03.tar.gz  and ti-processor-sdk-linux-j721s2-evm-08_06_01_02-Linux-x86-Install.bin

I am encountering an issue with IPC communication while testing vision apps on our board. The system seems to get stuck at Ipc_isRemoteReady() in RTOS. I noticed that the Linux side does not create the IPC device node. Currently, only /dev/rpmsg_ctrl0 is visible. 

Fullscreen
1
2
3
4
5
6
7
8
9
10
/* Wait for Linux VDev ready... */
#if 0 //workaround
for(cpu_id=0; cpu_id<ipc_num_proc; cpu_id++)
{
while(!Ipc_isRemoteReady(ipc_proc_list[cpu_id]))
{
//TaskP_sleep(100);
}
}
#else
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Fullscreen
1
2
3
4
root@j721s2-evm:/opt/vision_apps# modprobe rpmsg_char
root@j721s2-evm:/opt/vision_apps# ls /dev/rpmsg*
/dev/rpmsg_ctrl0
root@j721s2-evm:/opt/vision_apps#
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

bootlog:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
U-Boot SPL 2021.01 (Nov 16 2023 - 18:54:51 +0800)
ti_sci system-controller@44083000: Message not acknowledgedti_sci system-controller@44083000: Message not acknowledgedSYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--1-g2249f (Chill Capybara')
SPL initial stack usage: 13472 bytes
Trying to boot from MMC2
Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
Starting ATF on ARM64 core...
U-Boot SPL 2021.01 (Nov 16 2023 - 18:54:40 +0800)
ti_sci system-controller@44083000: Message not acknowledgedti_sci system-controller@44083000: Message not acknowledgedSYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--1-g2249f (Chill Capybara')
Trying to boot from MMC2
U-Boot 2021.01 (Nov 16 2023 - 18:54:40 +0800)
SoC: J721S2 SR1.0 GP
Model: TDCU4 X01
Board: TDCU4-X01 rev V1
DRAM: 8 GiB
Flash: 0 Bytes
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • dmesg:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    root@j721s2-evm:/opt/vision_apps#
    root@j721s2-evm:/opt/vision_apps# dmesg
    [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd080]
    [ 0.000000] Linux version 5.10.162-g76b3e88d56 (brandon@turing-TURING) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #1 SMP PREEMPT Thu Nov 16 16:06:50 CST 2023
    [ 0.000000] Machine model: TDCU4 X01 J721S2 SoC
    [ 0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002880000 (options '')
    [ 0.000000] printk: bootconsole [ns16550a0] enabled
    [ 0.000000] efi: UEFI not found.
    [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB
    [ 0.000000] OF: reserved mem: initialized node vision-apps-r5f-dma-memory@a0000000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
    [ 0.000000] OF: reserved mem: initialized node vision-apps-r5f-memory@a0100000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 1 MiB
    [ 0.000000] OF: reserved mem: initialized node vision-apps-r5f-dma-memory@a1000000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a1100000, size 15 MiB
    [ 0.000000] OF: reserved mem: initialized node vision-apps-r5f-memory@a1100000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a2000000, size 1 MiB
    [ 0.000000] OF: reserved mem: initialized node vision-apps-r5f-dma-memory@a2000000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a2100000, size 31 MiB
    [ 0.000000] OF: reserved mem: initialized node vision-apps-r5f-memory@a2100000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a4000000, size 1 MiB
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Additionally, it's worth mentioning that our board appears to have some SD compatibility issues, leading to failures in fdt overlay. As a workaround, I have integrated the RTOS memory map into the Linux device tree. Here's the relevant log for this part:

    The rtos memory map dtsi:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // SPDX-License-Identifier: GPL-2.0
    /*
    * Copyright (C) 2023 Foxconn
    */
    // 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";
    };
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Hi Brandon,

    Could you share the remote core logs too? i.e.  please run "./vision_apps_init.sh" in /opt/vision_apps and share the logs.

    I also see that your DDR is 8GB as compared to 16GB in EVM. Do you only have one DDR instance?

    Board: TDCU4-X01 rev V1
    DRAM: 8 GiB

    Regards,
    Nikhil

  • Hi Nikhil,

    Yes, our board has only one DDR instance. In fact, we have already made modifications according to this link, except for the clock.

    The vision app log is as follows:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    root@j721s2-evm:/opt/vision_apps#
    root@j721s2-evm:/opt/vision_apps# ./vision_apps_init.sh
    root@j721s2-evm:/opt/vision_apps# [MCU2_0] 3.983098 s: CIO: Init ... Done !!!
    [MCU2_0] 3.983149 s: ### CPU Frequency = 1000000000 Hz
    [MCU2_0] 3.983183 s: CPU is running FreeRTOS
    [MCU2_0] 3.983204 s: APP: Init ... !!!
    [MCU2_0] 3.983225 s: SCICLIENT: Init ... !!!
    [MCU2_0] 3.983355 s: SCICLIENT: DMSC FW version [8.6.3--1-g2249f (Chill Capybara]
    [MCU2_0] 3.983389 s: SCICLIENT: DMSC FW revision 0x8
    [MCU2_0] 3.983417 s: SCICLIENT: DMSC FW ABI revision 3.1
    [MCU2_0] 3.983448 s: SCICLIENT: Init ... Done !!!
    [MCU2_0] 3.983471 s: UDMA: Init ... !!!
    [MCU2_0] 3.984362 s: UDMA: Init ... Done !!!
    [MCU2_0] 3.984400 s: UDMA: Init ... !!!
    [MCU2_0] 3.984912 s: UDMA: Init for CSITX/CSIRX ... Done !!!
    [MCU2_0] 3.984972 s: MEM: Init ... !!!
    [MCU2_0] 3.985008 s: MEM: Created heap (DDR_LOCAL_MEM, id=0, flags=0x00000004) @ d9000000 of size 16777216 bytes !!!
    [MCU2_0] 3.985067 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000000) @ 60000000 of size 524288 bytes !!!
    [MCU2_0] 3.985118 s: MEM: Init ... Done !!!
    [MCU2_0] 3.985141 s: IPC: Init ... !!!
    [MCU2_0] 3.985187 s: IPC: 5 CPUs participating in IPC !!!
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    The fdt print log is as follows:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    / {
    model = "TDCU4 X01 J721S2 SoC";
    compatible = "ti,j721s2-evm", "ti,j721s2";
    interrupt-parent = <0x00000001>;
    #address-cells = <0x00000002>;
    #size-cells = <0x00000002>;
    chosen {
    stdout-path = "serial2:115200n8";
    bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x2890000";
    };
    cpus {
    #address-cells = <0x00000001>;
    #size-cells = <0x00000000>;
    cpu-map {
    cluster0 {
    phandle = <0x00000071>;
    core0 {
    cpu = <0x00000002>;
    };
    core1 {
    cpu = <0x00000003>;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Regards,
    Brandon

  • Hi Brandon,

    The rtos memory map dtsi:

    Here, you have commented out dma_buf_phys here. May I know why have you commented the same?

    Also, could you also let me if you have included the contents of vision_apps.dtsi as well?

    You could refer the "Linux Changes" in below FAQ for an intergrated vision_apps.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1214665/faq-tda4vl-q1-run-vision_apps-in-sbl-boot-flow-with-combined_appimage

    Could you please confirm if you have done the same?

    our board has only one DDR instance. In fact, we have already made modifications according to this link

    The link points to this thread itself. Could you let me know which changed were integrated?

    Regards,

    Nikhil