Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .github/workflows/ccs_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -161,17 +161,17 @@ jobs:
sdk_installer: mcu_plus_sdk_am243x_11_02_00_24-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-ouHbHEm1PK/11.02.00.24/mcu_plus_sdk_am243x_11_02_00_24-linux-x64-installer.run
- device: am261x
mcu_plus_sdk: mcu_plus_sdk_am261x_10_02_00_15
sdk_installer: mcu_plus_sdk_am261x_10_02_00_15-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-h64OlWnQrg/10.02.00.15/mcu_plus_sdk_am261x_10_02_00_15-linux-x64-installer.run
mcu_plus_sdk: mcu_plus_sdk_am261x_11_01_00_19
sdk_installer: mcu_plus_sdk_am261x_11_01_00_19-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-h64OlWnQrg/11.01.00.19/mcu_plus_sdk_am261x_11_01_00_19-linux-x64-installer.run
- device: am263px
mcu_plus_sdk: mcu_plus_sdk_am263px_10_02_00_15
sdk_installer: mcu_plus_sdk_am263px_10_02_00_15-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-JVtW1V4WfA/10.02.00.15/mcu_plus_sdk_am263px_10_02_00_15-linux-x64-installer.run
mcu_plus_sdk: mcu_plus_sdk_am263px_11_01_00_19
sdk_installer: mcu_plus_sdk_am263px_11_01_00_19-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-JVtW1V4WfA/11.01.00.19/mcu_plus_sdk_am263px_11_01_00_19-linux-x64-installer.run
- device: am263x
mcu_plus_sdk: mcu_plus_sdk_am263x_10_02_00_13
sdk_installer: mcu_plus_sdk_am263x_10_02_00_13-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-r5FY9rRaGv/10.02.00.13/mcu_plus_sdk_am263x_10_02_00_13-linux-x64-installer.run
mcu_plus_sdk: mcu_plus_sdk_am263x_11_01_00_19
sdk_installer: mcu_plus_sdk_am263x_11_01_00_19-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-r5FY9rRaGv/11.01.00.19/mcu_plus_sdk_am263x_11_01_00_19-linux-x64-installer.run
- device: am64x
mcu_plus_sdk: mcu_plus_sdk_am64x_11_02_00_24
sdk_installer: mcu_plus_sdk_am64x_11_02_00_24-linux-x64-installer.run
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/makefile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,17 @@ jobs:
sdk_installer: mcu_plus_sdk_am243x_11_02_00_24-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-ouHbHEm1PK/11.02.00.24/mcu_plus_sdk_am243x_11_02_00_24-linux-x64-installer.run
- device: am261x
mcu_plus_sdk: mcu_plus_sdk_am261x_10_02_00_15
sdk_installer: mcu_plus_sdk_am261x_10_02_00_15-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-h64OlWnQrg/10.02.00.15/mcu_plus_sdk_am261x_10_02_00_15-linux-x64-installer.run
mcu_plus_sdk: mcu_plus_sdk_am261x_11_01_00_19
sdk_installer: mcu_plus_sdk_am261x_11_01_00_19-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-h64OlWnQrg/11.01.00.19/mcu_plus_sdk_am261x_11_01_00_19-linux-x64-installer.run
- device: am263px
mcu_plus_sdk: mcu_plus_sdk_am263px_10_02_00_15
sdk_installer: mcu_plus_sdk_am263px_10_02_00_15-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-JVtW1V4WfA/10.02.00.15/mcu_plus_sdk_am263px_10_02_00_15-linux-x64-installer.run
mcu_plus_sdk: mcu_plus_sdk_am263px_11_01_00_19
sdk_installer: mcu_plus_sdk_am263px_11_01_00_19-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-JVtW1V4WfA/11.01.00.19/mcu_plus_sdk_am263px_11_01_00_19-linux-x64-installer.run
- device: am263x
mcu_plus_sdk: mcu_plus_sdk_am263x_10_02_00_13
sdk_installer: mcu_plus_sdk_am263x_10_02_00_13-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-r5FY9rRaGv/10.02.00.13/mcu_plus_sdk_am263x_10_02_00_13-linux-x64-installer.run
mcu_plus_sdk: mcu_plus_sdk_am263x_11_01_00_19
sdk_installer: mcu_plus_sdk_am263x_11_01_00_19-linux-x64-installer.run
sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-r5FY9rRaGv/11.01.00.19/mcu_plus_sdk_am263x_11_01_00_19-linux-x64-installer.run
Comment on lines 30 to +41

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Ci tests only sdk 11.1 📎 Requirement gap ☼ Reliability

The CI matrix for AM26x devices is pinned to MCU+ SDK 11_01_00_19 only, so there is no build
verification coverage for SDK 11.0 as required. This fails the requirement to verify and record
build status for both SDK 11.0 and 11.1 across AM261x/AM263x/AM263Px.
Agent Prompt
## Issue description
The compliance checklist requires build verification for AM261x/AM263x/AM263Px on MCU+ SDK 11.0 and 11.1, but the CI matrices only include SDK 11.1 (`11_01_00_19`).

## Issue Context
Current CI coverage does not demonstrate (or record) SDK 11.0 build status for AM26x, which is explicitly required.

## Fix Focus Areas
- .github/workflows/makefile.yml[30-41]
- .github/workflows/ccs_build.yml[163-174]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +33 to +41

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Long sdk_url lines (makefile.yml) 📘 Rule violation ⚙ Maintainability

The workflows add sdk_url lines that exceed the hard 129-character repository line-length limit,
reducing readability and creating avoidable formatting noncompliance in CI configuration. This
violates the stated line-length constraint for hand-written config files.
Agent Prompt
## Issue description
The workflow files contain newly-added/updated `sdk_url` entries whose unwrapped URL values exceed the repository’s hard 129 character line-length limit.

## Issue Context
The repository enforces a hard 129-char limit for hand-written source/config files; these long URLs can be wrapped using YAML folded/scalar syntax (for example `sdk_url: >-` with the URL on the next indented line) or refactored by introducing a shared base URL variable.

## Fix Focus Areas
- .github/workflows/makefile.yml[33-41]
- .github/workflows/ccs_build.yml[166-174]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

- device: am64x
mcu_plus_sdk: mcu_plus_sdk_am64x_11_02_00_24
sdk_installer: mcu_plus_sdk_am64x_11_02_00_24-linux-x64-installer.run
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
-Wno-gnu-variable-sized-type-not-at-end
-Wno-unused-function
-DSOC_AM261X
-DOS_FREERTOS
"
linkerBuildOptions="
-i${MCU_PLUS_SDK_PATH}/source/kernel/freertos/lib
Expand Down Expand Up @@ -81,8 +82,8 @@
"
linkerBuildOptions="
-lfreertos.am261x.r5f.ti-arm-clang.debug.lib
-ldrivers.am261x.r5f.ti-arm-clang.debug.lib
-lboard.am261x.r5f.ti-arm-clang.debug.lib
-ldrivers.am261x.r5f.ti-arm-clang.freertos.debug.lib
-lboard.am261x.r5f.ti-arm-clang.freertos.debug.lib
-llibc.a
-llibsysbm.a
"
Expand All @@ -93,8 +94,8 @@
"
linkerBuildOptions="
-lfreertos.am261x.r5f.ti-arm-clang.release.lib
-ldrivers.am261x.r5f.ti-arm-clang.release.lib
-lboard.am261x.r5f.ti-arm-clang.release.lib
-ldrivers.am261x.r5f.ti-arm-clang.freertos.release.lib
-lboard.am261x.r5f.ti-arm-clang.freertos.release.lib
-llibc.a
Comment on lines 94 to 99

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

2. Debug libs still unqualified 🐞 Bug ≡ Correctness

AM26x FreeRTOS example.projectspec files update Release to link
drivers.*.freertos.*/board.*.freertos.* archives, but Debug still links the old unqualified
drivers.*.debug.lib/board.*.debug.lib. When building against MCU+ SDK 11.x (where the
OS-qualified naming is required, as already assumed by Release), CCS Debug builds will fail to
resolve these libraries or link the wrong variants.
Agent Prompt
## Issue description
AM26x FreeRTOS CCS project specs were only partially updated: Release links OS-qualified `drivers.<soc>...freertos...` and `board.<soc>...freertos...` archives, but Debug still links the pre-SDK-11 unqualified archives.

## Issue Context
The AM243x FreeRTOS projectspec shows that *both* Debug and Release should use `*.freertos.<config>.lib` for `drivers` and `board`.

## Fix
For **all AM26x FreeRTOS** `ti-arm-clang/example.projectspec` files updated in this PR, change the **Debug** `linkerBuildOptions` entries:
- `-ldrivers.<soc>.r5f.ti-arm-clang.debug.lib` -> `-ldrivers.<soc>.r5f.ti-arm-clang.freertos.debug.lib`
- `-lboard.<soc>.r5f.ti-arm-clang.debug.lib` -> `-lboard.<soc>.r5f.ti-arm-clang.freertos.debug.lib`

(Leave `-lfreertos...debug.lib` as-is unless the SDK also OS-qualifies it.)

## Fix Focus Areas
- academy/getting_started_labs/assembly_code/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec[79-90]
- academy/getting_started_labs/assembly_code/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec[79-90]
- academy/getting_started_labs/assembly_code/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec[79-90]
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec[79-90]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@a1248924 a1248924 Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is valid, need to do the same for Debug mode for the libs naming in all examples

-llibsysbm.a
"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ BOOTIMAGE_RPRC_NAME_XIP:=pru_add_assembly.$(PROFILE).rprc_xip
BOOTIMAGE_RPRC_NAME_TMP:=pru_add_assembly.$(PROFILE).rprc_tmp
BOOTIMAGE_NAME_HS:=pru_add_assembly.$(PROFILE).appimage.hs
BOOTIMAGE_NAME_HS_FS:=pru_add_assembly.$(PROFILE).appimage.hs_fs
TARGETS := $(BOOTIMAGE_NAME)
TARGETS := $(BOOTIMAGE_NAME_MCELF)

ifeq ($(DEVICE_TYPE), HS)
TARGETS += $(BOOTIMAGE_NAME_HS)
TARGETS += $(BOOTIMAGE_NAME_MCELF_HS)
endif

FILES_common := \
Expand Down Expand Up @@ -73,6 +73,7 @@ INCLUDES_common := \

DEFINES_common := \
-DSOC_AM261X \
-DOS_FREERTOS \

CFLAGS_common := \
-mcpu=cortex-r5 \
Expand Down Expand Up @@ -116,8 +117,8 @@ LIBS_PATH_common = \

LIBS_common = \
-lfreertos.am261x.r5f.ti-arm-clang.${ConfigName}.lib \
-ldrivers.am261x.r5f.ti-arm-clang.${ConfigName}.lib \
-lboard.am261x.r5f.ti-arm-clang.${ConfigName}.lib \
-ldrivers.am261x.r5f.ti-arm-clang.freertos.${ConfigName}.lib \
-lboard.am261x.r5f.ti-arm-clang.freertos.${ConfigName}.lib \
-llibc.a \
-llibsysbm.a \

Expand All @@ -129,8 +130,8 @@ LFLAGS_common = \

LIBS_NAME = \
freertos.am261x.r5f.ti-arm-clang.${ConfigName}.lib \
drivers.am261x.r5f.ti-arm-clang.${ConfigName}.lib \
board.am261x.r5f.ti-arm-clang.${ConfigName}.lib \
drivers.am261x.r5f.ti-arm-clang.freertos.${ConfigName}.lib \
board.am261x.r5f.ti-arm-clang.freertos.${ConfigName}.lib \
libc.a \
libsysbm.a \

Expand Down Expand Up @@ -206,7 +207,6 @@ clean:
$(RM) $(BOOTIMAGE_NAME)
$(RM) $(BOOTIMAGE_NAME_XIP)
$(RM) $(BOOTIMAGE_NAME_SIGNED)
$(RM) $(BOOTIMAGE_RPRC_NAME)
$(RM) $(BOOTIMAGE_RPRC_NAME_XIP)
$(RM) $(BOOTIMAGE_NAME_MCELF)
$(RMDIR) generated/
Comment on lines 207 to 212

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

2. Stale rprc not cleaned 🐞 Bug ☼ Reliability

In AM26x FreeRTOS ti-arm-clang makefiles, BOOTIMAGE_RPRC_NAME is still defined but the clean
target no longer deletes it. This can leave a stale .rprc file from previous builds/branches in
the build directory, making it easy to confuse old artifacts with current outputs during manual
debugging/flash workflows.
Agent Prompt
## Issue description
AM26x FreeRTOS ti-arm-clang makefiles still define `BOOTIMAGE_RPRC_NAME`, but `make clean` no longer removes the corresponding `.rprc` file. This leaves stale build outputs behind.

## Issue Context
The PR removed `$(RM) $(BOOTIMAGE_RPRC_NAME)` from the `clean` target while keeping `BOOTIMAGE_RPRC_NAME:=...rprc` defined.

## Fix Focus Areas
- Add back removal in clean for all affected AM26x FreeRTOS ti-arm-clang makefiles (or, alternatively, delete the unused `BOOTIMAGE_RPRC_NAME` variable if `.rprc` is no longer a supported output for these targets).

### Files/lines to update
- academy/getting_started_labs/assembly_code/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[203-212]

(Apply the same change to the analogous AM261x/AM263x/AM263px FreeRTOS `ti-arm-clang/makefile` files touched by this PR.)

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Expand Down Expand Up @@ -280,8 +280,6 @@ BOOTIMAGE_CORE_ID_r5fss1-1 = 3
SBL_RUN_ADDRESS=0x70002000
SBL_DEV_ID=55

MULTI_CORE_IMAGE_GEN = $(SYSCFG_NODE) $(MCU_PLUS_SDK_PATH)/tools/boot/multicoreImageGen/multicoreImageGen.js
OUTRPRC_CMD = $(SYSCFG_NODE) $(MCU_PLUS_SDK_PATH)/tools/boot/out2rprc/elf2rprc.js
APP_IMAGE_SIGN_CMD = $(MCU_PLUS_SDK_PATH)/source/security/security_common/tools/boot/signing/mcu_appimage_x509_cert_gen.py
MCELF_IMAGE_GEN = $(MCU_PLUS_SDK_PATH)/tools/boot/multicore-elf/genimage.py

Expand All @@ -296,60 +294,36 @@ else
endif
endif

MULTI_CORE_IMAGE_PARAMS = \
$(BOOTIMAGE_RPRC_NAME)@$(BOOTIMAGE_CORE_ID_r5fss0-0) \

MULTI_CORE_IMAGE_PARAMS_XIP = \
$(BOOTIMAGE_RPRC_NAME_XIP)@$(BOOTIMAGE_CORE_ID_r5fss0-0) \

$(BOOTIMAGE_NAME): $(OUTNAME)
$(BOOTIMAGE_NAME_MCELF): $(OUTNAME)
@echo Boot image: am261x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_PATH)/$@ ...
ifneq ($(OS),Windows_NT)
$(CHMOD) a+x $(XIPGEN_CMD)
endif
$(OUTRPRC_CMD) $(OUTNAME) >> $(BOOTIMAGE_TEMP_OUT_FILE)
$(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 0x60000000 -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)
$(RM) $(BOOTIMAGE_RPRC_NAME_TMP)
$(RM) $(BOOTIMAGE_TEMP_OUT_FILE)
@echo Boot image: am261x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_PATH)/$@ Done !!!
@echo Boot MulticoreELF image: $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_MCELF) ...
$(PYTHON) $(MCELF_IMAGE_GEN) --core-img=$(BOOTIMAGE_CORE_ID_r5fss0-0):$(OUTNAME) --output=$(BOOTIMAGE_NAME_MCELF) --merge-segments=$(MCELF_MERGE_SEGMENTS_FLAG) --tolerance-limit=$(MCELF_MERGE_SEGMENTS_TOLERANCE_LIMIT) --ignore-context=$(MCELF_IGNORE_CONTEXT_FLAG) --xip=$(MCELF_XIP_RANGE) --xlat=$(MCELF_ADDR_TRANSLATION_PATH) --max-segment-size=$(MCELF_MAX_SEGMENT_SIZE)
@echo Boot MulticoreELF ELF image: $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_MCELF) Done !!!
@echo .

$(BOOTIMAGE_NAME_HS): $(BOOTIMAGE_NAME)
$(BOOTIMAGE_NAME_MCELF_HS): $(BOOTIMAGE_NAME_MCELF)
ifeq ($(DEVICE_TYPE), HS)
# Sign the appimage using appimage signing script
ifeq ($(ENC_ENABLED),no)
ifeq ($(RSASSAPSS_ENABLED),no)
@echo Boot image signing: Encryption is disabled.
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --key $(APP_SIGNING_KEY) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --output $(BOOTIMAGE_NAME_HS)
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME_MCELF) --key $(APP_SIGNING_KEY) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --output $(BOOTIMAGE_NAME_MCELF_HS)
else
@echo Boot image signing: Encryption is disabled. RSASSAPSS is enabled.
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --key $(APP_SIGNING_KEY) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --pss_saltlen $(APP_SIGNING_SALT_LENGTH) --output $(BOOTIMAGE_NAME_HS) --rsassa_pss
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME_MCELF) --key $(APP_SIGNING_KEY) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --pss_saltlen $(APP_SIGNING_SALT_LENGTH) --output $(BOOTIMAGE_NAME_MCELF_HS) --rsassa_pss
endif
else
ifeq ($(RSASSAPSS_ENABLED),no)
@echo Boot image signing: Encryption is enabled.
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --kd-salt $(KD_SALT) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --enc_key_id $(APP_ENCRYPTION_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --output $(BOOTIMAGE_NAME_HS)
$(RM) $(BOOTIMAGE_NAME)-enc
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME_MCELF) --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --kd-salt $(KD_SALT) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --enc_key_id $(APP_ENCRYPTION_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --output $(BOOTIMAGE_NAME_MCELF_HS)
$(RM) $(BOOTIMAGE_NAME_MCELF)-enc
else
@echo Boot image signing: Encryption is enabled. RSASSAPSS is enabled.
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --kd-salt $(KD_SALT) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --enc_key_id $(APP_ENCRYPTION_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --pss_saltlen $(APP_SIGNING_SALT_LENGTH) --output $(BOOTIMAGE_NAME_HS) --rsassa_pss
$(RM) $(BOOTIMAGE_NAME)-enc
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME_MCELF) --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --kd-salt $(KD_SALT) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --enc_key_id $(APP_ENCRYPTION_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --pss_saltlen $(APP_SIGNING_SALT_LENGTH) --output $(BOOTIMAGE_NAME_MCELF_HS) --rsassa_pss
$(RM) $(BOOTIMAGE_NAME_MCELF)-enc
endif
endif
@echo Boot image: am261x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_HS) Done !!!
@echo Boot image: am261x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_MCELF_HS) Done !!!
@echo .
endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,10 @@ endif

OUTFILE=$(PROFILE)/$(OUTNAME).out
BOOTIMAGE_PATH=$(abspath ${PROFILE})
BOOTIMAGE_NAME:=$(BOOTIMAGE_PATH)/$(OUTNAME).appimage
BOOTIMAGE_NAME_XIP:=$(BOOTIMAGE_PATH)/$(OUTNAME).appimage_xip
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
BOOTIMAGE_NAME_MCELF:=$(BOOTIMAGE_PATH)/$(OUTNAME).mcelf
BOOTIMAGE_NAME_MCELF_HS:=$(BOOTIMAGE_PATH)/$(OUTNAME).mcelf.hs
BOOTIMAGE_NAME_HS:=$(BOOTIMAGE_PATH)/pru_add_assembly.$(PROFILE).appimage.hs
BOOTIMAGE_NAME_HS_FS:=$(BOOTIMAGE_PATH)/pru_add_assembly.$(PROFILE).appimage.hs_fs
TARGETS := $(BOOTIMAGE_NAME)
TARGETS += $(BOOTIMAGE_NAME_MCELF)
TARGETS := $(BOOTIMAGE_NAME_MCELF)
TARGETS += $(BOOTIMAGE_NAME_MCELF_HS)
ifeq ($(DEVICE_TYPE), HS)
TARGETS += $(BOOTIMAGE_NAME_HS)
endif

#
# Generation of boot image which can be loaded by Secondary Boot Loader (SBL)
Expand All @@ -62,79 +50,41 @@ BOOTIMAGE_CORE_ID_r5fss1-1 = 3
SBL_RUN_ADDRESS=0x70002000
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
APP_IMAGE_SIGN_CMD = $(MCU_PLUS_SDK_PATH)/source/security/security_common/tools/boot/signing/mcu_appimage_x509_cert_gen.py
MCELF_IMAGE_GEN = $(MCU_PLUS_SDK_PATH)/tools/boot/multicore-elf/genimage.py

ifeq ($(OS),Windows_NT)
XIPGEN_CMD=$(MCU_PLUS_SDK_PATH)/tools/boot/xipGen/xipGen.exe
else
UNAME_S = $(shell uname -s)
ifeq ($(UNAME_S), Darwin)
XIPGEN_CMD=$(MCU_PLUS_SDK_PATH)/tools/boot/xipGen/xipGen.out.mac
else
XIPGEN_CMD=$(MCU_PLUS_SDK_PATH)/tools/boot/xipGen/xipGen.out
endif
endif

MULTI_CORE_IMAGE_PARAMS = \
$(BOOTIMAGE_RPRC_NAME)@$(BOOTIMAGE_CORE_ID_r5fss0-0) \

MULTI_CORE_IMAGE_PARAMS_XIP = \
$(BOOTIMAGE_RPRC_NAME_XIP)@$(BOOTIMAGE_CORE_ID_r5fss0-0) \

all:
ifeq ($(CCS_IDE_MODE),cloud)
# No post build steps
else
@echo Boot image: am261x:r5fss0-0:freertos:ti-arm-clang $(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 0x60000000 -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)
$(RM) $(BOOTIMAGE_RPRC_NAME_TMP)

@echo Boot multi-core ELF image: am261x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_NAME_MCELF) ...

$(PYTHON) $(MCELF_IMAGE_GEN) --core-img=$(BOOTIMAGE_CORE_ID_r5fss0-0):$(OUTFILE) --output=$(BOOTIMAGE_NAME_MCELF) --merge-segments=$(MCELF_MERGE_SEGMENTS_FLAG) --tolerance-limit=$(MCELF_MERGE_SEGMENTS_TOLERANCE_LIMIT) --ignore-context=$(MCELF_IGNORE_CONTEXT_FLAG) --xip=$(MCELF_XIP_RANGE) --xlat=$(MCELF_ADDR_TRANSLATION_PATH) --max-segment-size=$(MCELF_MAX_SEGMENT_SIZE)

@echo Boot multi-core ELF image: $(BOOTIMAGE_NAME_MCELF) Done !!!
@echo .

@echo Boot image: am261x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_NAME) Done !!!
@echo .
ifeq ($(DEVICE_TYPE), HS)
# Sign the appimage using appimage signing script
# Sign the multicore ELF image using appimage signing script
ifeq ($(ENC_ENABLED),no)
ifeq ($(RSASSAPSS_ENABLED),no)
@echo Boot image signing: Encryption is disabled.
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --key $(APP_SIGNING_KEY) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --output $(BOOTIMAGE_NAME_HS)
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME_MCELF) --key $(APP_SIGNING_KEY) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --output $(BOOTIMAGE_NAME_MCELF_HS)
else
@echo Boot image signing: Encryption is disabled. RSASSA-PSS is enabled.
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --key $(APP_SIGNING_KEY) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --pss_saltlen $(APP_SIGNING_SALT_LENGTH) --output $(BOOTIMAGE_NAME_HS) --rsassa_pss
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME_MCELF) --key $(APP_SIGNING_KEY) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --pss_saltlen $(APP_SIGNING_SALT_LENGTH) --output $(BOOTIMAGE_NAME_MCELF_HS) --rsassa_pss
endif
else
ifeq ($(RSASSAPSS_ENABLED),no)
@echo Boot image signing: Encryption is enabled.
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --kd-salt $(KD_SALT) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --enc_key_id $(APP_ENCRYPTION_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --output $(BOOTIMAGE_NAME_HS)
$(RM) $(BOOTIMAGE_NAME)-enc
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME_MCELF) --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --kd-salt $(KD_SALT) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --enc_key_id $(APP_ENCRYPTION_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --output $(BOOTIMAGE_NAME_MCELF_HS)
$(RM) $(BOOTIMAGE_NAME_MCELF)-enc
else
@echo Boot image signing: Encryption is enabled. RSASSA-PSS is enabled.
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --kd-salt $(KD_SALT) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --enc_key_id $(APP_ENCRYPTION_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --pss_saltlen $(APP_SIGNING_SALT_LENGTH) --output $(BOOTIMAGE_NAME_HS) --rsassa_pss
$(RM) $(BOOTIMAGE_NAME)-enc
$(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME_MCELF) --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --kd-salt $(KD_SALT) --sign_key_id $(APP_SIGNING_KEY_KEYRING_ID) --enc_key_id $(APP_ENCRYPTION_KEY_KEYRING_ID) --hash_algo $(APP_SIGNING_HASH_ALGO) --pss_saltlen $(APP_SIGNING_SALT_LENGTH) --output $(BOOTIMAGE_NAME_MCELF_HS) --rsassa_pss
$(RM) $(BOOTIMAGE_NAME_MCELF)-enc
endif
endif
@echo Boot image: am261x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_HS) Done !!!
@echo Boot image: am261x:r5fss0-0:freertos:ti-arm-clang $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_MCELF_HS) Done !!!
@echo .
endif
Expand Down
Loading
Loading