iMX6 - non-console UARTs cause kernel to freeze

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMX6 - non-console UARTs cause kernel to freeze

2,554 Views
mg
Contributor I

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.

Labels (2)
0 Kudos
Reply
2 Replies

1,098 Views
jimmychan
NXP TechSupport
NXP TechSupport

There is "mxc_uart_test"  in the imx-test. Please try it.

0 Kudos
Reply

1,098 Views
mg
Contributor I

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)

0 Kudos
Reply