Scott Radcliffe (sradcliffe@microind.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7040
-gerrit
commit b4925b77c0cde5ffb671dfef7448dbcc0c12e42c Author: Scott Radcliffe sradcliffe@microind.com Date: Fri Oct 10 16:26:05 2014 -0400
intel/fsp_baytrail: Clear the GNVS area prior to filling
Zero out the GNVS area so that uninitialized portions are defined.
Tests using Microsoft Windows (XP/7/8) gave a bluescreen bugcheck: A5 (ACPI_BIOS_ERROR) with first parameter 0x00001000 (ACPI_BIOS_USING_OS_MEMORY). Some ACPI enumerated devices use the GNVS area to define whether they're enabled and their MMIO regions. On my custom baytrail-based board and build, these devices are disabled but GNVS had uninitialized data indicating the devices were enabled with improper MMIO regions.
Should investigate further to see where the GNVS device values are set if enabled and make sure they are set to valid values even when the devices are disabled via the mainboard/devicetree.cb.
Change-Id: I2b575c65bfaab58ae6206ac6f457c259c27a7d97 Signed-off-by: Scott Radcliffe sradcliffe@microind.com --- src/soc/intel/fsp_baytrail/acpi.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/src/soc/intel/fsp_baytrail/acpi.c b/src/soc/intel/fsp_baytrail/acpi.c index dece178..fb0dc87 100644 --- a/src/soc/intel/fsp_baytrail/acpi.c +++ b/src/soc/intel/fsp_baytrail/acpi.c @@ -88,6 +88,9 @@ static acpi_cstate_t cstate_map[] = {
void acpi_init_gnvs(global_nvs_t *gnvs) { + /* Clear gnvs area so uninitialized portions are defined */ + memset(gnvs, 0, sizeof(*gnvs)); + /* CPU core count */ gnvs->pcnt = dev_count_cpu();