Skip to content
Snippets Groups Projects
Commit 277ddad2 authored by Joakim Bech's avatar Joakim Bech Committed by Jérôme Forissier
Browse files

fvp: Introduce grub to the FPV setup


As a first step to update EDK2 to running latest  we are introducing
grub which will be a needed component when booting UEFI without
semihosting.

This particular patch will just bulid grub, it will still not be used
when running FVP (that is enabled in later patches in this series).

Signed-off-by: default avatarJoakim Bech <joakim.bech@linaro.org>
Reviewed-by: default avatarVictor Chong <victor.chong@linaro.org>
parent 69cb23ea
No related branches found
No related tags found
No related merge requests found
......@@ -23,17 +23,27 @@ FOUNDATION_PATH ?= $(ROOT)/Foundation_Platformpkg
ifeq ($(wildcard $(FOUNDATION_PATH)),)
$(error $(FOUNDATION_PATH) does not exist)
endif
GRUB_PATH ?= $(ROOT)/grub
GRUB_CONFIG_PATH ?= $(BUILD_PATH)/fvp/grub
OUT_PATH ?= $(ROOT)/out
GRUB_BIN ?= $(OUT_PATH)/bootaa64.efi
################################################################################
# Targets
################################################################################
all: arm-tf edk2 linux optee-os optee-client xtest optee-examples
clean: arm-tf-clean busybox-clean edk2-clean optee-os-clean \
all: arm-tf edk2 grub linux optee-os optee-client xtest optee-examples
clean: arm-tf-clean busybox-clean edk2-clean grub-clean optee-os-clean \
optee-client-clean optee-examples-clean
include toolchain.mk
################################################################################
# Folders
################################################################################
$(OUT_PATH):
mkdir -p $@
################################################################################
# ARM Trusted Firmware
################################################################################
......@@ -145,6 +155,45 @@ filelist-tee: filelist-tee-common
update_rootfs: update_rootfs-common
################################################################################
# grub
################################################################################
grub-flags := CC="$(CCACHE)gcc" \
TARGET_CC="$(AARCH64_CROSS_COMPILE)gcc" \
TARGET_OBJCOPY="$(AARCH64_CROSS_COMPILE)objcopy" \
TARGET_NM="$(AARCH64_CROSS_COMPILE)nm" \
TARGET_RANLIB="$(AARCH64_CROSS_COMPILE)ranlib" \
TARGET_STRIP="$(AARCH64_CROSS_COMPILE)strip"
GRUB_MODULES += boot chain configfile echo efinet eval ext2 fat font gettext \
gfxterm gzio help linux loadenv lsefi normal part_gpt \
part_msdos read regexp search search_fs_file search_fs_uuid \
search_label terminal terminfo test tftp time
$(GRUB_PATH)/configure: $(GRUB_PATH)/configure.ac
cd $(GRUB_PATH) && ./autogen.sh
$(GRUB_PATH)/Makefile: $(GRUB_PATH)/configure
cd $(GRUB_PATH) && ./configure --target=aarch64 --enable-boot-time $(grub-flags)
.PHONY: grub
grub: $(GRUB_PATH)/Makefile | $(OUT_PATH)
$(MAKE) -C $(GRUB_PATH) && \
cd $(GRUB_PATH) && ./grub-mkimage \
--output=$(GRUB_BIN) \
--config=$(GRUB_CONFIG_PATH)/grub.cfg \
--format=arm64-efi \
--directory=grub-core \
--prefix=/boot/grub \
$(GRUB_MODULES)
.PHONY: grub-clean
grub-clean:
@if [ -e $(GRUB_PATH)/Makefile ]; then $(MAKE) -C $(GRUB_PATH) clean; fi
@rm -f $(GRUB_BIN)
@rm -f $(GRUB_PATH)/configure
################################################################################
# Run targets
################################################################################
......
set prefix='/EFI/BOOT'
set default="0"
set timeout=10
menuentry 'GNU/Linux (OP-TEE)' {
linux /Image console=tty0 console=ttyAMA0,115200 earlycon=pl011,0x1c090000 root=/dev/disk/by-partlabel/system rootwait rw ignore_loglevel efi=noruntime
initrd /initrd.img
devicetree /foundation-v8.dtb
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment