
On 12/23/2012 05:17:25 PM, Javier Martinez Canillas wrote:
On Sat, Dec 22, 2012 at 4:40 AM, Javier Martinez Canillas javier.martinez@collabora.co.uk wrote:
But if I'm the only one having this issue maybe is just my hardware
behaving
badly. I'll ask other OMAP3 users if they can boot with mainline
U-Boot to
confirm this.
Hello,
I tested with an Beagleboard which is another OMAP3 board that has the same PC16550D UART than my OMAP3 IGEPv2 and the board does not hang while waiting for TEMT. I've also tested with an OMAP4 pandaboard and it boots correctly too.
But the hung issue seems to not be an issue with my IGEPv2 board but with any IGEPv2 board since another user reported that his board hangs with the latest U-Boot too. Reverting cb55b332 (serial/ns16550: wait for TEMT before initializing) solved the issue for him.
Will a patch like this be an acceptable solution?
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c index bbd91ca..8106a9a 100644 --- a/drivers/serial/ns16550.c +++ b/drivers/serial/ns16550.c @@ -36,8 +36,10 @@
void NS16550_init(NS16550_t com_port, int baud_divisor) { +#if (CONFIG_MACH_TYPE != MACH_TYPE_IGEP0020) while (!(serial_in(&com_port->lsr) & UART_LSR_TEMT)) ; +#endif
Probably better to have your board config file define CONFIG_SYS_NS16550_BROKEN_TEMT or similar (and document the symbol in README).
-Scott