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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions .github/workflows/makefile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
with:
path: |
$HOME/ti
key: toolchain-mcu-sdk-${{ runner.os }}-v1-ccs20_3_1-pru2_3_3-am243x_11_02_00_24-am261x_10_02_00_15-am263px_10_02_00_15
key: toolchain-mcu-sdk-${{ runner.os }}-v1-ccs20_3_1-pru2_3_3-am243x_11_02_00_24-am261x_10_02_00_15-am263px_10_02_00_15-am64x_11_02_00_24-am62x

- name: Install MCU+ SDKs, CCS, SYSCONFIG, TIARMCLANG and PRU CGT if missing
run: |
Expand Down Expand Up @@ -94,6 +94,15 @@ jobs:
./mcu_plus_sdk_am243x_11_02_00_24-linux-x64-installer.run --mode unattended --prefix "$HOME/ti/"
fi

# Install MCU+ SDK AM64x 11.02.00.24
if [ ! -d "$HOME/ti/mcu_plus_sdk_am64x_11_02_00_24" ]; then
cd "$HOME/ti/downloads"
wget -q --retry-connrefused --waitretry=1 --tries=5 --timeout=30 \
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
chmod +x mcu_plus_sdk_am64x_11_02_00_24-linux-x64-installer.run
./mcu_plus_sdk_am64x_11_02_00_24-linux-x64-installer.run --mode unattended --prefix "$HOME/ti/"
fi

# Install MCU+ SDK AM261x 10.02.00.15
if [ ! -d "$HOME/ti/mcu_plus_sdk_am261x_10_02_00_15" ]; then
cd "$HOME/ti/downloads"
Expand Down Expand Up @@ -131,14 +140,15 @@ jobs:
echo "MCU_PLUS_SDK_PATH_AM243X=$HOME/ti/mcu_plus_sdk_am243x_11_02_00_24"
echo "MCU_PLUS_SDK_PATH_AM261X=$HOME/ti/mcu_plus_sdk_am261x_10_02_00_15"
echo "MCU_PLUS_SDK_PATH_AM263PX=$HOME/ti/mcu_plus_sdk_am263px_10_02_00_15"
echo "MCU_PLUS_SDK_PATH_AM64X=$HOME/ti/mcu_plus_sdk_am64x_11_02_00_24"
echo "PATH=$PATH:$HOME/ti/ccs_20.3.1/ccs/eclipse:$HOME/ti/ccs_20.3.1/ccs/utils/bin:$CGT_TI_PRU_PATH/bin"
} >> $GITHUB_ENV

- name: Generate imports.mak for CI
run: |
cat > imports.mak <<'EOF'
# Auto-generated by CI
DEVICE ?= am243x am261x am263px
DEVICE ?= am243x am261x am263px am64x am62x
PROFILE?=release
DEVICE_TYPE?=GP
BUILD_MCUPLUS?=y
Expand All @@ -147,6 +157,7 @@ jobs:
MCU_PLUS_SDK_PATH_AM243X := $(HOME)/ti/mcu_plus_sdk_am243x_11_02_00_24
MCU_PLUS_SDK_PATH_AM261X := $(HOME)/ti/mcu_plus_sdk_am261x_10_02_00_15
MCU_PLUS_SDK_PATH_AM263PX := $(HOME)/ti/mcu_plus_sdk_am263px_10_02_00_15
MCU_PLUS_SDK_PATH_AM64X := $(HOME)/ti/mcu_plus_sdk_am64x_11_02_00_24

# Toolchains
CCS_PATH := $(HOME)/ti/ccs_20.3.1
Expand All @@ -168,6 +179,7 @@ jobs:
export MCU_PLUS_SDK_PATH_AM243X
export MCU_PLUS_SDK_PATH_AM261X
export MCU_PLUS_SDK_PATH_AM263PX
export MCU_PLUS_SDK_PATH_AM64X
export CCS_PATH
export CGT_TI_PRU_PATH
export CGT_TI_ARM_CLANG_PATH
Expand Down Expand Up @@ -196,19 +208,25 @@ jobs:
run: |
make -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM243X DEVICE=am243x
make -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM261X DEVICE=am261x
make -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM263PX DEVICE=am263px
make -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM263PX DEVICE=am263px
make -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM64X DEVICE=am64x
make -j$(nproc) DEVICE=am62x

- name: Build academy (best-effort)
run: |
make -C academy -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM243X DEVICE=am243x
make -C academy -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM261X DEVICE=am261x
make -C academy -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM263PX DEVICE=am263px

make -C academy -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM64X DEVICE=am64x
make -C academy -j$(nproc) DEVICE=am62x

- name: Build examples folder
run: |
make -C examples -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM243X DEVICE=am243x
make -C examples -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM261X DEVICE=am261x
make -C examples -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM263PX DEVICE=am263px
make -C examples -j$(nproc) MCU_PLUS_SDK_PATH=$MCU_PLUS_SDK_PATH_AM64X DEVICE=am64x
make -C examples -j$(nproc) DEVICE=am62x

- name: Upload build artifacts
if: ${{ always() }}
Expand Down
152 changes: 125 additions & 27 deletions docs/release_notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,16 @@

</div>

[Viewing the release notes](#viewing-the-release-notes)
[Checking out a specific release](#checking-out-a-specific-release)
[Compatible SDKs](#compatible-sdks)
[Compatible versions of CCS & other tools](#compatible-versions-of-ccs--other-tools)
[All Release Notes](#all-release-notes)
[v2026.00.00](#v20260000)
[v2025.00.00](#v20250000)

The open-pru repo does not have official software releases like the TI SDKs.

Instead, we will regularly update the open-pru repo. When the repo has
been significantly changed, we will add a new tag to the main branch.
The tag's message will include a list of updates since the previous tag.

## Viewing the release notes

To see the full release notes, use command
```
$ git tag --sort=-taggerdate -n99
```

## Checking out a specific release

Expand All @@ -32,31 +25,136 @@ branch), checkout the tag like
$ git checkout -b my-branch-name tag-name
```

## Compatible SDKs
## Compatible versions of CCS & other tools

**MCU+ SDK users:**
Use the CCS version, SysConfig version, and other tool versions
listed in the MCU+ SDK "Getting Started" docs. See
[Getting Started with MCU+ SDK](./getting_started_mcuplus.md) for details.

**Linux SDK users:**
Use the CCS and tool versions listed in
[Getting Started with Linux SDK](./getting_started_linux.md) when the open-pru
repo is checked out to the specific release tag that you are using.

## All Release Notes

### v2026.00.00

#### Major Updates

* Add support for building AM62x firmware to the OpenPRU repo
* Add all infrastructure, add AM62x to Getting Started Labs, empty, empty_c
* Add support for AM62x & AM64x Linux RPMsg
* Add support for AM243x & AM64x MCU+ SDK 11.1 & 11.2 [1]

#### Supported Processors

AM243x, AM261x, AM263Px, AM263x, AM62x, AM64x

#### Compatible SDKs

These SDK release versions can be used to build OpenPRU projects with a specific
tag. The OpenPRU projects may require modifications before they can be built
with older SDK versions. For more information, refer to
[Using Older SDKs with OpenPRU](./using_older_sdks_with_open_pru.md).

<details>
<summary>v2025.00.00</summary>
| SDK | am243x | am261x | am263px | am263x | am62x | am64x |
| --------- | ----------- | --------- | --------- | --------- | ----- | ----------- |
| MCU+ SDK | 11.1 - 11.2 | 10.2 only | 10.2 only | 10.2 only | N/A | 11.1 - 11.2 |
| Linux SDK | N/A | N/A | N/A | N/A | 11.x | 11.x |

| SDK | am243x | am261x | am263px | am263x | am62x | am64x |
| -------- | ----------- | --------- | --------- | --------- | ----- | ----------- |
| MCU+ SDK | 10.1 - 11.0 | 10.2 only | 10.2 only | 10.2 only | N/A | 10.1 - 11.0 |
#### Academies

</details>
[PRU Academy for AM243x](https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AB.mSUi9ihL.a5hIt1grfw__AM24X-ACADEMY__ZPSnq-h__LATEST)
[PRU Academy for AM64x](https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AB.mSUi9ihL.a5hIt1grfw__AM64-ACADEMY__WI1KRXP__LATEST)

## Compatible versions of CCS & other tools
#### Additional Updates & bugfixes

**MCU+ SDK users:**
Use the CCS version, SysConfig version, and other tool versions
listed in the MCU+ SDK "Getting Started" docs for your selected MCU+ SDK
release. See [Getting Started with MCU+ SDK](./getting_started_mcuplus.md) for
details.
* Bugfix: release notes > compatible SDKs > v2025.00.00
* AM26x projects ONLY support MCU+ 10.2 in both v2025.00.00 & v2026.00.00

**Linux SDK users:**
Use the CCS and tool versions listed in
[Getting Started with Linux SDK](./getting_started_linux.md) when the open-pru
repo is checked out to the specific release tag that you are using.
* Add libraries for PRU to communicate with Linux through the RPMsg
Inter-Processor Communication (IPC) protocol
* source/rpmsg

* Add examples/rpmsg_echo_linux
* RPMsg example between Linux <--> PRU
* supports AM62x & AM64x

* Add examples/fir
* Implement 64-tap Finite Impulse Response (FIR) filter on PRU
* supports AM243x

* Add examples/multicore_scheduler
* Use IEP timer + Task Manager to schedule tasks across all cores
* supports AM243x

* Add github workflows to validate OpenPRU make infrastructure

* Bugfix: AM26x projects
* remove unneeded makefile includes
* remove empty example.syscfg files

[1]
* Adding support for AM243x & AM64x MCU+ SDK 11.1 & 11.2 breaks backwards
compatibility with previous AM243x & AM64x MCU+ SDK releases. For more
information on building an OpenPRU project with an earlier version of MCU+
SDK, refer to
https://github.com/TexasInstruments/open-pru/blob/main/docs/using_older_sdks_with_open_pru.md

* This version of OpenPRU does NOT update the AM26x MCU+ build infrastructure.
Both v2025.00.00 and v2026.00.00 are only compatible with AM26x MCU+ SDK
10.2. For more information about building an AM26x OpenPRU project with an
earlier version of MCU+ SDK, refer to
https://github.com/TexasInstruments/open-pru/blob/main/docs/using_older_sdks_with_open_pru.md

### v2025.00.00

#### Supported Processors

AM243x, AM261x, AM263Px, AM263x, AM64x

#### Compatible SDKs

These SDK release versions can be used to build OpenPRU projects with a specific
tag. The OpenPRU projects may require modifications before they can be built
with older SDK versions. For more information, refer to
[Using Older SDKs with OpenPRU](./using_older_sdks_with_open_pru.md).

| SDK | am243x | am261x | am263px | am263x | am62x | am64x |
| -------- | ----------- | --------- | --------- | --------- | ----- | ----------- |
| MCU+ SDK | 10.1 - 11.0 | 10.2 only | 10.2 only | 10.2 only | N/A | 10.1 - 11.0 |

#### Academies

[PRU Academy for AM243x](https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AB.mSUi9ihL.a5hIt1grfw__AM24X-ACADEMY__ZPSnq-h__LATEST)
[PRU Academy for AM64x](https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AB.mSUi9ihL.a5hIt1grfw__AM64-ACADEMY__WI1KRXP__LATEST)

#### What is included in the initial release?

ACADEMY:
* Getting Started Labs: AM243x, AM261x, AM263Px, AM263x, AM64x
* crc/crc: AM261x, AM263Px, AM263x
* gpio/gpio_toggle: AM261x, AM263Px, AM263x
* intc/intc_mcu: AM261x, AM263Px, AM263x
* mac/mac: AM261x, AM263Px, AM263x
* mac/mac_multiply: AM261x, AM263Px, AM263x

EXAMPLES:
* custom_frequency_generator: AM243x
* empty: AM243x, AM261x, AM263Px, AM263x, AM64x
* empty_c: AM243x, AM261x, AM263Px, AM263x, AM64x
* fft/
split_radix_fft_f4_single_core: AM243x, AM261x
split_radix_fft_post_processing: AM243x
* LCD_interface: AM243x
* logic_scope: AM243x
* pru_emif: AM243x
* pru_i2s_diagnostic: AM261x, AM263x
Copy link
Collaborator

Choose a reason for hiding this comment

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

Remove this as not yet merged

* spi_loopback: AM243x

SOURCE:
* include/c_code: Header files for AM243x, AM62x, AM64x
* linker_cmd/asm_code: linker.cmd for AM243x, AM261x, AM263Px, AM263x, AM62x, AM64x
* linker_cmd/c_code: linker.cmd for AM243x, AM261x, AM263Px, AM263x, AM62x, AM64x
22 changes: 19 additions & 3 deletions docs/using_older_sdks_with_open_pru.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ number to represent each kind of modification.
| AM243X SDK | Mandatory modifications | Optional modifications |
| --------------- | ----------------------- | ---------------------- |
| MCU+ 8.6 - 9.2 | [1] [2] | [4] |
| MCU+ 10.0 | [1] | [4] |
| MCU+ 10.0 | [1], either [2] or [7] | [4] |
| MCU+ 10.1-11.0 | Either [2] or [7] | |

</details>

Expand Down Expand Up @@ -74,7 +75,8 @@ number to represent each kind of modification.
| SDK | Mandatory modifications | Optional modifications |
| --------------- | ----------------------- | ---------------------- |
| MCU+ 8.6 - 9.2 | [1] [2] | [4] |
| MCU+ 10.0 | [1] | [4] |
| MCU+ 10.0 | [1], either [2] or [7] | [4] |
| MCU+ 10.1-11.0 | Either [2] or [7] | |
| Linux 9.0-10.1 | | [5] |
| Linux 11.0 | | [6] |

Expand All @@ -92,6 +94,8 @@ number to represent each kind of modification.

[6. Apply patch to enable PRU RPMsg](#6-apply-patch-to-enable-pru-rpmsg). Affects: Linux RPMsg kernel driver

[7. Revert MCU+ SDK 11.1 makefile updates](#7-revert-mcu-sdk-11-1-makefile-updates). Affects: AM243x & AM64x MCU+ cores

## 1. Update SysConfig version

Affects: PRU code
Expand Down Expand Up @@ -180,4 +184,16 @@ enable PRU RPMsg. The patch is not required if using SDK 10.1 or earlier, or
SDK 11.1 or later.

For more details, refer to
[[FAQ] AM62x & AM64x: How to enable PRU RPMsg on Processor SDK Linux 11.0](https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1494495/faq-am62x-am64x-how-to-enable-pru-rpmsg-on-processor-sdk-linux-11-0).
[[FAQ] AM62x & AM64x: How to enable PRU RPMsg on Processor SDK Linux 11.0](https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1494495/faq-am62x-am64x-how-to-enable-pru-rpmsg-on-processor-sdk-linux-11-0).

## 7. Revert MCU+ SDK 11.1 makefile updates

Affects: AM243x & AM64x MCU+ cores

Starting in AM243x & AM64x MCU+ SDK 11.1, the makefile infrastructure for MCU+
cores is updated. Changes include updating the OS value, renaming libraries,
adding XML build infrastructure, and several other miscellaneous changes.

In order to undo these changes, revert the file changes that were done in
OpenPRU commit
[AM243x & AM64x: Add support for MCU+ SDK 11.1&11.2](https://github.com/TexasInstruments/open-pru/commit/a29c10dbb4348065d13ba91af515e64e517e11a5)