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. Change-Id: I3e3aadbe723d432b9b3500c44bcff578c98f5643 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/209379 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: Furquan Shaikh <furquan@chromium.org> Commit-Queue: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
d7dfe4c2c2
commit
242bb90d74
13 changed files with 61 additions and 48 deletions
|
|
@ -45,7 +45,7 @@ endif
|
|||
|
||||
ifeq ($(CONFIG_VBOOT_VERIFY_FIRMWARE),y)
|
||||
romstage-y += vboot_loader.c
|
||||
rmodules-y += vboot_wrapper.c
|
||||
rmodules_$(ARCH-ROMSTAGE-y)-y += vboot_wrapper.c
|
||||
|
||||
ifneq ($(CONFIG_SPI_FLASH_MEMORY_MAPPED),y)
|
||||
VBOOT_MAKEFLAGS = REGION_READ=1
|
||||
|
|
@ -69,15 +69,15 @@ VBOOT_STUB = $(VBOOT_STUB_ELF).rmod
|
|||
VBOOT_STUB_DOTO = $(VBOOT_STUB_ELF:.elf=.o)
|
||||
|
||||
# Dependency for the vboot rmodules. Ordering matters.
|
||||
VBOOT_STUB_DEPS += $(obj)/vendorcode/google/chromeos/vboot_wrapper.rmodules.o
|
||||
VBOOT_STUB_DEPS += $(obj)/lib/memcmp.rmodules.o
|
||||
VBOOT_STUB_DEPS += $(obj)/vendorcode/google/chromeos/vboot_wrapper.rmodules_$(ARCH-ROMSTAGE-y).o
|
||||
VBOOT_STUB_DEPS += $(obj)/lib/memcmp.rmodules_$(ARCH-ROMSTAGE-y).o
|
||||
ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32),y)
|
||||
VBOOT_STUB_DEPS += $(obj)/arch/x86/lib/memset.rmodules.o
|
||||
VBOOT_STUB_DEPS += $(obj)/arch/x86/lib/memcpy.rmodules.o
|
||||
VBOOT_STUB_DEPS += $(obj)/arch/x86/lib/memset.rmodules_$(ARCH-ROMSTAGE-y).o
|
||||
VBOOT_STUB_DEPS += $(obj)/arch/x86/lib/memcpy.rmodules_$(ARCH-ROMSTAGE-y).o
|
||||
endif
|
||||
ifeq ($(CONFIG_ARCH_ROMSTAGE_ARM),y)
|
||||
VBOOT_STUB_DEPS += $(obj)/arch/arm/memset.rmodules.o
|
||||
VBOOT_STUB_DEPS += $(obj)/arch/arm/memcpy.rmodules.o
|
||||
VBOOT_STUB_DEPS += $(obj)/arch/arm/memset.rmodules_$(ARCH-ROMSTAGE-y).o
|
||||
VBOOT_STUB_DEPS += $(obj)/arch/arm/memcpy.rmodules_$(ARCH-ROMSTAGE-y).o
|
||||
endif
|
||||
VBOOT_STUB_DEPS += $(VB_LIB)
|
||||
# Remove the '-include' option since that will break vboot's build and ensure
|
||||
|
|
@ -86,10 +86,10 @@ VBOOT_CFLAGS += $(patsubst -I%,-I../%,$(filter-out -include $(src)/include/kconf
|
|||
VBOOT_CFLAGS += -DVBOOT_DEBUG
|
||||
|
||||
$(VBOOT_STUB_DOTO): $(VBOOT_STUB_DEPS)
|
||||
$(CC_romstage) $(CFLAGS_romstage) $(LDFLAGS) -nostdlib -r -o $@ $^
|
||||
$(CC_rmodules_$(ARCH-ROMSTAGE-y)) $(CFLAGS_rmodules_$(ARCH-ROMSTAGE-y)) $(LDFLAGS) -nostdlib -r -o $@ $^
|
||||
|
||||
# Link the vbootstub module with a 64KiB-byte heap.
|
||||
$(eval $(call rmodule_link,$(VBOOT_STUB_ELF), $(VBOOT_STUB_DOTO), 0x10000))
|
||||
$(eval $(call rmodule_link,$(VBOOT_STUB_ELF), $(VBOOT_STUB_DOTO), 0x10000,$(ARCH-ROMSTAGE-y)))
|
||||
|
||||
# Build vboot library without the default includes from coreboot proper.
|
||||
$(VB_LIB):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue