Duncan Laurie (dlaurie@google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5181
-gerrit
commit 01fddb11d492d00dfc8b1f42e6969838ad6db04d Author: Duncan Laurie dlaurie@chromium.org Date: Mon Feb 10 11:34:27 2014 -0800
lynxpoint: Finalize chipset before playload if not CONFIG_CHROMEOS
The Chrome OS environment sends an SMI to finalize the chipset/board at the end of the "depthcharge" payload, but there is no facility to send this command if not using the full ChromeOS firmware stack.
This commit adds a callback before booting the payload that will issue this SMI which will lock down the chipset and route USB devices to the XHCI controller.
Change-Id: I2db9c44d61ebf8fa28a8a2b260a63d4aa4d75842 Signed-off-by: Duncan Laurie dlaurie@chromium.org --- src/southbridge/intel/lynxpoint/smi.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/southbridge/intel/lynxpoint/smi.c b/src/southbridge/intel/lynxpoint/smi.c index 75c3e66..af40eaf 100644 --- a/src/southbridge/intel/lynxpoint/smi.c +++ b/src/southbridge/intel/lynxpoint/smi.c @@ -19,7 +19,7 @@ * MA 02110-1301 USA */
- +#include <bootstate.h> #include <device/device.h> #include <device/pci.h> #include <console/console.h> @@ -124,3 +124,20 @@ void smm_setup_structures(void *gnvs, void *tcg, void *smi1) "d" (APM_CNT) ); } + +/* + * Finalize system before payload boot if not in ChromeOS environment. + */ +#if !CONFIG_CHROMEOS + +static void finalize_boot(void *unused) +{ + outb(0xcb, 0xb2); +} + +BOOT_STATE_INIT_ENTRIES(finalize) = { + BOOT_STATE_INIT_ENTRY(BS_PAYLOAD_BOOT, BS_ON_ENTRY, + finalize_boot, NULL), +}; + +#endif