treewide: Add Kconfig variable MEMLAYOUT_LD_FILE

This change defines a Kconfig variable MEMLAYOUT_LD_FILE which allows
SoC/mainboard to provide a linker file for the platform. x86 already
provides a default memlayout.ld under src/arch/x86. With this new
Kconfig variable, it is possible for the SoC/mainboard code for x86 to
provide a custom linker file as well.

Makefile.inc is updated for all architectures to use this new Kconfig
variable instead of assuming memlayout.ld files under a certain
path. All non-x86 boards used memlayout.ld under mainboard
directory. However, a lot of these boards were simply including the
memlayout from SoC. So, this change also updates these mainboards and
SoCs to define the Kconfig as required.

BUG=b:155322763
TEST=Verified that abuild with --timeless option results in the same
coreboot.rom image for all boards.

Change-Id: I6a7f96643ed0519c93967ea2c3bcd881a5d6a4d6
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/42292
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Furquan Shaikh 2020-06-11 11:59:07 -07:00
parent 00148bba71
commit 46514c2b87
95 changed files with 130 additions and 210 deletions

View File

@ -13,6 +13,7 @@ CONFIG_CBFS_PREFIX:=$(call strip_quotes,$(CONFIG_CBFS_PREFIX))
CONFIG_FMDFILE:=$(call strip_quotes,$(CONFIG_FMDFILE))
CONFIG_DEVICETREE:=$(call strip_quotes, $(CONFIG_DEVICETREE))
CONFIG_OVERRIDE_DEVICETREE:=$(call strip_quotes, $(CONFIG_OVERRIDE_DEVICETREE))
CONFIG_MEMLAYOUT_LD_FILE:=$(call strip_quotes, $(CONFIG_MEMLAYOUT_LD_FILE))
#######################################################################
# misleadingly named, this is the coreboot version
@ -609,6 +610,13 @@ smm-c-deps+=$(DEVICETREE_STATIC_C)
.PHONY: devicetree
devicetree: $(DEVICETREE_STATIC_C)
ramstage-y += $(CONFIG_MEMLAYOUT_LD_FILE)
romstage-y += $(CONFIG_MEMLAYOUT_LD_FILE)
bootblock-y += $(CONFIG_MEMLAYOUT_LD_FILE)
verstage-y += $(CONFIG_MEMLAYOUT_LD_FILE)
postcar-y += $(CONFIG_MEMLAYOUT_LD_FILE)
decompressor-y += $(CONFIG_MEMLAYOUT_LD_FILE)
#######################################################################
# Clean up rules
clean-abuild:

View File

@ -1182,6 +1182,15 @@ config BOOTBLOCK_CUSTOM
# src/lib/bootblock.c#main() C entry point.
bool
config MEMLAYOUT_LD_FILE
string
default "src/mainboard/$(CONFIG_MAINBOARD_DIR)/memlayout.ld"
help
This variable allows SoC/mainboard to supply in a custom linker file
if required. This determines the linker file used for all the stages
(bootblock, romstage, verstage, ramstage, postcar) in
src/arch/${ARCH}/Makefile.inc.
###############################################################################
# Set default values for symbols created before mainboards. This allows the
# option to be displayed in the general menu, but the default to be loaded in

View File

@ -50,11 +50,11 @@ bootblock-y += stages.c
$(objcbfs)/bootblock.debug: $$(bootblock-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
$(LD_bootblock) $(LDFLAGS_bootblock) -o $@ -L$(obj) -T $(call src-to-obj,bootblock,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(bootblock-objs)) --end-group
$(LD_bootblock) $(LDFLAGS_bootblock) -o $@ -L$(obj) -T $(call src-to-obj,bootblock,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(bootblock-objs)) --end-group
$(objcbfs)/decompressor.debug: $$(decompressor-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
$(LD_bootblock) $(LDFLAGS_bootblock) -o $@ -L$(obj) -T $(call src-to-obj,decompressor,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(decompressor-objs)) --end-group
$(LD_bootblock) $(LDFLAGS_bootblock) -o $@ -L$(obj) -T $(call src-to-obj,decompressor,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(decompressor-objs)) --end-group
endif # CONFIG_ARCH_BOOTBLOCK_ARM
@ -66,7 +66,7 @@ ifeq ($(CONFIG_ARCH_VERSTAGE_ARM),y)
$(objcbfs)/verstage.debug: $$(verstage-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
$(LD_verstage) $(LDFLAGS_verstage) -o $@ -L$(obj) -T $(call src-to-obj,verstage,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(verstage-objs)) --end-group
$(LD_verstage) $(LDFLAGS_verstage) -o $@ -L$(obj) -T $(call src-to-obj,verstage,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(verstage-objs)) --end-group
verstage-y += boot.c
verstage-y += div0.c
@ -99,7 +99,7 @@ rmodules_arm-y += eabi_compat.c
$(objcbfs)/romstage.debug: $$(romstage-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
$(LD_romstage) $(LDFLAGS_romstage) -o $@ -L$(obj) -T $(call src-to-obj,romstage,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(romstage-objs)) --end-group
$(LD_romstage) $(LDFLAGS_romstage) -o $@ -L$(obj) -T $(call src-to-obj,romstage,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(romstage-objs)) --end-group
endif # CONFIG_ARCH_ROMSTAGE_ARM
@ -128,6 +128,6 @@ ramstage-srcs += $(wildcard src/mainboard/$(MAINBOARDDIR)/mainboard.c)
$(objcbfs)/ramstage.debug: $$(ramstage-objs)
@printf " CC $(subst $(obj)/,,$(@))\n"
$(LD_ramstage) $(LDFLAGS_ramstage) -o $@ -L$(obj) -T $(call src-to-obj,ramstage,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(ramstage-objs)) --end-group
$(LD_ramstage) $(LDFLAGS_ramstage) -o $@ -L$(obj) -T $(call src-to-obj,ramstage,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(ramstage-objs)) --end-group
endif # CONFIG_ARCH_RAMSTAGE_ARM

View File

@ -45,11 +45,11 @@ bootblock-y += memmove.S
$(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,src/mainboard/$(MAINBOARDDIR)/memlayout.ld)
$(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,src/mainboard/$(MAINBOARDDIR)/memlayout.ld)
$(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
@ -61,7 +61,7 @@ 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,src/mainboard/$(MAINBOARDDIR)/memlayout.ld)
$(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
@ -99,7 +99,7 @@ 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,src/mainboard/$(MAINBOARDDIR)/memlayout.ld)
$(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
@ -134,7 +134,7 @@ ramstage-srcs += $(wildcard src/mainboard/$(MAINBOARDDIR)/mainboard.c)
$(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,src/mainboard/$(MAINBOARDDIR)/memlayout.ld)
$(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)

View File

@ -24,7 +24,7 @@ bootblock-generic-ccopts += $(ppc64_flags)
$(objcbfs)/bootblock.debug: $$(bootblock-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
$(LD_bootblock) $(LDFLAGS_bootblock) -o $@ -L$(obj) \
-T $(call src-to-obj,bootblock,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(bootblock-objs)) \
-T $(call src-to-obj,bootblock,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(bootblock-objs)) \
$(LIBGCC_FILE_NAME_bootblock) --end-group $(COMPILER_RT_bootblock)
endif
@ -50,7 +50,7 @@ romstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c
$(objcbfs)/romstage.debug: $$(romstage-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
$(LD_romstage) $(LDFLAGS_romstage) -o $@ -L$(obj) -T $(call src-to-obj,romstage,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(romstage-objs)) --end-group $(COMPILER_RT_romstage)
$(LD_romstage) $(LDFLAGS_romstage) -o $@ -L$(obj) -T $(call src-to-obj,romstage,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(romstage-objs)) --end-group $(COMPILER_RT_romstage)
romstage-c-ccopts += $(ppc64_flags)
romstage-S-ccopts += $(ppc64_asm_flags)
@ -83,7 +83,7 @@ ramstage-srcs += src/mainboard/$(MAINBOARDDIR)/mainboard.c
$(objcbfs)/ramstage.debug: $$(ramstage-objs)
@printf " CC $(subst $(obj)/,,$(@))\n"
$(LD_ramstage) $(LDFLAGS_ramstage) -o $@ -L$(obj) -T $(call src-to-obj,ramstage,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(ramstage-objs)) --end-group $(COMPILER_RT_ramstage)
$(LD_ramstage) $(LDFLAGS_ramstage) -o $@ -L$(obj) -T $(call src-to-obj,ramstage,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(ramstage-objs)) --end-group $(COMPILER_RT_ramstage)
ramstage-c-ccopts += $(ppc64_flags)
ramstage-S-ccopts += $(ppc64_asm_flags)

View File

@ -64,7 +64,7 @@ bootblock-$(CONFIG_RISCV_USE_ARCH_TIMER) += arch_timer.c
$(objcbfs)/bootblock.debug: $$(bootblock-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
$(LD_bootblock) $(LDFLAGS_bootblock) -o $@ -L$(obj) \
-T $(call src-to-obj,bootblock,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(bootblock-objs)) \
-T $(call src-to-obj,bootblock,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(bootblock-objs)) \
$(LIBGCC_FILE_NAME_bootblock) --end-group $(COMPILER_RT_bootblock)
bootblock-c-ccopts += $(riscv_flags)
@ -99,7 +99,7 @@ romstage-$(CONFIG_RISCV_USE_ARCH_TIMER) += arch_timer.c
$(objcbfs)/romstage.debug: $$(romstage-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
$(LD_romstage) $(LDFLAGS_romstage) -o $@ -L$(obj) -T $(call src-to-obj,romstage,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(romstage-objs)) --end-group $(COMPILER_RT_romstage)
$(LD_romstage) $(LDFLAGS_romstage) -o $@ -L$(obj) -T $(call src-to-obj,romstage,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(romstage-objs)) --end-group $(COMPILER_RT_romstage)
romstage-c-ccopts += $(riscv_flags)
romstage-S-ccopts += $(riscv_asm_flags)
@ -148,7 +148,7 @@ ramstage-srcs += src/mainboard/$(MAINBOARDDIR)/mainboard.c
$(objcbfs)/ramstage.debug: $$(ramstage-objs)
@printf " CC $(subst $(obj)/,,$(@))\n"
$(LD_ramstage) $(LDFLAGS_ramstage) -o $@ -L$(obj) -T $(call src-to-obj,ramstage,src/mainboard/$(MAINBOARDDIR)/memlayout.ld) --whole-archive --start-group $(filter-out %.ld,$(ramstage-objs)) --end-group $(COMPILER_RT_ramstage)
$(LD_ramstage) $(LDFLAGS_ramstage) -o $@ -L$(obj) -T $(call src-to-obj,ramstage,$(CONFIG_MEMLAYOUT_LD_FILE)) --whole-archive --start-group $(filter-out %.ld,$(ramstage-objs)) --end-group $(COMPILER_RT_ramstage)
ramstage-c-ccopts += $(riscv_flags)
ramstage-S-ccopts += $(riscv_asm_flags)

View File

@ -316,4 +316,8 @@ config MAX_ACPI_TABLE_SIZE_KB
help
Set the maximum size of all ACPI tables in KiB.
config MEMLAYOUT_LD_FILE
string
default "src/arch/x86/memlayout.ld"
endif

View File

@ -67,14 +67,13 @@ endef
define early_x86_stage
# $1 stage name
# $2 oformat
$(1)-y += memlayout.ld
# The '.' include path is needed for the generated assembly.inc file.
$(1)-S-ccopts += -I.
$$(objcbfs)/$(1).debug: $$$$($(1)-libs) $$$$($(1)-objs)
@printf " LINK $$(subst $$(obj)/,,$$(@))\n"
$$(LD_$(1)) $$(LDFLAGS_$(1)) -o $$@ -L$$(obj) $$(COMPILER_RT_FLAGS_$(1)) --whole-archive --start-group $$(filter-out %.ld,$$($(1)-objs)) $$($(1)-libs) --no-whole-archive $$(COMPILER_RT_$(1)) --end-group -T $(call src-to-obj,$(1),$(dir)/memlayout.ld) --oformat $(2)
$$(LD_$(1)) $$(LDFLAGS_$(1)) -o $$@ -L$$(obj) $$(COMPILER_RT_FLAGS_$(1)) --whole-archive --start-group $$(filter-out %.ld,$$($(1)-objs)) $$($(1)-libs) --no-whole-archive $$(COMPILER_RT_$(1)) --end-group -T $(call src-to-obj,$(1),$(CONFIG_MEMLAYOUT_LD_FILE)) --oformat $(2)
-LANG=C LC_ALL= $$(OBJCOPY_$(1)) --only-section .illegal_globals $$(@) $$(objcbfs)/$(1)_null.offenders >/dev/null 2>&1
if [ -z "$$$$($$(NM_$(1)) $$(objcbfs)/$(1)_null.offenders 2>&1 | grep 'no symbols')" ];then \
echo "Forbidden global variables in $(1):"; \
@ -201,7 +200,6 @@ postcar-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
postcar-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
postcar-y += exit_car.S
postcar-y += memmove.c
postcar-y += memlayout.ld
postcar-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
postcar-y += postcar.c
postcar-$(CONFIG_COLLECT_TIMESTAMPS_TSC) += timestamp.c
@ -210,7 +208,7 @@ LDFLAGS_postcar += -Map $(objcbfs)/postcar.map
$(objcbfs)/postcar.debug: $$(postcar-objs)
@printf " LINK $(subst $(obj)/,,$(@))\n"
$(LD_postcar) $(LDFLAGS_postcar) -o $@ -L$(obj) $(COMPILER_RT_FLAGS_postcar) --whole-archive --start-group $(filter-out %.ld,$^) --no-whole-archive $(COMPILER_RT_postcar) --end-group -T $(call src-to-obj,postcar,src/arch/x86/memlayout.ld)
$(LD_postcar) $(LDFLAGS_postcar) -o $@ -L$(obj) $(COMPILER_RT_FLAGS_postcar) --whole-archive --start-group $(filter-out %.ld,$^) --no-whole-archive $(COMPILER_RT_postcar) --end-group -T $(call src-to-obj,postcar,$(CONFIG_MEMLAYOUT_LD_FILE))
$(objcbfs)/postcar.elf: $(objcbfs)/postcar.debug.rmod
cp $< $@
@ -236,7 +234,6 @@ ramstage-y += exception.c
ramstage-y += idt.S
ramstage-y += gdt.c
ramstage-$(CONFIG_IOAPIC) += ioapic.c
ramstage-y += memlayout.ld
ramstage-y += memmove.c
ramstage-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
ramstage-$(CONFIG_GENERATE_MP_TABLE) += mpspec.c
@ -289,9 +286,9 @@ $(objcbfs)/ramstage.elf: $(objcbfs)/ramstage.debug.rmod
endif
$(objcbfs)/ramstage.debug: $(objgenerated)/ramstage.o $(call src-to-obj,ramstage,src/arch/x86/memlayout.ld)
$(objcbfs)/ramstage.debug: $(objgenerated)/ramstage.o $(call src-to-obj,ramstage,$(CONFIG_MEMLAYOUT_LD_FILE))
@printf " CC $(subst $(obj)/,,$(@))\n"
$(LD_ramstage) $(CPPFLAGS) $(LDFLAGS_ramstage) -o $@ -L$(obj) $< -T $(call src-to-obj,ramstage,src/arch/x86/memlayout.ld)
$(LD_ramstage) $(CPPFLAGS) $(LDFLAGS_ramstage) -o $@ -L$(obj) $< -T $(call src-to-obj,ramstage,$(CONFIG_MEMLAYOUT_LD_FILE))
$(objgenerated)/ramstage.o: $$(ramstage-objs) $(COMPILER_RT_ramstage) $$(ramstage-libs)
@printf " CC $(subst $(obj)/,,$(@))\n"

View File

@ -8,3 +8,11 @@ config CPU_TI_AM335X
select BOOT_DEVICE_NOT_SPI_FLASH
bool
default n
if CPU_TI_AM335X
config MEMLAYOUT_LD_FILE
string
default "src/cpu/ti/am335x/memlayout.ld"
endif

View File

@ -49,8 +49,5 @@ $(obj)/MLO: $(obj)/coreboot.rom $(obj)/omap-header.bin
omap-header-y += header.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld
omap-header-y += memlayout.ld
omap-header-srcs += $(CONFIG_MEMLAYOUT_LD_FILE)
omap-header-y += header.ld

View File

@ -1,18 +1,13 @@
## SPDX-License-Identifier: GPL-2.0-only
bootblock-y += bootblock.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
romstage-y += romstage.c
romstage-y += bdk_devicetree.c
ramstage-y += mainboard.c
ramstage-y += memlayout.ld
ramstage-y += bdk_devicetree.c
verstage-y += memlayout.ld
MB_DIR = src/mainboard/$(MAINBOARDDIR)
LINUX_DTB = sff8104-linux.dtb

View File

@ -1 +0,0 @@
#include <soc/memlayout.ld>

View File

@ -24,6 +24,10 @@ config BOARD_SPECIFIC_OPTIONS
select MISSING_BOARD_RESET
select ARM64_USE_ARM_TRUSTED_FIRMWARE
config MEMLAYOUT_LD_FILE
string
default "src/mainboard/emulation/qemu-aarch64/memlayout.ld"
config MAINBOARD_DIR
string
default "emulation/qemu-aarch64"

View File

@ -12,10 +12,6 @@ bootblock-y += mmio.c
romstage-y += mmio.c
ramstage-y += mmio.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld
bootblock-y += bootblock_custom.S
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/include

View File

@ -25,6 +25,10 @@ config BOARD_SPECIFIC_OPTIONS
select MISSING_BOARD_RESET
select NO_MONOTONIC_TIMER
config MEMLAYOUT_LD_FILE
string
default "src/mainboard/emulation/qemu-armv7/memlayout.ld"
config MAINBOARD_DIR
string
default "emulation/qemu-armv7"

View File

@ -15,7 +15,3 @@ ramstage-y += timer.c
bootblock-y += mmio.c
romstage-y += mmio.c
ramstage-y += mmio.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -17,6 +17,10 @@ config BOARD_SPECIFIC_OPTIONS
select BOOT_DEVICE_NOT_SPI_FLASH
select MISSING_BOARD_RESET
config MEMLAYOUT_LD_FILE
string
default "src/mainboard/emulation/qemu-power8/memlayout.ld"
config MAINBOARD_DIR
string
default "emulation/qemu-power8"

View File

@ -7,7 +7,3 @@ romstage-y += romstage.c
ramstage-y += timer.c
romstage-y += uart.c
ramstage-y += uart.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -30,6 +30,10 @@ config BOARD_SPECIFIC_OPTIONS
select DRIVERS_UART_8250MEM
select RISCV_HAS_OPENSBI
config MEMLAYOUT_LD_FILE
string
default "src/mainboard/emulation/qemu-riscv/memlayout.ld"
config MAINBOARD_DIR
string
default "emulation/qemu-riscv"

View File

@ -13,8 +13,4 @@ ramstage-y += uart.c
ramstage-y += rom_media.c
ramstage-y += clint.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/include

View File

@ -11,6 +11,10 @@ config BOARD_SPECIFIC_OPTIONS
select BOOT_DEVICE_NOT_SPI_FLASH
select MISSING_BOARD_RESET
config MEMLAYOUT_LD_FILE
string
default "src/mainboard/emulation/spike-riscv/memlayout.ld"
config MAINBOARD_DIR
string
default "emulation/spike-riscv"

View File

@ -10,7 +10,3 @@ romstage-y += clint.c
ramstage-y += uart.c
ramstage-y += rom_media.c
ramstage-y += clint.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,24 +1,20 @@
## SPDX-License-Identifier: GPL-2.0-only
bootblock-y += boardid.c
bootblock-y += memlayout.ld
bootblock-y += chromeos.c
bootblock-y += bootblock.c
bootblock-y += reset.c
verstage-y += boardid.c
verstage-y += memlayout.ld
verstage-y += chromeos.c
verstage-y += reset.c
romstage-y += boardid.c
romstage-y += memlayout.ld
romstage-y += chromeos.c
romstage-y += romstage.c
romstage-y += reset.c
ramstage-y += boardid.c
ramstage-y += memlayout.ld
ramstage-y += chromeos.c
ramstage-y += mainboard.c
ramstage-y += reset.c

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -9,7 +9,3 @@ romstage-y += chromeos.c
ramstage-y += mainboard.c
ramstage-y += chromeos.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -27,8 +27,3 @@ ramstage-y += mainboard.c
ramstage-y += reset.c
ramstage-y += chromeos.c
ramstage-y += sdram_configs.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld
verstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -9,7 +9,6 @@ verstage-y += boardid.c
verstage-y += cdp.c
verstage-y += chromeos.c
verstage-y += blsp.c
verstage-y += memlayout.ld
verstage-y += reset.c
verstage-y += verstage.c
@ -28,7 +27,3 @@ ramstage-y += mainboard.c
ramstage-y += mmu.c
ramstage-y += reset.c
ramstage-y += blsp.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -2,22 +2,17 @@
subdirs-y += sdram_params/
decompressor-y += memlayout.ld
bootblock-y += bootblock.c
bootblock-y += chromeos.c
bootblock-y += memlayout.ld
bootblock-y += pwm_regulator.c
bootblock-y += boardid.c
bootblock-y += reset.c
verstage-y += chromeos.c
verstage-y += memlayout.ld
verstage-y += reset.c
romstage-y += boardid.c
romstage-y += chromeos.c
romstage-y += memlayout.ld
romstage-y += pwm_regulator.c
romstage-y += romstage.c
romstage-y += reset.c
@ -26,6 +21,5 @@ romstage-y += sdram_configs.c
ramstage-y += boardid.c
ramstage-y += chromeos.c
ramstage-y += mainboard.c
ramstage-y += memlayout.ld
ramstage-y += reset.c
ramstage-y += sdram_configs.c # Needed for ram_code()

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -3,20 +3,16 @@ subdirs-y += panel_params/
bootblock-y += boardid.c
bootblock-y += bootblock.c
bootblock-y += memlayout.ld
bootblock-y += reset.c
decompressor-y += memlayout.ld
verstage-y += chromeos.c
verstage-y += early_init.c
verstage-y += reset.c
verstage-y += verstage.c
verstage-y += memlayout.ld
romstage-y += boardid.c
romstage-y += chromeos.c
romstage-y += early_init.c
romstage-y += memlayout.ld
romstage-y += reset.c
romstage-y += romstage.c
romstage-y += sdram_configs.c
@ -24,7 +20,6 @@ romstage-y += sdram_configs.c
ramstage-y += boardid.c
ramstage-y += chromeos.c
ramstage-y += mainboard.c
ramstage-y += memlayout.ld
ramstage-$(CONFIG_BOARD_GOOGLE_FLAPJACK) += panel_flapjack.c
ramstage-$(CONFIG_BOARD_GOOGLE_KAKADU) += panel_kakadu.c
ramstage-$(CONFIG_BOARD_GOOGLE_KODAMA) += panel_kodama.c

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -1,20 +1,16 @@
bootblock-y += memlayout.ld
bootblock-y += chromeos.c
bootblock-y += reset.c
bootblock-y += bootblock.c
verstage-y += memlayout.ld
verstage-y += chromeos.c
verstage-y += reset.c
verstage-y += verstage.c
romstage-y += memlayout.ld
romstage-y += chromeos.c
romstage-y += reset.c
romstage-y += romstage.c
ramstage-y += memlayout.ld
ramstage-y += chromeos.c
ramstage-y += reset.c
ramstage-y += mainboard.c

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -29,8 +29,3 @@ ramstage-$(CONFIG_CHROMEOS) += chromeos.c
verstage-y += reset.c
verstage-$(CONFIG_CHROMEOS) += chromeos.c
verstage-y += early_configs.c
bootblock-y += memlayout.ld
verstage-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -28,8 +28,3 @@ ramstage-$(CONFIG_CHROMEOS) += chromeos.c
verstage-y += reset.c
verstage-$(CONFIG_CHROMEOS) += chromeos.c
verstage-y += early_configs.c
bootblock-y += memlayout.ld
verstage-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -28,8 +28,3 @@ ramstage-y += reset.c
ramstage-y += boardid.c
ramstage-y += mainboard.c
ramstage-$(CONFIG_CHROMEOS) += chromeos.c
bootblock-y += memlayout.ld
verstage-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -1,23 +1,19 @@
## SPDX-License-Identifier: GPL-2.0-only
bootblock-y += bootblock.c
bootblock-y += memlayout.ld
bootblock-y += chromeos.c
bootblock-y += boardid.c
bootblock-$(CONFIG_OAK_HAS_TPM2) += tpm_tis.c
verstage-y += chromeos.c
verstage-y += memlayout.ld
verstage-$(CONFIG_OAK_HAS_TPM2) += tpm_tis.c
romstage-y += chromeos.c
romstage-y += romstage.c sdram_configs.c
romstage-y += memlayout.ld
romstage-y += boardid.c
romstage-$(CONFIG_OAK_HAS_TPM2) += tpm_tis.c
ramstage-y += mainboard.c
ramstage-y += chromeos.c
ramstage-y += memlayout.ld
ramstage-y += boardid.c
ramstage-$(CONFIG_OAK_HAS_TPM2) += tpm_tis.c

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -9,7 +9,3 @@ romstage-y += chromeos.c
ramstage-y += mainboard.c
ramstage-y += chromeos.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -29,8 +29,3 @@ ramstage-y += mainboard.c
ramstage-y += reset.c
ramstage-y += pmic.c
ramstage-y += sdram_configs.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld
verstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -9,7 +9,6 @@ verstage-y += boardid.c
verstage-y += cdp.c
verstage-y += chromeos.c
verstage-y += gsbi.c
verstage-y += memlayout.ld
verstage-y += reset.c
romstage-y += romstage.c
@ -26,7 +25,3 @@ ramstage-y += mainboard.c
ramstage-y += mmu.c
ramstage-y += reset.c
ramstage-y += gsbi.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -1,23 +1,19 @@
## SPDX-License-Identifier: GPL-2.0-only
bootblock-y += memlayout.ld
bootblock-y += boardid.c
bootblock-y += chromeos.c
bootblock-y += bootblock.c
verstage-y += memlayout.ld
ifneq ($(CONFIG_BOARD_GOOGLE_BUBS),y)
verstage-y += reset.c
endif
verstage-y += boardid.c
verstage-y += chromeos.c
romstage-y += memlayout.ld
romstage-y += romstage.c
romstage-y += boardid.c
romstage-y += chromeos.c
ramstage-y += memlayout.ld
ramstage-y += mainboard.c
ifneq ($(CONFIG_BOARD_GOOGLE_BUBS),y)
ramstage-y += reset.c

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -19,8 +19,3 @@ ramstage-y += boardid.c
ramstage-y += chromeos.c
ramstage-y += mainboard.c
ramstage-y += reset.c
bootblock-y += memlayout.ld
verstage-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -19,8 +19,3 @@ ramstage-y += boardid.c
ramstage-y += chromeos.c
ramstage-y += mainboard.c
ramstage-y += reset.c
bootblock-y += memlayout.ld
verstage-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -19,8 +19,3 @@ ramstage-y += boardid.c
ramstage-y += chromeos.c
ramstage-y += mainboard.c
ramstage-y += reset.c
bootblock-y += memlayout.ld
verstage-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -11,7 +11,6 @@ ramstage-y += ec.c
ramstage-y += sku_id.c
ifeq ($(CONFIG_VBOOT_STARTS_BEFORE_BOOTBLOCK),y)
verstage-y += memlayout.ld
verstage-y += verstage.c
else
verstage-y += chromeos.c

View File

@ -1,18 +1,14 @@
## SPDX-License-Identifier: GPL-2.0-only
bootblock-y += bootblock.c
bootblock-y += memlayout.ld
bootblock-y += death.c
romstage-y += memlayout.ld
romstage-y += romstage.c
romstage-y += bdk_devicetree.c
romstage-y += death.c
ramstage-y += mainboard.c
ramstage-y += memlayout.ld
ramstage-y += bdk_devicetree.c
ramstage-y += death.c
verstage-y += memlayout.ld
verstage-y += death.c

View File

@ -1 +0,0 @@
#include <soc/memlayout.ld>

View File

@ -1,17 +1,13 @@
# SPDX-License-Identifier: GPL-2.0-only
bootblock-y += memlayout.ld
bootblock-y += media.c
romstage-y += memlayout.ld
romstage-y += romstage.c
romstage-y += media.c
ramstage-y += memlayout.ld
ramstage-y += fixup_fdt.c
ramstage-y += media.c
DTB=$(obj)/hifive-unleashed.dtb
DTS=src/mainboard/sifive/hifive-unleashed/hifive-unleashed-a00.dts
$(DTB): $(DTS)

View File

@ -1,3 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -5,7 +5,3 @@ bootblock-y += leds.c
romstage-y += romstage.c
#ramstage-y += ramstage.c
bootblock-y += memlayout.ld
romstage-y += memlayout.ld
ramstage-y += memlayout.ld

View File

@ -1 +0,0 @@
#include <cpu/ti/am335x/memlayout.ld>

View File

@ -14,6 +14,10 @@ config SOC_CAVIUM_CN81XX
if SOC_CAVIUM_CN81XX
config MEMLAYOUT_LD_FILE
string
default "src/soc/cavium/cn81xx/memlayout.ld"
config VBOOT
select VBOOT_SEPARATE_VERSTAGE
select VBOOT_STARTS_IN_BOOTBLOCK

View File

@ -13,6 +13,10 @@ config SOC_MEDIATEK_MT8173
if SOC_MEDIATEK_MT8173
config MEMLAYOUT_LD_FILE
string
default "src/soc/mediatek/mt8173/memlayout.ld"
config VBOOT
select VBOOT_MUST_REQUEST_DISPLAY
select VBOOT_STARTS_IN_BOOTBLOCK

View File

@ -11,6 +11,10 @@ config SOC_MEDIATEK_MT8183
if SOC_MEDIATEK_MT8183
config MEMLAYOUT_LD_FILE
string
default "src/soc/mediatek/mt8183/memlayout.ld"
config VBOOT
select VBOOT_MUST_REQUEST_DISPLAY
select VBOOT_STARTS_IN_BOOTBLOCK

View File

@ -15,6 +15,10 @@ config SOC_NVIDIA_TEGRA124
if SOC_NVIDIA_TEGRA124
config MEMLAYOUT_LD_FILE
string
default "src/soc/nvidia/tegra124/memlayout.ld"
config VBOOT
select VBOOT_MUST_REQUEST_DISPLAY
select VBOOT_STARTS_IN_BOOTBLOCK

View File

@ -13,6 +13,10 @@ config SOC_NVIDIA_TEGRA210
if SOC_NVIDIA_TEGRA210
config MEMLAYOUT_LD_FILE
string
default "src/soc/nvidia/tegra210/memlayout.ld"
config VBOOT
select VBOOT_STARTS_IN_BOOTBLOCK
select VBOOT_SEPARATE_VERSTAGE

View File

@ -10,6 +10,10 @@ config SOC_QC_IPQ40XX
if SOC_QC_IPQ40XX
config MEMLAYOUT_LD_FILE
string
default "src/soc/qualcomm/ipq40xx/memlayout.ld"
config GENERIC_UDELAY
def_bool n

View File

@ -11,6 +11,10 @@ config SOC_QC_IPQ806X
if SOC_QC_IPQ806X
config MEMLAYOUT_LD_FILE
string
default "src/soc/qualcomm/ipq806x/memlayout.ld"
config VBOOT
select VBOOT_STARTS_IN_BOOTBLOCK
select VBOOT_VBNV_FLASH

View File

@ -13,6 +13,10 @@ config SOC_QUALCOMM_QCS405
if SOC_QUALCOMM_QCS405
config MEMLAYOUT_LD_FILE
string
default "src/soc/qualcomm/qcs405/memlayout.ld"
config VBOOT
select VBOOT_SEPARATE_VERSTAGE
select VBOOT_RETURN_FROM_VERSTAGE

View File

@ -16,6 +16,10 @@ config SOC_QUALCOMM_SC7180
if SOC_QUALCOMM_SC7180
config MEMLAYOUT_LD_FILE
string
default "src/soc/qualcomm/sc7180/memlayout.ld"
config VBOOT
select VBOOT_SEPARATE_VERSTAGE
select VBOOT_RETURN_FROM_VERSTAGE

View File

@ -12,6 +12,10 @@ config SOC_QUALCOMM_SDM845
if SOC_QUALCOMM_SDM845
config MEMLAYOUT_LD_FILE
string
default "src/soc/qualcomm/sdm845/memlayout.ld"
config VBOOT
select VBOOT_SEPARATE_VERSTAGE
select VBOOT_RETURN_FROM_VERSTAGE

View File

@ -20,6 +20,10 @@ config SOC_ROCKCHIP_RK3288
if SOC_ROCKCHIP_RK3288
config MEMLAYOUT_LD_FILE
string
default "src/soc/rockchip/rk3288/memlayout.ld"
config VBOOT
select VBOOT_MUST_REQUEST_DISPLAY
select VBOOT_STARTS_IN_BOOTBLOCK

View File

@ -14,6 +14,10 @@ config SOC_ROCKCHIP_RK3399
if SOC_ROCKCHIP_RK3399
config MEMLAYOUT_LD_FILE
string
default "src/soc/rockchip/rk3399/memlayout.ld"
config VBOOT
select VBOOT_SEPARATE_VERSTAGE
select VBOOT_RETURN_FROM_VERSTAGE

View File

@ -9,6 +9,10 @@ config CPU_SAMSUNG_EXYNOS5250
if CPU_SAMSUNG_EXYNOS5250
config MEMLAYOUT_LD_FILE
string
default "src/soc/samsung/exynos5250/memlayout.ld"
config VBOOT
select VBOOT_STARTS_IN_ROMSTAGE

View File

@ -11,6 +11,10 @@ config CPU_SAMSUNG_EXYNOS5420
if CPU_SAMSUNG_EXYNOS5420
config MEMLAYOUT_LD_FILE
string
default "src/soc/samsung/exynos5420/memlayout.ld"
config VBOOT
select VBOOT_STARTS_IN_ROMSTAGE

View File

@ -17,6 +17,10 @@ config SOC_SIFIVE_FU540
if SOC_SIFIVE_FU540
config MEMLAYOUT_LD_FILE
string
default "src/soc/sifive/fu540/memlayout.ld"
config RISCV_ARCH
string
default "rv64imac"