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.

Linux/DRA75: UART3 error on IPU1 with IPC

Part Number: DRA75


Tool/software: Linux

hardware: VAYU EVM XC5777X REV H

software: ti-processor-sdk-linux-automotive-dra7xx-evm-03_04_00_03

PDK: pdk_dra7xx_1_0_10

I want to output debug msg to uart3 on ipu1 with IPC.

I already reconfig AMMU for logical addr mach issue.

init uart3 seems OK.

but IPU will crash after call function UART_printf ,

uart3 has disabled on  dra7-evm-common.dtsi ,

the debug msg on /sys/kernel/debug/remoteproc/remoteproc0/trace0

like this:

[0][      0.001] [t=0x0030c20d] xdc.runtime.Main: ERROR: "src/tirtos/SemaphoreP_tirtos.c", line 212: assertion failure
[0][      0.001] xdc.runtime.Main: "src/tirtos/SemaphoreP_tirtos.c", line 212: assertion failure
[0][      0.001] xdc.runtime.Error.raise: terminating execution

I already upload the test case to github

https://github.com/xmlinya/ipc_uart.git

  • Hi Ya,

    In order to use UART stdio functions, you must first call UART_stdioInit API.  This is needed to create the semaphore handle used for UART_printf.  If you don't call this, the handle will be uninitialized which is the cause of your assertion.

    UART_stdioInit is called as part of the Board_init routine with the BOARD_INIT_UART_STDIO flag from the Board library.  Otherwise, you can call this directly from your application if you don't need to anything else from the Board library, which may be your case since you are booting under Linux.   I don't see either in the code you have attached - please try calling this and see if this resolves your issue.

    Thanks,
    Stephen

  • Hi Stephen

    Thank you for your help! It's work well ,follow your guide.

    Ya Lin