[coreboot-gerrit] New patch to review for coreboot: 7b90cee libpayload: Add support for parsing RAMOOPS range from coreboot
Patrick Georgi (pgeorgi@google.com)
gerrit at coreboot.org
Thu Mar 19 12:24:26 CET 2015
Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8754
-gerrit
commit 7b90ceee1fa92c82d1fcf686b8215df724c3e0b1
Author: Furquan Shaikh <furquan at google.com>
Date: Sat Nov 8 17:19:31 2014 -0800
libpayload: Add support for parsing RAMOOPS range from coreboot
CQ-DEPEND=CL:228856
BUG=chrome-os-partner:33676
BRANCH=None
TEST=Compiles and boots to kernel prompt. ramoops console log verified after
causing kernel to fault.
Change-Id: I5af9b995113ee30ac60347acba8fa945fb5cd17a
Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
Original-Commit-Id: 80c843fc78b137eb5540f8fefc4a69545b896fb6
Original-Change-Id: I8886015977e1fd999ef74fe73d08cff935cbce5c
Original-Signed-off-by: Furquan Shaikh <furquan at google.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/228742
Original-Reviewed-by: Furquan Shaikh <furquan at chromium.org>
Original-Tested-by: Furquan Shaikh <furquan at chromium.org>
Original-Commit-Queue: Furquan Shaikh <furquan at chromium.org>
---
payloads/libpayload/include/coreboot_tables.h | 1 +
payloads/libpayload/include/sysinfo.h | 2 ++
payloads/libpayload/libc/coreboot.c | 11 +++++++++++
3 files changed, 14 insertions(+)
diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h
index 72c2ad8..e9c159d 100644
--- a/payloads/libpayload/include/coreboot_tables.h
+++ b/payloads/libpayload/include/coreboot_tables.h
@@ -188,6 +188,7 @@ struct cb_gpios {
#define CB_TAG_VBNV 0x0019
#define CB_TAG_VBOOT_HANDOFF 0x0020
#define CB_TAG_DMA 0x0022
+#define CB_TAG_RAM_OOPS 0x0023
struct lb_range {
uint32_t tag;
uint32_t size;
diff --git a/payloads/libpayload/include/sysinfo.h b/payloads/libpayload/include/sysinfo.h
index 5ad839b..d428dc4 100644
--- a/payloads/libpayload/include/sysinfo.h
+++ b/payloads/libpayload/include/sysinfo.h
@@ -115,6 +115,8 @@ struct sysinfo_t {
void *acpi_gnvs;
u32 board_id;
void *wifi_calibration;
+ uint64_t ramoops_buffer;
+ uint32_t ramoops_buffer_size;
};
extern struct sysinfo_t lib_sysinfo;
diff --git a/payloads/libpayload/libc/coreboot.c b/payloads/libpayload/libc/coreboot.c
index 2f4536c..489adf4 100644
--- a/payloads/libpayload/libc/coreboot.c
+++ b/payloads/libpayload/libc/coreboot.c
@@ -189,6 +189,14 @@ static void cb_parse_wifi_calibration(void *ptr, struct sysinfo_t *info)
info->wifi_calibration = phys_to_virt(cbmem->cbmem_tab);
}
+static void cb_parse_ramoops(void *ptr, struct sysinfo_t *info)
+{
+ struct lb_range *ramoops = (struct lb_range *)ptr;
+
+ info->ramoops_buffer = ramoops->range_start;
+ info->ramoops_buffer_size = ramoops->range_size;
+}
+
int cb_parse_header(void *addr, int len, struct sysinfo_t *info)
{
struct cb_header *header;
@@ -324,6 +332,9 @@ int cb_parse_header(void *addr, int len, struct sysinfo_t *info)
case CB_TAG_WIFI_CALIBRATION:
cb_parse_wifi_calibration(ptr, info);
break;
+ case CB_TAG_RAM_OOPS:
+ cb_parse_ramoops(ptr, info);
+ break;
default:
cb_parse_arch_specific(rec, info);
break;
More information about the coreboot-gerrit
mailing list