hello NXP community,
currently i am working on andorid_11 based application on imx8mm evk board.
so here i am developping RPMsg based multicore application. in my application
freeRTOS (M-core) side i configured UART1 as RS485 and UART4 is defult consol
for M-core. and also i configured i2c functionality.
Configuration pin :
1 ] RS485[UART1(A53)] in M-core : pin_mux.c
>>
IOMUXC_SetPinMux(IOMUXC_SAI2_RXC_UART1_RX, 0U);
IOMUXC_SetPinConfig(IOMUXC_SAI2_RXC_UART1_RX,
IOMUXC_SW_PAD_CTL_PAD_DSE(6U) |
IOMUXC_SW_PAD_CTL_PAD_FSEL(2U));
IOMUXC_SetPinMux(IOMUXC_SAI2_RXFS_UART1_TX, 0U);
IOMUXC_SetPinConfig(IOMUXC_SAI2_RXFS_UART1_TX,
IOMUXC_SW_PAD_CTL_PAD_DSE(6U) |
IOMUXC_SW_PAD_CTL_PAD_FSEL(2U));
// DSE is DriveStrength, FSEL is SlewRate
IOMUXC_SetPinMux(IOMUXC_UART3_RXD_GPIO5_IO26, 0U); // UART_C_CTS on schematic (VH1, pin 12) - CeLAN_DIRECTION_GPIO
// software I2C
IOMUXC_SetPinMux(IOMUXC_UART3_TXD_GPIO5_IO27, 0U); // UART_C_RTS on schematic (VH1, pin 7) - SCL
IOMUXC_SetPinConfig(IOMUXC_UART3_TXD_GPIO5_IO27,
IOMUXC_SW_PAD_CTL_PAD_PE(1U) | // enable pull resistors
IOMUXC_SW_PAD_CTL_PAD_PUE(1U) | // set to pull-up resistors
IOMUXC_SW_PAD_CTL_PAD_ODE(1U) | // output is open drain
IOMUXC_SW_PAD_CTL_PAD_FSEL(2U) | // fast slew rate
IOMUXC_SW_PAD_CTL_PAD_DSE(6U)); // drive strength
IOMUXC_SetPinMux(IOMUXC_GPIO1_IO11_GPIO1_IO11, 0U); // DSI_RST on schematic (VH1, pin 36) - SDA
IOMUXC_SetPinConfig(IOMUXC_GPIO1_IO11_GPIO1_IO11,
IOMUXC_SW_PAD_CTL_PAD_PE(1U) | // enable pull resistors
IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | // Schmitt trigger input
IOMUXC_SW_PAD_CTL_PAD_PUE(1U) | // set to pull-up resistors
IOMUXC_SW_PAD_CTL_PAD_ODE(1U) | // output is open drain
IOMUXC_SW_PAD_CTL_PAD_FSEL(2U) | // fast slew rate
IOMUXC_SW_PAD_CTL_PAD_DSE(6U)); // drive strength
>> In linux side disabled node: in dtsi
&uart1 { /* baseboard, UART_C */
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
assigned-clocks = <&clk IMX8MM_CLK_UART1>;
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
fsl,uart-has-rtscts;
status = "disabled";
};
Now what i am doing.
Turn on board. loading firmware from U-boot :
setenv m4_boot 'ext4load mmc 2:8 0x48000000 rpmsg_lite_pingpong_rtos_linux_remote.bin;
cp.b 0x48000000 0x7e0000 0x4E58;bootaux 0x7e0000;'
saveenv
than boot M-core : run m4_boot
thr M-core is successfully running. and show print : " UART1 init SUCCESS "
>> now in Rs485 console(using minicom), set boudrate : 38400 and enable linefeed. (CF).
than trying to somthig write on terminal nothing write or shown on consol but intrrupt
working.and passing data true. probe with logic analyzer.
>> while i press ctrl + j. on terminal at that time on M-core console shown "*** NEW COMMAND IS IN ***"
but it works only one time. and than nothing.
next i turn board in linux android BOOT mode:
but here M-core console not responding or noting print visible. maybe M-core freeze or somthing.
but while run cmd : the stae is running.
Screenshot from 2024-12-31 17-15-42.png
cat /sys/class/remoteproc/remoteproc0/state
running
I kindly request the NXP community to assist me with an issue regarding the RS485 console setup and M-core not working during the Linux boot process. Additional configuration details and the main file are attached. freRTOS