[coreboot-gerrit] New patch to review for coreboot: Add option to use Ada code in ramstage

Nico Huber (nico.h@gmx.de) gerrit at coreboot.org
Sat Oct 8 23:46:13 CEST 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 32fc9396d0815d9c513f6be4e27c75331ed4c3ef
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..44bcda5 100644
--- a/src/lib/gnat/Makefile.inc
+++ b/src/lib/gnat/Makefile.inc
@@ -52,6 +52,10 @@ $$(obj)/libgnat-$(1)/libgnat.a: $$$$(libgnat-$(1)-objs)
 	@printf "    AR         $$(subst $$(obj)/,,$$(@))\n"
 	$$(AR_libgnat-$(1)) cr $$@ $$^
 
+ifeq ($(CONFIG_RAMSTAGE_ADA),y)
+ramstage-libs += $$(obj)/libgnat-$(1)/libgnat.a
+endif
+
 endef
 
 
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