summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2015-05-01 16:48:54 -0500
committerPatrick Georgi <pgeorgi@google.com>2015-05-11 22:39:22 +0200
commit17200ad5fb6a6eb065ca108d308cd1a94268966e (patch)
treecb5cc6e9540dfc2057dc818f1e97a7be82def302 /src/lib
parent01562b6cb567dca5440b65250da2580db52b31e8 (diff)
downloadcoreboot-staging-17200ad5fb6a6eb065ca108d308cd1a94268966e.zip
coreboot-staging-17200ad5fb6a6eb065ca108d308cd1a94268966e.tar.gz
vboot: inject vboot loader for stage loading
As previously done the vboot loader can be optionally inserted in the stage loading logic in order to decide the source of each stage. This current patch allows for verstage to be loaded and interrogated for the source of all subsequent stages. Additionally, it's also possible to build this logic directly into one of the additional stages. Note that this patch does not allow x86 to work. Change-Id: Iece018f01b220720c2803dc73c60b2c080d637d0 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/10154 Reviewed-by: Patrick Georgi <pgeorgi@google.com> Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/Makefile.inc1
-rw-r--r--src/lib/loaders/Makefile.inc2
-rw-r--r--src/lib/loaders/load_and_run_payload.c4
-rw-r--r--src/lib/loaders/load_and_run_ramstage.c4
-rw-r--r--src/lib/loaders/load_and_run_romstage.c7
5 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index 1d0851f..db83698 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -34,6 +34,7 @@ verstage-y += prog_ops.c
verstage-y += delay.c
verstage-y += cbfs.c
verstage-y += cbfs_core.c
+verstage-y += halt.c
verstage-y += memcmp.c
verstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c
verstage-$(CONFIG_CONSOLE_CBMEM) += cbmem_console.c
diff --git a/src/lib/loaders/Makefile.inc b/src/lib/loaders/Makefile.inc
index fbc7f87..9dca06b 100644
--- a/src/lib/loaders/Makefile.inc
+++ b/src/lib/loaders/Makefile.inc
@@ -23,3 +23,5 @@ romstage-y += cbfs_ramstage_loader.c
romstage-y += load_and_run_ramstage.c
ramstage-y += cbfs_payload_loader.c
ramstage-y += load_and_run_payload.c
+verstage-y += cbfs_romstage_loader.c
+verstage-y += load_and_run_romstage.c
diff --git a/src/lib/loaders/load_and_run_payload.c b/src/lib/loaders/load_and_run_payload.c
index 7a08097..4928e0c 100644
--- a/src/lib/loaders/load_and_run_payload.c
+++ b/src/lib/loaders/load_and_run_payload.c
@@ -27,12 +27,12 @@
#include <symbols.h>
#include <timestamp.h>
-extern const struct prog_loader_ops vboot_payload_loader;
+extern const struct prog_loader_ops vboot_loader;
extern const struct prog_loader_ops cbfs_payload_loader;
static const struct prog_loader_ops *payload_ops[] = {
#if CONFIG_VBOOT_VERIFY_FIRMWARE
- &vboot_payload_loader,
+ &vboot_loader,
#endif
&cbfs_payload_loader,
};
diff --git a/src/lib/loaders/load_and_run_ramstage.c b/src/lib/loaders/load_and_run_ramstage.c
index fddea4d..504dbff 100644
--- a/src/lib/loaders/load_and_run_ramstage.c
+++ b/src/lib/loaders/load_and_run_ramstage.c
@@ -27,11 +27,11 @@
#include <timestamp.h>
extern const struct prog_loader_ops cbfs_ramstage_loader;
-extern const struct prog_loader_ops vboot_ramstage_loader;
+extern const struct prog_loader_ops vboot_loader;
static const struct prog_loader_ops *loaders[] = {
#if CONFIG_VBOOT_VERIFY_FIRMWARE
- &vboot_ramstage_loader,
+ &vboot_loader,
#endif
&cbfs_ramstage_loader,
};
diff --git a/src/lib/loaders/load_and_run_romstage.c b/src/lib/loaders/load_and_run_romstage.c
index b54bfc7..b54c691 100644
--- a/src/lib/loaders/load_and_run_romstage.c
+++ b/src/lib/loaders/load_and_run_romstage.c
@@ -24,12 +24,19 @@
#include <cbfs.h>
#include <halt.h>
#include <program_loading.h>
+#include <rules.h>
#include <timestamp.h>
extern const struct prog_loader_ops cbfs_romstage_loader;
+extern const struct prog_loader_ops vboot_loader;
static const struct prog_loader_ops *loaders[] = {
+#if CONFIG_VBOOT_VERIFY_FIRMWARE
+ &vboot_loader,
+#endif
+#if !ENV_VERSTAGE || (ENV_VERSTAGE && !CONFIG_RETURN_FROM_VERSTAGE)
&cbfs_romstage_loader,
+#endif
};
void run_romstage(void)
OpenPOWER on IntegriCloud