Comment 3 for bug 714600

Revision history for this message
Peter Maydell (pmaydell) wrote : Re: No getty under qemu

This is a qemu bug: the omap UART model is not good enough for the new highspeed serial driver.

In particular, what is happening is that hw/omap_uart.c has

/* The OMAP UART functionality is similar to the TI16C752 rather than
 * the 16550A. When the flag below is enabled, the code will however
 * offer 'only' the basic 16550A emulation. */
/* TODO: real functionality for the TI16C752 enhanced features. Note
 * QEMU's SerialState emulation internally always uses a 16-byte FIFO
 * whereas we would need a 64-byte FIFO for OMAP. */
#define OMAP_UART_16550A

so we just act like a 16550A. The enhanced features include a way to access more UART registers by writing a magic value to one register which swaps out the standard ones for a new set. So the kernel is trying to set the UART_XON1 extended register, but qemu doesn't model the register swapping so it behaves as if the kernel had set the UART_MCR. As it happens the value written has the MCR_LOOP bit set and the model goes into loopback mode, so we never see anything more.

Just commenting out that #define and rebuilding gives back a root prompt on serial. However I don't know if this breaks anybody else (eg omap-but-not-omap3 models?)