[coreboot-gerrit] Patch set updated for coreboot: Add option to use Ada code in ramstage
Nico Huber (nico.h@gmx.de)
gerrit at coreboot.org
Mon Oct 31 13:19:14 CET 2016
Nico Huber (nico.h at gmx.de) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16944
-gerrit
commit 88430a483cb0fc86a1942747c6fdc9615c5e5107
Author: Nico Huber <nico.huber at secunet.com>
Date: Fri Oct 7 12:58:17 2016 +0200
Add option to use Ada code in ramstage
Change-Id: I11417db21f16bf3007739a097d63fd592344bce3
Signed-off-by: Nico Huber <nico.huber at secunet.com>
---
src/Kconfig | 5 +++++
src/include/adainit.h | 23 +++++++++++++++++++++++
src/lib/gnat/Makefile.inc | 4 ++++
src/lib/hardwaremain.c | 3 +++
4 files changed, 35 insertions(+)
diff --git a/src/Kconfig b/src/Kconfig
index e337a1a..d6af6eb 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -1243,3 +1243,8 @@ config CHECKLIST_DATA_FILE_LOCATION
symbols contained only in <stage>_complete.dat will be flagged as
required and not implemented if a weak implementation is found in the
resulting image.
+
+config RAMSTAGE_ADA
+ def_bool n
+ help
+ Selected by features that use Ada code in ramstage.
diff --git a/src/include/adainit.h b/src/include/adainit.h
new file mode 100644
index 0000000..191fff1
--- /dev/null
+++ b/src/include/adainit.h
@@ -0,0 +1,23 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _ADAINIT_H
+#define _ADAINIT_H
+
+#if IS_ENABLED(CONFIG_RAMSTAGE_ADA)
+void ramstage_adainit(void);
+#else
+static inline void ramstage_adainit(void) {}
+#endif
+
+#endif /* _ADAINIT_H */
diff --git a/src/lib/gnat/Makefile.inc b/src/lib/gnat/Makefile.inc
index 6ba274a..394c838 100644
--- a/src/lib/gnat/Makefile.inc
+++ b/src/lib/gnat/Makefile.inc
@@ -60,3 +60,7 @@ $(foreach arch,$(standard-archs), \
$(foreach arch,$(standard-archs), \
$(eval $(call libgnat-template,$(arch))))
+
+ifeq ($(CONFIG_RAMSTAGE_ADA),y)
+ramstage-libs += $$(obj)/libgnat-$(ARCH-ramstage-y)/libgnat.a
+endif
diff --git a/src/lib/hardwaremain.c b/src/lib/hardwaremain.c
index ab4d9f4..f529720 100644
--- a/src/lib/hardwaremain.c
+++ b/src/lib/hardwaremain.c
@@ -18,6 +18,7 @@
* C Bootstrap code for the coreboot
*/
+#include <adainit.h>
#include <arch/exception.h>
#include <bootstate.h>
#include <console/console.h>
@@ -429,6 +430,8 @@ static void boot_state_schedule_static_entries(void)
void main(void)
{
+ ramstage_adainit();
+
/* TODO: Understand why this is here and move to arch/platform code. */
/* For MMIO UART this needs to be called before any other printk. */
if (IS_ENABLED(CONFIG_ARCH_X86))
More information about the coreboot-gerrit
mailing list