Francis Rowe (info(a)gluglug.org.uk) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7041
-gerrit
commit c6779c02bcc1d77e90f07fefb063c8ee727c3f18
Author: Francis Rowe <info(a)gluglug.org.uk>
Date: Fri Oct 10 21:46:36 2014 +0100
Revert "cbmem console: Locate the preram console with a symbol instead of a section."
This reverts commit 35382a6eeb6634c291ffb67a3c4fa7a4601a7328.
X60/X201 were found not to boot at all with this commit. Reverting it fixes boot issue.
Change-Id: Idfe7bd5323e4936441f112f3bb65287f3ec6cd1f
Signed-off-by: Francis Rowe <info(a)gluglug.org.uk>
---
src/arch/arm/include/arch/early_variables.h | 1 +
src/arch/x86/include/arch/early_variables.h | 2 ++
src/arch/x86/init/romstage.ld | 14 +++++++-------
src/console/Kconfig | 10 +++++-----
src/lib/cbmem_console.c | 5 ++---
5 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/src/arch/arm/include/arch/early_variables.h b/src/arch/arm/include/arch/early_variables.h
index 5b58baa..041d0ae 100644
--- a/src/arch/arm/include/arch/early_variables.h
+++ b/src/arch/arm/include/arch/early_variables.h
@@ -21,6 +21,7 @@
#define ARCH_EARLY_VARIABLES_H
#define CAR_GLOBAL
+#define CAR_CBMEM
#define CAR_MIGRATE(migrate_fn_)
static inline void *car_get_var_ptr(void *var) { return var; }
diff --git a/src/arch/x86/include/arch/early_variables.h b/src/arch/x86/include/arch/early_variables.h
index 80e82d6..ea1a133 100644
--- a/src/arch/x86/include/arch/early_variables.h
+++ b/src/arch/x86/include/arch/early_variables.h
@@ -26,8 +26,10 @@ asm(".previous");
asm(".section .car.cbmem_console,\"w\",@nobits");
asm(".previous");
#define CAR_GLOBAL __attribute__((section(".car.global_data")))
+#define CAR_CBMEM __attribute__((section(".car.cbmem_console")))
#else
#define CAR_GLOBAL
+#define CAR_CBMEM
#endif
#if defined(__PRE_RAM__)
diff --git a/src/arch/x86/init/romstage.ld b/src/arch/x86/init/romstage.ld
index d6eb511..5458cfc 100644
--- a/src/arch/x86/init/romstage.ld
+++ b/src/arch/x86/init/romstage.ld
@@ -55,15 +55,15 @@ SECTIONS
.car.data . (NOLOAD) : {
_car_data_start = .;
*(.car.global_data);
- _car_data_end = .;
- /* The preram cbmem console area comes last to take advantage
- * of a zero-sized array to hold the memconsole contents that
- * grows to a bound of CONFIG_CONSOLE_PRERAM_BUFFER_SIZE.
- * However, collisions within the cache-as-ram region cannot be
+ /* The cbmem_console section comes last to take advantage of
+ * a zero-sized array to hold the memconsole contents that
+ * grows to a bound of CONFIG_CONSOLE_CAR_BUFFER_SIZE. However,
+ * collisions within the cache-as-ram region cannot be
* statically checked because the cache-as-ram region usage is
* cpu/chipset dependent. */
- preram_cbmem_console = .;
+ *(.car.cbmem_console);
+ _car_data_end = .;
}
- _bogus = ASSERT((SIZEOF(.car.data) + CONFIG_CONSOLE_PRERAM_BUFFER_SIZE <= CONFIG_DCACHE_RAM_SIZE), "Cache as RAM area is too full");
+ _bogus = ASSERT((SIZEOF(.car.data) <= CONFIG_DCACHE_RAM_SIZE), "Cache as RAM area is too full");
}
diff --git a/src/console/Kconfig b/src/console/Kconfig
index 619af56..472ac5c 100644
--- a/src/console/Kconfig
+++ b/src/console/Kconfig
@@ -184,15 +184,15 @@ config CONSOLE_CBMEM_BUFFER_SIZE
value (128K or 0x20000 bytes) is large enough to accommodate
even the BIOS_SPEW level.
-config CONSOLE_PRERAM_BUFFER_SIZE
+config CONSOLE_CAR_BUFFER_SIZE
depends on CONSOLE_CBMEM
- hex "Room allocated for console output before RAM is initialized"
+ hex "Room allocated for console output in Cache as RAM"
default 0xc00
help
Console is used before RAM is initialized. This is the room reserved
- in the DCACHE based RAM, SRAM, etc. to keep console output before it
- can be saved in a CBMEM buffer. 3K bytes should be enough even for
- the BIOS_SPEW level.
+ in the DCACHE based RAM to keep console output before it can be
+ saved in a CBMEM buffer. 3K bytes should be enough even for the
+ BIOS_SPEW level.
config CONSOLE_QEMU_DEBUGCON
bool "QEMU debug console output"
diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c
index b5b75f3..9d5419a 100644
--- a/src/lib/cbmem_console.c
+++ b/src/lib/cbmem_console.c
@@ -44,7 +44,7 @@ static struct cbmem_console *cbmem_console_p CAR_GLOBAL;
* the area are defined in the config.
*/
-extern struct cbmem_console preram_cbmem_console;
+static struct cbmem_console car_cbmem_console CAR_CBMEM;
#else
@@ -86,8 +86,7 @@ static inline void init_console_ptr(void *storage, u32 total_space)
void cbmemc_init(void)
{
#ifdef __PRE_RAM__
- init_console_ptr(&preram_cbmem_console,
- CONFIG_CONSOLE_PRERAM_BUFFER_SIZE);
+ init_console_ptr(&car_cbmem_console, CONFIG_CONSOLE_CAR_BUFFER_SIZE);
#else
/*
* Initializing before CBMEM is available, use static buffer to store
Scott Radcliffe (sradcliffe(a)microind.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7040
-gerrit
commit c8f5fe75046b576d1de74ce3c548a79733efd682
Author: Scott Radcliffe <sradcliffe(a)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.
Change-Id: I2b575c65bfaab58ae6206ac6f457c259c27a7d97
Signed-off-by: Scott Radcliffe <sradcliffe(a)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();
Scott Radcliffe (sradcliffe(a)microind.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7038
-gerrit
commit 37e1a6729a300c122d7bd5acf8d9920bf932c7d5
Author: Scott Radcliffe <sradcliffe(a)microind.com>
Date: Fri Oct 10 16:09:52 2014 -0400
intel/fsp_baytrail: Add padding so device_nvs location matches ACPI
The offset of the device_nvs in the gnvs struct is expected to be
0x1000. It is actually 0x100 so padding is needed to move device_nvs
to the expected location. ACPI references to device_nvs objects will
be correct with the padding.
Change-Id: I4721a79b53b5b3345ff9b0c053bdd31d2cf9cb61
Signed-off-by: Scott Radcliffe <sradcliffe(a)microind.com>
---
src/soc/intel/fsp_baytrail/baytrail/nvs.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/soc/intel/fsp_baytrail/baytrail/nvs.h b/src/soc/intel/fsp_baytrail/baytrail/nvs.h
index 53c4a64..242f6d3 100644
--- a/src/soc/intel/fsp_baytrail/baytrail/nvs.h
+++ b/src/soc/intel/fsp_baytrail/baytrail/nvs.h
@@ -61,6 +61,9 @@ typedef struct {
u32 cbmc; /* 0x38 - coreboot memconsole */
u8 rsvd3[196];
+ /* Pad 0x0100-0x0fff */
+ u8 rsvd4[3840];
+
/* Baytrail LPSS (0x1000) */
device_nvs_t dev;
} __attribute__((packed)) global_nvs_t;
the following patch was just integrated into master:
commit 9215a89f1cf8dfdb62a6b8a55a2e89e4e322a2d3
Author: Vladimir Serbinenko <phcoder(a)gmail.com>
Date: Mon Sep 1 22:52:02 2014 +0200
via/epia-m: Switch to per-device ACPI
Change-Id: Ic63fc1f933fff5cd58adcd4299c4ac2a62c4bb68
Signed-off-by: Vladimir Serbinenko <phcoder(a)gmail.com>
Reviewed-on: http://review.coreboot.org/6941
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich(a)gmail.com>
See http://review.coreboot.org/6941 for details.
-gerrit
the following patch was just integrated into master:
commit 6b330f2a2462a72c2d10940b5e06b99f02b20297
Author: Vladimir Serbinenko <phcoder(a)gmail.com>
Date: Sun Oct 5 11:08:40 2014 +0200
lynxpoint: Change OEM table ID for serialio.
According to ACPI spec all SSDTs should have distinct OEM table ID.
We end up with 2 SSDTs named "COREBOOT". Fix this.
Change-Id: I01bccb72758baf51c6b4263778716f4bb9d438c9
Signed-off-by: Vladimir Serbinenko <phcoder(a)gmail.com>
Reviewed-on: http://review.coreboot.org/7016
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin(a)google.com>
See http://review.coreboot.org/7016 for details.
-gerrit
the following patch was just integrated into master:
commit 7309c64d483abb4bf4ebe12901109320d88124ba
Author: Vladimir Serbinenko <phcoder(a)gmail.com>
Date: Sun Oct 5 11:07:33 2014 +0200
bd82x6x, ibexpeak, lynxpoint: Ensure 0-filling of uninited GNVS vars.
Change-Id: I672c3ca9e7f30a21330cf1920a25b1ab38b3f282
Signed-off-by: Vladimir Serbinenko <phcoder(a)gmail.com>
Reviewed-on: http://review.coreboot.org/7015
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin(a)google.com>
See http://review.coreboot.org/7015 for details.
-gerrit
the following patch was just integrated into master:
commit 60fccdc3d2ab5a3b0265f1a411d02b8504407e1c
Author: Vladimir Serbinenko <phcoder(a)gmail.com>
Date: Sun Oct 5 11:05:16 2014 +0200
acpi_create_mcfg_mmconfig: Zero-out the structure before filling.
Otherwise "reserved" fields end up with a garbage instead of predictable
value.
Change-Id: I8a036769a8f86f1d6752651601de2800f4f1bd00
Signed-off-by: Vladimir Serbinenko <phcoder(a)gmail.com>
Reviewed-on: http://review.coreboot.org/7014
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin(a)google.com>
See http://review.coreboot.org/7014 for details.
-gerrit