From fa83887e48f196cfa303ce6de32acf1dfec7cad9 Mon Sep 17 00:00:00 2001 From: Jeremy Compostella Date: Wed, 30 Nov 2022 19:26:01 -0700 Subject: Add option to use Ada code in romstage If selected, libgnat is linked into romstage. In addition, a call to romstage_adainit() is added to support Ada program data initialization. BUG=b:252792591 BRANCH=firmware-brya-14505.B TEST=Ada code compiles for romstage and loads successfully Change-Id: I74f0460f6b14fde2b4bd6391e1782b2e5b217707 Signed-off-by: Jeremy Compostella Reviewed-on: https://review.coreboot.org/c/coreboot/+/70274 Reviewed-by: Tarun Tuli Reviewed-by: Nick Vaccaro Tested-by: build bot (Jenkins) --- src/lib/Kconfig | 5 +++++ src/lib/Makefile.inc | 1 + src/lib/gnat/Makefile.inc | 3 +++ 3 files changed, 9 insertions(+) (limited to 'src/lib') diff --git a/src/lib/Kconfig b/src/lib/Kconfig index ae96fc61ee..d108962bac 100644 --- a/src/lib/Kconfig +++ b/src/lib/Kconfig @@ -5,6 +5,11 @@ config MISSING_BOARD_RESET implementation. This activates a stub that logs the missing board reset and halts execution. +config ROMSTAGE_ADA + bool + help + Selected by features that use Ada code in romstage. + config RAMSTAGE_ADA bool help diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc index 1c7bc22c1e..3e5b151b13 100644 --- a/src/lib/Makefile.inc +++ b/src/lib/Makefile.inc @@ -339,6 +339,7 @@ $(objcbfs)/%.debug.rmod: $(objcbfs)/%.debug | $(RMODTOOL) $(obj)/%.elf.rmod: $(obj)/%.elf | $(RMODTOOL) $(RMODTOOL) -i $< -o $@ +romstage-$(CONFIG_ROMSTAGE_ADA) += cb.ads ramstage-$(CONFIG_RAMSTAGE_ADA) += cb.ads ifeq ($(CONFIG_RAMSTAGE_LIBHWBASE),y) diff --git a/src/lib/gnat/Makefile.inc b/src/lib/gnat/Makefile.inc index 065ba71404..150a715067 100644 --- a/src/lib/gnat/Makefile.inc +++ b/src/lib/gnat/Makefile.inc @@ -51,6 +51,9 @@ $(foreach arch,$(standard-archs), \ $(foreach arch,$(standard-archs), \ $(eval $(call libgnat-template,$(arch)))) +ifeq ($(CONFIG_ROMSTAGE_ADA),y) +romstage-libs += $(obj)/libgnat-$(ARCH-romstage-y)/libgnat.a +endif ifeq ($(CONFIG_RAMSTAGE_ADA),y) ramstage-libs += $(obj)/libgnat-$(ARCH-ramstage-y)/libgnat.a endif -- cgit v1.2.3