################################################################################ # # Copyright (c) Hisilicon Technologies Co., Ltd. All rights reserved. # ################################################################################ include $(BUILD_DIR)/bootloader.cfg export CROSS_COMPILE=$(CFG_SOCT_ARM_TOOLCHAINS_NAME)- CROSS_COMPILE64 = $(CFG_SOCT_AARCH64_TOOLCHAINS_NAME)- CROSS_COMPILE32 = $(CFG_SOCT_ARM_TOOLCHAINS_NAME)- PLATFORM := $(CFG_SOCT_CHIP_TYPE) ifneq ($(findstring $(CFG_SOCT_CHIP_TYPE), reserved13 reserved9),) PLATFORM := reserved13 endif ifneq ($(findstring $(CFG_SOCT_CHIP_TYPE), reserved17),) PLATFORM := reserved19 endif ################################################################################ CONFIG_PRODUCT_WITH_BOOT := $(CFG_SOCT_BUILD_WITH_PRODUCT) IMAGE_DIR:=$(O) ifeq ($(findstring fpga, $(CFG_SOCT_BOOT_REG_NAME)), fpga) ENABLE_FPGA = y ATF_ENABLE_FPGA = 1 else ATF_ENABLE_FPGA = 0 endif ################################################################################ all: ifeq ($(CFG_SOCT_MINIBOOT_SUPPORT),y) else UBOOT_SRC_DIR = $(VENDOR_OPEN_SOURCE_DIR)/u-boot/$(U_BOOT_VERSION) UBOOT_SRC_DIR_SELF = $(UBOOT_SRC_DIR)/huanglong CHIP_REG_DIR := $(PLATFORM) UBOOT_BUILD_DIR = $(O)/slave-boot SWITCH_ERET_BUILD_DIR = $(UBOOT_SRC_DIR_SELF)/arch/arm/cpu/$(PLATFORM)/eret CONFIG_SLAVEBOOT_ERET = $(SWITCH_ERET_BUILD_DIR)/reset.bin ifneq ($(findstring $(CFG_SOCT_CHIP_REVERSION), reserved19_c hi3751v811_c),) UBOOT_DEFCONFIG_FILE = $(CFG_SOCT_CHIP_REVERSION)_slaveboot_defconfig else UBOOT_DEFCONFIG_FILE = $(PLATFORM)_slaveboot_defconfig endif #CFG_SOCT_CHIP_REVERSION export UBOOT_OUT_DIR=${UBOOT_BUILD_DIR} ifeq ($(CFG_PRODUCT_TYPE),android) export BUILD_ANDROID=y endif UBOOT_CONFIG_INCLUDE = $(UBOOT_BUILD_DIR)/include/configs/$(PLATFORM)_config.h EXPORT_CONFIG = /bin/sh $(UBOOT_SRC_DIR_SELF)/include/configs/export.sh CONFIG_UNIFIED_BOOT := y copy_securec: test -d $(UBOOT_BUILD_DIR)/huanglong/lib/securec || mkdir -p $(UBOOT_BUILD_DIR)/huanglong/lib/securec test -d $(UBOOT_BUILD_DIR)/include/huanglong || mkdir -p $(UBOOT_BUILD_DIR)/include/huanglong cp -arf $(PLATFORM_DIR)/secure_c/include/securec.h $(UBOOT_BUILD_DIR)/huanglong/lib/securec cp -arf $(PLATFORM_DIR)/secure_c/include/securectype.h $(UBOOT_BUILD_DIR)/huanglong/lib/securec cp -arf $(PLATFORM_DIR)/secure_c/include/*.h $(UBOOT_BUILD_DIR)/include/huanglong ifeq ($(BOOTLOADER_DRIVERS_SOURCE_DIR),) cp -arf $(PLATFORM_DIR)/secure_c/source/securecutil.h $(UBOOT_BUILD_DIR)/include/huanglong cp -arf $(PLATFORM_DIR)/secure_c/source/*.c $(UBOOT_BUILD_DIR)/huanglong/lib/securec cp -arf $(PLATFORM_DIR)/secure_c/source/*.h $(UBOOT_BUILD_DIR)/huanglong/lib/securec cp -arf $(PLATFORM_DIR)/secure_c/source/*.inl $(UBOOT_BUILD_DIR)/huanglong/lib/securec endif prepare: $(CONFIG_FILE) $(AT)test -d $(UBOOT_BUILD_DIR)/ || mkdir -p $(UBOOT_BUILD_DIR) UBOOT_EXT := $(shell cd $(VENDOR_DIR)/huanglong/bootloader/source/uboot/uboot_ext && pwd) $(shell ln -fsn $(UBOOT_EXT) $(UBOOT_SRC_DIR_SELF)) ifneq (,$(filter slaveboot-prepare all,$(MAKECMDGOALS))) sinclude $(UBOOT_BUILD_DIR)/.check_dynamic_config_update $(UBOOT_BUILD_DIR)/.check_dynamic_config_update: test -d $(dir $(UBOOT_CONFIG_INCLUDE)) || mkdir -p $(dir $(UBOOT_CONFIG_INCLUDE)) rm -vf $(UBOOT_CONFIG_INCLUDE).tmp $(EXPORT_CONFIG) "CONFIG_SLAVEBOOT_ERET=\"$(CONFIG_SLAVEBOOT_ERET)\"" \ "default slaveboot eret" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_DDR_LAYOUT_128M=$(CFG_SOCT_DDR_LAYOUT_128M)" \ "ddr layout 128M support" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_AUDIO_AMP_AUTO_SELECT_MODE=$(CFG_SOCT_AUDIO_AMP_AUTO_SELECT_MODE)" \ "audio amp auto select mode" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_VO_VDAC_AUTO_SELECT_MODE=$(CFG_SOCT_VO_VDAC_AUTO_SELECT_MODE)" \ "vo vdac auto select mode" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_ABORTBOOT_OFF=$(CFG_SOCT_ABORTBOOT_OFF)" \ "No abortboot" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_PRODUCT_WITH_BOOT=$(CONFIG_PRODUCT_WITH_BOOT)" \ "build product with boot" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_BOOTROM_CA_SUPPORT=$(BOOT_ADVCA_PROGRAMMER)" \ "build advca_programmer" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CFG_$(BOOTCONFIG_UPPER)_FPGA=$(CFG_FPGA)" \ "FPGA" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_BOOT_SIMULATE=$(CONFIG_BOOT_SIMULATE)" \ "Simulate boot" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CHIP_TYPE_$(CFG_SOCT_CHIP_TYPE)=1" \ "Chip type" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_ADVANCED_CHIP=$(CFG_SOCT_ADVANCED_CHIP)" \ "Advanced Chip" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_FPGA=$(ENABLE_FPGA)" \ "Current is fpga config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_AVS_SUPPORT=$(CFG_SOCT_AVS_SUPPORT)" \ "AVS config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_PMU_DEVICE=$(CFG_SOCT_PMU_DEVICE_SELECT)" \ "PMU Device config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_USB_SUPPORT=$(CFG_SOCT_BOOT_USB_SUPPORT)" \ "USB Driver config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_HSL_SUPPORT=$(CFG_SOCT_BOOT_HSL_SUPPORT)" \ "HSL area support" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_TEE_SUPPORT=$(CFG_SOCT_TEE_SUPPORT)" \ "TEE config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_TEE_ATF_SUPPORT=$(CFG_SOTC_TEE_ATF_SUPPORT)" \ "TEE ATF config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_ARM64_TOOLCHAINS=$(SOCT_KERNEL_TOOLCHAINS_NAME)" \ "ARM64 toolchains config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_ARM64_SUPPORT=$(CONFIG_ARM64_SUPPORT)" \ "ARM64 support config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_DISABLE_CONSOLE_INPUT=$(CFG_SOCT_USER_MODE)" \ "Disable console input" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_ENABLE_CONSOLE_OUTPUT=$(CFG_SOCT_BOOT_LOG_SUPPORT)" \ "Enable console output" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_SBL_VXX_UXX=$(SBL_VXX_UXX)" \ "Second boot config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_SUPPORT_BOOTLOG_RSVD=$(CFG_SOCT_SUPPORT_BOOTLOG_RSVD)" \ "bootlog reserved config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_BOOTLOG_RSVD_SIZE=$(CFG_SOCT_BOOTLOG_RSVD_SIZE)" \ "bootlog reserved size config" $(UBOOT_CONFIG_INCLUDE).tmp @$(EXPORT_CONFIG) "CONFIG_T9_FPGA=$(CFG_SOCT_T9_FPGA)" \ "t9 FPGA" $(UBOOT_CONFIG_INCLUDE).tmp ifneq ($(findstring $(CFG_SOCT_CHIP_REVERSION), reserved19_b reserved17_d), ) @$(EXPORT_CONFIG) "CONFIG_SOCT_REVERSION_SLS_B=y" \ "RESERVED19_B reversion" $(UBOOT_CONFIG_INCLUDE).tmp endif ifeq ($(CFG_SOCT_CHIP_REVERSION), reserved19_c) @$(EXPORT_CONFIG) "CONFIG_SOCT_REVERSION_SLS_C=y" \ "RESERVED19_C reversion" $(UBOOT_CONFIG_INCLUDE).tmp endif ifneq ($(findstring $(CFG_SOCT_CHIP_TYPE), reserved5 reserved19 reserved17 hi3751v811), ) @$(EXPORT_CONFIG) "CONFIG_EMMC_SUPPORT=$(CFG_SOCT_EMMC_SUPPORT)" \ "emmc flash support" $(UBOOT_CONFIG_INCLUDE).tmp endif ifeq ($(CFG_SOCT_CHIP_REVERSION), hi3751v811_c) @$(EXPORT_CONFIG) "CONFIG_SOCT_REVERSION_SLS_C=y" \ "HI3751V811_C reversion" $(UBOOT_CONFIG_INCLUDE).tmp endif @$(EXPORT_CONFIG) "CONFIG_ADVCA_SM_SUPPORT=$(CFG_SOCT_ADVCA_SM_SUPPORT)" \ "Enable SM encryption feature" $(UBOOT_CONFIG_INCLUDE).tmp ifeq ($(CFG_SOCT_TWOSTAGEBOOT_SUPPORT),y) ifeq ($(CFG_SOCT_BOOT_FBL),y) @$(EXPORT_CONFIG) "CONFIG_FBL=y" \ "Support two stage boot FBL" $(UBOOT_CONFIG_INCLUDE).tmp endif ifeq ($(CFG_SOCT_BOOT_SBL),y) @$(EXPORT_CONFIG) "CONFIG_SBL=y" \ "Support two stage boot SBL" $(UBOOT_CONFIG_INCLUDE).tmp endif endif if [ -f $(UBOOT_CONFIG_INCLUDE) ]; then \ cmp -s $(UBOOT_CONFIG_INCLUDE) $(UBOOT_CONFIG_INCLUDE).tmp || \ cp -fv $(UBOOT_CONFIG_INCLUDE).tmp $(UBOOT_CONFIG_INCLUDE); \ else \ cp -fv $(UBOOT_CONFIG_INCLUDE).tmp $(UBOOT_CONFIG_INCLUDE); \ fi endif .PHONY: slaveboot-burn.bin slaveboot-prepare clean boot_clean prepare all: slaveboot-burn.bin slaveboot-prepare: copy_securec prepare $(UBOOT_CONFIG_INCLUDE) test -d $(UBOOT_BUILD_DIR) || mkdir -p $(UBOOT_BUILD_DIR) cp -rf $(UBOOT_SRC_DIR_SELF)/configs/$(UBOOT_DEFCONFIG_FILE) $(UBOOT_BUILD_DIR)/.config $(MAKE) CROSS_COMPILE=$(CROSS_COMPILE32) -C $(UBOOT_SRC_DIR) VENDOR_ROOT_DIR=$(VENDOR_DIR) SDK_DIR=$(app_srctree) O=$(UBOOT_BUILD_DIR) prepare slaveboot-burn.bin: slaveboot-prepare ifneq ($(BOOTLOADER_DRIVERS_SOURCE_DIR),) $(MAKE) CROSS_COMPILE=$(CROSS_COMPILE32) $(MKFLAGS) -C $(UBOOT_BUILD_DIR) DEVICE_TREE=$(CFG_DEVICE_TREE_NAME) VENDOR_ROOT_DIR=$(VENDOR_DIR) SDK_DIR=$(app_srctree) O= $(BOOTLOADER_DRIVERS_SOURCE_DIR) else ifeq ($(findstring $(CFG_SOCT_CHIP_TYPE), reserved5 reserved19 reserved17 hi3751v811), ) $(MAKE) CROSS_COMPILE=$(CROSS_COMPILE64) -C $(SWITCH_ERET_BUILD_DIR) VENDOR_ROOT_DIR=$(VENDOR_DIR) SDK_DIR=$(app_srctree) OPEN_SOURCE_DIR=$(VENDOR_OPEN_SOURCE_DIR) endif $(MAKE) CROSS_COMPILE=$(CROSS_COMPILE32) $(MKFLAGS) -C $(UBOOT_BUILD_DIR) DEVICE_TREE=$(CFG_DEVICE_TREE_NAME) VENDOR_ROOT_DIR=$(VENDOR_DIR) SDK_DIR=$(app_srctree) OPEN_SOURCE_DIR=$(VENDOR_OPEN_SOURCE_DIR) O= all $(UBOOT_CONFIG_FILE) cp -rf $(UBOOT_BUILD_DIR)/u-boot.bin $(UBOOT_BUILD_DIR)/slaveboot-burn.bin $(call copy_image,$(UBOOT_BUILD_DIR)/slaveboot-burn.bin,,$(IMAGE_DIR)) endif clean: boot_clean boot_clean: rm -rf $(UBOOT_BUILD_DIR) endif ###################################################################