# # Auto generated makefile # # Below variables need to be defined outside this file or via command line # - MCU_PLUS_SDK_PATH # - PROFILE # - CG_TOOL_ROOT # - OUTNAME # - CCS_INSTALL_DIR # - CCS_IDE_MODE CCS_PATH=$(CCS_INSTALL_DIR) include $(MCU_PLUS_SDK_PATH)/imports.mak % if (["am243x", "am64x", "am263x", "am273x"].includes(args.project.device)) { include $(MCU_PLUS_SDK_PATH)/devconfig/devconfig.mak % } STRIP=$(CG_TOOL_ROOT)/bin/`args.cgtOptions.strip` OBJCOPY=$(CG_TOOL_ROOT)/bin/`args.cgtOptions.objcopy` ifeq ($(OS), Windows_NT) PYTHON=python else PYTHON=python3 endif OUTFILE=$(PROFILE)/$(OUTNAME).out BOOTIMAGE_PATH=$(abspath ${PROFILE}) % if (args.project.isBootLoader) { % if (["am243x", "am64x", "am263x", "am273x"].includes(args.project.device)) { BOOTIMAGE_NAME_GP:=$(BOOTIMAGE_PATH)/$(OUTNAME).tiimage BOOTIMAGE_NAME_HS:=`args.project.name`.$(PROFILE).hs.tiimage BOOTIMAGE_NAME_HS_FS:=`args.project.name`.$(PROFILE).hs_fs.tiimage ifeq ($(DEVICE_TYPE),HS) BOOTIMAGE_NAME=$(BOOTIMAGE_NAME_HS) else BOOTIMAGE_NAME=$(BOOTIMAGE_NAME_GP) endif % } else { BOOTIMAGE_NAME:=$(BOOTIMAGE_PATH)/$(OUTNAME).tiimage % } BOOTIMAGE_BIN_NAME:=$(BOOTIMAGE_PATH)/$(OUTNAME).bin % } else { BOOTIMAGE_NAME:=$(BOOTIMAGE_PATH)/$(OUTNAME).appimage BOOTIMAGE_NAME_XIP:=$(BOOTIMAGE_PATH)/$(OUTNAME).appimage_xip % if (args.project.device == "awr294x") { BOOTIMAGE_NAME_QSPI:=$(BOOTIMAGE_PATH)/$(OUTNAME).appimage_qspi % } BOOTIMAGE_NAME_SIGNED:=$(BOOTIMAGE_PATH)/$(OUTNAME).appimage.signed BOOTIMAGE_RPRC_NAME:=$(BOOTIMAGE_PATH)/$(OUTNAME).rprc BOOTIMAGE_RPRC_NAME_XIP:=$(BOOTIMAGE_PATH)/$(OUTNAME).rprc_xip BOOTIMAGE_RPRC_NAME_TMP:=$(BOOTIMAGE_PATH)/$(OUTNAME).rprc_tmp % } % if (args.project.isBootLoader) { # # Generation of boot image which can be loaded by ROM Boot Loader (RBL) # % } else { # # Generation of boot image which can be loaded by Secondary Boot Loader (SBL) # % } ifeq ($(OS),Windows_NT) EXE_EXT=.exe endif ifeq ($(OS),Windows_NT) BOOTIMAGE_CERT_GEN_CMD=powershell -executionpolicy unrestricted -command $(MCU_PLUS_SDK_PATH)/tools/boot/signing/x509CertificateGen.ps1 else BOOTIMAGE_CERT_GEN_CMD=$(MCU_PLUS_SDK_PATH)/tools/boot/signing/x509CertificateGen.sh endif BOOTIMAGE_TEMP_OUT_FILE=$(PROFILE)/temp_stdout_$(PROFILE).txt % if (args.project.isBootLoader) { % if ((args.project.device == "am64x") || (args.project.device == "am243x")) { BOOTIMAGE_CERT_KEY=$(APP_SIGNING_KEY) BOOTIMAGE_CERT_GEN_CMD=$(PYTHON) $(MCU_PLUS_SDK_PATH)/tools/boot/signing/rom_image_gen.py SYSFW_PATH=$(MCU_PLUS_SDK_PATH)/source/drivers/sciclient/soc/am64x_am243x SYSFW_LOAD_ADDR=0x44000 BOARDCFG_LOAD_ADDR=0x7B000 % if (args.project.name.includes("linux")) { % if (args.project.device == "am64x") { BOARDCFG_BLOB=$(MCU_PLUS_SDK_PATH)/source/drivers/sciclient/sciclient_default_boardcfg/am64x/boardcfg_blob_linux.bin % } else if (args.project.device == "am243x") { BOARDCFG_BLOB=$(MCU_PLUS_SDK_PATH)/source/drivers/sciclient/sciclient_default_boardcfg/am243x/boardcfg_blob_linux.bin % } % } else { % if (args.project.device == "am64x") { BOARDCFG_BLOB=$(MCU_PLUS_SDK_PATH)/source/drivers/sciclient/sciclient_default_boardcfg/am64x/boardcfg_blob.bin % } else if (args.project.device == "am243x") { BOARDCFG_BLOB=$(MCU_PLUS_SDK_PATH)/source/drivers/sciclient/sciclient_default_boardcfg/am243x/boardcfg_blob.bin % } % } % } % if ((args.project.device == "am273x") || (args.project.device == "awr294x") || (args.project.device == "am263x")) { ifeq ($(DEVICE_TYPE),HS) BOOTIMAGE_CERT_KEY=$(APP_SIGNING_KEY) else BOOTIMAGE_CERT_KEY=$(MCU_PLUS_SDK_PATH)/tools/boot/signing/mcu_gpkey.pem endif BOOTIMAGE_CERT_GEN_CMD=$(PYTHON) $(MCU_PLUS_SDK_PATH)/tools/boot/signing/mcu_rom_image_gen.py % } % if ((args.project.device == "am273x") || (args.project.device == "awr294x")) { SBL_RUN_ADDRESS=0x10200000 % } else if (args.project.device == "am263x") { SBL_RUN_ADDRESS=0x70002000 % } else { SBL_RUN_ADDRESS=0x70000000 % } SBL_PREBUILT_PATH=$(MCU_PLUS_SDK_PATH)/tools/boot/sbl_prebuilt/`args.project.board` all: ifeq ($(CCS_IDE_MODE),cloud) # No post build steps else @echo Boot image: `args.project.device`:`args.project.cpu`:`args.project.os`:`args.project.cgt` $(BOOTIMAGE_NAME) ... $(OBJCOPY) --strip-sections -O binary $(OUTFILE) $(BOOTIMAGE_BIN_NAME) % if (args.project.device == "awr294x") { ifeq ($(DEVICE_TYPE),HS) ifeq ($(DBG_ENABLED),no) $(BOOTIMAGE_CERT_GEN_CMD) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME) --debug DBG_SOC_DEFAULT else $(BOOTIMAGE_CERT_GEN_CMD) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME) --debug DBG_PUBLIC_ENABLE endif else $(BOOTIMAGE_CERT_GEN_CMD) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME) --debug DBG_SOC_DEFAULT endif % } else if ((args.project.device == "am263x") || (args.project.device == "am273x")) { ifeq ($(DEVICE_TYPE),HS) ifeq ($(DEBUG_TIFS), yes) ifeq ($(ENC_SBL_ENABLED),yes) $(BOOTIMAGE_CERT_GEN_CMD) --sbl-enc --enc-key $(APP_ENCRYPTION_KEY) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME) else $(BOOTIMAGE_CERT_GEN_CMD) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME) endif else ifeq ($(ENC_SBL_ENABLED),yes) $(BOOTIMAGE_CERT_GEN_CMD) --sbl-enc --enc-key $(APP_ENCRYPTION_KEY) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME) --debug $(DEBUG_OPTION) else $(BOOTIMAGE_CERT_GEN_CMD) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME) --debug $(DEBUG_OPTION) endif endif else $(BOOTIMAGE_CERT_GEN_CMD) --image-bin $(BOOTIMAGE_BIN_NAME) --core R5 --swrv 1 --loadaddr $(SBL_RUN_ADDRESS) --sign-key $(BOOTIMAGE_CERT_KEY) --out-image $(BOOTIMAGE_NAME) --debug DBG_SOC_DEFAULT endif % } else { ifeq ($(DEVICE_TYPE),HS) $(BOOTIMAGE_CERT_GEN_CMD) --swrv 1 --sbl-bin $(BOOTIMAGE_BIN_NAME) --sysfw-bin $(SYSFW_PATH)/sysfw-hs-enc.bin --sysfw-inner-cert $(SYSFW_PATH)/sysfw-hs-enc-cert.bin --boardcfg-blob $(BOARDCFG_BLOB) --sbl-loadaddr $(SBL_RUN_ADDRESS) --sysfw-loadaddr $(SYSFW_LOAD_ADDR) --bcfg-loadaddr $(BOARDCFG_LOAD_ADDR) --key $(BOOTIMAGE_CERT_KEY) --debug DBG_FULL_ENABLE --rom-image $(BOOTIMAGE_NAME) else $(BOOTIMAGE_CERT_GEN_CMD) --swrv 1 --sbl-bin $(BOOTIMAGE_BIN_NAME) --sysfw-bin $(SYSFW_PATH)/sysfw-hs-fs-enc.bin --sysfw-inner-cert $(SYSFW_PATH)/sysfw-hs-fs-enc-cert.bin --boardcfg-blob $(BOARDCFG_BLOB) --sbl-loadaddr $(SBL_RUN_ADDRESS) --sysfw-loadaddr $(SYSFW_LOAD_ADDR) --bcfg-loadaddr $(BOARDCFG_LOAD_ADDR) --key $(BOOTIMAGE_CERT_KEY) --rom-image $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_HS_FS) $(BOOTIMAGE_CERT_GEN_CMD) --swrv 1 --sbl-bin $(BOOTIMAGE_BIN_NAME) --sysfw-bin $(SYSFW_PATH)/sysfw.bin --boardcfg-blob $(BOARDCFG_BLOB) --sbl-loadaddr $(SBL_RUN_ADDRESS) --sysfw-loadaddr $(SYSFW_LOAD_ADDR) --bcfg-loadaddr $(BOARDCFG_LOAD_ADDR) --key $(BOOTIMAGE_CERT_KEY) --rom-image $(BOOTIMAGE_NAME) endif $(COPY) $(BOOTIMAGE_NAME) $(BOOTIMAGE_PATH)/tiboot3.bin ifeq ($(DEVICE_TYPE),GP) @echo Boot image: `args.project.device`:`args.project.cpu`:`args.project.os`:`args.project.cgt` $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_HS_FS) Done !!! endif % } @echo Boot image: `args.project.device`:`args.project.cpu`:`args.project.os`:`args.project.cgt` $(BOOTIMAGE_NAME) Done !!! @echo . endif % } else { % if (args.project.device == "am64x") { BOOTIMAGE_CORE_ID_a53ss0-0 = 0 % if((args.project.os == "freertos-smp") && (args.project.cpu == "a53ss0-0")) { BOOTIMAGE_CORE_ID_a53ss0-1 = 1 % } BOOTIMAGE_CORE_ID_r5fss0-0 = 4 BOOTIMAGE_CORE_ID_r5fss0-1 = 5 BOOTIMAGE_CORE_ID_r5fss1-0 = 6 BOOTIMAGE_CORE_ID_r5fss1-1 = 7 BOOTIMAGE_CORE_ID_m4fss0-0 = 14 SBL_RUN_ADDRESS=0x70000000 SBL_DEV_ID=55 % } % if (args.project.device == "am243x") { BOOTIMAGE_CORE_ID_r5fss0-0 = 4 BOOTIMAGE_CORE_ID_r5fss0-1 = 5 BOOTIMAGE_CORE_ID_r5fss1-0 = 6 BOOTIMAGE_CORE_ID_r5fss1-1 = 7 BOOTIMAGE_CORE_ID_m4fss0-0 = 14 SBL_RUN_ADDRESS=0x70000000 SBL_DEV_ID=55 % } % if (args.project.device == "am263x") { BOOTIMAGE_CORE_ID_r5fss0-0 = 0 BOOTIMAGE_CORE_ID_r5fss0-1 = 1 BOOTIMAGE_CORE_ID_r5fss1-0 = 2 BOOTIMAGE_CORE_ID_r5fss1-1 = 3 SBL_RUN_ADDRESS=0x70002000 SBL_DEV_ID=55 % } % if ((args.project.device == "am273x") || (args.project.device == "awr294x")) { BOOTIMAGE_CORE_ID_r5fss0-0 = 0 BOOTIMAGE_CORE_ID_r5fss0-1 = 1 BOOTIMAGE_CORE_ID_c66ss0 = 2 % if (args.project.device == "awr294x") { BOOTIMAGE_CORE_ID_r4 = 3 R4_RPRC_PATH = $(MCU_PLUS_SDK_PATH)/source/drivers/bootloader/soc/awr294x/xwr2xxx_radarss_metarprc.bin % } SBL_RUN_ADDRESS=0x10200000 SBL_DEV_ID=55 % } % if (args.project.device == "am62x") { BOOTIMAGE_CORE_ID_a53ss0-0 = 0 BOOTIMAGE_CORE_ID_a53ss0-1 = 1 BOOTIMAGE_CORE_ID_a53ss1-0 = 2 BOOTIMAGE_CORE_ID_a53ss1-1 = 3 BOOTIMAGE_CORE_ID_r5fss0-0 = 4 BOOTIMAGE_CORE_ID_m4fss0-0 = 5 SBL_RUN_ADDRESS=0x70000000 SBL_DEV_ID=55 % } MULTI_CORE_IMAGE_GEN = $(CCS_NODE) $(MCU_PLUS_SDK_PATH)/tools/boot/multicoreImageGen/multicoreImageGen.js OUTRPRC_CMD = $(CCS_NODE) $(MCU_PLUS_SDK_PATH)/tools/boot/out2rprc/elf2rprc.js % if (((args.project.device == "am243x") || (args.project.device == "am64x")) && (!args.project.isPartOfSystemProject)) { APP_IMAGE_SIGN_CMD = $(MCU_PLUS_SDK_PATH)/tools/boot/signing/appimage_x509_cert_gen.py % } ifeq ($(OS),Windows_NT) XIPGEN_CMD=$(MCU_PLUS_SDK_PATH)/tools/boot/xipGen/xipGen.exe else XIPGEN_CMD=$(MCU_PLUS_SDK_PATH)/tools/boot/xipGen/xipGen.out endif MULTI_CORE_IMAGE_PARAMS = \ $(BOOTIMAGE_RPRC_NAME)@$(BOOTIMAGE_CORE_ID_`args.project.cpu`) \ % if((args.project.os == "freertos-smp") && (args.project.cpu == "a53ss0-0")) { $(BOOTIMAGE_RPRC_NAME)@$(BOOTIMAGE_CORE_ID_a53ss0-1) \ % } MULTI_CORE_IMAGE_PARAMS_XIP = \ $(BOOTIMAGE_RPRC_NAME_XIP)@$(BOOTIMAGE_CORE_ID_`args.project.cpu`) \ % if((args.project.os == "freertos-smp") && (args.project.cpu == "a53ss0-0")) { $(BOOTIMAGE_RPRC_NAME_XIP)@$(BOOTIMAGE_CORE_ID_a53ss0-1) \ % } % if (args.project.device == "awr294x") { MULTI_CORE_IMAGE_PARAMS_QSPI = $(MULTI_CORE_IMAGE_PARAMS) $(R4_RPRC_PATH)@$(BOOTIMAGE_CORE_ID_r4) % } all: ifeq ($(CCS_IDE_MODE),cloud) # No post build steps else @echo Boot image: `args.project.device`:`args.project.cpu`:`args.project.os`:`args.project.cgt` $(BOOTIMAGE_NAME) ... $(OUTRPRC_CMD) $(OUTFILE) >> $(BOOTIMAGE_TEMP_OUT_FILE) $(COPY) $(OUTNAME).rprc $(BOOTIMAGE_RPRC_NAME) $(COPY) $(BOOTIMAGE_RPRC_NAME) $(BOOTIMAGE_RPRC_NAME_TMP) $(RM) $(BOOTIMAGE_RPRC_NAME) $(XIPGEN_CMD) -i $(BOOTIMAGE_RPRC_NAME_TMP) -o $(BOOTIMAGE_RPRC_NAME) -x $(BOOTIMAGE_RPRC_NAME_XIP) --flash-start-addr 0x`args.flashAddr.toString(16)` -v > $(BOOTIMAGE_TEMP_OUT_FILE) $(MULTI_CORE_IMAGE_GEN) --devID $(SBL_DEV_ID) --out $(BOOTIMAGE_NAME) $(MULTI_CORE_IMAGE_PARAMS) >> $(BOOTIMAGE_TEMP_OUT_FILE) $(MULTI_CORE_IMAGE_GEN) --devID $(SBL_DEV_ID) --out $(BOOTIMAGE_NAME_XIP) $(MULTI_CORE_IMAGE_PARAMS_XIP) >> $(BOOTIMAGE_TEMP_OUT_FILE) % if (args.project.device == "awr294x") { $(MULTI_CORE_IMAGE_GEN) --devID $(SBL_DEV_ID) --out $(BOOTIMAGE_NAME_QSPI) $(MULTI_CORE_IMAGE_PARAMS_QSPI) >> $(BOOTIMAGE_TEMP_OUT_FILE) % } % if (((args.project.device == "am243x") || (args.project.device == "am64x")) && (!args.project.isPartOfSystemProject)) { # Sign the appimage for HS-FS using appimage signing script $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 1 --key $(APP_SIGNING_KEY) --output $(BOOTIMAGE_NAME).hs_fs % } % if (((args.project.device == "am243x") || (args.project.device == "am64x")) && (!args.project.isPartOfSystemProject)) { ifeq ($(DEVICE_TYPE),HS) # Sign the appimage using appimage signing script ifeq ($(ENC_ENABLED),no) @echo Boot image signing: Encryption is disabled. $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 1 --key $(APP_SIGNING_KEY) --output $(BOOTIMAGE_NAME).hs else @echo Boot image signing: Encryption is enabled. $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 1 --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --output $(BOOTIMAGE_NAME).hs $(RM) $(BOOTIMAGE_NAME)-enc endif endif % } $(RM) $(BOOTIMAGE_RPRC_NAME_TMP) % if (args.project.isLinuxFwGen) { $(RM) $(PROFILE)/`args.linuxFwName` $(STRIP) -o=$(PROFILE)/`args.linuxFwName` $(OUTFILE) % } @echo Boot image: `args.project.device`:`args.project.cpu`:`args.project.os`:`args.project.cgt` $(BOOTIMAGE_NAME) Done !!! @echo . % if (((args.project.device == "am243x") || (args.project.device == "am64x")) && (!args.project.isPartOfSystemProject)) { ifeq ($(DEVICE_TYPE),HS) @echo Boot image: `args.project.device`:`args.project.cpu`:`args.project.os`:`args.project.cgt` $(BOOTIMAGE_NAME).hs Done !!! @echo . else @echo Boot image: `args.project.device`:`args.project.cpu`:`args.project.os`:`args.project.cgt` $(BOOTIMAGE_NAME).hs_fs Done !!! @echo . endif % } endif % }