I’m using Toradex Colibri IMX7D 512MB v1.1C with our own pcb and trying to configure UARTA for both cores in same time (Cortex-M4/FreeRTOS and A7/Linux) but without success. Is it possible?
Note: Here we have other product using Colibri VF61. On this product UARTA was configured succefully for both cores.
Note: In our board we have only this UART for debug all system.
Hello @tolentino.jv and Welcome to the Toradex Community!!!
Could you provide the version of the Hardware and Software of your module?
I’m using Toradex Colibri IMX7D 512MB v1.1C with our own pcb and trying to configure UARTA for both cores in same time (Cortex-M4/FreeRTOS and A7/Linux) but without success. Is it possible?
Unfortunately it is not possible to assign the Port to both cores at same times as described here.
Note: Here we have other product using Colibri VF61. On this product UARTA was configured succefully for both cores.
Usually this should not be possible. How did you achieve that?
Note: In our board we have only this UART for debug all system.
If you have any USB Port on your carrier board, then you can use a USB/Converter to Debug Linux and use UARTA for M4.
iMX7 features a new Unit called Resource Domain Controller (RDC), which prohibits and grants access to peripherals and memory areas for individual bus masters (e.g. CPU, DMA controller) on hardware level as described here.
You need to correctly set the debug uart to M4 Core and A5 Core Domain by writing this line correctly.
Yes, the difference between original
and our setup is that we change the
UART_B for UART_A, but the code is
exactly the same.
Sorry, I made a mistake in that description. In fact, in our code M4 doesn’t read anything from the UART, it only write “Hello World” second after second on UART, and the linux read and write for debug purpose.
I am getting also kernel crash when I am using UARTA on M4 at same time. I think you need to use the RPMSG for multi-core communication as described here.
No. Here we already use rpmsg to communicate between cores in VF61. The idea to use the same uart is for debugging both cores in same time, to test M4, start programming and verify the code.
How can I program rpmsg if i don’t know if my code is working? How can I debug my code?
Dear @tolentino.jv
For debugging the M4 code, you would typically use a JTAG adapter. There’s varous free and paid IDEs supporting this approach.
Regards, Andy