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
< // MX6Q_PAD_KEY_COL1__ECSPI1_MISO,
< // MX6Q_PAD_KEY_ROW1__GPIO_4_9,
< // <added>
< /* UART5 for external serial port */
< // </added>
< // 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
< // imx6q_add_imx_uart(2, NULL);
> imx6q_add_imx_uart(2, NULL);
< // 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
< imx6q_imx_uart_data_entry(0, 5),
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?