mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-18 18:59:44 +00:00
0427bed63b
WIth EFI we must embed the devicetree in an ELF image so that it is loaded as part of the executable file. We want it to include the binman definition in there also, which in some cases cannot be created until the ELF (u-boot) is built. Add an option to binman to support writing the updated dtb to the ELF file u-boot.out This is useful with the EFI app, which is always packaged as an ELF file. Signed-off-by: Simon Glass <sjg@chromium.org>
85 lines
2.4 KiB
Makefile
85 lines
2.4 KiB
Makefile
#
|
|
# Builds test programs. This is launched from elf_test.BuildElfTestFiles()
|
|
#
|
|
# Copyright (C) 2017 Google, Inc
|
|
# Written by Simon Glass <sjg@chromium.org>
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
|
|
HOSTARCH := $(shell uname -m | sed -e s/i.86/x86/ )
|
|
ifeq ($(findstring $(HOSTARCH),"x86" "x86_64"),)
|
|
ifeq ($(findstring $(MAKECMDGOALS),"help" "clean"),)
|
|
ifndef CROSS_COMPILE
|
|
$(error Binman tests need to compile to x86, but the CPU arch of your \
|
|
machine is $(HOSTARCH). Set CROSS_COMPILE to a suitable cross compiler)
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
CC = $(CROSS_COMPILE)gcc
|
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
|
|
|
VPATH := $(SRC)
|
|
CFLAGS := -march=i386 -m32 -nostdlib -I $(SRC)../../../include \
|
|
-Wl,--no-dynamic-linker
|
|
|
|
LDS_UCODE := -T $(SRC)u_boot_ucode_ptr.lds
|
|
LDS_BINMAN := -T $(SRC)u_boot_binman_syms.lds
|
|
LDS_BINMAN_BAD := -T $(SRC)u_boot_binman_syms_bad.lds
|
|
LDS_BINMAN_X86 := -T $(SRC)u_boot_binman_syms_x86.lds
|
|
LDS_BINMAN_EMBED := -T $(SRC)u_boot_binman_embed.lds
|
|
|
|
TARGETS = u_boot_ucode_ptr u_boot_no_ucode_ptr bss_data \
|
|
u_boot_binman_syms u_boot_binman_syms.bin u_boot_binman_syms_bad \
|
|
u_boot_binman_syms_size u_boot_binman_syms_x86 embed_data \
|
|
u_boot_binman_embed u_boot_binman_embed_sm
|
|
|
|
all: $(TARGETS)
|
|
|
|
u_boot_no_ucode_ptr: CFLAGS += $(LDS_UCODE)
|
|
u_boot_no_ucode_ptr: u_boot_no_ucode_ptr.c
|
|
|
|
u_boot_ucode_ptr: CFLAGS += $(LDS_UCODE)
|
|
u_boot_ucode_ptr: u_boot_ucode_ptr.c
|
|
|
|
bss_data: CFLAGS += $(SRC)bss_data.lds
|
|
bss_data: bss_data.c
|
|
|
|
embed_data: CFLAGS += $(SRC)embed_data.lds
|
|
embed_data: embed_data.c
|
|
|
|
u_boot_binman_syms.bin: u_boot_binman_syms
|
|
$(OBJCOPY) -O binary $< -R .note.gnu.build-id $@
|
|
|
|
u_boot_binman_syms: CFLAGS += $(LDS_BINMAN)
|
|
u_boot_binman_syms: u_boot_binman_syms.c
|
|
|
|
u_boot_binman_syms_x86: CFLAGS += $(LDS_BINMAN_X86)
|
|
u_boot_binman_syms_x86: u_boot_binman_syms_x86.c
|
|
|
|
u_boot_binman_syms_bad: CFLAGS += $(LDS_BINMAN_BAD)
|
|
u_boot_binman_syms_bad: u_boot_binman_syms_bad.c
|
|
|
|
u_boot_binman_syms_size: CFLAGS += $(LDS_BINMAN)
|
|
u_boot_binman_syms_size: u_boot_binman_syms_size.c
|
|
|
|
u_boot_binman_embed: CFLAGS += $(LDS_BINMAN_EMBED)
|
|
u_boot_binman_embed: u_boot_binman_embed.c
|
|
|
|
u_boot_binman_embed_sm: CFLAGS += $(LDS_BINMAN_EMBED)
|
|
u_boot_binman_embed_sm: u_boot_binman_embed_sm.c
|
|
|
|
clean:
|
|
rm -f $(TARGETS)
|
|
|
|
help:
|
|
@echo "Makefile for binman test programs"
|
|
@echo
|
|
@echo "Intended for use on x86 hosts"
|
|
@echo
|
|
@echo "Targets:"
|
|
@echo
|
|
@echo -e "\thelp - Print help (this is it!)"
|
|
@echo -e "\tall - Builds test programs (default targget)"
|
|
@echo -e "\tclean - Delete output files"
|