Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9986
-gerrit
commit 1314bce33b2e04665913d28f66d35ed786d14c0e
Author: Vadim Bendebury <vbendeb(a)chromium.org>
Date: Fri Apr 10 19:23:16 2015 -0700
storm: enable CBMEM console dump
This patch enables on storm the recently introduced 'console buffer
dump on reboot' capability.
BRANCH=none
BUG=chromium:475347
TEST=generated storm image with serial console disabled and both rw
firmware A and B sections corrupted. Programmed the new image on
an SP5 device and rebooted it. Observed the device dump cbmem
console buffer to the serial output, terminating with
VB2:vb2_fail() Need recovery, reason: 0x3 / 0xa
Reboot requested (1008000a)
Saving nvdata
SF: Detected S25FL128S_256K with page size 10000, total 2000000
and the LED ring started flashing indicating recovery mode.
Change-Id: Idb50c86f59f393c783ccbc15de8f5564e2a1b38e
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 0ec88001b152bb9f1d7268b83367131b004816f8
Original-Change-Id: I9345eeb4d375f42fb1e4c617495b63b308ce51d9
Original-Signed-off-by: Vadim Bendebury <vbendeb(a)chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/265295
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
---
src/mainboard/google/storm/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/mainboard/google/storm/Kconfig b/src/mainboard/google/storm/Kconfig
index d2c011b..dfa00cc 100644
--- a/src/mainboard/google/storm/Kconfig
+++ b/src/mainboard/google/storm/Kconfig
@@ -25,7 +25,7 @@ config BOARD_SPECIFIC_OPTIONS
select BOARD_ID_AUTO
select BOARD_ROMSIZE_KB_8192
select COMMON_CBFS_SPI_WRAPPER
- select VBOOT_DISABLE_DEV_ON_RECOVERY
+ select CONSOLE_CBMEM_DUMP_TO_UART
select DRIVERS_I2C_WW_RING
select HAVE_HARD_RESET
select MAINBOARD_HAS_BOOTBLOCK_INIT
@@ -34,6 +34,7 @@ config BOARD_SPECIFIC_OPTIONS
select SPI_FLASH
select SPI_FLASH_SPANSION
select SPI_FLASH_STMICRO
+ select VBOOT_DISABLE_DEV_ON_RECOVERY
select VIRTUAL_DEV_SWITCH
select WIPEOUT_SUPPORTED
Patrick Georgi (pgeorgi(a)google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9984
-gerrit
commit 4cdae41f2c02c33df752721984d371fc91bac0ff
Author: Vadim Bendebury <vbendeb(a)chromium.org>
Date: Fri Apr 10 18:04:04 2015 -0700
cbmem: add and use a function to dump console buffer
The new function can be compiled in only when serial console is
disabled.
When invoked, this function initializes the serial interface and dumps
the contents of the CBMEM console buffer to serial output.
BRANCH=none
BUG=chromium:475347
TEST=compiled for different platforms with and without serial console
enabled. No actual test of this function yet.
Change-Id: Ia8d16649dc9d09798fa6970f2cfd893438e00dc5
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: a38a8254dd788ad188ba2509b9ae117d6f699579
Original-Change-Id: Ib85759a2727e31ba1ca21da7e6c346e434f83b52
Original-Signed-off-by: Vadim Bendebury <vbendeb(a)chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/265293
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
---
src/console/Kconfig | 9 +++++++++
src/include/console/cbmem_console.h | 1 +
src/lib/cbmem_console.c | 17 +++++++++++++++++
src/vendorcode/google/chromeos/vboot.c | 2 ++
src/vendorcode/google/chromeos/vboot_common.c | 2 ++
5 files changed, 31 insertions(+)
diff --git a/src/console/Kconfig b/src/console/Kconfig
index 2807039..7d6fa0e 100644
--- a/src/console/Kconfig
+++ b/src/console/Kconfig
@@ -184,6 +184,15 @@ config CONSOLE_CBMEM_BUFFER_SIZE
value (128K or 0x20000 bytes) is large enough to accommodate
even the BIOS_SPEW level.
+config CONSOLE_CBMEM_DUMP_TO_UART
+ depends on !CONSOLE_SERIAL
+ bool "Dump CBMEM console on resets"
+ default n
+ help
+ Enable this to have CBMEM console buffer contents dumped on the
+ serial output in case serial console is disabled and the device
+ resets itself while trying to boot the payload.
+
endif
config CONSOLE_QEMU_DEBUGCON
diff --git a/src/include/console/cbmem_console.h b/src/include/console/cbmem_console.h
index 3431459..8f7fcb2 100644
--- a/src/include/console/cbmem_console.h
+++ b/src/include/console/cbmem_console.h
@@ -43,4 +43,5 @@ static inline void __cbmemc_init(void) {}
static inline void __cbmemc_tx_byte(u8 data) {}
#endif
+void cbmem_dump_console(void);
#endif
diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c
index 628d3b9..9d292bf 100644
--- a/src/lib/cbmem_console.c
+++ b/src/lib/cbmem_console.c
@@ -19,6 +19,7 @@
#include <console/console.h>
#include <console/cbmem_console.h>
+#include <console/uart.h>
#include <cbmem.h>
#include <arch/early_variables.h>
#include <symbols.h>
@@ -236,5 +237,21 @@ void cbmemc_reinit(void)
init_console_ptr(cbm_cons_p, size, flags);
}
+#if IS_ENABLED(CONFIG_CONSOLE_CBMEM_DUMP_TO_UART)
+void cbmem_dump_console(void)
+{
+ struct cbmem_console *cbm_cons_p;
+ int cursor;
+
+ cbm_cons_p = current_console();
+ if (!cbm_cons_p)
+ return;
+
+ uart_init(0);
+ for (cursor = 0; cursor < cbm_cons_p->buffer_cursor; cursor++)
+ uart_tx_byte(0, cbm_cons_p->buffer_body[cursor]);
+}
+#endif
+
/* Call cbmemc_reinit() at CAR migration time. */
CAR_MIGRATE(cbmemc_reinit)
diff --git a/src/vendorcode/google/chromeos/vboot.c b/src/vendorcode/google/chromeos/vboot.c
index 44fe9e3..a151f54 100644
--- a/src/vendorcode/google/chromeos/vboot.c
+++ b/src/vendorcode/google/chromeos/vboot.c
@@ -234,6 +234,8 @@ static void init_vboot(int bootmode)
#if !MOCK_TPM
printk(BIOS_ERR, "TPM: Error code 0x%x. Hard reset!\n", result);
post_code(POST_TPM_FAILURE);
+ if (IS_ENABLED(CONFIG_CONSOLE_CBMEM_DUMP_TO_UART))
+ cbmem_dump_console();
hard_reset();
#endif
}
diff --git a/src/vendorcode/google/chromeos/vboot_common.c b/src/vendorcode/google/chromeos/vboot_common.c
index 3c1a9c3..2e38563 100644
--- a/src/vendorcode/google/chromeos/vboot_common.c
+++ b/src/vendorcode/google/chromeos/vboot_common.c
@@ -129,6 +129,8 @@ void *vboot_get_payload(int *len)
void vboot_reboot(void)
{
+ if (IS_ENABLED(CONFIG_CONSOLE_CBMEM_DUMP_TO_UART))
+ cbmem_dump_console();
hard_reset();
die("failed to reboot");
}
the following patch was just integrated into master:
commit d8a5017ee0d47e860148d139bc5329083ac06515
Author: Joseph Lo <josephl(a)nvidia.com>
Date: Fri Apr 17 15:31:59 2015 +0800
arm64: save/restore cptr_el3 and cpacr_el1 registers
CPTR_EL3 and CPACR_EL1 are the registers for controlling the trap level
and access right of the FPU/SIMD instructions. Need to save/restore them
in every power cycle to keep the settings consistent.
BRANCH=none
BUG=none
TEST=boot on smaug/foster, verify the cpu_on/off is ok as well
Change-Id: I96fc0e0d2620e72b6ae2ffe4d073c9328047dc01
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: 73e8cc8f25922e7bc218d24fbf4f7c67e15e3057
Original-Change-Id: I51eed07b1bb8f6eb2715622ec5d5c3f80c3c8bdd
Original-Signed-off-by: Joseph Lo <josephl(a)nvidia.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/266073
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Original-Reviewed-by: Benson Leung <bleung(a)chromium.org>
Reviewed-on: http://review.coreboot.org/9981
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marc.jones(a)se-eng.com>
See http://review.coreboot.org/9981 for details.
-gerrit
the following patch was just integrated into master:
commit c38d3e8131b0f6ed7e576d1a66ac9513b1810f27
Author: Joseph Lo <josephl(a)nvidia.com>
Date: Wed Apr 15 10:09:50 2015 +0800
arm64: implement CPU power down sequence as per A57/A53/A72 TRM
Implement the individual core powerdown sequence as per
Cortex-A57/A53/A72 TRM.
Based-on-the-work-by:
Varun Wadekar <vwadekar(a)nvidia.com>
BRANCH=none
BUG=none
TEST=boot on smaug/foster, verify the cpu_on/off is ok as well
Change-Id: I4719fcbe86b35f9b448d274e1732da5fc75346b0
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: b6bdcc12150820dfad28cef3af3d8220847c5d74
Original-Change-Id: I65abab8cda55cfe7a0c424f3175677ed5e3c2a1c
Original-Signed-off-by: Joseph Lo <josephl(a)nvidia.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/265827
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: http://review.coreboot.org/9980
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marc.jones(a)se-eng.com>
See http://review.coreboot.org/9980 for details.
-gerrit
the following patch was just integrated into master:
commit c4301f79691995dfedb56cb3e20adea3ecd8f596
Author: Joseph Lo <josephl(a)nvidia.com>
Date: Tue Apr 14 16:03:58 2015 +0800
arm64: introduce data cache ops by set/way to the level specified
This patchs introduces level specific data cache maintenance operations
to cache_helpers.S. It's derived form ARM trusted firmware repository.
Please reference here.
https://github.com/ARM-software/arm-trusted-firmware/blob/master/
lib/aarch64/cache_helpers.S
BRANCH=none
BUG=none
TEST=boot on smaug/foster
Change-Id: Ib58a6d6f95eb51ce5d80749ff51d9d389b0d1343
Signed-off-by: Patrick Georgi <pgeorgi(a)chromium.org>
Original-Commit-Id: b3d1a16bd0089740f1f2257146c771783beece82
Original-Change-Id: Ifcd1dbcd868331107d0d47af73545a3a159fdff6
Original-Signed-off-by: Joseph Lo <josephl(a)nvidia.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/265826
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: http://review.coreboot.org/9979
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marc.jones(a)se-eng.com>
See http://review.coreboot.org/9979 for details.
-gerrit