Hello,
I have a custom board using iMX6S; the board's design is based on the Sabre SD reference board.
I have ported over U-boot and kernel (V 3.0.35) successfully.
But I'm having trouble with the non-console UARTs (ttymxc1 through ttymxc4).
The console UART (ttymxc0) works fine and I can see all the debug outputs on the console.
As a background, I have all 5 UARTs enabled on the chip.
The UART registration with the kernel seems to be fine too; here is the dmesg output:
imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX
imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
console [ttymxc0] enabled, bootconsole disabled
imx-uart.1: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX
imx-uart.3: ttymxc3 at MMIO 0x21f0000 (irq = 61) is a IMX
imx-uart.4: ttymxc4 at MMIO 0x21f4000 (irq = 62) is a IMX
The function calls for initialization are:
imx6q_add_imx_uart(2, NULL);
imx6q_add_imx_uart(0, NULL);
imx6q_add_imx_uart(1, NULL);
imx6q_add_imx_uart(3, NULL);
imx6q_add_imx_uart(4, NULL);
The pads are setup as follows:
....
// UART 1
MX6DL_PAD_EIM_D19__UART1_CTS,
MX6DL_PAD_EIM_D20__UART1_RTS,
MX6DL_PAD_CSI0_DAT11__UART1_RXD,
MX6DL_PAD_CSI0_DAT10__UART1_TXD,
// UART 2
MX6DL_PAD_EIM_D27__UART2_RXD,
MX6DL_PAD_EIM_D26__UART2_TXD,
// UART 3
MX6DL_PAD_EIM_D25__UART3_RXD,
MX6DL_PAD_EIM_D24__UART3_TXD,
// UART 4
MX6DL_PAD_CSI0_DAT13__UART4_RXD,
MX6DL_PAD_CSI0_DAT12__UART4_TXD,
// UART 5
MX6DL_PAD_CSI0_DAT19__UART5_CTS,
MX6DL_PAD_CSI0_DAT18__UART5_RTS,
MX6DL_PAD_CSI0_DAT15__UART5_RXD,
MX6DL_PAD_CSI0_DAT14__UART5_TXD,
...
If I echo something on ttymxc0, it echos it correctly.
But if echo on the other ports, the kernel freezes.
I have already tried this fix: ENGR00283795: MX6: UART 1 hangs the system on SARBESD ..., but it did not help.
Please let me know what I might be missing.
Thanks,
MG.
I get the same problem.
Here is the output when I run this test on ttymxc0:
Test: MXC UART!
Usage: mxc_uart_test <UART device name, opens UART2 if no dev name is specified>
/dev/ttymxc0 opened
Attributes set
Test: IOCTL Set
TestData Written= Test
Data Read back=
(No data are read back, but the test completes; I get the root prompt)
And here is the output when I run this test on ttymxc2 (or any of the other non-console ports):
Test: MXC UART!
Usage: mxc_uart_test <UART device name, opens UART2 if no dev name is specified>
(Kernel freezes here)