-
Notifications
You must be signed in to change notification settings - Fork 6
Fix issue #111: AM26x academy examples fail to build with MCU+ SDK 11.x #143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
d80bba2
b58fbc5
d27bdf0
9043eef
d59a086
f27c425
170ef05
c037f86
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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
+33
to
+41
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 1. Long sdk_url lines (makefile.yml) 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
|
||
| - 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 | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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 | ||
|
|
@@ -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 | ||
| " | ||
|
|
@@ -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
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 2. Debug libs still unqualified 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
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
| " | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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 := \ | ||
|
|
@@ -73,6 +73,7 @@ INCLUDES_common := \ | |
|
|
||
| DEFINES_common := \ | ||
| -DSOC_AM261X \ | ||
| -DOS_FREERTOS \ | ||
|
|
||
| CFLAGS_common := \ | ||
| -mcpu=cortex-r5 \ | ||
|
|
@@ -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 \ | ||
|
|
||
|
|
@@ -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 \ | ||
|
|
||
|
|
@@ -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
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 2. Stale rprc not cleaned 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
|
||
|
|
@@ -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 | ||
|
|
||
|
|
@@ -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 | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1. Ci tests only sdk 11.1
📎 Requirement gap☼ ReliabilityAgent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools