summaryrefslogtreecommitdiff
path: root/src/vendorcode
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2015-10-01 16:27:55 -0500
committerAaron Durbin <adurbin@chromium.org>2015-10-02 12:16:57 +0000
commit3c96e808f0bbe2957fc26bdc5e04900a8c5af58c (patch)
treedd0e3b6e2b61f1a9fd786d05feb1f3c84ead04cc /src/vendorcode
parent5a4f289c42d1fb04e6e1f3973ed1f635b9f5dfb1 (diff)
downloadcoreboot-3c96e808f0bbe2957fc26bdc5e04900a8c5af58c.tar.xz
vboot: provide CHIPSET_PROVIDES_VERSTAGE_MAIN_SYMBOL option
Certain chipsets provide their own main symbol for verstage. Therefore, it's necessary to know this so that those chipsets can leverage the common verstage flow. BUG=chrome-os-partner:44827 BRANCH=None TEST=Built nyan using this option. Change-Id: If80784aa47b27f0ad286babcf0f42ce198b929e9 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/11777 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'src/vendorcode')
-rw-r--r--src/vendorcode/google/chromeos/vboot2/Kconfig7
-rw-r--r--src/vendorcode/google/chromeos/vboot2/verstage.c2
2 files changed, 9 insertions, 0 deletions
diff --git a/src/vendorcode/google/chromeos/vboot2/Kconfig b/src/vendorcode/google/chromeos/vboot2/Kconfig
index c5c46e5843..33c33a5e7c 100644
--- a/src/vendorcode/google/chromeos/vboot2/Kconfig
+++ b/src/vendorcode/google/chromeos/vboot2/Kconfig
@@ -65,6 +65,13 @@ config RETURN_FROM_VERSTAGE
reused by the succeeding stage. This is useful if a ram space is too
small to fit both the verstage and the succeeding stage.
+config CHIPSET_PROVIDES_VERSTAGE_MAIN_SYMBOL
+ bool "The chipset provides the main() entry point for verstage"
+ default n
+ depends on SEPARATE_VERSTAGE
+ help
+ The chipset code provides their own main() entry point.
+
# These VBOOT_X_INDEX are the position of X in FW_MAIN_A/B region. The index
# table is created by cros_bundle_firmware at build time based on the positions
# of the blobs listed in fmap.dts and stored at the top of FW_MAIN_A/B region.
diff --git a/src/vendorcode/google/chromeos/vboot2/verstage.c b/src/vendorcode/google/chromeos/vboot2/verstage.c
index 955635992f..751f588292 100644
--- a/src/vendorcode/google/chromeos/vboot2/verstage.c
+++ b/src/vendorcode/google/chromeos/vboot2/verstage.c
@@ -42,5 +42,7 @@ void verstage(void)
}
}
+#if !IS_ENABLED(CONFIG_CHIPSET_PROVIDES_VERSTAGE_MAIN_SYMBOL)
/* This is for boards that rely on main() for an entry point of a stage. */
void main(void) __attribute__((alias ("verstage")));
+#endif