[coreboot-gerrit] New patch to review for coreboot: 2e145c2 coreboot classes: Add dynamic classes to coreboot

Marc Jones (marc.jones@se-eng.com) gerrit at coreboot.org
Fri Mar 13 22:58:19 CET 2015


Marc Jones (marc.jones at se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8672

-gerrit

commit 2e145c2fb9545d868d98cb395ca1a443e0375402
Author: Furquan Shaikh <furquan at google.com>
Date:   Tue Jul 22 15:59:16 2014 -0700

    coreboot classes: Add dynamic classes to coreboot
    
    Provide functionality to create dynamic classes based on program name and the
    architecture for which the program needs to be compiled/linked. define_class
    takes program_name and arch as its arguments and adds the program_name to
    classes-y to create dynamic class and compiler toolset is created for the
    specified arch. All the files for this program can then be added to
    program_name-y += .. Ensure that define_class is called before any files are
    added to the class. Check subdirs-y for order of directory inclusion.
    
    One such example of dynamic class is rmodules. Multiple rmodules can be used
    which need to be compiled for different architectures. With dynamic classes,
    this is possible.
    
    BUG=chrome-os-partner:30784
    BRANCH=None
    TEST=Compiles successfully for nyan, rush and link.
    
    Original-Change-Id: I3e3aadbe723d432b9b3500c44bcff578c98f5643
    Original-Signed-off-by: Furquan Shaikh <furquan at google.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/209379
    Original-Reviewed-by: Aaron Durbin <adurbin at chromium.org>
    Original-Tested-by: Furquan Shaikh <furquan at chromium.org>
    Original-Commit-Queue: Aaron Durbin <adurbin at chromium.org>
    (cherry picked from commit 242bb90d7476c2ee47d60c50ee18785edeb1a295)
    
    Some of this cherry-pick had already been committed here:
    commit 133096b6dc31163f59f658e15f2eb342a0de2ac6
    Signed-off-by: Marc Jones <marc.jones at se-eng.com>
    
    Change-Id: I9f5868d704c4b3251ca6f54afa634588108a788c
---
 src/arch/arm/Makefile.inc               | 4 ++++
 src/arch/arm/armv7/Makefile.inc         | 4 ++--
 src/arch/arm64/Makefile.inc             | 4 ++++
 src/soc/nvidia/tegra124/Makefile.inc    | 4 ++--
 src/soc/samsung/exynos5420/Makefile.inc | 3 +++
 5 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/arch/arm/Makefile.inc b/src/arch/arm/Makefile.inc
index 0fcbf6c..f357a91 100644
--- a/src/arch/arm/Makefile.inc
+++ b/src/arch/arm/Makefile.inc
@@ -118,6 +118,10 @@ ramstage-y += memset.S
 ramstage-y += memcpy.S
 ramstage-y += memmove.S
 ramstage-y += clock.c
+rmodules_arm-y += memset.S
+rmodules_arm-y += memcpy.S
+rmodules_arm-y += memmove.S
+rmodules_arm-y += eabi_compat.c
 ramstage-srcs += $(wildcard src/mainboard/$(MAINBOARDDIR)/mainboard.c)
 
 $(objcbfs)/ramstage.debug: $$(ramstage-objs) $(src)/arch/arm/ramstage.ld $(obj)/ldoptions
diff --git a/src/arch/arm/armv7/Makefile.inc b/src/arch/arm/armv7/Makefile.inc
index 0919a93..ea7a880 100644
--- a/src/arch/arm/armv7/Makefile.inc
+++ b/src/arch/arm/armv7/Makefile.inc
@@ -93,6 +93,6 @@ ramstage-c-ccopts += $(armv7_flags)
 ramstage-S-ccopts += $(armv7_asm_flags)
 
 # All rmodule code is armv7 if ramstage is armv7.
-rmodules-c-ccopts += $(armv7_flags)
-rmodules-S-ccopts += $(armv7_asm_flags)
+rmodules_arm-c-ccopts += $(armv7_flags)
+rmodules_arm-S-ccopts += $(armv7_asm_flags)
 endif # CONFIG_ARCH_RAMSTAGE_ARMV7
diff --git a/src/arch/arm64/Makefile.inc b/src/arch/arm64/Makefile.inc
index 64557c1..6b199b5 100644
--- a/src/arch/arm64/Makefile.inc
+++ b/src/arch/arm64/Makefile.inc
@@ -115,6 +115,10 @@ ramstage-y += ../../lib/memset.c
 ramstage-y += ../../lib/memcpy.c
 ramstage-y += ../../lib/memmove.c
 ramstage-y += stage_entry.S
+rmodules_arm64-y += ../../lib/memset.c
+rmodules_arm64-y += ../../lib/memcpy.c
+rmodules_arm64-y += ../../lib/memmove.c
+rmodules_arm64-y += eabi_compat.c
 ramstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c
 
 ramstage-srcs += $(wildcard src/mainboard/$(MAINBOARDDIR)/mainboard.c)
diff --git a/src/soc/nvidia/tegra124/Makefile.inc b/src/soc/nvidia/tegra124/Makefile.inc
index 6631364..9ed7669 100644
--- a/src/soc/nvidia/tegra124/Makefile.inc
+++ b/src/soc/nvidia/tegra124/Makefile.inc
@@ -68,8 +68,8 @@ ramstage-y += ../tegra/usb.c
 ramstage-y += timer.c
 ramstage-$(CONFIG_DRIVERS_UART) += uart.c
 
-rmodules-y += monotonic_timer.c
-VBOOT_STUB_DEPS += $(obj)/soc/nvidia/tegra124/monotonic_timer.rmodules.o
+rmodules_$(ARCH-romstage-y)-y += monotonic_timer.c
+VBOOT_STUB_DEPS += $(obj)/soc/nvidia/tegra124/monotonic_timer.rmodules_$(ARCH-romstage-y).o
 
 CPPFLAGS_common += -Isrc/soc/nvidia/tegra124/include/
 
diff --git a/src/soc/samsung/exynos5420/Makefile.inc b/src/soc/samsung/exynos5420/Makefile.inc
index ac22620..eadf8ed 100644
--- a/src/soc/samsung/exynos5420/Makefile.inc
+++ b/src/soc/samsung/exynos5420/Makefile.inc
@@ -48,6 +48,9 @@ ramstage-y += dp.c dp_lowlevel.c fimd.c
 ramstage-y += usb.c
 ramstage-y += cbmem.c
 
+rmodules_$(ARCH-romstage-y)-y += monotonic_timer.c
+rmodules_$(ARCH-romstage-y)-y += mct.c
+
 $(objcbfs)/bootblock.raw.elf: $(objcbfs)/bootblock.elf
 	cp $< $@
 



More information about the coreboot-gerrit mailing list