summaryrefslogtreecommitdiff
path: root/src/vendorcode
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2013-03-07 23:15:06 -0600
committerStefan Reinauer <stefan.reinauer@coreboot.org>2013-03-22 00:16:14 +0100
commitdd32a31fbafafb6fa3dd1dc342884ffe88a7aa04 (patch)
tree52926067a5aa94c7eaa4cd2e6cd9ea7db70a30f4 /src/vendorcode
parentd02bb62a4fefcb39063bc058afb60521fe819bad (diff)
coreboot: add vboot_handoff to coreboot tables
The vboot_handoff structure contians the VbInitParams as well as the shared vboot data. In order for the boot loader to find it, the structure address and size needs to be obtained from the coreboot tables. Change-Id: I6573d479009ccbf373a7325f861bebe8dc9f5cf8 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/2857 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/vendorcode')
-rw-r--r--src/vendorcode/google/chromeos/chromeos.c14
-rw-r--r--src/vendorcode/google/chromeos/chromeos.h2
2 files changed, 16 insertions, 0 deletions
diff --git a/src/vendorcode/google/chromeos/chromeos.c b/src/vendorcode/google/chromeos/chromeos.c
index 559f1f0fdd..abe7104152 100644
--- a/src/vendorcode/google/chromeos/chromeos.c
+++ b/src/vendorcode/google/chromeos/chromeos.c
@@ -66,4 +66,18 @@ void *vboot_get_payload(int *len)
return (void *)fwc->address;
}
+
+int vboot_get_handoff_info(void **addr, uint32_t *size)
+{
+ struct vboot_handoff *vboot_handoff;
+
+ vboot_handoff = cbmem_find(CBMEM_ID_VBOOT_HANDOFF);
+
+ if (vboot_handoff == NULL)
+ return -1;
+
+ *addr = vboot_handoff;
+ *size = sizeof(*vboot_handoff);
+ return 0;
+}
#endif
diff --git a/src/vendorcode/google/chromeos/chromeos.h b/src/vendorcode/google/chromeos/chromeos.h
index 8410707a9b..d2410857ee 100644
--- a/src/vendorcode/google/chromeos/chromeos.h
+++ b/src/vendorcode/google/chromeos/chromeos.h
@@ -49,6 +49,8 @@ void init_chromeos(int bootmode);
struct romstage_handoff;
void vboot_verify_firmware(struct romstage_handoff *handoff);
void *vboot_get_payload(int *len);
+/* Returns 0 on success < 0 on error. */
+int vboot_get_handoff_info(void **addr, uint32_t *size);
#endif
#endif