Skip to content

A0226750 am26x port sdk11 0#151

Merged
nsaulnier-ti merged 8 commits into
mainfrom
a0226750_am26x_port_sdk11_0
Jul 6, 2026
Merged

A0226750 am26x port sdk11 0#151
nsaulnier-ti merged 8 commits into
mainfrom
a0226750_am26x_port_sdk11_0

Conversation

@nsaulnier-ti

Copy link
Copy Markdown
Collaborator

Replaces #143 to update AM26x to the latest SDKs.

Diff between this PR & 143:


File coverage

  • Both branches touch the same 163 files
  • open-pru additionally has docs/release_notes.md and docs/using_older_sdks_with_open_pru.md — ../1 has neither

Regular makefile (44 files) — all 44 differ

open-pru has (all confirmed present in SDK 11.0 reference):

  1. oeconfig?=None variable
  2. --gen_xml_func_hash in LFLAGS_common
  3. Assembly compile fix: $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) -o
  4. --xml_link_info=$(basename $@).lnkxml in linker command
  5. *.lnkxml in clean target
  6. --otfaConfigFile=$(oeconfig) in MCELF gen invocation

../1 is missing all six of the above. It also removes MULTI_CORE_IMAGE_PARAMS (present in SDK 11.0 reference) and drops $(RM)
$(BOOTIMAGE_RPRC_NAME) from the clean target — the stale-artifact issue the automated reviewer flagged.


makefile_ccs_bootimage_gen (44 files) — all 44 differ

open-pru matches SDK 11.0 reference (keeps XIPGEN_CMD block, MULTI_CORE_IMAGE_PARAMS block, TARGETS +=).

../1 makes three changes not in the SDK 11.0 reference: removes those two blocks and changes TARGETS += to TARGETS :=.


example.projectspec (44 files) — all 44 differ

open-pru adds --gen_xml_func_hash to linkerBuildOptions (confirmed in SDK 11.0 reference). ../1 does not.


CI workflows

┌────────┬───────────────────────────┬─────────────────────────┐
│ Device │ open-pru │ ../1 │
├────────┼───────────────────────────┼─────────────────────────┤
│ AM243x │ 12.00.00.26 │ unchanged (11.02.00.24) │
├────────┼───────────────────────────┼─────────────────────────┤
│ AM26x │ 11.00.00.29 / 11.00.00.19 │ 11.01.00.19 │
├────────┼───────────────────────────┼─────────────────────────┤
│ AM64x │ 12.00.00.27 │ unchanged (11.02.00.24) │
└────────┴───────────────────────────┴─────────────────────────┘

@nsaulnier-ti

Copy link
Copy Markdown
Collaborator Author

Will update the CI build one SDK release at a time, just to verify that everything works on every SDK release.

@qodo-code-review

qodo-code-review Bot commented Jul 5, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (8) 📘 Rule violations (3) 📜 Skill insights (0)

Grey Divider


Action required

1. Overlong linker command line 📘 Rule violation ⚙ Maintainability
Description
The updated linker invocation is a single line that exceeds the repository hard line-length limit
for hand-written files. This reduces readability and makes future maintenance/error review harder.
Code

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[201]

+	$(LNK) $(LNKOPTFLAGS) $(LFLAGS) $(LIBS_PATH) -Wl,-m=$(basename $@).map -o $@ $(addprefix $(OBJDIR), $(OBJS)) $(LIBS) $(LNK_FILES) -Wl,--xml_link_info=$(basename $@).lnkxml
Evidence
PR Compliance ID 9 requires hand-written source lines to not exceed 129 columns. The updated linker
command at the cited line is a single long command line (including `-Wl,--xml_link_info=$(basename
$@).lnkxml`) that violates this limit.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[201-201]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A modified linker invocation line is longer than the hard 129-character limit for hand-written source files.
## Issue Context
The line became longer due to the added `-Wl,--xml_link_info=...` argument, pushing the command beyond the repository limit.
## Fix Focus Areas
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[201-201]

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


2. Long sdk_url lines in CI 📘 Rule violation ⚙ Maintainability
Description
The updated sdk_url entries in the Makefile CI and CCS build workflows exceed the 129-character
hard limit for hand-written source files. This reduces readability and makes diffs harder to review
and maintain.
Code

.github/workflows/makefile.yml[R29-45]

+            sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-ouHbHEm1PK/12.00.00.26/mcu_plus_sdk_am243x_12_00_00_26-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_00_00_29
+            sdk_installer: mcu_plus_sdk_am261x_11_00_00_29-linux-x64-installer.run
+            sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-h64OlWnQrg/11.00.00.29/mcu_plus_sdk_am261x_11_00_00_29-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_00_00_19
+            sdk_installer: mcu_plus_sdk_am263px_11_00_00_19-linux-x64-installer.run
+            sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-JVtW1V4WfA/11.00.00.19/mcu_plus_sdk_am263px_11_00_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_00_00_19
+            sdk_installer: mcu_plus_sdk_am263x_11_00_00_19-linux-x64-installer.run
+            sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-r5FY9rRaGv/11.00.00.19/mcu_plus_sdk_am263x_11_00_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
-            sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-SfkcjYAjGS/11.02.00.24/mcu_plus_sdk_am64x_11_02_00_24-linux-x64-installer.run
+            mcu_plus_sdk: mcu_plus_sdk_am64x_12_00_00_27
+            sdk_installer: mcu_plus_sdk_am64x_12_00_00_27-linux-x64-installer.run
+            sdk_url: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-SfkcjYAjGS/12.00.00.27/mcu_plus_sdk_am64x_12_00_00_27-linux-x64-installer.run
Evidence
PR Compliance ID 15 forbids lines longer than 129 characters in hand-written source files, and the
PR-modified sdk_url: entries in both .github/workflows/makefile.yml and
.github/workflows/ccs_build.yml are single-line full URLs that exceed this limit, demonstrating
the violation directly in the changed workflow YAML.

.github/workflows/makefile.yml[29-45]
.github/workflows/ccs_build.yml[162-178]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The modified `sdk_url` lines in `.github/workflows/makefile.yml` and `.github/workflows/ccs_build.yml` are very long and exceed the 129-character hard limit for hand-written source files.
## Issue Context
These lines were updated in this PR (SDK version bumps). The workflows can keep the same behavior while avoiding overly long YAML lines by constructing the URL from shorter matrix fields (for example `sdk_version`, `sdk_product_path`, `sdk_filename`) inside a `run:` step.
## Fix Focus Areas
- .github/workflows/makefile.yml[29-45]
- .github/workflows/ccs_build.yml[162-178]

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



Remediation recommended

3. Release notes link to main 🐞 Bug ≡ Correctness
Description
docs/release_notes.md adds a footnote URL pinned to blob/main, so users reading a tagged release
can be redirected to documentation that may not match that release.
Code

docs/release_notes.md[R87-91]

+[1]
+* Adding support for AM26x MCU+ SDK 11.0 breaks backwards compatibility with
+  AM26x MCU+ SDK 10.2. For more information on building an OpenPRU project with
+  an older version of MCU+ SDK, refer to
+  https://github.com/TexasInstruments/open-pru/blob/main/docs/using_older_sdks_with_open_pru.md
Evidence
The v2026.02.00 section already uses a relative link to the same document, but the newly added
footnote hard-codes blob/main, which can diverge from the tagged release content.

docs/release_notes.md[69-92]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`docs/release_notes.md` links to `https://github.com/TexasInstruments/open-pru/blob/main/...` in the v2026.02.00 footnote. This makes the link “move” over time and can mismatch the release tag the user is reading.
### Issue Context
The same release-notes section already uses a relative link (`./using_older_sdks_with_open_pru.md`), which correctly resolves within the checked-out tag.
### Fix Focus Areas
- docs/release_notes.md[87-91]
### Suggested fix
Replace the `blob/main/...` URL with either:
- a relative link: `./using_older_sdks_with_open_pru.md` (preferred for tagged checkouts), or
- a tag-pinned GitHub URL (if an absolute URL is required for some reason).

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


4. MCELF_IMAGE_GEN line too long 📘 Rule violation ⚙ Maintainability
Description
The updated $(PYTHON) $(MCELF_IMAGE_GEN) ... --otfaConfigFile=$(oeconfig) invocation is a single
very long line, exceeding the repository hard line-length limit. This reduces readability and
violates the formatting standard for source files.
Code

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[310]

+	$(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) --otfaConfigFile=$(oeconfig)
Evidence
PR Compliance ID 14 requires hand-written source to respect a hard 129-column limit. The makefile
line invoking $(MCELF_IMAGE_GEN) at line 310 is substantially longer than 129 characters, so it
fails the line-length requirement.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[308-311]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A modified makefile line exceeds the 129-character hard limit, making it hard to review and maintain.
## Issue Context
The `$(PYTHON) $(MCELF_IMAGE_GEN)` invocation was updated to add `--otfaConfigFile=$(oeconfig)` but remains a single long command line.
## Fix Focus Areas
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[308-311]

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


5. lnkxml not cleaned 🐞 Bug ☼ Reliability
Description
AM26x ti-arm-clang makefiles now generate a linker XML file via -Wl,--xml_link_info=...lnkxml, but
the clean target does not remove the resulting *.lnkxml artifact. This leaves stale build
outputs after make clean, which breaks “clean tree” assumptions and can confuse automation that
packages or diffs generated files.
Code

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[201]

+	$(LNK) $(LNKOPTFLAGS) $(LFLAGS) $(LIBS_PATH) -Wl,-m=$(basename $@).map -o $@ $(addprefix $(OBJDIR), $(OBJS)) $(LIBS) $(LNK_FILES) -Wl,--xml_link_info=$(basename $@).lnkxml
Evidence
The link command explicitly generates a .lnkxml file, but clean only removes the .out and
boot-image artifacts; .lnkxml is only removed by scrub, so it will remain after make clean.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[198-216]
examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[217-245]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`make clean` does not delete the linker-generated `*.lnkxml` file that is now produced by the link step (`--xml_link_info=...`). This leaves stale artifacts after a clean.
### Issue Context
The link step now emits `$(basename $@).lnkxml`, and `scrub` already removes `*.lnkxml`, but `clean` does not.
### Fix Focus Areas
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[198-216]
### Suggested fix
Add removal of the generated `.lnkxml` to the `clean` target (e.g., `$(RM) $(basename $(OUTNAME)).lnkxml` or a safe pattern like `$(RM) *.lnkxml` consistent with `scrub`).

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


View more (2)
6. CCS OTFA flag missing 🐞 Bug ≡ Correctness
Description
The AM26x ti-arm-clang makefiles now invoke genimage.py with --otfaConfigFile=$(oeconfig), but CCS
post-build makefile_ccs_bootimage_gen still invokes genimage.py without that argument, so
CCS-generated .mcelf ignores oeconfig and can differ from Make builds when OTFA is configured.
Code

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[R308-310]

+$(BOOTIMAGE_NAME_MCELF): $(OUTNAME)
@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)
+	$(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) --otfaConfigFile=$(oeconfig)
Evidence
The Makefile path explicitly introduces oeconfig and passes it to genimage.py, while the CCS
post-build script calls the same genimage tool without the OTFA argument; the CCS projectspec
confirms CCS uses that script for post-build image generation.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[30-32]
examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[308-311]
examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[80-85]
examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec[60-67]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
AM26x Makefile bootimage generation passes `--otfaConfigFile=$(oeconfig)` to `genimage.py`, but the CCS post-build bootimage generation path (`makefile_ccs_bootimage_gen`) does not. This creates a build-parity gap where CCS-generated MCELF images won’t reflect OTFA configuration.
### Issue Context
CCS projects call `makefile_ccs_bootimage_gen` via `postBuildStep` in `example.projectspec`, so this impacts developers using CCS to generate boot images.
### Fix Focus Areas
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[26-34]
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[80-84]
### What to change
1. Add `oeconfig?=None` (or equivalent) to `makefile_ccs_bootimage_gen` to match the Makefile behavior and allow override via command line.
2. Append `--otfaConfigFile=$(oeconfig)` to the `$(PYTHON) $(MCELF_IMAGE_GEN) ...` invocation in `makefile_ccs_bootimage_gen`.
3. Apply the same update across all AM26x `makefile_ccs_bootimage_gen` copies (am261x/am263px/am263x variants) to keep CCS and Make flows consistent.

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


7. HS MCELF not cleaned 🐞 Bug ☼ Reliability
Description
AM26x R5F ti-arm-clang/makefile now builds $(BOOTIMAGE_NAME_MCELF_HS) for HS devices, but
clean does not remove that file, leaving stale signed artifacts across rebuilds. This can cause
local/CI consumers to accidentally pick up an old .mcelf.hs from a previous build even after
running make clean.
Code

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[R42-46]

+TARGETS := $(BOOTIMAGE_NAME_MCELF)
ifeq ($(DEVICE_TYPE), HS)
-   TARGETS += $(BOOTIMAGE_NAME_HS)
+   TARGETS += $(BOOTIMAGE_NAME_MCELF_HS)
endif
Evidence
The makefile now adds $(BOOTIMAGE_NAME_MCELF_HS) to build targets for HS devices, but the clean
rule only removes the non-HS MCELF output, so the HS output is left behind after cleaning.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[35-46]
examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[205-215]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
AM26x R5F ti-arm-clang makefiles switched their build `TARGETS` to generate MulticoreELF (MCELF) artifacts, including a signed HS output (`*.mcelf.hs`) when `DEVICE_TYPE=HS`. The `clean` rule deletes `$(BOOTIMAGE_NAME_MCELF)` but not `$(BOOTIMAGE_NAME_MCELF_HS)`, leaving stale HS outputs behind.
## Issue Context
This pattern appears across many auto-generated AM26x makefiles under `examples/**` and `academy/**`.
## Fix Focus Areas
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[42-46]
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[205-215]
### What to change
- In `clean:`, add `$(RM) $(BOOTIMAGE_NAME_MCELF_HS)` (and optionally also remove other HS-only byproducts if applicable).
- Apply the same fix to all AM261x/AM263Px/AM263x `ti-arm-clang` makefiles that define `BOOTIMAGE_NAME_MCELF_HS` and add it to `TARGETS`.

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



Informational

8. Unused appimage/XIP variables 🐞 Bug ⚙ Maintainability
Description
After switching AM26x MCU+ makefiles to generate MCELF images, legacy variables for the removed
appimage/XIP pipeline (XIPGEN_CMD, MULTI_CORE_IMAGE_PARAMS*) remain but are not referenced
anywhere in the file. This dead configuration is misleading and increases maintenance risk when
future edits assume these parameters are still active.
Code

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[R305-310]

MULTI_CORE_IMAGE_PARAMS_XIP = \
$(BOOTIMAGE_RPRC_NAME_XIP)@$(BOOTIMAGE_CORE_ID_r5fss0-0) \
-$(BOOTIMAGE_NAME): $(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 !!!
+$(BOOTIMAGE_NAME_MCELF): $(OUTNAME)
@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)
+	$(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) --otfaConfigFile=$(oeconfig)
Evidence
In the updated makefile, XIPGEN_CMD and MULTI_CORE_IMAGE_PARAMS* only appear where they are
defined, while the only boot image rule uses MCELF_IMAGE_GEN instead.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[291-313]
examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[302-313]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
AM26x ti-arm-clang makefiles still define `XIPGEN_CMD` and `MULTI_CORE_IMAGE_PARAMS`/`MULTI_CORE_IMAGE_PARAMS_XIP`, but after the boot-image flow moved to MCELF (`genimage.py`), these variables are no longer used.
### Issue Context
This is dead configuration left behind from the older appimage/XIP generation pipeline.
### Fix Focus Areas
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile[291-307]
### Suggested fix
Either delete these unused variable blocks or add a short comment explaining they are intentionally retained (if they are expected to be reintroduced later).

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


9. Dead TARGETS config 🐞 Bug ⚙ Maintainability
Description
makefile_ccs_bootimage_gen appends values to TARGETS (including duplicate .mcelf.hs) but the
all rule does not depend on $(TARGETS), leaving dead/unused configuration that is easy to
misinterpret during future edits.
Code

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[R30-34]

TARGETS += $(BOOTIMAGE_NAME_MCELF)
TARGETS += $(BOOTIMAGE_NAME_MCELF_HS)
ifeq ($(DEVICE_TYPE), HS)
-   TARGETS += $(BOOTIMAGE_NAME_HS)
+   TARGETS += $(BOOTIMAGE_NAME_MCELF_HS)
endif
Evidence
The file defines and appends to TARGETS, but the all: target has no prerequisites and is
implemented as a direct recipe, so TARGETS is not used to control build behavior.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[26-34]
examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[70-83]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`makefile_ccs_bootimage_gen` builds up a `TARGETS` list (and redundantly adds the HS output), but the file’s `all:` rule is a phony recipe that never references `$(TARGETS)`. This makes `TARGETS` dead configuration and can mislead maintainers into thinking it controls what gets produced.
### Issue Context
This is a CCS post-build helper makefile; keeping unused `TARGETS` assignments increases maintenance risk and confusion.
### Fix Focus Areas
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[30-34]
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[76-86]
### Suggested fix
Choose one:
1) **Remove `TARGETS` entirely** (and the duplicate HS append) if it’s not intended to be used.
2) **Use it** by converting to `all: $(TARGETS)` and defining proper file targets/rules (and only add `$(BOOTIMAGE_NAME_MCELF_HS)` when `DEVICE_TYPE=HS`).

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


10. Release notes SDK range typo 🐞 Bug ≡ Correctness
Description
docs/release_notes.md lists AM26x compatible MCU+ SDK range as "11.0 - 26.0", which is an
invalid/typo range and will mislead users about supported versions. This is a user-facing
documentation correctness error in the compatibility table.
Code

docs/release_notes.md[75]

+| MCU+ SDK  | 11.1 - 12.0 | 11.0 - 26.0 | 11.0 - 26.0 | 11.0 - 26.0 | N/A   | 11.1 - 12.0 |
Evidence
The PR modifies the compatibility table row to include the string 11.0 - 26.0 for AM26x devices,
which is clearly inconsistent with nearby version ranges and appears erroneous.

docs/release_notes.md[73-76]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The v2026.01.00 compatibility table shows AM26x (am261x/am263px/am263x) MCU+ SDK range as `11.0 - 26.0`, which appears to be a typo.
## Issue Context
The same table uses formats like `10.2 only` and `11.1 - 12.0` for other devices.
## Fix Focus Areas
- docs/release_notes.md[73-76]
### What to change
- Replace `11.0 - 26.0` with the intended compatibility statement (e.g., `11.0 only` or `11.0 - 12.0`, whichever is accurate for this release).

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


View more (1)
11. Dangling RPRC var references 🐞 Bug ⚙ Maintainability
Description
AM26x makefile_ccs_bootimage_gen removes BOOTIMAGE_RPRC_NAME* definitions but still defines
MULTI_CORE_IMAGE_PARAMS* using those variables, leaving incorrect/empty expansions and dead
configuration. This makes the CCS post-build makefile misleading and brittle if multicoreImageGen
steps are reintroduced.
Code

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[L28-33]

-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
Evidence
The updated AM26x CCS bootimage makefile defines only MCELF outputs, but still declares
MULTI_CORE_IMAGE_PARAMS* in terms of BOOTIMAGE_RPRC_NAME* variables that are not defined in this
file anymore.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[26-34]
examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[70-75]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
In AM26x `makefile_ccs_bootimage_gen`, the PR removed the `BOOTIMAGE_RPRC_NAME*` variable definitions (as part of moving away from appimage/RPRC), but the file still defines `MULTI_CORE_IMAGE_PARAMS`/`MULTI_CORE_IMAGE_PARAMS_XIP` referencing these now-undefined variables.
## Issue Context
These params are remnants of the old multicoreImageGen flow and are not used by the current MCELF-only commands, but they are confusing and can break future edits.
## Fix Focus Areas
- examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen[26-75]
### What to change
- Either remove the `MULTI_CORE_IMAGE_PARAMS*` blocks (and any other unused appimage/RPRC-related variables like `XIPGEN_CMD` if not needed), or reintroduce the corresponding `BOOTIMAGE_RPRC_NAME*` definitions and keep them consistent.
- Apply consistently across AM26x `makefile_ccs_bootimage_gen` files.

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


Grey Divider

ⓘ You are approaching your monthly quota for Qodo. Upgrade your plan

Qodo Logo

Comment thread .github/workflows/makefile.yml
Comment thread docs/release_notes.md Outdated
@nsaulnier-ti

nsaulnier-ti commented Jul 5, 2026

Copy link
Copy Markdown
Collaborator Author

all CI makefile & CCS builds succeed with AM26x devices using SDK 11.0. Now bump to SDK 11.1 and re-test.
https://github.com/TexasInstruments/open-pru/actions/runs/28726316791/job/85184280316?pr=151

@qodo-code-review

qodo-code-review Bot commented Jul 5, 2026

Copy link
Copy Markdown

PR Summary by Qodo

AM26x: Port FreeRTOS R5F projects to MCU+ SDK 11.0+ (MCELF + CI bumps)

✨ Enhancement ⚙️ Configuration changes 📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Aligns all AM26x FreeRTOS R5F build artifacts with MCU+ SDK 11.0+ conventions (MCELF, XML link
 info, FreeRTOS defines).
• Updates CCS project generation to match the new MCELF-only boot image flow and renamed libraries.
• Bumps CI tool and SDK versions (AM26x→26.0, AM243x/AM64x→12.0, SysConfig→1.27.0) and updates
 release documentation.
Diagram

graph TD
  CI(("GitHub CI")) --> WF["Workflows"] --> SDK{{"MCU+ SDK"}}
  CI --> MF["AM26x makefiles"] --> TOOLS(["Compiler/Linker"]) --> OUT["ELF .out"] --> GEN["genimage.py"] --> IMG["MCELF images"]
  CCS(("CCS Build")) --> PS["example.projectspec"] --> BOOT["ccs bootimage mk"] --> GEN
  MF --> SDK
  BOOT --> SDK
  TOOLS --> SDK
  subgraph Legend
    direction LR
    _ci(("CI / IDE")) ~~~ _file["Repo file"] ~~~ _proc(["Tool"]) ~~~ _ext{{"External SDK"}}
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Conditional support for SDK 10.2 and 11.0+ in a single makefile
  • ➕ Maintains backwards compatibility for existing users pinned to 10.2.
  • ➕ Avoids maintaining separate branches/tags for older SDK users.
  • ➖ Significant complexity/risk: branching boot-image tooling, library names, and flags increases maintenance burden.
  • ➖ Harder to validate across all device/SDK combinations; CI matrix growth likely.
2. Template/generator for repeated makefiles and CCS specs
  • ➕ Reduces the cost of future SDK ports by regenerating 44+ near-identical files.
  • ➕ Makes it easier to enforce consistent flags (e.g., XML link info, FreeRTOS define).
  • ➖ Introduces a new build-time or repo-time generation toolchain.
  • ➖ Reviewers/users must trust the generator; debugging becomes less direct.
3. Vendor-sync approach (copy reference SDK makefiles verbatim + thin overlays)
  • ➕ Maximizes alignment with TI SDK reference projects; fewer divergent edits.
  • ➕ Easier to diff against the SDK on future upgrades.
  • ➖ May require additional overlay mechanism to inject OpenPRU-specific paths/targets.
  • ➖ Can increase indirection for users reading project-local makefiles.

Recommendation: The PR’s approach (directly aligning project makefiles/CCS specs to the SDK 11.0 reference behavior and documenting how to revert for older SDKs) is the best trade-off. The boot-image tooling changed materially in SDK 11.0 (appimage → MCELF via genimage.py), so carrying dual-path conditional logic would add long-term complexity and validation burden. If future SDK churn continues, introducing a small generator/template system could be considered, but it’s not necessary to land this port safely now.

Files changed (139) +1154 / -3019

Documentation (3) +84 / -13
release_notes.mdAdd v2026.02.00 release notes (AM26x SDK 11.0+ support) +52/-2

Add v2026.02.00 release notes (AM26x SDK 11.0+ support)

• Adds a new v2026.02.00 section documenting AM26x MCU+ SDK 11.0+ support and CI SDK bumps. Notes a documentation organization change (academy links in README).

docs/release_notes.md

using_older_sdks_with_open_pru.mdDocument reverting AM26x SDK 11.0 makefile changes for older SDKs +31/-10

Document reverting AM26x SDK 11.0 makefile changes for older SDKs

• Extends the compatibility/reversion guide with a new AM26x-specific reversion section and updates tables to include required modifications for AM26x SDK 10.x. Minor punctuation/formatting tweaks improve clarity.

docs/using_older_sdks_with_open_pru.md

pru_load_bin_copyright.hUpdate copyright year to 2026 +1/-1

Update copyright year to 2026

• Updates the header comment copyright year.

source/firmware/pru_load_bin_copyright.h

Other (136) +1070 / -3006
ccs_build.ymlBump CCS CI to SysConfig 1.27.0 and newer MCU+ SDKs +32/-32

Bump CCS CI to SysConfig 1.27.0 and newer MCU+ SDKs

• Updates the CCS CI cache keys and installation paths to SysConfig 1.27.0. Bumps the tested MCU+ SDK versions for AM243x/AM64x and AM26x devices.

.github/workflows/ccs_build.yml

makefile.ymlBump makefile CI to SysConfig 1.27.0 and newer MCU+ SDKs +24/-24

Bump makefile CI to SysConfig 1.27.0 and newer MCU+ SDKs

• Updates the makefile CI tool cache and SYSCFG_PATH to SysConfig 1.27.0. Updates the matrix to test AM243x/AM64x 12.0 and AM26x 26.0 SDK installers/URLs.

.github/workflows/makefile.yml

package.tirex.jsonBump TI-Rex package version to 2026.02.00 +1/-1

Bump TI-Rex package version to 2026.02.00

• Updates the TI-Rex package metadata version to match the new repo release tag.

.metadata/.tirex/package.tirex.json

product.jsonBump product version to 2026.02.00 +1/-1

Bump product version to 2026.02.00

• Updates the OpenPRU product metadata version used by tooling.

.metadata/product.json

makefilePort AM261x FreeRTOS makefile to SDK 11.0+ MCELF flow +16/-33

Port AM261x FreeRTOS makefile to SDK 11.0+ MCELF flow

• Aligns flags/library names with SDK 11.0+ (adds OS_FREERTOS, .freertos libs, XML link info/hash, oeconfig OTFA). Switches boot image generation from appimage to MCELF via genimage.py and cleans *.lnkxml artifacts.

academy/getting_started_labs/assembly_code/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genMake CCS post-build generate MCELF only (AM261x) +1/-30

Make CCS post-build generate MCELF only (AM261x)

• Removes legacy appimage/out2rprc/multicoreImageGen steps and keeps MCELF generation/signing outputs consistent with SDK 11.0+.

academy/getting_started_labs/assembly_code/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate CCS projectspec flags/libs for SDK 11.0+ (AM261x) +6/-4

Update CCS projectspec flags/libs for SDK 11.0+ (AM261x)

• Adds -DOS_FREERTOS and --gen_xml_func_hash and updates drivers/board library names to the .freertos infix to match SDK 11.0+.

academy/getting_started_labs/assembly_code/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort AM261x-SOM FreeRTOS makefile to SDK 11.0+ MCELF flow +16/-33

Port AM261x-SOM FreeRTOS makefile to SDK 11.0+ MCELF flow

• Applies the same SDK 11.0+ build-system updates (flags, libs, XML info, oeconfig, MCELF boot images) for the SOM variant.

academy/getting_started_labs/assembly_code/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genMake CCS post-build generate MCELF only (AM261x-SOM) +1/-30

Make CCS post-build generate MCELF only (AM261x-SOM)

• Removes appimage generation and keeps MCELF generation/signing consistent with SDK 11.0+.

academy/getting_started_labs/assembly_code/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate CCS projectspec flags/libs for SDK 11.0+ (AM261x-SOM) +6/-4

Update CCS projectspec flags/libs for SDK 11.0+ (AM261x-SOM)

• Adds FreeRTOS define and XML hash option; updates library naming for SDK 11.0+.

academy/getting_started_labs/assembly_code/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort AM263Px-CC FreeRTOS makefile to SDK 11.0+ MCELF flow +16/-33

Port AM263Px-CC FreeRTOS makefile to SDK 11.0+ MCELF flow

• Updates compiler/linker flags and library names for SDK 11.0+ and switches to MCELF boot image generation with oeconfig OTFA support.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genMake CCS post-build generate MCELF only (AM263Px-CC) +1/-30

Make CCS post-build generate MCELF only (AM263Px-CC)

• Drops legacy appimage tooling and keeps MCELF generation/signing outputs.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate CCS projectspec flags/libs for SDK 11.0+ (AM263Px-CC) +6/-4

Update CCS projectspec flags/libs for SDK 11.0+ (AM263Px-CC)

• Adds -DOS_FREERTOS and --gen_xml_func_hash and updates .freertos library names.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort AM263Px-LP FreeRTOS makefile to SDK 11.0+ MCELF flow +16/-33

Port AM263Px-LP FreeRTOS makefile to SDK 11.0+ MCELF flow

• Aligns build flags/libs with SDK 11.0+ and updates boot image generation to MCELF with XML link info artifacts.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genMake CCS post-build generate MCELF only (AM263Px-LP) +1/-30

Make CCS post-build generate MCELF only (AM263Px-LP)

• Removes appimage generation steps and keeps MCELF generation/signing.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate CCS projectspec flags/libs for SDK 11.0+ (AM263Px-LP) +6/-4

Update CCS projectspec flags/libs for SDK 11.0+ (AM263Px-LP)

• Adds FreeRTOS define and XML hash option; updates .freertos library names.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort AM263x-CC FreeRTOS makefile to SDK 11.0+ MCELF flow +16/-33

Port AM263x-CC FreeRTOS makefile to SDK 11.0+ MCELF flow

• Applies SDK 11.0+ required build-system updates (flags, .freertos libs, XML link info, oeconfig) and switches boot image outputs to MCELF.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genMake CCS post-build generate MCELF only (AM263x-CC) +1/-30

Make CCS post-build generate MCELF only (AM263x-CC)

• Keeps MCELF generation and removes legacy appimage steps.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate CCS projectspec flags/libs for SDK 11.0+ (AM263x-CC) +6/-4

Update CCS projectspec flags/libs for SDK 11.0+ (AM263x-CC)

• Adds -DOS_FREERTOS and --gen_xml_func_hash and updates library names to .freertos infix.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort AM263x-LP FreeRTOS makefile to SDK 11.0+ MCELF flow +16/-33

Port AM263x-LP FreeRTOS makefile to SDK 11.0+ MCELF flow

• Aligns build flags/libs with SDK 11.0+ and switches to MCELF boot image generation and cleanup of *.lnkxml files.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genMake CCS post-build generate MCELF only (AM263x-LP) +1/-30

Make CCS post-build generate MCELF only (AM263x-LP)

• Removes appimage generation and keeps MCELF generation/signing outputs consistent.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate CCS projectspec flags/libs for SDK 11.0+ (AM263x-LP) +6/-4

Update CCS projectspec flags/libs for SDK 11.0+ (AM263x-LP)

• Updates flags and library names for SDK 11.0+ FreeRTOS builds.

academy/getting_started_labs/assembly_code/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_assembly AM261x-LP makefile to SDK 11.0+ +16/-33

Port c_and_assembly AM261x-LP makefile to SDK 11.0+

• Updates build flags/libraries and switches boot image generation to MCELF per SDK 11.0+. Adds XML build outputs and oeconfig OTFA parameter.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_assembly AM261x-LP) +1/-30

CCS MCELF-only post-build (c_and_assembly AM261x-LP)

• Drops legacy appimage steps; retains MCELF generation/signing for SDK 11.0+.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_assembly AM261x-LP) +6/-4

Update projectspec for SDK 11.0+ (c_and_assembly AM261x-LP)

• Adds -DOS_FREERTOS and --gen_xml_func_hash and updates .freertos library names.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_assembly AM261x-SOM makefile to SDK 11.0+ +16/-33

Port c_and_assembly AM261x-SOM makefile to SDK 11.0+

• Applies SDK 11.0+ makefile changes for FreeRTOS R5F builds and MCELF boot images.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_assembly AM261x-SOM) +1/-30

CCS MCELF-only post-build (c_and_assembly AM261x-SOM)

• Removes appimage tooling and keeps MCELF generation/signing paths.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_assembly AM261x-SOM) +6/-4

Update projectspec for SDK 11.0+ (c_and_assembly AM261x-SOM)

• Updates build flags and library names to match SDK 11.0+ FreeRTOS conventions.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_assembly AM263Px-CC makefile to SDK 11.0+ +16/-33

Port c_and_assembly AM263Px-CC makefile to SDK 11.0+

• Updates libraries/flags and switches boot image outputs to MCELF for SDK 11.0+. Adds XML link info/hash and oeconfig support.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_assembly AM263Px-CC) +1/-30

CCS MCELF-only post-build (c_and_assembly AM263Px-CC)

• Removes appimage generation and retains MCELF generation/signing behavior.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_assembly AM263Px-CC) +6/-4

Update projectspec for SDK 11.0+ (c_and_assembly AM263Px-CC)

• Adds FreeRTOS define and XML hash option; updates drivers/board libs to .freertos.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_assembly AM263Px-LP makefile to SDK 11.0+ +16/-33

Port c_and_assembly AM263Px-LP makefile to SDK 11.0+

• Aligns build to SDK 11.0+ and switches boot image generation to MCELF.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_assembly AM263Px-LP) +1/-30

CCS MCELF-only post-build (c_and_assembly AM263Px-LP)

• Drops appimage path and keeps MCELF generation/signing outputs.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_assembly AM263Px-LP) +6/-4

Update projectspec for SDK 11.0+ (c_and_assembly AM263Px-LP)

• Updates flags and library names for SDK 11.0+ FreeRTOS builds.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_assembly AM263x-CC makefile to SDK 11.0+ +16/-33

Port c_and_assembly AM263x-CC makefile to SDK 11.0+

• Updates makefile to SDK 11.0+ expectations and uses MCELF boot image generation.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_assembly AM263x-CC) +1/-30

CCS MCELF-only post-build (c_and_assembly AM263x-CC)

• Removes legacy appimage generation steps; retains MCELF generation/signing.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_assembly AM263x-CC) +6/-4

Update projectspec for SDK 11.0+ (c_and_assembly AM263x-CC)

• Adds required FreeRTOS/XML flags and updates library naming to .freertos.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_assembly AM263x-LP makefile to SDK 11.0+ +16/-33

Port c_and_assembly AM263x-LP makefile to SDK 11.0+

• Aligns flags/libraries and boot-image generation with SDK 11.0+ MCELF flow.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_assembly AM263x-LP) +1/-30

CCS MCELF-only post-build (c_and_assembly AM263x-LP)

• Keeps MCELF generation and removes appimage steps.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_assembly AM263x-LP) +6/-4

Update projectspec for SDK 11.0+ (c_and_assembly AM263x-LP)

• Updates flags and library names to match SDK 11.0+ FreeRTOS conventions.

academy/getting_started_labs/c_and_assembly/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_inline_assembly AM261x-LP makefile to SDK 11.0+ +16/-33

Port c_and_inline_assembly AM261x-LP makefile to SDK 11.0+

• Updates FreeRTOS R5F build flags/libraries and switches to MCELF boot image generation for SDK 11.0+. Adds XML link info/hash and oeconfig.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_inline_assembly AM261x-LP) +1/-30

CCS MCELF-only post-build (c_and_inline_assembly AM261x-LP)

• Removes appimage generation and keeps MCELF generation/signing output paths.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_inline_assembly AM261x-LP) +6/-4

Update projectspec for SDK 11.0+ (c_and_inline_assembly AM261x-LP)

• Adds -DOS_FREERTOS and --gen_xml_func_hash; updates libraries to .freertos infix.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_inline_assembly AM261x-SOM makefile to SDK 11.0+ +16/-33

Port c_and_inline_assembly AM261x-SOM makefile to SDK 11.0+

• Applies SDK 11.0+ makefile changes (flags, libs, MCELF outputs, XML link info) for the SOM target.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_inline_assembly AM261x-SOM) +1/-30

CCS MCELF-only post-build (c_and_inline_assembly AM261x-SOM)

• Drops appimage path and keeps MCELF generation/signing for SDK 11.0+.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_inline_assembly AM261x-SOM) +6/-4

Update projectspec for SDK 11.0+ (c_and_inline_assembly AM261x-SOM)

• Updates defines/linker options and library naming for SDK 11.0+.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_inline_assembly AM263Px-CC makefile to SDK 11.0+ +16/-33

Port c_and_inline_assembly AM263Px-CC makefile to SDK 11.0+

• Aligns build system and boot-image generation with SDK 11.0+ MCELF flow (flags, .freertos libs, XML artifacts, oeconfig).

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_inline_assembly AM263Px-CC) +1/-30

CCS MCELF-only post-build (c_and_inline_assembly AM263Px-CC)

• Removes appimage generation; retains MCELF generation/signing.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_inline_assembly AM263Px-CC) +6/-4

Update projectspec for SDK 11.0+ (c_and_inline_assembly AM263Px-CC)

• Adds required flags and updates driver/board libs to include .freertos infix.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_inline_assembly AM263Px-LP makefile to SDK 11.0+ +16/-33

Port c_and_inline_assembly AM263Px-LP makefile to SDK 11.0+

• Updates flags/libs and boot image generation to MCELF for SDK 11.0+. Adds XML link info/hash and oeconfig support.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_inline_assembly AM263Px-LP) +1/-30

CCS MCELF-only post-build (c_and_inline_assembly AM263Px-LP)

• Drops appimage path; keeps MCELF generation/signing outputs.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_inline_assembly AM263Px-LP) +6/-4

Update projectspec for SDK 11.0+ (c_and_inline_assembly AM263Px-LP)

• Updates build options and library names to match SDK 11.0+ FreeRTOS builds.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_inline_assembly AM263x-CC makefile to SDK 11.0+ +16/-33

Port c_and_inline_assembly AM263x-CC makefile to SDK 11.0+

• Aligns FreeRTOS build flags/libraries and switches boot-image generation to MCELF for SDK 11.0+. Adds XML link info/hash.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_inline_assembly AM263x-CC) +1/-30

CCS MCELF-only post-build (c_and_inline_assembly AM263x-CC)

• Removes appimage generation steps; retains MCELF generation/signing.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_inline_assembly AM263x-CC) +6/-4

Update projectspec for SDK 11.0+ (c_and_inline_assembly AM263x-CC)

• Adds -DOS_FREERTOS and --gen_xml_func_hash and updates libraries to .freertos infix.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_and_inline_assembly AM263x-LP makefile to SDK 11.0+ +16/-33

Port c_and_inline_assembly AM263x-LP makefile to SDK 11.0+

• Updates build flags/libs and switches boot-image generation to MCELF; cleans XML link-info artifacts.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_and_inline_assembly AM263x-LP) +1/-30

CCS MCELF-only post-build (c_and_inline_assembly AM263x-LP)

• Removes appimage generation and keeps MCELF generation/signing outputs.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_and_inline_assembly AM263x-LP) +6/-4

Update projectspec for SDK 11.0+ (c_and_inline_assembly AM263x-LP)

• Updates compile/link options and .freertos libraries for SDK 11.0+.

academy/getting_started_labs/c_and_inline_assembly/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_code AM261x-LP makefile to SDK 11.0+ +16/-33

Port c_code AM261x-LP makefile to SDK 11.0+

• Updates FreeRTOS build flags/libraries to match SDK 11.0+ and switches boot image generation to MCELF with oeconfig OTFA support and XML link-info output.

academy/getting_started_labs/c_code/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_code AM261x-LP) +1/-30

CCS MCELF-only post-build (c_code AM261x-LP)

• Removes legacy appimage generation steps and keeps MCELF generation/signing outputs.

academy/getting_started_labs/c_code/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_code AM261x-LP) +6/-4

Update projectspec for SDK 11.0+ (c_code AM261x-LP)

• Adds -DOS_FREERTOS and --gen_xml_func_hash and updates driver/board libs to .freertos naming.

academy/getting_started_labs/c_code/solution/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_code AM261x-SOM makefile to SDK 11.0+ +16/-33

Port c_code AM261x-SOM makefile to SDK 11.0+

• Applies the same SDK 11.0+ build-script changes (flags, .freertos libs, XML link info, MCELF output) for SOM projects.

academy/getting_started_labs/c_code/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_code AM261x-SOM) +1/-30

CCS MCELF-only post-build (c_code AM261x-SOM)

• Keeps MCELF generation/signing and removes appimage tooling.

academy/getting_started_labs/c_code/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_code AM261x-SOM) +6/-4

Update projectspec for SDK 11.0+ (c_code AM261x-SOM)

• Updates compile/link flags and library naming to align with SDK 11.0+ FreeRTOS builds.

academy/getting_started_labs/c_code/solution/mcuplus/am261x-som/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_code AM263Px-CC makefile to SDK 11.0+ +16/-33

Port c_code AM263Px-CC makefile to SDK 11.0+

• Updates flags, library naming, and boot image generation to the SDK 11.0+ MCELF flow. Adds XML link-info/hash and oeconfig support.

academy/getting_started_labs/c_code/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_code AM263Px-CC) +1/-30

CCS MCELF-only post-build (c_code AM263Px-CC)

• Removes appimage tooling and retains MCELF generation/signing outputs.

academy/getting_started_labs/c_code/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_code AM263Px-CC) +6/-4

Update projectspec for SDK 11.0+ (c_code AM263Px-CC)

• Adds required FreeRTOS/XML linker options and updates libraries to .freertos infix.

academy/getting_started_labs/c_code/solution/mcuplus/am263px-cc/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_code AM263Px-LP makefile to SDK 11.0+ +16/-33

Port c_code AM263Px-LP makefile to SDK 11.0+

• Aligns makefile behavior with SDK 11.0+ (flags, .freertos libs, XML output) and switches boot image generation to MCELF.

academy/getting_started_labs/c_code/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_code AM263Px-LP) +1/-30

CCS MCELF-only post-build (c_code AM263Px-LP)

• Drops legacy appimage generation and retains MCELF generation/signing output paths.

academy/getting_started_labs/c_code/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_code AM263Px-LP) +6/-4

Update projectspec for SDK 11.0+ (c_code AM263Px-LP)

• Updates compile/link options and library names for SDK 11.0+ FreeRTOS builds.

academy/getting_started_labs/c_code/solution/mcuplus/am263px-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_code AM263x-CC makefile to SDK 11.0+ +16/-33

Port c_code AM263x-CC makefile to SDK 11.0+

• Updates build flags, library names, and boot image generation to MCELF for SDK 11.0+. Adds XML link-info/hash and oeconfig.

academy/getting_started_labs/c_code/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_code AM263x-CC) +1/-30

CCS MCELF-only post-build (c_code AM263x-CC)

• Removes legacy appimage tooling and keeps MCELF generation/signing steps.

academy/getting_started_labs/c_code/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_code AM263x-CC) +6/-4

Update projectspec for SDK 11.0+ (c_code AM263x-CC)

• Adds -DOS_FREERTOS and --gen_xml_func_hash and updates drivers/board libs to .freertos infix.

academy/getting_started_labs/c_code/solution/mcuplus/am263x-cc/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort c_code AM263x-LP makefile to SDK 11.0+ +16/-33

Port c_code AM263x-LP makefile to SDK 11.0+

• Aligns build flags/libs and boot-image generation with SDK 11.0+ MCELF flow and XML link-info cleanup.

academy/getting_started_labs/c_code/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (c_code AM263x-LP) +1/-30

CCS MCELF-only post-build (c_code AM263x-LP)

• Keeps MCELF generation/signing and removes appimage generation steps.

academy/getting_started_labs/c_code/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (c_code AM263x-LP) +6/-4

Update projectspec for SDK 11.0+ (c_code AM263x-LP)

• Updates build options and library names to match SDK 11.0+ conventions.

academy/getting_started_labs/c_code/solution/mcuplus/am263x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort GPIO toggle AM261x-LP makefile to SDK 11.0+ +16/-33

Port GPIO toggle AM261x-LP makefile to SDK 11.0+

• Updates FreeRTOS build flags, library names, and boot-image generation to MCELF for SDK 11.0+. Adds XML link-info/hash and oeconfig.

academy/gpio/gpio_toggle/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (GPIO toggle AM261x-LP) +1/-30

CCS MCELF-only post-build (GPIO toggle AM261x-LP)

• Removes legacy appimage generation; retains MCELF generation/signing behavior.

academy/gpio/gpio_toggle/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (GPIO toggle AM261x-LP) +6/-4

Update projectspec for SDK 11.0+ (GPIO toggle AM261x-LP)

• Adds required FreeRTOS/XML linker options and updates libs to .freertos infix.

academy/gpio/gpio_toggle/am261x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort GPIO toggle AM263Px-LP makefile to SDK 11.0+ +16/-33

Port GPIO toggle AM263Px-LP makefile to SDK 11.0+

• Aligns build flags/libs and boot-image generation with SDK 11.0+ MCELF flow.

academy/gpio/gpio_toggle/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (GPIO toggle AM263Px-LP) +1/-30

CCS MCELF-only post-build (GPIO toggle AM263Px-LP)

• Drops appimage generation and keeps MCELF generation/signing outputs.

academy/gpio/gpio_toggle/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (GPIO toggle AM263Px-LP) +6/-4

Update projectspec for SDK 11.0+ (GPIO toggle AM263Px-LP)

• Updates compile/link options and .freertos library naming for SDK 11.0+.

academy/gpio/gpio_toggle/am263px-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort GPIO toggle AM263x-LP makefile to SDK 11.0+ +16/-33

Port GPIO toggle AM263x-LP makefile to SDK 11.0+

• Updates build flags, library names, and boot-image generation to MCELF for SDK 11.0+. Adds XML link-info/hash and oeconfig support.

academy/gpio/gpio_toggle/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (GPIO toggle AM263x-LP) +1/-30

CCS MCELF-only post-build (GPIO toggle AM263x-LP)

• Removes appimage tooling and retains MCELF generation/signing steps.

academy/gpio/gpio_toggle/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (GPIO toggle AM263x-LP) +6/-4

Update projectspec for SDK 11.0+ (GPIO toggle AM263x-LP)

• Adds FreeRTOS define and XML hash option; updates libraries to .freertos naming.

academy/gpio/gpio_toggle/am263x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort INTC MCU AM261x-LP makefile to SDK 11.0+ +16/-33

Port INTC MCU AM261x-LP makefile to SDK 11.0+

• Aligns build system with SDK 11.0+ conventions and switches boot image generation to MCELF with XML link-info artifacts and oeconfig.

academy/intc/intc_mcu/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (INTC MCU AM261x-LP) +1/-30

CCS MCELF-only post-build (INTC MCU AM261x-LP)

• Drops legacy appimage steps; retains MCELF generation/signing outputs for SDK 11.0+.

academy/intc/intc_mcu/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (INTC MCU AM261x-LP) +6/-4

Update projectspec for SDK 11.0+ (INTC MCU AM261x-LP)

• Adds -DOS_FREERTOS and --gen_xml_func_hash and updates driver/board libs to .freertos infix.

academy/intc/intc_mcu/am261x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort INTC MCU AM263Px-CC makefile to SDK 11.0+ +16/-33

Port INTC MCU AM263Px-CC makefile to SDK 11.0+

• Updates compiler/linker options, library names, and boot image generation to the SDK 11.0+ MCELF flow.

academy/intc/intc_mcu/am263px-cc/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (INTC MCU AM263Px-CC) +1/-30

CCS MCELF-only post-build (INTC MCU AM263Px-CC)

• Removes appimage generation and retains MCELF generation/signing behavior.

academy/intc/intc_mcu/am263px-cc/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (INTC MCU AM263Px-CC) +6/-4

Update projectspec for SDK 11.0+ (INTC MCU AM263Px-CC)

• Adds required FreeRTOS/XML flags and updates libs to .freertos naming.

academy/intc/intc_mcu/am263px-cc/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort INTC MCU AM263Px-LP makefile to SDK 11.0+ +16/-33

Port INTC MCU AM263Px-LP makefile to SDK 11.0+

• Aligns build scripts with SDK 11.0+ and switches to MCELF boot-image generation; adds XML link-info cleanup.

academy/intc/intc_mcu/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (INTC MCU AM263Px-LP) +1/-30

CCS MCELF-only post-build (INTC MCU AM263Px-LP)

• Drops legacy appimage generation steps; keeps MCELF generation/signing outputs.

academy/intc/intc_mcu/am263px-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (INTC MCU AM263Px-LP) +6/-4

Update projectspec for SDK 11.0+ (INTC MCU AM263Px-LP)

• Adds -DOS_FREERTOS and --gen_xml_func_hash; updates libs to .freertos infix.

academy/intc/intc_mcu/am263px-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort INTC MCU AM263x-CC makefile to SDK 11.0+ +16/-33

Port INTC MCU AM263x-CC makefile to SDK 11.0+

• Updates flags/libraries and boot-image generation to MCELF for SDK 11.0+. Adds XML build outputs and oeconfig support.

academy/intc/intc_mcu/am263x-cc/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (INTC MCU AM263x-CC) +1/-30

CCS MCELF-only post-build (INTC MCU AM263x-CC)

• Removes appimage tooling and retains MCELF generation/signing steps.

academy/intc/intc_mcu/am263x-cc/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (INTC MCU AM263x-CC) +6/-4

Update projectspec for SDK 11.0+ (INTC MCU AM263x-CC)

• Adds required FreeRTOS/XML flags and updates libraries to .freertos naming.

academy/intc/intc_mcu/am263x-cc/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort INTC MCU AM263x-LP makefile to SDK 11.0+ +16/-33

Port INTC MCU AM263x-LP makefile to SDK 11.0+

• Aligns makefile with SDK 11.0+ (flags, .freertos libs, XML link-info) and uses MCELF boot-image generation.

academy/intc/intc_mcu/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (INTC MCU AM263x-LP) +1/-30

CCS MCELF-only post-build (INTC MCU AM263x-LP)

• Drops appimage generation steps; retains MCELF generation/signing output paths.

academy/intc/intc_mcu/am263x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (INTC MCU AM263x-LP) +6/-4

Update projectspec for SDK 11.0+ (INTC MCU AM263x-LP)

• Adds -DOS_FREERTOS and --gen_xml_func_hash and updates libraries to .freertos naming.

academy/intc/intc_mcu/am263x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort empty example AM261x-LP makefile to SDK 11.0+ +16/-33

Port empty example AM261x-LP makefile to SDK 11.0+

• Updates flags/libs (FreeRTOS define, .freertos libs, XML link info/hash, oeconfig) and switches boot image generation to MCELF.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile

makefile_ccs_bootimage_genCCS MCELF-only post-build (empty AM261x-LP) +1/-30

CCS MCELF-only post-build (empty AM261x-LP)

• Removes appimage generation steps and keeps MCELF generation/signing outputs for SDK 11.0+.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/makefile_ccs_bootimage_gen

example.projectspecUpdate projectspec for SDK 11.0+ (empty AM261x-LP) +6/-4

Update projectspec for SDK 11.0+ (empty AM261x-LP)

• Adds FreeRTOS define and XML hash option; updates libraries to .freertos naming.

examples/empty/mcuplus/am261x-lp/r5fss0-0_freertos/ti-arm-clang/example.projectspec

makefilePort empty example AM261x-SOM makefile to SDK 11.0+ +16/-33

Port empty example AM261x-SOM makefile to SDK 11.0+

• Applies SDK 11.0+ build-script changes and switches boot-image generation to MCELF; adds XML link-info cleanup.

<a href='https://github.com/TexasInstruments/open-pru/pull/151/files#diff-c084160cbd54e64...

@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit be5c69f

@nsaulnier-ti

Copy link
Copy Markdown
Collaborator Author

@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 5941ed7

@nsaulnier-ti nsaulnier-ti force-pushed the a0226750_am26x_port_sdk11_0 branch from 5941ed7 to 7941601 Compare July 5, 2026 02:35
@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 7941601

@pratheesh

Copy link
Copy Markdown
Contributor

Not a blocker for this PR, but while comparing the AM26x makefiles I noticed a small pre-existing robustness gap that this branch also carries, worth a one-line hardening:

In the leaf makefiles, generated/linker.cmd is listed in LNK_FILES_common (a prerequisite of $(OUTNAME)), but it is not in SYSCFG_GEN_FILES — so it has no explicit make rule and is only produced as a side effect of the $(SYSCFG_GEN_FILES): syscfg recipe. Real serial builds are fine (SysConfig emits linker.cmd while the generated .c sources are built), but make -n, aggressive -j, or certain incremental states can trip:

make: *** No rule to make target 'generated/linker.cmd', needed by 'empty.release.out'.  Stop.

One-line fix per leaf makefile — add it to the SysConfig outputs so the dependency has a rule:

SYSCFG_GEN_FILES+=generated/linker.cmd generated/linker_defines.h

(SysConfig already emits both files, so nothing else changes.) This is orthogonal to the SDK-11 port itself and applies repo-wide, not just AM26x. Happy to send it as a small standalone follow-up PR on top of this once it lands, if you'd prefer to keep #151 focused on the SDK bump.

nsaulnier-ti and others added 5 commits July 5, 2026 08:58
Updates all 44 AM26x FreeRTOS R5F makefiles (am261x, am263px, am263x)
to build with MCU+ SDK 11.0. Breaks backwards compatibility with SDK 10.2.

Changes per makefile (aligned to SDK 11.0 pru_io reference makefiles):
- Add -DOS_FREERTOS to DEFINES_common
- Add .freertos. infix to drivers and board library names
- Add -Wl,--gen_xml_func_hash to LFLAGS_common
- Add $(INCLUDES) $(DEFINES) to .S assembly compile rule
- Add --xml_link_info=<name>.lnkxml to linker command
- Remove MULTI_CORE_IMAGE_GEN and OUTRPRC_CMD (elf2rprc.js removed in SDK 11.0)
- Add oeconfig?=None variable
- Replace appimage boot target with MCELF target (genimage.py)
- Add --otfaConfigFile=$(oeconfig) to MCELF image generation
- Update HS signing rule to use BOOTIMAGE_NAME_MCELF
- Add $(RM) *.lnkxml to scrub target (matches SDK convention)

Validated: clean build PASS on am261x, am263px, am263x with SDK 11.0;
cross-entity regression PASS on am243x, am64x, am62x (unchanged devices).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switch makefile_ccs_bootimage_gen from dual appimage+MCELF generation
(SDK 10.2) to MCELF-only (SDK 11.0+). Update example.projectspec with
-DOS_FREERTOS, --gen_xml_func_hash, and .freertos. library name infix
required by SDK 11.0+.

Validated with full CCS builds (import + build) for SDK 11.0, 11.1,
and 26.0. All 44 AM26x R5F projects pass; am243x, am64x, am62x
regressions clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
AM243x: 11.02.00.24 → 12.00.00.26
AM261x: 10.02.00.15 → 11.00.00.29
AM263x: 10.02.00.13 → 11.00.00.19
AM263Px: 10.02.00.15 → 11.00.00.19
AM64x: 11.02.00.24 → 12.00.00.27

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
AM261x: 11.00.00.29 → 11_01_00_19
AM263x: 11.00.00.19 → 11_01_00_19
AM263Px: 11.00.00.19 → 11_01_00_19

Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
AM261x: 11_01_00_19 → 26_00_00_06
AM263x: 11_01_00_19 → 26_00_00_06
AM263Px: 11_01_00_19 → 26_00_00_06

Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
@nsaulnier-ti nsaulnier-ti force-pushed the a0226750_am26x_port_sdk11_0 branch from 7941601 to 06d66a8 Compare July 5, 2026 13:58
@qodo-code-review

qodo-code-review Bot commented Jul 5, 2026

Copy link
Copy Markdown

Code Review by Qodo

Grey Divider

New Review Started

This review has been superseded by a new analysis

Grey Divider

Qodo Logo

Adds using_older_sdks_with_open_pru.md modification [8] covering the
AM26x MCU+ SDK 11.0 makefile changes that break SDK 10.2 compatibility.
Updates AM261x, AM263Px, AM263x tables to reference [8] for SDK 10.2.

Post-break commit following f14285b.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@nsaulnier-ti nsaulnier-ti force-pushed the a0226750_am26x_port_sdk11_0 branch from 06d66a8 to ee57ea5 Compare July 5, 2026 14:02
Comment thread docs/release_notes.md Outdated
@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit ee57ea5

ⓘ You are approaching your monthly quota for Qodo. Upgrade your plan

@qodo-code-review

qodo-code-review Bot commented Jul 5, 2026

Copy link
Copy Markdown

Code Review by Qodo

Grey Divider

New Review Started

This review has been superseded by a new analysis

Grey Divider

Qodo Logo

Add support for AM26x MCU+ SDK 11.0, 11.1, 26.0.

Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
For details of this version of OpenPRU repo, refer to
docs/release_notes.md.

Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
@nsaulnier-ti nsaulnier-ti force-pushed the a0226750_am26x_port_sdk11_0 branch from 3bdad9b to b8534ba Compare July 5, 2026 14:27
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit b8534ba

ⓘ You are approaching your monthly quota for Qodo. Upgrade your plan

@pratheesh-ti pratheesh-ti left a comment

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.

Looks good

@nsaulnier-ti

Copy link
Copy Markdown
Collaborator Author

Not a blocker for this PR, but while comparing the AM26x makefiles I noticed a small pre-existing robustness gap that this branch also carries, worth a one-line hardening:

In the leaf makefiles, generated/linker.cmd is listed in LNK_FILES_common (a prerequisite of $(OUTNAME)), but it is not in SYSCFG_GEN_FILES — so it has no explicit make rule and is only produced as a side effect of the $(SYSCFG_GEN_FILES): syscfg recipe. Real serial builds are fine (SysConfig emits linker.cmd while the generated .c sources are built), but make -n, aggressive -j, or certain incremental states can trip:

make: *** No rule to make target 'generated/linker.cmd', needed by 'empty.release.out'.  Stop.

One-line fix per leaf makefile — add it to the SysConfig outputs so the dependency has a rule:

SYSCFG_GEN_FILES+=generated/linker.cmd generated/linker_defines.h

(SysConfig already emits both files, so nothing else changes.) This is orthogonal to the SDK-11 port itself and applies repo-wide, not just AM26x. Happy to send it as a small standalone follow-up PR on top of this once it lands, if you'd prefer to keep #151 focused on the SDK bump.

This should NOT be applied to OpenPRU if it conflicts with the established pattern in the MCU+ SDK source. If the MCU+ SDK source ALSO has this pattern, then the proposed code changes would need to be applied to the MCU+ SDK FIRST. Only after they were merged in and visible in an official MCU+ SDK would we consider making such changes in OpenPRU. Additional feedback from Claude Opus 4.8:

The technical observation is accurate, but it's not feedback on these commits

What the reviewer got right:

  • generated/linker.cmd is in LNK_FILES_common (line 110), a prerequisite of $(OUTNAME) via LNK_FILES, but is not in SYSCFG_GEN_FILES.
    Confirmed.
  • It therefore has no explicit rule and is produced only as a side effect of the $(SYSCFG_GEN_FILES): syscfg recipe. Confirmed.
  • Serial builds are fine. Confirmed — and the mechanism is stronger than the reviewer states: syscfg is the first prerequisite of
    $(OUTNAME) (SYSTEM_COMMAND := syscfg $(SYSCFG_GEN_FILES) $(OBJS) $(LNK_FILES) …), so it runs and emits linker.cmd before make ever
    evaluates linker.cmd as a prereq.

Where it overreaches:

  • The -j scenario is wrong for these makefiles. Every leaf makefile declares .NOTPARALLEL: (line 253). make -j8 does not parallelize
    within the makefile, so the race the reviewer describes can't occur here. Only make -n (recipe execution suppressed → syscfg never
    runs → linker.cmd never appears) and a narrow "someone deleted only linker.cmd" incremental state are real. Neither is part of any
    real build path in this repo.

Why it should not be applied to this branch:

  • The pattern is not introduced by these commits. The untouched am64x leaf makefile is byte-identical in structure, and the reference
    TI MCU+ SDK 11.0 makefiles ship this exact pattern — linker.cmd in LNK_FILES, absent from SYSCFG_GEN_FILES. It is the standard TI
    SDK makefile shape, pre-existing and repo-wide.
  • This branch's core anti-goal is to align each rung's makefiles exactly to that SDK's makefiles, with no robustness/compatibility
    shims. Adding SYSCFG_GEN_FILES+=generated/linker.cmd generated/linker_defines.h would make OpenPRU's makefiles diverge from the
    reference SDK — the precise thing the port forbids. So even as a "one-line hardening," it conflicts with the branch's ground rules.

Bottom line

Valid as a general make observation about TI's SDK makefile idiom; not valid as feedback on these commits. It targets nothing the
branch changed, its -j justification doesn't hold given .NOTPARALLEL:, and adopting the fix would violate the port's
align-exactly-to-SDK constraint. The reviewer already flagged it "not a blocker … applies repo-wide" — the correct home for it is an
upstream TI SDK makefile report, not this PR. Don't apply it here.

@nsaulnier-ti nsaulnier-ti merged commit 09765db into main Jul 6, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants