AnsweredAssumed Answered

UART5 garbage in 4.0.0

Question asked by frankmiller on Jul 9, 2013
Latest reply on Jul 11, 2013 by frankmiller

Greetings,

 

I've just upgraded our software to 4.0.0.  Nice release, noticeable fixes for things like UART5 and HDMI sound!

 

I'm having a little trouble with UART5 as console however.  Shortly after the kernel boots, during the kernel boot messages, the output turns to garbage characters.  This persists even after the boot is complete and a getty has been applied to the port.  The following are the changes I made to the kernel to make UART5 our only serial port and the console:

 

These changes map the proper pads to the UART5 lines.

 

diff mx6q_sabresd.h mx6q_sabresd.h.orig

44,45c44,45

< //    MX6Q_PAD_KEY_COL1__ECSPI1_MISO,

< //    MX6Q_PAD_KEY_ROW1__GPIO_4_9,

---

>     MX6Q_PAD_KEY_COL1__ECSPI1_MISO,

>     MX6Q_PAD_KEY_ROW1__GPIO_4_9,

188,195d187

< // <added>

<     /* UART5 for external serial port */

<     MX6Q_PAD_KEY_COL1__UART5_TXD,

<     MX6Q_PAD_KEY_ROW1__UART5_RXD,

<     MX6Q_PAD_KEY_COL4__UART5_RTS,

<     MX6Q_PAD_KEY_ROW4__UART5_CTS,

< // </added>

<

268c260

< //    MX6Q_PAD_KEY_COL4__GPIO_4_14, /* PCIE_DIS */

---

>     MX6Q_PAD_KEY_COL4__GPIO_4_14, /* PCIE_DIS */

 

Here I'm dropping UART3 support so I only have one serial line and its my console.  I'm also setting up UART5 as the early console.

 

diff mx6q_sabresd.c mx6q_sabresd.c.orig

255c255

< //    imx6q_add_imx_uart(2, NULL);

---

>     imx6q_add_imx_uart(2, NULL);

1955,1958c1955,1956

< //    uart_clk = clk_get_sys("imx-uart.0", NULL);

< //    early_console_setup(UART1_BASE_ADDR, uart_clk);

<     uart_clk = clk_get_sys("imx-uart.4", NULL);

<     early_console_setup(UART5_BASE_ADDR, uart_clk);

---

>     uart_clk = clk_get_sys("imx-uart.0", NULL);

>     early_console_setup(UART1_BASE_ADDR, uart_clk);

 

Here I'm mapping UART5 to ttymxc0

 

diff platform-imx-uart.c platform-imx-uart.c.orig

133,134d132

<     imx6q_imx_uart_data_entry(0, 5),

< /*

140d137

< */

 

 

These changes worked fine in the previous code base.  Is there something that has changed in 4.0.0 that I'm missing or that I did wrong?

 

Thanks,

FM

 

 




Outcomes