diff options
author | Martin Roth <gaumless@gmail.com> | 2024-01-18 10:38:15 -0700 |
---|---|---|
committer | Felix Singer <service+coreboot-gerrit@felixsinger.de> | 2024-01-24 08:32:11 +0000 |
commit | 94de3255e5b828a855bbeb93eb46042c95e234e6 (patch) | |
tree | bf05327ffde5ef655cbb01906768f86b64b9c9e9 /src/arch/arm64/Makefile.mk | |
parent | e3df18451c518c0019f35b9b4d5d06ff6bd3d5f2 (diff) |
acpi,arch,commonlib: Rename Makefiles from .inc to .mk
The .inc suffix is confusing to various tools as it's not specific to
Makefiles. This means that editors don't recognize the files, and don't
open them with highlighting and any other specific editor functionality.
This issue is also seen in the release notes generation script where
Makefiles get renamed before running cloc.
Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: Ice5dadd3eaadfa9962225520a3a75b05b44518ca
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80066
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Diffstat (limited to 'src/arch/arm64/Makefile.mk')
-rw-r--r-- | src/arch/arm64/Makefile.mk | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/src/arch/arm64/Makefile.mk b/src/arch/arm64/Makefile.mk new file mode 100644 index 0000000000..538d254ace --- /dev/null +++ b/src/arch/arm64/Makefile.mk @@ -0,0 +1,218 @@ +## SPDX-License-Identifier: GPL-2.0-only + +################################################################################ +# Take care of subdirectories +################################################################################ + +subdirs-y += armv8/ + +################################################################################ +# ARM specific options +################################################################################ + +ifeq ($(CONFIG_ARCH_RAMSTAGE_ARM64),y) +check-ramstage-overlap-regions += postram_cbfs_cache stack ttb +endif + +################################################################################ +# bootblock +################################################################################ + +ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARM64),y) + +decompressor-y += boot.c +bootblock-y += boot.c +decompressor-y += div0.c +bootblock-y += div0.c +decompressor-y += eabi_compat.c +bootblock-y += eabi_compat.c + +decompressor-$(CONFIG_ARM64_USE_ARCH_TIMER) += arch_timer.c +bootblock-$(CONFIG_ARM64_USE_ARCH_TIMER) += arch_timer.c +bootblock-y += transition.c transition_asm.S + +decompressor-y += memset.S +bootblock-y += memset.S +decompressor-y += memcpy.S +bootblock-y += memcpy.S +decompressor-y += memmove.S +bootblock-y += memmove.S + +# Build the bootblock + +$(objcbfs)/bootblock.debug: $$(bootblock-objs) $(obj)/config.h + @printf " LINK $(subst $(obj)/,,$(@))\n" + $(LD_bootblock) $(LDFLAGS_bootblock) -o $@ -L$(obj) --whole-archive --start-group $(filter-out %.ld,$(bootblock-objs)) --end-group -T $(call src-to-obj,bootblock,$(CONFIG_MEMLAYOUT_LD_FILE)) + +$(objcbfs)/decompressor.debug: $$(decompressor-objs) $(obj)/config.h + @printf " LINK $(subst $(obj)/,,$(@))\n" + $(LD_bootblock) $(LDFLAGS_bootblock) -o $@ -L$(obj) --whole-archive --start-group $(filter-out %.ld,$(decompressor-objs)) --end-group -T $(call src-to-obj,decompressor,$(CONFIG_MEMLAYOUT_LD_FILE)) + +endif # CONFIG_ARCH_BOOTBLOCK_ARM64 + +############################################################################### +# verification stage +############################################################################### + +ifeq ($(CONFIG_ARCH_VERSTAGE_ARM64),y) + +$(objcbfs)/verstage.debug: $$(verstage-objs) + @printf " LINK $(subst $(obj)/,,$(@))\n" + $(LD_verstage) $(LDFLAGS_verstage) -o $@ -L$(obj) --whole-archive --start-group $(filter-out %.ld,$(verstage-objs)) --end-group -T $(call src-to-obj,verstage,$(CONFIG_MEMLAYOUT_LD_FILE)) + +verstage-y += boot.c +verstage-y += div0.c +verstage-y += eabi_compat.c +verstage-$(CONFIG_ARM64_USE_ARCH_TIMER) += arch_timer.c +verstage-y += memset.S +verstage-y += memcpy.S +verstage-y += memmove.S + +verstage-y += transition.c transition_asm.S + +endif # CONFIG_ARCH_VERSTAGE_ARM64 + +################################################################################ +# romstage +################################################################################ + +ifeq ($(CONFIG_ARCH_ROMSTAGE_ARM64),y) + +romstage-y += boot.c +romstage-y += div0.c +romstage-y += eabi_compat.c +romstage-$(CONFIG_ARM64_USE_ARCH_TIMER) += arch_timer.c +romstage-y += memset.S +romstage-y += memcpy.S +romstage-y += memmove.S +romstage-y += ramdetect.c +romstage-y += romstage.c +romstage-y += transition.c transition_asm.S + +rmodules_arm64-y += memset.S +rmodules_arm64-y += memcpy.S +rmodules_arm64-y += memmove.S +rmodules_arm64-y += eabi_compat.c + +$(objcbfs)/romstage.debug: $$(romstage-objs) + @printf " LINK $(subst $(obj)/,,$(@))\n" + $(LD_romstage) $(LDFLAGS_romstage) -o $@ -L$(obj) --whole-archive --start-group $(filter-out %.ld,$(romstage-objs)) --end-group -T $(call src-to-obj,romstage,$(CONFIG_MEMLAYOUT_LD_FILE)) + +endif # CONFIG_ARCH_ROMSTAGE_ARM64 + +################################################################################ +# ramstage +################################################################################ + +ifeq ($(CONFIG_ARCH_RAMSTAGE_ARM64),y) + +ramstage-y += div0.c +ramstage-y += eabi_compat.c +ramstage-y += boot.c +ramstage-y += tables.c +ramstage-y += ramdetect.c +ramstage-$(CONFIG_ARM64_USE_ARCH_TIMER) += arch_timer.c +ramstage-y += memset.S +ramstage-y += memcpy.S +ramstage-y += memmove.S +ramstage-$(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE) += bl31.c +ramstage-y += transition.c transition_asm.S +ramstage-$(CONFIG_PAYLOAD_FIT_SUPPORT) += fit_payload.c +ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi.c + +rmodules_arm64-y += memset.S +rmodules_arm64-y += memcpy.S +rmodules_arm64-y += memmove.S +rmodules_arm64-y += eabi_compat.c +rmodules_arm64-$(CONFIG_ARM64_USE_ARCH_TIMER) += arch_timer.c + +ramstage-srcs += $(wildcard src/mainboard/$(MAINBOARDDIR)/mainboard.c) + +# Build the ramstage + +$(objcbfs)/ramstage.debug: $$(ramstage-objs) + @printf " CC $(subst $(obj)/,,$(@))\n" + $(LD_ramstage) $(LDFLAGS_ramstage) -o $@ -L$(obj) --whole-archive --start-group $(filter-out %.ld,$(ramstage-objs)) --end-group -T $(call src-to-obj,ramstage,$(CONFIG_MEMLAYOUT_LD_FILE)) + +# Build ARM Trusted Firmware (BL31) + +ifeq ($(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE),y) + +ifeq ($(CONFIG_ARM64_BL31_EXTERNAL_FILE),"") + +BL31_SOURCE := $(top)/3rdparty/arm-trusted-firmware +BL31_BUILD := $(abspath $(obj)/3rdparty/arm-trusted-firmware) +BL31_TARGET := $(BL31_BUILD)/bl31/bl31.elf + +ifeq ($(V),1) +BL31_MAKEARGS += V=1 +endif + +# Build ARM TF in debug mode (with assertions) if coreboot has hard assertions +ifeq ($(CONFIG_FATAL_ASSERTS),y) +BL31_MAKEARGS += DEBUG=1 +endif # CONFIG_FATAL_ASSERTS + +# ARM TF's VERBOSE (50) is *very* spammy, so default to INFO (40) +BL31_MAKEARGS += LOG_LEVEL=40 + +# Always enable crash reporting, even on a release build +BL31_MAKEARGS += CRASH_REPORTING=1 + +# Enable coreboot-specific features like CBMEM console support +BL31_MAKEARGS += COREBOOT=1 + +# Avoid build/release|build/debug distinction by overriding BUILD_PLAT directly +BL31_MAKEARGS += BUILD_PLAT="$(BL31_BUILD)" + +# Force making .d files and output directories even though target is not 'bl31' +BL31_MAKEARGS += IS_ANYTHING_TO_BUILD=1 + +# Set a consistent build timestamp: the same coreboot has +BL31_MAKEARGS += BUILD_MESSAGE_TIMESTAMP='"$(shell sed -n 's/^.define COREBOOT_BUILD\>.*"\(.*\)".*/\1/p' $(obj)/build.h)"' + +BL31_CFLAGS := -fno-pic -fno-stack-protector -Wno-deprecated-declarations -Wno-unused-function +BL31_LDFLAGS := --emit-relocs + +BL31 := $(obj)/bl31.elf + +$(BL31): $(obj)/build.h + printf " MAKE $(subst $(obj)/,,$(@))\n" + +CROSS_COMPILE="$(CROSS_COMPILE_arm64)" \ + CFLAGS="$(BL31_CFLAGS)" \ + LDFLAGS="$(BL31_LDFLAGS)" \ + $(MAKE) -C $(BL31_SOURCE) $(BL31_MAKEARGS) $(BL31_TARGET) DISABLE_PEDANTIC=1 + mv $(BL31_TARGET) $@ + +.PHONY: $(BL31) + +else + +BL31 := $(call strip_quotes,$(CONFIG_ARM64_BL31_EXTERNAL_FILE)) + +endif # CONFIG_ARM64_BUILD_ARM_TRUSTED_FIRMWARE + + +BL31_CBFS := $(CONFIG_CBFS_PREFIX)/bl31 +$(BL31_CBFS)-file := $(BL31) +$(BL31_CBFS)-type := payload +$(BL31_CBFS)-compression := $(CBFS_COMPRESS_FLAG) +cbfs-files-y += $(BL31_CBFS) + +check-ramstage-overlap-files += $(BL31_CBFS) + +ifeq ($(CONFIG_ARM64_USE_SECURE_OS),y) + +SECURE_OS_FILE := $(CONFIG_ARM64_SECURE_OS_FILE) +SECURE_OS_FILE_CBFS := $(CONFIG_CBFS_PREFIX)/secure_os +$(SECURE_OS_FILE_CBFS)-file := $(SECURE_OS_FILE) +$(SECURE_OS_FILE_CBFS)-type := stage +cbfs-files-y += $(SECURE_OS_FILE_CBFS) + +check-ramstage-overlap-files += $(SECURE_OS_FILE_CBFS) + +endif # CONFIG_ARM64_USE_SECURE_OS + +endif # CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE + +endif # CONFIG_ARCH_RAMSTAGE_ARM64 |