We have new board design based on EVMK2E which uses a 66AK2E SOC processor with two built-in NS16550 UARTs. The default UART for the uboot console is UART0, I am bring up this board now. We have JTAG and UART1 routed to a test connector. JTAG is working but we get nothing out of the UART. I added a UART test loop that continuously prints "UART TEST". When I suspend with the JTAG debugger, it is always stuck in a loop watching for the transmit-holding-register to be ready and this never happens.
We changed the configuration in k2e_evm_defconfig to
CONFIG_DEBUG_UART_BASE=0x2531000
CONFIG_DEBUG_UART_CLOCK=25000000
CONFIG_DEBUG_UART=y
CONFIG_DEBUG_UART_NS16550=y
CONFIG_CONS_INDEX=2
I confirmed that hardware-flow-control is not enabled, interrupts are not enabled, and UART FIFOs are enabled in poll-mode.
I have seen that non-zero values are written to the BAUD rate divider registers.
UART initialization is done with debug_uart_init() which is invoked early in the boot process. I noticed that the normal NS16550_init() route uses UART_REG_VAL_PWREMU_UART_EABLE to activate the UART like it says in the manual but that this is not done in debug_uart_init(). I tried copying the command to debug_uart_init() but that did nothing.
UARTs are simple devices so I expected this to just work or to at least indicate that there is some activity going on. I know when I build U-BOOT for the evaluation board, UART0 and everything else works so I think the issue is specify to the UART configuration. It seems like it might be something subtle. I looked at our schematics and the UART connections at the CPU seem the same as the one on the EVM board.
Does anyone else have experience switching U-BOOT to UART1?
Roger