blob: 06bbf6b3550cde86aea3dc8fe74dedc0cf502a96 [file] [log] [blame]
###############################################################################
# Following variables defines how the NS_USER (Non Secure User - Client
# Application), NS_KERNEL (Non Secure Kernel), S_KERNEL (Secure Kernel) and
# S_USER (Secure User - TA) are compiled
###############################################################################
override COMPILE_NS_USER := 32
override COMPILE_NS_KERNEL := 32
override COMPILE_S_USER := 32
override COMPILE_S_KERNEL := 32
###############################################################################
# Includes
###############################################################################
-include common.mk
###############################################################################
# Paths to git projects and various binaries
###############################################################################
STAGING_AREA ?= $(ROOT)/out
U-BOOT_PATH ?= $(ROOT)/u-boot
UBOOT_SPL ?= $(U-BOOT_PATH)/u-boot-spl_HS_MLO
UBOOT_IMG ?= $(U-BOOT_PATH)/u-boot_HS.img
UBOOT_ENV ?= $(BUILD_PATH)/dra7xx/uEnv.txt
LINUX_IMAGE ?= $(LINUX_PATH)/arch/arm/boot/zImage
LINUX_DTBS ?= $(wildcard $(LINUX_PATH)/arch/arm/boot/dts/dra7*.dtb)
FIT_SOURCE ?= $(BUILD_PATH)/dra7xx/fitImage.its
FIT_MAKEFILE ?= $(BUILD_PATH)/dra7xx/Makefile
###############################################################################
# Targets
###############################################################################
.PHONY: all clean cleaner prepare
all: u-boot linux optee-os optee-client xtest helloworld build-fit update_rootfs
clean: linux-clean busybox-clean u-boot-clean optee-os-clean optee-client-clean build-fit-clean
cleaner: clean prepare-cleaner busybox-cleaner linux-cleaner
-include toolchain.mk
prepare:
@if [ ! -d $(STAGING_AREA) ]; then mkdir $(STAGING_AREA); fi
.PHONY: prepare-cleaner
prepare-cleaner:
rm -rf $(STAGING_AREA)
###############################################################################
# Das U-Boot
###############################################################################
.PHONY: u-boot u-boot-clean
U-BOOT_EXPORTS ?= CROSS_COMPILE=$(CROSS_COMPILE_NS_KERNEL) ARCH=arm
u-boot:
$(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) dra7xx_hs_evm_defconfig
$(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) all
u-boot-clean:
$(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) clean
###############################################################################
# Linux kernel
###############################################################################
.PHONY: linux-defconfig linux linux-defconfig-clean linux-clean linux-cleaner
CONFIG_TYPE ?= ti_sdk_dra7x_debug
linux-defconfig:
cd $(LINUX_PATH) && \
ti_config_fragments/defconfig_builder.sh -t $(CONFIG_TYPE)
$(MAKE) -C $(LINUX_PATH) $(LINUX_COMMON_FLAGS) $(CONFIG_TYPE)_defconfig
LINUX_COMMON_FLAGS += ARCH=arm
linux: linux-common
linux-defconfig-clean: linux-defconfig-clean-common
LINUX_CLEAN_COMMON_FLAGS += ARCH=arm
linux-clean: linux-clean-common
LINUX_CLEANER_COMMON_FLAGS += ARCH=arm
linux-cleaner: linux-cleaner-common
###############################################################################
# OP-TEE
###############################################################################
.PHONY: optee-os optee-os-clean optee-client optee-client-clean
OPTEE_OS_COMMON_FLAGS += PLATFORM=ti-dra7xx
optee-os: optee-os-common
OPTEE_OS_CLEAN_COMMON_FLAGS += PLATFORM=ti-dra7xx
optee-os-clean: optee-os-clean-common
optee-client: optee-client-common
optee-client-clean: optee-client-clean-common
###############################################################################
# xtest / optee_test
###############################################################################
.PHONY: xtest xtest-clean xtest-patch
xtest: xtest-common
xtest-clean: xtest-clean-common
xtest-patch: xtest-patch-common
###############################################################################
# hello_world
###############################################################################
.PHONY: helloworld helloworld-clean
helloworld: helloworld-common
helloworld-clean: helloworld-clean-common
###############################################################################
# Busybox
###############################################################################
.PHONY: busybox busybox-clean busybox-cleaner
BUSYBOX_COMMON_TARGET = dra7xx
BUSYBOX_CLEAN_COMMON_TARGET = dra7xx clean
busybox: busybox-common
busybox-clean: busybox-clean-common
busybox-cleaner: busybox-cleaner-common
###############################################################################
# Build FIT
###############################################################################
.PHONY: build-fit build-fit-clean
build-fit: prepare linux optee-os
cp $(LINUX_IMAGE) $(STAGING_AREA)/
cp $(LINUX_DTBS) $(STAGING_AREA)/
cp $(OPTEE_OS_BIN) $(STAGING_AREA)/
cp $(FIT_SOURCE) $(STAGING_AREA)/
cp $(FIT_MAKEFILE) $(STAGING_AREA)/
MKIMAGE=$(U-BOOT_PATH)/tools/mkimage $(MAKE) -C $(STAGING_AREA)
build-fit-clean:
$(RM) $(STAGING_AREA)/Makefile
$(RM) $(STAGING_AREA)/fitImage.its
$(RM) $(STAGING_AREA)/tee.bin
$(RM) $(STAGING_AREA)/*.dtb
$(RM) $(STAGING_AREA)/zImage
###############################################################################
# Root FS
###############################################################################
.PHONY: filelist-tee update_rootfs
filelist-tee: filelist-tee-common u-boot build-fit
@echo "dir /boot 755 0 0" >> $(GEN_ROOTFS_FILELIST)
@echo "file /boot/MLO $(UBOOT_SPL) 644 0 0" >> $(GEN_ROOTFS_FILELIST)
@echo "file /boot/u-boot.img $(UBOOT_IMG) 644 0 0" >> $(GEN_ROOTFS_FILELIST)
@echo "file /boot/uEnv.txt $(UBOOT_ENV) 644 0 0" >> $(GEN_ROOTFS_FILELIST)
@echo "file /boot/fitImage $(STAGING_AREA)/fitImage 644 0 0" >> $(GEN_ROOTFS_FILELIST)
update_rootfs: update_rootfs-common