the following patch was just integrated into master: commit a51815119f7fe282a84a4e4db941019ca5dd918e Author: Duncan Laurie dlaurie@chromium.org Date: Thu Jun 4 08:42:48 2015 -0700
hardwaremain: Move init_timer() call to before console init
The 8250 MMIO uart driver calls udelay, and if that is the first call then it will also call printk in init_timer() which can result in a deadlock trying to acquire the console lock.
There are a few options to prevent this: 1) remove the printk in init_timer which removes a useful debug message 2) change the udelay() to cpu_relax() in uart8250mem.c 3- move the init_timer() call in ramstage main() to be called earlier
Since hardwaremain.c:main() already has an explicit call to init_timer() on x86 it is an easy change to move this to happen before the console is initialized.
BUG=chrome-os-partner:40857 BRANCH=none TEST=boot on glados with serial output through ramstage
Change-Id: I8a8d8cccdd0b53de9de44600076bfad75e4f5514 Signed-off-by: Patrick Georgi pgeorgi@chromium.org Original-Commit-Id: 744610f72628a944582925933b286f65bde630d9 Original-Change-Id: Ic1fdafaea5541c6d7b1bb6f15399c759f484aa74 Original-Signed-off-by: Duncan Laurie dlaurie@chromium.org Original-Reviewed-on: https://chromium-review.googlesource.com/275157 Original-Reviewed-by: Aaron Durbin adurbin@chromium.org Reviewed-on: http://review.coreboot.org/10698 Reviewed-by: Stefan Reinauer stefan.reinauer@coreboot.org Tested-by: build bot (Jenkins)
See http://review.coreboot.org/10698 for details.
-gerrit