diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fe0f5cd67..c14216629 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -54,14 +54,18 @@ jobs: run: | echo EXTRA_ZEPHYR_MODULES="$(pwd)/$MODULE_PATH" >> $GITHUB_ENV - - name: Build fade + - name: Apply Zephyr patches run: | - west build -p -b arduino_nano_33_ble//sense $MODULE_PATH/samples/fade + bash $MODULE_PATH/extra/apply_zephyr_patches.sh - - name: Build i2cdemo + - name: Build blinky run: | - west build -p -b ek_ra8d1 $MODULE_PATH/samples/i2cdemo + west build -p -b kit_pse84_ai/pse846gps2dbzc4a/m33 $MODULE_PATH/samples/blinky_arduino - - name: Build adc + - name: Build hello run: | - west build -p -b arduino_nano_33_ble/nrf52840/sense $MODULE_PATH/samples/analog_input + west build -p -b kit_pse84_ai/pse846gps2dbzc4a/m33 $MODULE_PATH/samples/hello_arduino + + - name: Build threads + run: | + west build -p -b kit_pse84_ai/pse846gps2dbzc4a/m33 $MODULE_PATH/samples/threads_arduino diff --git a/.github/workflows/package_core.yml b/.github/workflows/package_core.yml index 12e8a237a..3da8adce3 100644 --- a/.github/workflows/package_core.yml +++ b/.github/workflows/package_core.yml @@ -360,6 +360,21 @@ jobs: tar xf ${CORE_ARTIFACT} # will create ArduinoCore-zephyr/ echo "REPORT_FILE=$(echo ${FQBN} | tr ':' '-').json" >> $GITHUB_ENV + - name: Install arm-zephyr-eabi 1.0.1 for zephyr_contrib boards + # zephyr_contrib boards (e.g. kit_pse84_ai) use Zephyr 4.4.0 + SDK 1.0.1. + # The Board Manager only ships arm-zephyr-eabi-0.16.8 (for SDK 0.16.8/Zephyr 4.2.0). + # We install 1.0.1 manually into the arduino-cli packages path so that + # {runtime.tools.arm-zephyr-eabi-1.0.1.path} resolves correctly during compilation. + if: ${{ matrix.subarch == 'zephyr_contrib' }} + run: | + TOOL_DIR=~/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/1.0.1 + if [ ! -d "$TOOL_DIR/bin" ]; then + mkdir -p "$TOOL_DIR" + wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v1.0.1/toolchain_gnu_linux-x86_64_arm-zephyr-eabi.tar.xz -O /tmp/arm-zephyr-eabi.tar.xz + tar -xf /tmp/arm-zephyr-eabi.tar.xz -C "$TOOL_DIR" --strip-components=1 + rm /tmp/arm-zephyr-eabi.tar.xz + fi + - name: Get test sketches run: | # sets ALL_TESTS and ALL_LIBRARIES env vars in GITHUB_ENV diff --git a/.github/workflows/release_pse84.yml b/.github/workflows/release_pse84.yml new file mode 100644 index 000000000..8785290bd --- /dev/null +++ b/.github/workflows/release_pse84.yml @@ -0,0 +1,171 @@ +# Copyright (c) Arduino s.r.l. and/or its affiliated companies +# SPDX-License-Identifier: Apache-2.0 + +# PSE84-specific release workflow: triggered automatically when package_core.yml +# completes successfully on main. Bumps the version, tags the commit, and +# publishes the ArduinoCore-zephyr_contrib package as a GitHub Release. + +name: Release PSE84 + +on: + workflow_run: + workflows: ["Package, test and upload core"] + types: [completed] + branches: [main] + +jobs: + + bump-version-and-tag: + name: Bump version, tag, and create release + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' && github.repository == 'michal-gora/ArduinoCore-zephyr' && github.triggering_actor != 'github-actions[bot]' }} + permissions: + contents: write + outputs: + release_tag: ${{ steps.release_tag.outputs.release_tag }} + steps: + + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + fetch-tags: true + + - name: Compute next release tag + id: release_tag + env: + RELEASE_BUMP: patch + run: | + git fetch --tags + + EXISTING_TAG=$(git tag --points-at "${{ github.event.workflow_run.head_sha }}" --list '[0-9]*.[0-9]*.[0-9]*' --sort=-v:refname | head -n1) + if [ -n "${EXISTING_TAG}" ]; then + echo "Using existing tag on HEAD: ${EXISTING_TAG}" + echo "release_tag=${EXISTING_TAG}" >> "$GITHUB_OUTPUT" + exit 0 + fi + + LAST_TAG=$(git tag --list '[0-9]*.[0-9]*.[0-9]*' --sort=-v:refname | head -n1) + if [ -z "${LAST_TAG}" ]; then + LAST_TAG="0.0.0" + fi + + IFS='.' read -r MAJOR MINOR PATCH <<< "${LAST_TAG}" + case "${RELEASE_BUMP}" in + major) + MAJOR=$((MAJOR + 1)) + MINOR=0 + PATCH=0 + ;; + minor) + MINOR=$((MINOR + 1)) + PATCH=0 + ;; + *) + PATCH=$((PATCH + 1)) + ;; + esac + + NEW_TAG="${MAJOR}.${MINOR}.${PATCH}" + echo "release_tag=${NEW_TAG}" >> "$GITHUB_OUTPUT" + + - name: Create release (and tag if missing) + env: + GH_TOKEN: ${{ github.token }} + TAG: ${{ steps.release_tag.outputs.release_tag }} + run: | + if gh release view "${TAG}" >/dev/null 2>&1; then + echo "Release ${TAG} already exists" + else + gh release create "${TAG}" \ + --target "${{ github.event.workflow_run.head_sha }}" \ + --title "ArduinoCore-zephyr-pse84 ${TAG}" \ + --notes "Automated release for ${{ github.event.workflow_run.head_sha }}." + fi + + + publish-pse84-release: + name: Publish PSE84 release assets + runs-on: ubuntu-latest + needs: + - bump-version-and-tag + if: ${{ needs.bump-version-and-tag.result == 'success' }} + permissions: + contents: write + actions: read + env: + GH_TOKEN: ${{ github.token }} + GH_REPO: ${{ github.repository }} + TAG: ${{ needs.bump-version-and-tag.outputs.release_tag }} + steps: + + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + persist-credentials: false + fetch-tags: true + + - name: Download zephyr_contrib artifact from triggering workflow run + uses: actions/download-artifact@v8 + with: + pattern: ArduinoCore-zephyr_contrib-* + path: release-assets + merge-multiple: true + run-id: ${{ github.event.workflow_run.id }} + github-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Normalize artifact filename for release tag + run: | + if [ -z "${TAG}" ]; then + echo "Release tag is empty" >&2 + exit 1 + fi + + TAR_FILE=$(ls release-assets/ArduinoCore-zephyr_contrib-*.tar.bz2 | head -n1) + if [ -z "${TAR_FILE}" ]; then + echo "Downloaded artifact does not contain expected tarball" >&2 + exit 1 + fi + + OLD_BASENAME=$(basename "${TAR_FILE}") + NEW_BASENAME="ArduinoCore-zephyr_contrib-${TAG}.tar.bz2" + + if [ "${OLD_BASENAME}" != "${NEW_BASENAME}" ]; then + mv "${TAR_FILE}" "release-assets/${NEW_BASENAME}" + echo "Renamed ${OLD_BASENAME} -> ${NEW_BASENAME}" + fi + + echo "TAR_BASENAME=${NEW_BASENAME}" >> "$GITHUB_ENV" + + - name: Generate package index JSON + run: | + ARTIFACT_PATH="release-assets/${TAR_BASENAME}" + SIZE=$(wc -c < "${ARTIFACT_PATH}") + SHA256=$(sha256sum "${ARTIFACT_PATH}" | cut -d' ' -f1) + URL="https://github.com/${GH_REPO}/releases/download/${TAG}/${TAR_BASENAME}" + + python3 - <> $env:GITHUB_ENV + + - name: Compute SHA-256 and size + run: | + $hash = (Get-FileHash -Algorithm SHA256 $env:TAR_NAME).Hash.ToLower() + $size = (Get-Item $env:TAR_NAME).Length + echo "TAR_SHA256=$hash" >> $env:GITHUB_ENV + echo "TAR_SIZE=$size" >> $env:GITHUB_ENV + + - name: Upload to GitHub Release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ github.event.inputs.release_tag }} + files: ${{ env.TAR_NAME }} + + - name: Print package index values + run: | + Write-Host "" + Write-Host "=== Paste these into the Windows entry of the package index template ===" + Write-Host "archiveFileName : $env:TAR_NAME" + Write-Host "url : https://github.com/${{ github.repository }}/releases/download/${{ github.event.inputs.release_tag }}/$env:TAR_NAME" + Write-Host "checksum : SHA-256:$env:TAR_SHA256" + Write-Host "size : $env:TAR_SIZE" diff --git a/boards.txt b/boards.txt index 64841accc..f155a71aa 100644 --- a/boards.txt +++ b/boards.txt @@ -22,639 +22,690 @@ menu.wait_linux_boot=Startup mode ########################################################################################## -giga.name=Arduino Giga R1 -giga.build.core=arduino -giga.build.crossprefix=arm-zephyr-eabi- -giga.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -giga.menu.debug.false=Standard -giga.menu.debug.true=Debug -giga.menu.debug.true.build.zsk_args.debug=-debug - -giga.menu.link_mode.dynamic=Dynamic -giga.menu.link_mode.static=Static -giga.menu.link_mode.static.build.link_mode=static -giga.menu.link_mode.static.upload.extension=bin-zsk.bin - -giga.build.zephyr_target=arduino_giga_r1//m7 -giga.build.zephyr_args=--shield arduino_giga_display_shield -giga.build.zephyr_hals=hal_stm32 hal_infineon -giga.build.variant=arduino_giga_r1_stm32h747xx_m7 -giga.build.artifact=zephyr_main - -giga.build.extra_flags= -giga.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -giga.build.board=GIGA -giga.vid.0=0x2341 -giga.pid.0=0x0066 -giga.upload_port.0.vid=0x2341 -giga.upload_port.0.pid=0x0066 - -giga.upload.tool=dfu-util -giga.upload.tool.default=dfu-util -giga.upload.protocol= -giga.upload.transport= -giga.upload.vid=0x2341 -giga.upload.pid=0x0366 -giga.upload.interface=0 -giga.upload.use_1200bps_touch=true -giga.upload.wait_for_upload_port=true -giga.upload.native_usb=true - -giga.bootloader.tool=dfu-util -giga.bootloader.tool.default=dfu-util -giga.bootloader.vid=0x2341 -giga.bootloader.pid=0x0366 -giga.bootloader.interface=0 -giga.bootloader.file=zephyr-{build.variant}.bin -giga.bootloader.address=0x08040000 - -giga.debug.tool=gdb -giga.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg -giga.debug.server.openocd.scripts.1={programmer.transport_script} -giga.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg -giga.debug.cortex-debug.custom.request=attach -giga.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd - -########################################################################################## - -nano33ble.name=Arduino Nano 33 BLE -nano33ble.build.core=arduino -nano33ble.build.crossprefix=arm-zephyr-eabi- -nano33ble.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -nano33ble.menu.debug.false=Standard -nano33ble.menu.debug.true=Debug -nano33ble.menu.debug.true.build.zsk_args.debug=-debug - -nano33ble.menu.link_mode.dynamic=Dynamic -nano33ble.menu.link_mode.static=Static -nano33ble.menu.link_mode.static.build.link_mode=static -nano33ble.menu.link_mode.static.upload.extension=bin-zsk.bin - -nano33ble.build.zephyr_target=arduino_nano_33_ble//sense -nano33ble.build.zephyr_args= -nano33ble.build.zephyr_hals=hal_nordic -nano33ble.build.artifact=zephyr_main -nano33ble.build.variant=arduino_nano_33_ble_nrf52840_sense - -nano33ble.build.extra_flags= -nano33ble.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -nano33ble.build.board=NANO33BLE -nano33ble.vid.0=0x2341 -nano33ble.pid.0=0x035a -nano33ble.upload_port.0.vid=0x2341 -nano33ble.upload_port.0.pid=0x005a - -nano33ble.upload.tool=bossac -nano33ble.upload.tool.default=bossac -nano33ble.upload.protocol= -nano33ble.upload.transport= -nano33ble.upload.vid=0x2341 -nano33ble.upload.pid=0x005a -nano33ble.upload.interface=0 -nano33ble.upload.use_1200bps_touch=true -nano33ble.upload.wait_for_upload_port=true -nano33ble.upload.native_usb=true - -nano33ble.bootloader.tool=bossac -nano33ble.bootloader.tool.default=bossac -nano33ble.bootloader.vid=0x2341 -nano33ble.bootloader.pid=0x035b -nano33ble.bootloader.interface=0 -nano33ble.bootloader.file=zephyr-{build.variant}.bin -nano33ble.bootloader.address=0x0000 - -nano33ble.debug.tool=gdb -nano33ble.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg -nano33ble.debug.server.openocd.scripts.1={programmer.transport_script} -nano33ble.debug.server.openocd.scripts.2=target/nrf52.cfg -nano33ble.debug.cortex-debug.custom.request=attach - -############################################################################################################## - -ek_ra8d1.name=Renesas RA8D1 EK -ek_ra8d1.build.core=arduino -ek_ra8d1.build.crossprefix=arm-zephyr-eabi- -ek_ra8d1.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -ek_ra8d1.menu.debug.false=Standard -ek_ra8d1.menu.debug.true=Debug -ek_ra8d1.menu.debug.true.build.zsk_args.debug=-debug - -ek_ra8d1.menu.link_mode.dynamic=Dynamic -ek_ra8d1.menu.link_mode.static=Static -ek_ra8d1.menu.link_mode.static.build.link_mode=static -ek_ra8d1.menu.link_mode.static.upload.extension=bin-zsk.bin - -ek_ra8d1.build.zephyr_target=ek_ra8d1 -ek_ra8d1.build.zephyr_args= -ek_ra8d1.build.zephyr_hals=hal_renesas -ek_ra8d1.build.variant=ek_ra8d1_r7fa8d1bhecbd - -ek_ra8d1.build.extra_flags= -ek_ra8d1.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -ek_ra8d1.build.board=EK_RA8D1 - -#ek_ra8d1.recipe.hooks.objcopy.postobjcopy.4.pattern=cp {build.variant.path}/flasher.jlink "{build.path}/flasher.jlink" -#ek_ra8d1.recipe.hooks.objcopy.postobjcopy.5.pattern=sed -i 's|SKETCH|"{build.path}/{build.project_name}.llext.dfu.bin"|g' "{build.path}/flasher.jlink" - -ek_ra8d1.vid.0=0x2341 -ek_ra8d1.pid.0=0x0077 -ek_ra8d1.upload_port.0.vid=0x2341 -ek_ra8d1.upload_port.0.pid=0x0077 - -ek_ra8d1.upload.tool=pyocd -ek_ra8d1.upload.tool.default=pyocd -ek_ra8d1.upload.protocol= -ek_ra8d1.upload.transport= -ek_ra8d1.upload.vid=0x2341 -ek_ra8d1.upload.pid=0x0366 -ek_ra8d1.upload.interface=0 -ek_ra8d1.upload.use_1200bps_touch=false -ek_ra8d1.upload.wait_for_upload_port=false -ek_ra8d1.upload.native_usb=true -ek_ra8d1.upload.target=R7FA8D1AH - -ek_ra8d1.bootloader.tool=pyocd -ek_ra8d1.bootloader.tool.default=pyocd -ek_ra8d1.bootloader.file=zephyr-{build.variant}.elf -ek_ra8d1.bootloader.target=R7FA8D1AH - - -############################################################################################################## - -frdm_mcxn947.name=NXP FRDM MCXN947 -frdm_mcxn947.build.core=arduino -frdm_mcxn947.build.crossprefix=arm-zephyr-eabi- -frdm_mcxn947.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -frdm_mcxn947.menu.debug.false=Standard -frdm_mcxn947.menu.debug.true=Debug -frdm_mcxn947.menu.debug.true.build.zsk_args.debug=-debug - -frdm_mcxn947.menu.link_mode.dynamic=Dynamic -frdm_mcxn947.menu.link_mode.static=Static -frdm_mcxn947.menu.link_mode.static.build.link_mode=static -frdm_mcxn947.menu.link_mode.static.upload.extension=bin-zsk.bin - -frdm_mcxn947.build.zephyr_target=frdm_mcxn947//cpu0 -frdm_mcxn947.build.zephyr_args= -frdm_mcxn947.build.zephyr_hals=hal_nxp -frdm_mcxn947.build.variant=frdm_mcxn947_mcxn947_cpu0 - -frdm_mcxn947.build.extra_flags= -frdm_mcxn947.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -frdm_mcxn947.build.board=FRDM_MCXN947 -frdm_mcxn947.vid.0=0x1fc9 -frdm_mcxn947.pid.0=0x0143 -frdm_mcxn947.upload_port.0.vid=0x1fc9 -frdm_mcxn947.upload_port.0.pid=0x0143 -frdm_mcxn947.upload.target=mcxn947vdf - -frdm_mcxn947.upload.tool=pyocd -frdm_mcxn947.upload.tool.default=pyocd -frdm_mcxn947.upload.protocol= -frdm_mcxn947.upload.transport= -frdm_mcxn947.upload.vid=0x1fc9 -frdm_mcxn947.upload.pid=0x0143 -frdm_mcxn947.upload.interface=0 -frdm_mcxn947.upload.use_1200bps_touch=false -frdm_mcxn947.upload.wait_for_upload_port=false -frdm_mcxn947.upload.native_usb=true - -frdm_mcxn947.bootloader.tool=pyocd -frdm_mcxn947.bootloader.tool.default=pyocd -frdm_mcxn947.bootloader.file=zephyr-{build.variant}.elf -frdm_mcxn947.bootloader.target=mcxn947vdf - - -########################################################################################## - -portentah7.name=Arduino Portenta H7 -portentah7.build.core=arduino -portentah7.build.crossprefix=arm-zephyr-eabi- -portentah7.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -portentah7.menu.debug.false=Standard -portentah7.menu.debug.true=Debug -portentah7.menu.debug.true.build.zsk_args.debug=-debug - -portentah7.menu.link_mode.dynamic=Dynamic -portentah7.menu.link_mode.static=Static -portentah7.menu.link_mode.static.build.link_mode=static -portentah7.menu.link_mode.static.upload.extension=bin-zsk.bin - -portentah7.build.zephyr_target=arduino_portenta_h7@1.0.0//m7 -portentah7.build.zephyr_args= -portentah7.build.zephyr_hals=hal_stm32 hal_infineon -portentah7.build.artifact=zephyr_main -portentah7.build.variant=arduino_portenta_h7_stm32h747xx_m7 - -portentah7.build.extra_flags= -portentah7.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -portentah7.build.board=PORTENTA_H7_M7 -portentah7.vid.0=0x2341 -portentah7.pid.0=0x005b -portentah7.upload_port.0.vid=0x2341 -portentah7.upload_port.0.pid=0x035b - -portentah7.upload.tool=dfu-util -portentah7.upload.tool.default=dfu-util -portentah7.upload.protocol= -portentah7.upload.transport= -portentah7.upload.vid=0x2341 -portentah7.upload.pid=0x035b -portentah7.upload.interface=0 -portentah7.upload.use_1200bps_touch=true -portentah7.upload.wait_for_upload_port=true -portentah7.upload.native_usb=true - -portentah7.bootloader.tool=dfu-util -portentah7.bootloader.tool.default=dfu-util -portentah7.bootloader.vid=0x2341 -portentah7.bootloader.pid=0x035b -portentah7.bootloader.interface=0 -portentah7.bootloader.file=zephyr-{build.variant}.bin -portentah7.bootloader.address=0x08040000 - -portentah7.debug.tool=gdb -portentah7.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg -portentah7.debug.server.openocd.scripts.1={programmer.transport_script} -portentah7.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg -portentah7.debug.cortex-debug.custom.request=attach -portentah7.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd - -############################################################################################################## - -nicla_vision.name=Arduino Nicla Vision -nicla_vision.build.core=arduino -nicla_vision.build.crossprefix=arm-zephyr-eabi- -nicla_vision.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -nicla_vision.menu.debug.false=Standard -nicla_vision.menu.debug.true=Debug -nicla_vision.menu.debug.true.build.zsk_args.debug=-debug - -nicla_vision.menu.link_mode.dynamic=Dynamic -nicla_vision.menu.link_mode.static=Static -nicla_vision.menu.link_mode.static.build.link_mode=static -nicla_vision.menu.link_mode.static.upload.extension=bin-zsk.bin - -nicla_vision.build.zephyr_target=arduino_nicla_vision//m7 -nicla_vision.build.zephyr_args= -nicla_vision.build.zephyr_hals=hal_stm32 hal_infineon -nicla_vision.build.artifact=zephyr_main -nicla_vision.build.variant=arduino_nicla_vision_stm32h747xx_m7 - -nicla_vision.build.extra_flags= -nicla_vision.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -nicla_vision.build.board=NICLA_VISION -nicla_vision.vid.0=0x2341 -nicla_vision.pid.0=0x005b -nicla_vision.upload_port.0.vid=0x2341 -nicla_vision.upload_port.0.pid=0x025f - -nicla_vision.upload.tool=dfu-util -nicla_vision.upload.tool.default=dfu-util -nicla_vision.upload.protocol= -nicla_vision.upload.transport= -nicla_vision.upload.vid=0x2341 -nicla_vision.upload.pid=0x035f -nicla_vision.upload.interface=0 -nicla_vision.upload.use_1200bps_touch=true -nicla_vision.upload.wait_for_upload_port=true -nicla_vision.upload.native_usb=true - -nicla_vision.bootloader.tool=dfu-util -nicla_vision.bootloader.tool.default=dfu-util -nicla_vision.bootloader.vid=0x2341 -nicla_vision.bootloader.pid=0x035f -nicla_vision.bootloader.interface=0 -nicla_vision.bootloader.file=zephyr-{build.variant}.bin -nicla_vision.bootloader.address=0x08040000 - -nicla_vision.debug.tool=gdb -nicla_vision.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg -nicla_vision.debug.server.openocd.scripts.1={programmer.transport_script} -nicla_vision.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg -nicla_vision.debug.cortex-debug.custom.request=attach -nicla_vision.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd - -############################################################################################################## - -frdm_rw612.name=NXP FRDM RW612 -frdm_rw612.build.core=arduino -frdm_rw612.build.crossprefix=arm-zephyr-eabi- -frdm_rw612.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -frdm_rw612.menu.debug.false=Standard -frdm_rw612.menu.debug.true=Debug -frdm_rw612.menu.debug.true.build.zsk_args.debug=-debug - -frdm_rw612.menu.link_mode.dynamic=Dynamic -frdm_rw612.menu.link_mode.static=Static -frdm_rw612.menu.link_mode.static.build.link_mode=static -frdm_rw612.menu.link_mode.static.upload.extension=bin-zsk.bin - -frdm_rw612.build.zephyr_target=frdm_rw612 -frdm_rw612.build.zephyr_args= -frdm_rw612.build.zephyr_hals=hal_stm32 -frdm_rw612.build.variant=frdm_rw612_rw612 - -frdm_rw612.build.extra_flags= -frdm_rw612.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -frdm_rw612.build.board=FRDM_RW612 -frdm_rw612.vid.0=0x1fc9 -frdm_rw612.pid.0=0x0143 -frdm_rw612.upload_port.0.vid=0x1fc9 -frdm_rw612.upload_port.0.pid=0x0143 -frdm_rw612.upload.target=rw612 - -frdm_rw612.upload.tool=pyocd -frdm_rw612.upload.tool.default=pyocd -frdm_rw612.upload.protocol= -frdm_rw612.upload.transport= -frdm_rw612.upload.vid=0x1fc9 -frdm_rw612.upload.pid=0x0143 -frdm_rw612.upload.interface=0 -frdm_rw612.upload.use_1200bps_touch=false -frdm_rw612.upload.wait_for_upload_port=false -frdm_rw612.upload.native_usb=true - -frdm_rw612.bootloader.tool=pyocd -frdm_rw612.bootloader.tool.default=pyocd -frdm_rw612.bootloader.file=zephyr-{build.variant}.elf -frdm_rw612.bootloader.target=rw612 - -########################################################################################## - -nicla_sense.name=Arduino Nicla Sense ME -nicla_sense.build.core=arduino -nicla_sense.build.crossprefix=arm-zephyr-eabi- -nicla_sense.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -nicla_sense.menu.link_mode.dynamic=Dynamic -nicla_sense.menu.link_mode.static=Static -nicla_sense.menu.link_mode.static.build.link_mode=static -nicla_sense.menu.link_mode.static.upload.extension=bin-zsk.bin - -nicla_sense.build.zephyr_target=arduino_nicla_sense_me -nicla_sense.build.zephyr_args= -nicla_sense.build.zephyr_hals=hal_nordic -nicla_sense.build.artifact=zephyr_main -nicla_sense.build.variant=arduino_nicla_sense_me_nrf52832 - -nicla_sense.build.extra_flags= -nicla_sense.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -nicla_sense.build.board=NICLA_SENSE_ME -nicla_sense.vid.0=0x2341 -nicla_sense.pid.0=0x0360 -nicla_sense.upload_port.0.vid=0x2341 -nicla_sense.upload_port.0.pid=0x0060 - -nicla_sense.upload.tool=openocd -nicla_sense.upload.tool.default=openocd -nicla_sense.upload.protocol= -nicla_sense.upload.config=-f target/nrf52.cfg -nicla_sense.upload.programmer=-f interface/cmsis-dap.cfg -nicla_sense.upload.vid=0x2341 -nicla_sense.upload.pid=0x0060 -nicla_sense.upload.interface=0 -nicla_sense.upload.use_1200bps_touch=false -nicla_sense.upload.wait_for_upload_port=false -nicla_sense.upload.native_usb=false -nicla_sense.upload.target=nrf52 - -nicla_sense.bootloader.tool=openocd -nicla_sense.bootloader.tool.default=openocd -nicla_sense.bootloader.vid=0x2341 -nicla_sense.bootloader.pid=0x0360 -nicla_sense.bootloader.interface=0 -nicla_sense.bootloader.file=zephyr-{build.variant}.hex -nicla_sense.bootloader.target=nrf52 - -nicla_sense.debug.tool=gdb -nicla_sense.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg -nicla_sense.debug.server.openocd.scripts.1={programmer.transport_script} -nicla_sense.debug.server.openocd.scripts.2=target/nrf52.cfg -nicla_sense.debug.cortex-debug.custom.request=attach - - -########################################################################################## - -portentac33.name=Arduino Portenta C33 -portentac33.build.core=arduino -portentac33.build.crossprefix=arm-zephyr-eabi- -portentac33.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -portentac33.menu.debug.false=Standard -portentac33.menu.debug.true=Debug -portentac33.menu.debug.true.build.zsk_args.debug=-debug - -portentac33.menu.link_mode.dynamic=Dynamic -portentac33.menu.link_mode.static=Static -portentac33.menu.link_mode.static.build.link_mode=static -portentac33.menu.link_mode.static.upload.extension=bin-zsk.bin - -portentac33.build.zephyr_target=arduino_portenta_c33 -portentac33.build.zephyr_args= -portentac33.build.zephyr_hals=hal_renesas nanopb -portentac33.build.artifact=zephyr_main -portentac33.build.variant=arduino_portenta_c33_r7fa6m5bh3cfc - -portentac33.build.extra_flags= -portentac33.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -portentac33.build.board=PORTENTA_C33 -portentac33.vid.0=0x2341 -portentac33.pid.0=0x0068 -portentac33.upload_port.0.vid=0x2341 -portentac33.upload_port.0.pid=0x0068 -portentac33.upload.target=portentac33 - -portentac33.upload.tool=dfu-util -portentac33.upload.tool.default=dfu-util -portentac33.upload.protocol= -portentac33.upload.transport= -portentac33.upload.vid=0x2341 -portentac33.upload.pid=0x0368 -portentac33.upload.interface=1 -portentac33.upload.use_1200bps_touch=true -portentac33.upload.wait_for_upload_port=false -portentac33.upload.native_usb=true -portentac33.upload.dfuse=-Q -w - -portentac33.bootloader.tool=dfu-util -portentac33.bootloader.tool.default=dfu-util -portentac33.bootloader.file=zephyr-{build.variant}.bin -portentac33.bootloader.interface=0 -portentac33.bootloader.address=0x10000 -portentac33.bootloader.dfuse=-Q - -########################################################################################## - -opta.name=Arduino Opta -opta.build.core=arduino -opta.build.crossprefix=arm-zephyr-eabi- -opta.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -opta.menu.debug.false=Standard -opta.menu.debug.true=Debug -opta.menu.debug.true.build.zsk_args.debug=-debug - -opta.menu.link_mode.dynamic=Dynamic -opta.menu.link_mode.static=Static -opta.menu.link_mode.static.build.link_mode=static -opta.menu.link_mode.static.upload.extension=bin-zsk.bin - -opta.build.zephyr_target=arduino_opta//m7 -opta.build.zephyr_args= -opta.build.zephyr_hals=hal_stm32 hal_infineon -opta.build.artifact=zephyr_main -opta.build.variant=arduino_opta_stm32h747xx_m7 - -opta.build.extra_flags= -opta.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -opta.build.board=OPTA -opta.vid.0=0x2341 -opta.pid.0=0x0064 -opta.upload_port.0.vid=0x2341 -opta.upload_port.0.pid=0x0364 - -opta.upload.tool=dfu-util -opta.upload.tool.default=dfu-util -opta.upload.protocol= -opta.upload.transport= -opta.upload.vid=0x2341 -opta.upload.pid=0x0364 -opta.upload.interface=0 -opta.upload.use_1200bps_touch=true -opta.upload.wait_for_upload_port=true -opta.upload.native_usb=true - -opta.bootloader.tool=dfu-util -opta.bootloader.tool.default=dfu-util -opta.bootloader.vid=0x2341 -opta.bootloader.pid=0x0364 -opta.bootloader.interface=0 -opta.bootloader.file=zephyr-{build.variant}.bin -opta.bootloader.address=0x08040000 - -opta.debug.tool=gdb -opta.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg -opta.debug.server.openocd.scripts.1={programmer.transport_script} -opta.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg -opta.debug.cortex-debug.custom.request=attach -opta.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd - -########################################################################################## - -nano_matter.name=Arduino Nano Matter -nano_matter.build.core=arduino -nano_matter.build.crossprefix=arm-zephyr-eabi- -nano_matter.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -nano_matter.menu.link_mode.dynamic=Dynamic -nano_matter.menu.link_mode.static=Static -nano_matter.menu.link_mode.static.build.link_mode=static -nano_matter.menu.link_mode.static.upload.extension=bin-zsk.bin - -nano_matter.build.zephyr_target=arduino_nano_matter -nano_matter.build.zephyr_args= -nano_matter.build.zephyr_hals=hal_silabs -nano_matter.build.artifact=zephyr_main -nano_matter.build.variant=arduino_nano_matter_mgm240sd22vna - -nano_matter.build.extra_flags= -nano_matter.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -nano_matter.build.board=ARDUINO_NANO_MATTER -nano_matter.vid.0=0x2341 -nano_matter.pid.0=0x0072 -nano_matter.upload_port.0.vid=0x2341 -nano_matter.upload_port.0.pid=0x0072 - -nano_matter.upload.tool=openocd -nano_matter.upload.tool.default=openocd -nano_matter.upload.config=-f target/efm32s2_g23.cfg -nano_matter.upload.programmer=-f interface/cmsis-dap.cfg -nano_matter.upload.protocol=SWD -nano_matter.upload.setup_command= -nano_matter.upload.use_1200bps_touch=false -nano_matter.upload.wait_for_upload_port=false -nano_matter.upload.native_usb=false - -nano_matter.bootloader.tool=openocd -nano_matter.bootloader.tool.default=openocd -nano_matter.bootloader.vid=0x2341 -nano_matter.bootloader.pid=0x0072 -nano_matter.bootloader.interface=0 -nano_matter.bootloader.file=zephyr-{build.variant}.hex -nano_matter.bootloader.target=arduino_nano_matter - -nano_matter.debug.server=openocd -nano_matter.debug.server.openocd.scripts.0=interface/cmsis-dap.cfg -nano_matter.debug.server.openocd.scripts.1=target/efm32s2_g23.cfg -nano_matter.debug.cortex-debug.custom.postAttachCommands.0=monitor reset halt -#nano_matter.debug.cortex-debug.custom.postAttachCommands.1=monitor reset_config srst_nogate -#nano_matter.debug.cortex-debug.custom.postAttachCommands.2=monitor gdb_breakpoint_override hard -nano_matter.debug.cortex-debug.custom.postAttachCommands.3=monitor gdb_sync -nano_matter.debug.cortex-debug.custom.postAttachCommands.4=c -nano_matter.debug.cortex-debug.custom.overrideRestartCommands.0=monitor reset halt -nano_matter.debug.cortex-debug.custom.overrideRestartCommands.1=monitor gdb_sync -nano_matter.debug.cortex-debug.custom.overrideRestartCommands.2=c -nano_matter.debug.cortex-debug.custom.request=attach - -############################################################################################################## - -unoq.name=Arduino UNO Q -unoq.build.core=arduino -unoq.build.crossprefix=arm-zephyr-eabi- -unoq.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ - -unoq.menu.link_mode.dynamic=Dynamic -unoq.menu.link_mode.static=Static -unoq.menu.link_mode.static.build.link_mode=static -unoq.menu.link_mode.static.upload.extension=bin-zsk.bin - -unoq.menu.wait_linux_boot.yes=Wait for Linux -unoq.menu.wait_linux_boot.no=Immediate -unoq.menu.wait_linux_boot.no.build.boot_mode=immediate -unoq.menu.wait_linux_boot.app=Wait for App -unoq.menu.wait_linux_boot.app.build.boot_mode=app - -unoq.build.zephyr_target=arduino_uno_q -unoq.build.zephyr_args= -unoq.build.variant=arduino_uno_q_stm32u585xx -unoq.build.artifact=zephyr_unoq -unoq.build.subarch=zephyr - -unoq.openocd_cfg=flash_sketch.cfg -unoq.build.extra_flags= -unoq.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit -unoq.build.board=UNO_Q -unoq.build.zephyr_hals=hal_stm32 -unoq.build.zephyr_toolchain=arm-zephyr-eabi -unoq.vid.0=0x2341 -unoq.pid.0=0x0078 -unoq.upload_port.0.vid=0x2341 -unoq.upload_port.0.pid=0x0078 -unoq.upload.target=stm32u585zitxq - -unoq.upload.tool=remoteocd -unoq.upload.tool.default=remoteocd -unoq.upload.tool.network=remoteocd_network -unoq.upload.protocol= -unoq.upload.transport= -unoq.upload.vid=0x2341 -unoq.upload.pid=0x0078 -unoq.upload.interface=0 -unoq.upload.use_1200bps_touch=false -unoq.upload.wait_for_upload_port=false -unoq.upload.native_usb=true - -unoq.bootloader.tool=remoteocd -unoq.bootloader.tool.default=remoteocd -unoq.bootloader.file=zephyr-{build.variant}.elf -unoq.bootloader.target=stm32u585zitxq +# giga.name=Arduino Giga R1 +# giga.build.core=arduino +# giga.build.crossprefix=arm-zephyr-eabi- +# giga.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# giga.menu.debug.false=Standard +# giga.menu.debug.true=Debug +# giga.menu.debug.true.build.zsk_args.debug=-debug +# +# giga.menu.link_mode.dynamic=Dynamic +# giga.menu.link_mode.static=Static +# giga.menu.link_mode.static.build.link_mode=static +# giga.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# giga.build.zephyr_target=arduino_giga_r1//m7 +# giga.build.zephyr_args=--shield arduino_giga_display_shield +# giga.build.zephyr_hals=hal_stm32 hal_infineon +# giga.build.variant=arduino_giga_r1_stm32h747xx_m7 +# giga.build.artifact=zephyr_main +# +# giga.build.extra_flags= +# giga.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# giga.build.board=GIGA +# giga.vid.0=0x2341 +# giga.pid.0=0x0066 +# giga.upload_port.0.vid=0x2341 +# giga.upload_port.0.pid=0x0066 +# +# giga.upload.tool=dfu-util +# giga.upload.tool.default=dfu-util +# giga.upload.protocol= +# giga.upload.transport= +# giga.upload.vid=0x2341 +# giga.upload.pid=0x0366 +# giga.upload.interface=0 +# giga.upload.use_1200bps_touch=true +# giga.upload.wait_for_upload_port=true +# giga.upload.native_usb=true +# +# giga.bootloader.tool=dfu-util +# giga.bootloader.tool.default=dfu-util +# giga.bootloader.vid=0x2341 +# giga.bootloader.pid=0x0366 +# giga.bootloader.interface=0 +# giga.bootloader.file=zephyr-{build.variant}.bin +# giga.bootloader.address=0x08040000 +# +# giga.debug.tool=gdb +# giga.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg +# giga.debug.server.openocd.scripts.1={programmer.transport_script} +# giga.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg +# giga.debug.cortex-debug.custom.request=attach +# giga.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd +# +# ########################################################################################## +# +# nano33ble.name=Arduino Nano 33 BLE +# nano33ble.build.core=arduino +# nano33ble.build.crossprefix=arm-zephyr-eabi- +# nano33ble.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# nano33ble.menu.debug.false=Standard +# nano33ble.menu.debug.true=Debug +# nano33ble.menu.debug.true.build.zsk_args.debug=-debug +# +# nano33ble.menu.link_mode.dynamic=Dynamic +# nano33ble.menu.link_mode.static=Static +# nano33ble.menu.link_mode.static.build.link_mode=static +# nano33ble.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# nano33ble.build.zephyr_target=arduino_nano_33_ble//sense +# nano33ble.build.zephyr_args= +# nano33ble.build.zephyr_hals=hal_nordic +# nano33ble.build.artifact=zephyr_main +# nano33ble.build.variant=arduino_nano_33_ble_nrf52840_sense +# +# nano33ble.build.extra_flags= +# nano33ble.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# nano33ble.build.board=NANO33BLE +# nano33ble.vid.0=0x2341 +# nano33ble.pid.0=0x035a +# nano33ble.upload_port.0.vid=0x2341 +# nano33ble.upload_port.0.pid=0x005a +# +# nano33ble.upload.tool=bossac +# nano33ble.upload.tool.default=bossac +# nano33ble.upload.protocol= +# nano33ble.upload.transport= +# nano33ble.upload.vid=0x2341 +# nano33ble.upload.pid=0x005a +# nano33ble.upload.interface=0 +# nano33ble.upload.use_1200bps_touch=true +# nano33ble.upload.wait_for_upload_port=true +# nano33ble.upload.native_usb=true +# +# nano33ble.bootloader.tool=bossac +# nano33ble.bootloader.tool.default=bossac +# nano33ble.bootloader.vid=0x2341 +# nano33ble.bootloader.pid=0x035b +# nano33ble.bootloader.interface=0 +# nano33ble.bootloader.file=zephyr-{build.variant}.bin +# nano33ble.bootloader.address=0x0000 +# +# nano33ble.debug.tool=gdb +# nano33ble.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg +# nano33ble.debug.server.openocd.scripts.1={programmer.transport_script} +# nano33ble.debug.server.openocd.scripts.2=target/nrf52.cfg +# nano33ble.debug.cortex-debug.custom.request=attach +# +# ############################################################################################################## +# +# ek_ra8d1.name=Renesas RA8D1 EK +# ek_ra8d1.build.core=arduino +# ek_ra8d1.build.crossprefix=arm-zephyr-eabi- +# ek_ra8d1.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# ek_ra8d1.menu.debug.false=Standard +# ek_ra8d1.menu.debug.true=Debug +# ek_ra8d1.menu.debug.true.build.zsk_args.debug=-debug +# +# ek_ra8d1.menu.link_mode.dynamic=Dynamic +# ek_ra8d1.menu.link_mode.static=Static +# ek_ra8d1.menu.link_mode.static.build.link_mode=static +# ek_ra8d1.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# ek_ra8d1.build.zephyr_target=ek_ra8d1 +# ek_ra8d1.build.zephyr_args= +# ek_ra8d1.build.zephyr_hals=hal_renesas +# ek_ra8d1.build.variant=ek_ra8d1_r7fa8d1bhecbd +# +# ek_ra8d1.build.extra_flags= +# ek_ra8d1.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# ek_ra8d1.build.board=EK_RA8D1 +# +# #ek_ra8d1.recipe.hooks.objcopy.postobjcopy.4.pattern=cp {build.variant.path}/flasher.jlink "{build.path}/flasher.jlink" +# #ek_ra8d1.recipe.hooks.objcopy.postobjcopy.5.pattern=sed -i 's|SKETCH|"{build.path}/{build.project_name}.llext.dfu.bin"|g' "{build.path}/flasher.jlink" +# +# ek_ra8d1.vid.0=0x2341 +# ek_ra8d1.pid.0=0x0077 +# ek_ra8d1.upload_port.0.vid=0x2341 +# ek_ra8d1.upload_port.0.pid=0x0077 +# +# ek_ra8d1.upload.tool=pyocd +# ek_ra8d1.upload.tool.default=pyocd +# ek_ra8d1.upload.protocol= +# ek_ra8d1.upload.transport= +# ek_ra8d1.upload.vid=0x2341 +# ek_ra8d1.upload.pid=0x0366 +# ek_ra8d1.upload.interface=0 +# ek_ra8d1.upload.use_1200bps_touch=false +# ek_ra8d1.upload.wait_for_upload_port=false +# ek_ra8d1.upload.native_usb=true +# ek_ra8d1.upload.target=R7FA8D1AH +# +# ek_ra8d1.bootloader.tool=pyocd +# ek_ra8d1.bootloader.tool.default=pyocd +# ek_ra8d1.bootloader.file=zephyr-{build.variant}.elf +# ek_ra8d1.bootloader.target=R7FA8D1AH +# +# +# ############################################################################################################## +# +# frdm_mcxn947.name=NXP FRDM MCXN947 +# frdm_mcxn947.build.core=arduino +# frdm_mcxn947.build.crossprefix=arm-zephyr-eabi- +# frdm_mcxn947.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# frdm_mcxn947.menu.debug.false=Standard +# frdm_mcxn947.menu.debug.true=Debug +# frdm_mcxn947.menu.debug.true.build.zsk_args.debug=-debug +# +# frdm_mcxn947.menu.link_mode.dynamic=Dynamic +# frdm_mcxn947.menu.link_mode.static=Static +# frdm_mcxn947.menu.link_mode.static.build.link_mode=static +# frdm_mcxn947.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# frdm_mcxn947.build.zephyr_target=frdm_mcxn947//cpu0 +# frdm_mcxn947.build.zephyr_args= +# frdm_mcxn947.build.zephyr_hals=hal_nxp +# frdm_mcxn947.build.variant=frdm_mcxn947_mcxn947_cpu0 +# frdm_mcxn947.build.extra_flags= +# frdm_mcxn947.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# frdm_mcxn947.build.board=FRDM_MCXN947 +# frdm_mcxn947.vid.0=0x1fc9 +# frdm_mcxn947.pid.0=0x0143 +# frdm_mcxn947.upload_port.0.vid=0x1fc9 +# frdm_mcxn947.upload_port.0.pid=0x0143 +# frdm_mcxn947.upload.target=mcxn947vdf +# +# frdm_mcxn947.upload.tool=pyocd +# frdm_mcxn947.upload.tool.default=pyocd +# frdm_mcxn947.upload.protocol= +# frdm_mcxn947.upload.transport= +# frdm_mcxn947.upload.vid=0x1fc9 +# frdm_mcxn947.upload.pid=0x0143 +# frdm_mcxn947.upload.interface=0 +# frdm_mcxn947.upload.use_1200bps_touch=false +# frdm_mcxn947.upload.wait_for_upload_port=false +# frdm_mcxn947.upload.native_usb=true +# +# frdm_mcxn947.bootloader.tool=pyocd +# frdm_mcxn947.bootloader.tool.default=pyocd +# frdm_mcxn947.bootloader.file=zephyr-{build.variant}.elf +# frdm_mcxn947.bootloader.target=mcxn947vdf +# +# +# ########################################################################################## +# +# portentah7.name=Arduino Portenta H7 +# portentah7.build.core=arduino +# portentah7.build.crossprefix=arm-zephyr-eabi- +# portentah7.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# portentah7.menu.debug.false=Standard +# portentah7.menu.debug.true=Debug +# portentah7.menu.debug.true.build.zsk_args.debug=-debug +# +# portentah7.menu.link_mode.dynamic=Dynamic +# portentah7.menu.link_mode.static=Static +# portentah7.menu.link_mode.static.build.link_mode=static +# portentah7.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# portentah7.build.zephyr_target=arduino_portenta_h7@1.0.0//m7 +# portentah7.build.zephyr_args= +# portentah7.build.zephyr_hals=hal_stm32 hal_infineon +# portentah7.build.artifact=zephyr_main +# portentah7.build.variant=arduino_portenta_h7_stm32h747xx_m7 +# +# portentah7.build.extra_flags= +# portentah7.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# portentah7.build.board=PORTENTA_H7_M7 +# portentah7.vid.0=0x2341 +# portentah7.pid.0=0x005b +# portentah7.upload_port.0.vid=0x2341 +# portentah7.upload_port.0.pid=0x035b +# +# portentah7.upload.tool=dfu-util +# portentah7.upload.tool.default=dfu-util +# portentah7.upload.protocol= +# portentah7.upload.transport= +# portentah7.upload.vid=0x2341 +# portentah7.upload.pid=0x035b +# portentah7.upload.interface=0 +# portentah7.upload.use_1200bps_touch=true +# portentah7.upload.wait_for_upload_port=true +# portentah7.upload.native_usb=true +# +# portentah7.bootloader.tool=dfu-util +# portentah7.bootloader.tool.default=dfu-util +# portentah7.bootloader.vid=0x2341 +# portentah7.bootloader.pid=0x035b +# portentah7.bootloader.interface=0 +# portentah7.bootloader.file=zephyr-{build.variant}.bin +# portentah7.bootloader.address=0x08040000 +# +# portentah7.debug.tool=gdb +# portentah7.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg +# portentah7.debug.server.openocd.scripts.1={programmer.transport_script} +# portentah7.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg +# portentah7.debug.cortex-debug.custom.request=attach +# portentah7.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd +# +# ############################################################################################################## +# +# nicla_vision.name=Arduino Nicla Vision +# nicla_vision.build.core=arduino +# nicla_vision.build.crossprefix=arm-zephyr-eabi- +# nicla_vision.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# nicla_vision.menu.debug.false=Standard +# nicla_vision.menu.debug.true=Debug +# nicla_vision.menu.debug.true.build.zsk_args.debug=-debug +# +# nicla_vision.menu.link_mode.dynamic=Dynamic +# nicla_vision.menu.link_mode.static=Static +# nicla_vision.menu.link_mode.static.build.link_mode=static +# nicla_vision.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# nicla_vision.build.zephyr_target=arduino_nicla_vision//m7 +# nicla_vision.build.zephyr_args= +# nicla_vision.build.zephyr_hals=hal_stm32 hal_infineon +# nicla_vision.build.artifact=zephyr_main +# nicla_vision.build.variant=arduino_nicla_vision_stm32h747xx_m7 +# +# nicla_vision.build.extra_flags= +# nicla_vision.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# nicla_vision.build.board=NICLA_VISION +# nicla_vision.vid.0=0x2341 +# nicla_vision.pid.0=0x005b +# nicla_vision.upload_port.0.vid=0x2341 +# nicla_vision.upload_port.0.pid=0x025f +# +# nicla_vision.upload.tool=dfu-util +# nicla_vision.upload.tool.default=dfu-util +# nicla_vision.upload.protocol= +# nicla_vision.upload.transport= +# nicla_vision.upload.vid=0x2341 +# nicla_vision.upload.pid=0x035f +# nicla_vision.upload.interface=0 +# nicla_vision.upload.use_1200bps_touch=true +# nicla_vision.upload.wait_for_upload_port=true +# nicla_vision.upload.native_usb=true +# +# nicla_vision.bootloader.tool=dfu-util +# nicla_vision.bootloader.tool.default=dfu-util +# nicla_vision.bootloader.vid=0x2341 +# nicla_vision.bootloader.pid=0x035f +# nicla_vision.bootloader.interface=0 +# nicla_vision.bootloader.file=zephyr-{build.variant}.bin +# nicla_vision.bootloader.address=0x08040000 +# +# nicla_vision.debug.tool=gdb +# nicla_vision.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg +# nicla_vision.debug.server.openocd.scripts.1={programmer.transport_script} +# nicla_vision.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg +# nicla_vision.debug.cortex-debug.custom.request=attach +# nicla_vision.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd +# +# ############################################################################################################## +# +# frdm_rw612.name=NXP FRDM RW612 +# frdm_rw612.build.core=arduino +# frdm_rw612.build.crossprefix=arm-zephyr-eabi- +# frdm_rw612.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# frdm_rw612.menu.debug.false=Standard +# frdm_rw612.menu.debug.true=Debug +# frdm_rw612.menu.debug.true.build.zsk_args.debug=-debug +# +# frdm_rw612.menu.link_mode.dynamic=Dynamic +# frdm_rw612.menu.link_mode.static=Static +# frdm_rw612.menu.link_mode.static.build.link_mode=static +# frdm_rw612.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# frdm_rw612.build.zephyr_target=frdm_rw612 +# frdm_rw612.build.zephyr_args= +# frdm_rw612.build.zephyr_hals=hal_stm32 +# frdm_rw612.build.variant=frdm_rw612_rw612 +# frdm_rw612.build.extra_flags= +# frdm_rw612.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# frdm_rw612.build.board=FRDM_RW612 +# frdm_rw612.vid.0=0x1fc9 +# frdm_rw612.pid.0=0x0143 +# frdm_rw612.upload_port.0.vid=0x1fc9 +# frdm_rw612.upload_port.0.pid=0x0143 +# frdm_rw612.upload.target=rw612 +# +# frdm_rw612.upload.tool=pyocd +# frdm_rw612.upload.tool.default=pyocd +# frdm_rw612.upload.protocol= +# frdm_rw612.upload.transport= +# frdm_rw612.upload.vid=0x1fc9 +# frdm_rw612.upload.pid=0x0143 +# frdm_rw612.upload.interface=0 +# frdm_rw612.upload.use_1200bps_touch=false +# frdm_rw612.upload.wait_for_upload_port=false +# frdm_rw612.upload.native_usb=true +# +# frdm_rw612.bootloader.tool=pyocd +# frdm_rw612.bootloader.tool.default=pyocd +# frdm_rw612.bootloader.file=zephyr-{build.variant}.elf +# frdm_rw612.bootloader.target=rw612 +# +# ########################################################################################## +# +# nicla_sense.name=Arduino Nicla Sense ME +# nicla_sense.build.core=arduino +# nicla_sense.build.crossprefix=arm-zephyr-eabi- +# nicla_sense.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# nicla_sense.menu.link_mode.dynamic=Dynamic +# nicla_sense.menu.link_mode.static=Static +# nicla_sense.menu.link_mode.static.build.link_mode=static +# nicla_sense.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# nicla_sense.build.zephyr_target=arduino_nicla_sense_me +# nicla_sense.build.zephyr_args= +# nicla_sense.build.zephyr_hals=hal_nordic +# nicla_sense.build.artifact=zephyr_main +# nicla_sense.build.variant=arduino_nicla_sense_me_nrf52832 +# +# nicla_sense.build.extra_flags= +# nicla_sense.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# nicla_sense.build.board=NICLA_SENSE_ME +# nicla_sense.vid.0=0x2341 +# nicla_sense.pid.0=0x0360 +# nicla_sense.upload_port.0.vid=0x2341 +# nicla_sense.upload_port.0.pid=0x0060 +# +# nicla_sense.upload.tool=openocd +# nicla_sense.upload.tool.default=openocd +# nicla_sense.upload.protocol= +# nicla_sense.upload.config=-f target/nrf52.cfg +# nicla_sense.upload.programmer=-f interface/cmsis-dap.cfg +# nicla_sense.upload.vid=0x2341 +# nicla_sense.upload.pid=0x0060 +# nicla_sense.upload.interface=0 +# nicla_sense.upload.use_1200bps_touch=false +# nicla_sense.upload.wait_for_upload_port=false +# nicla_sense.upload.native_usb=false +# nicla_sense.upload.target=nrf52 +# +# nicla_sense.bootloader.tool=openocd +# nicla_sense.bootloader.tool.default=openocd +# nicla_sense.bootloader.vid=0x2341 +# nicla_sense.bootloader.pid=0x0360 +# nicla_sense.bootloader.interface=0 +# nicla_sense.bootloader.file=zephyr-{build.variant}.hex +# nicla_sense.bootloader.target=nrf52 +# +# nicla_sense.debug.tool=gdb +# nicla_sense.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg +# nicla_sense.debug.server.openocd.scripts.1={programmer.transport_script} +# nicla_sense.debug.server.openocd.scripts.2=target/nrf52.cfg +# nicla_sense.debug.cortex-debug.custom.request=attach +# +# +# ########################################################################################## +# +# portentac33.name=Arduino Portenta C33 +# portentac33.build.core=arduino +# portentac33.build.crossprefix=arm-zephyr-eabi- +# portentac33.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# portentac33.menu.debug.false=Standard +# portentac33.menu.debug.true=Debug +# portentac33.menu.debug.true.build.zsk_args.debug=-debug +# +# portentac33.menu.link_mode.dynamic=Dynamic +# portentac33.menu.link_mode.static=Static +# portentac33.menu.link_mode.static.build.link_mode=static +# portentac33.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# portentac33.build.zephyr_target=arduino_portenta_c33 +# portentac33.build.zephyr_args= +# portentac33.build.zephyr_hals=hal_renesas nanopb +# portentac33.build.artifact=zephyr_main +# portentac33.build.variant=arduino_portenta_c33_r7fa6m5bh3cfc +# portentac33.build.extra_flags= +# portentac33.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# portentac33.build.board=PORTENTA_C33 +# portentac33.vid.0=0x2341 +# portentac33.pid.0=0x0068 +# portentac33.upload_port.0.vid=0x2341 +# portentac33.upload_port.0.pid=0x0068 +# portentac33.upload.target=portentac33 +# +# portentac33.upload.tool=dfu-util +# portentac33.upload.tool.default=dfu-util +# portentac33.upload.protocol= +# portentac33.upload.transport= +# portentac33.upload.vid=0x2341 +# portentac33.upload.pid=0x0368 +# portentac33.upload.interface=1 +# portentac33.upload.use_1200bps_touch=true +# portentac33.upload.wait_for_upload_port=false +# portentac33.upload.native_usb=true +# portentac33.upload.dfuse=-Q -w +# +# portentac33.bootloader.tool=dfu-util +# portentac33.bootloader.tool.default=dfu-util +# portentac33.bootloader.file=zephyr-{build.variant}.bin +# portentac33.bootloader.interface=0 +# portentac33.bootloader.address=0x10000 +# portentac33.bootloader.dfuse=-Q +# +# ########################################################################################## +# +# opta.name=Arduino Opta +# opta.build.core=arduino +# opta.build.crossprefix=arm-zephyr-eabi- +# opta.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# opta.menu.debug.false=Standard +# opta.menu.debug.true=Debug +# opta.menu.debug.true.build.zsk_args.debug=-debug +# +# opta.menu.link_mode.dynamic=Dynamic +# opta.menu.link_mode.static=Static +# opta.menu.link_mode.static.build.link_mode=static +# opta.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# opta.build.zephyr_target=arduino_opta//m7 +# opta.build.zephyr_args= +# opta.build.zephyr_hals=hal_stm32 hal_infineon +# opta.build.artifact=zephyr_main +# opta.build.variant=arduino_opta_stm32h747xx_m7 +# +# opta.build.extra_flags= +# opta.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# opta.build.board=OPTA +# opta.vid.0=0x2341 +# opta.pid.0=0x0064 +# opta.upload_port.0.vid=0x2341 +# opta.upload_port.0.pid=0x0364 +# +# opta.upload.tool=dfu-util +# opta.upload.tool.default=dfu-util +# opta.upload.protocol= +# opta.upload.transport= +# opta.upload.vid=0x2341 +# opta.upload.pid=0x0364 +# opta.upload.interface=0 +# opta.upload.use_1200bps_touch=true +# opta.upload.wait_for_upload_port=true +# opta.upload.native_usb=true +# +# opta.bootloader.tool=dfu-util +# opta.bootloader.tool.default=dfu-util +# opta.bootloader.vid=0x2341 +# opta.bootloader.pid=0x0364 +# opta.bootloader.interface=0 +# opta.bootloader.file=zephyr-{build.variant}.bin +# opta.bootloader.address=0x08040000 +# +# opta.debug.tool=gdb +# opta.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg +# opta.debug.server.openocd.scripts.1={programmer.transport_script} +# opta.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg +# opta.debug.cortex-debug.custom.request=attach +# opta.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd +# +# ########################################################################################## +# +# nano_matter.name=Arduino Nano Matter +# nano_matter.build.core=arduino +# nano_matter.build.crossprefix=arm-zephyr-eabi- +# nano_matter.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# nano_matter.menu.link_mode.dynamic=Dynamic +# nano_matter.menu.link_mode.static=Static +# nano_matter.menu.link_mode.static.build.link_mode=static +# nano_matter.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# nano_matter.build.zephyr_target=arduino_nano_matter +# nano_matter.build.zephyr_args= +# nano_matter.build.zephyr_hals=hal_silabs +# nano_matter.build.artifact=zephyr_main +# nano_matter.build.variant=arduino_nano_matter_mgm240sd22vna +# +# nano_matter.build.extra_flags= +# nano_matter.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# nano_matter.build.board=ARDUINO_NANO_MATTER +# nano_matter.vid.0=0x2341 +# nano_matter.pid.0=0x0072 +# nano_matter.upload_port.0.vid=0x2341 +# nano_matter.upload_port.0.pid=0x0072 +# +# nano_matter.upload.tool=openocd +# nano_matter.upload.tool.default=openocd +# nano_matter.upload.config=-f target/efm32s2_g23.cfg +# nano_matter.upload.programmer=-f interface/cmsis-dap.cfg +# nano_matter.upload.protocol=SWD +# nano_matter.upload.setup_command= +# nano_matter.upload.use_1200bps_touch=false +# nano_matter.upload.wait_for_upload_port=false +# nano_matter.upload.native_usb=false +# +# nano_matter.bootloader.tool=openocd +# nano_matter.bootloader.tool.default=openocd +# nano_matter.bootloader.vid=0x2341 +# nano_matter.bootloader.pid=0x0072 +# nano_matter.bootloader.interface=0 +# nano_matter.bootloader.file=zephyr-{build.variant}.hex +# nano_matter.bootloader.target=arduino_nano_matter +# +# nano_matter.debug.server=openocd +# nano_matter.debug.server.openocd.scripts.0=interface/cmsis-dap.cfg +# nano_matter.debug.server.openocd.scripts.1=target/efm32s2_g23.cfg +# nano_matter.debug.cortex-debug.custom.postAttachCommands.0=monitor reset halt +# #nano_matter.debug.cortex-debug.custom.postAttachCommands.1=monitor reset_config srst_nogate +# #nano_matter.debug.cortex-debug.custom.postAttachCommands.2=monitor gdb_breakpoint_override hard +# nano_matter.debug.cortex-debug.custom.postAttachCommands.3=monitor gdb_sync +# nano_matter.debug.cortex-debug.custom.postAttachCommands.4=c +# nano_matter.debug.cortex-debug.custom.overrideRestartCommands.0=monitor reset halt +# nano_matter.debug.cortex-debug.custom.overrideRestartCommands.1=monitor gdb_sync +# nano_matter.debug.cortex-debug.custom.overrideRestartCommands.2=c +# nano_matter.debug.cortex-debug.custom.request=attach +# +# ############################################################################################################## +# +# unoq.name=Arduino UNO Q +# unoq.build.core=arduino +# unoq.build.crossprefix=arm-zephyr-eabi- +# unoq.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/ +# +# unoq.menu.link_mode.dynamic=Dynamic +# unoq.menu.link_mode.static=Static +# unoq.menu.link_mode.static.build.link_mode=static +# unoq.menu.link_mode.static.upload.extension=bin-zsk.bin +# +# unoq.menu.wait_linux_boot.yes=Wait for Linux +# unoq.menu.wait_linux_boot.no=Immediate +# unoq.menu.wait_linux_boot.no.build.boot_mode=immediate +# unoq.menu.wait_linux_boot.app=Wait for App +# unoq.menu.wait_linux_boot.app.build.boot_mode=app +# +# unoq.build.zephyr_target=arduino_uno_q +# unoq.build.zephyr_args= +# unoq.build.variant=arduino_uno_q_stm32u585xx +# unoq.build.artifact=zephyr_unoq +# unoq.build.subarch=zephyr +# +# unoq.openocd_cfg=flash_sketch.cfg +# unoq.build.extra_flags= +# unoq.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit +# unoq.build.board=UNO_Q +# unoq.build.zephyr_hals=hal_stm32 +# unoq.build.zephyr_toolchain=arm-zephyr-eabi +# unoq.vid.0=0x2341 +# unoq.pid.0=0x0078 +# unoq.upload_port.0.vid=0x2341 +# unoq.upload_port.0.pid=0x0078 +# unoq.upload.target=stm32u585zitxq +# +# unoq.upload.tool=remoteocd +# unoq.upload.tool.default=remoteocd +# unoq.upload.tool.network=remoteocd_network +# unoq.upload.protocol= +# unoq.upload.transport= +# unoq.upload.vid=0x2341 +# unoq.upload.pid=0x0078 +# unoq.upload.interface=0 +# unoq.upload.use_1200bps_touch=false +# unoq.upload.wait_for_upload_port=false +# unoq.upload.native_usb=true +# +# unoq.bootloader.tool=remoteocd +# unoq.bootloader.tool.default=remoteocd +# unoq.bootloader.file=zephyr-{build.variant}.elf +# unoq.bootloader.target=stm32u585zitxq +# +# ########################################################################################## + + +kit_pse84_ai.name=Infineon KIT-PSE84-AI (PSoC Edge E84) +kit_pse84_ai.build.core=arduino +kit_pse84_ai.build.crossprefix=arm-zephyr-eabi- +kit_pse84_ai.build.compiler_path={runtime.tools.arm-zephyr-eabi-1.0.1.path}/bin/ +kit_pse84_ai.menu.debug.false=Standard +kit_pse84_ai.menu.debug.true=Debug +kit_pse84_ai.menu.debug.true.build.zsk_args.debug=-debug +kit_pse84_ai.menu.link_mode.dynamic=Dynamic +kit_pse84_ai.menu.link_mode.static=Static +kit_pse84_ai.menu.link_mode.static.build.link_mode=static +kit_pse84_ai.menu.link_mode.static.upload.extension=bin-zsk.bin +kit_pse84_ai.build.zephyr_target=kit_pse84_ai/pse846gps2dbzc4a/m33 +kit_pse84_ai.build.zephyr_args= +kit_pse84_ai.build.zephyr_hals=hal_infineon +kit_pse84_ai.build.variant=kit_pse84_ai_pse846gps2dbzc4a_m33 +kit_pse84_ai.build.mcu=cortex-m33 +kit_pse84_ai.build.fpu=-mfpu=fpv5-sp-d16 +kit_pse84_ai.build.architecture=cortex-m33 +kit_pse84_ai.build.float-abi=-mfloat-abi=hard +kit_pse84_ai.compiler.zephyr.specs= +kit_pse84_ai.build.extra_flags= +kit_pse84_ai.build.specs= +kit_pse84_ai.build.link_command="{compiler.path}{compiler.c.elf.cmd}" "-L{build.path}" "-L{build.variant.path}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} {build.extra_flags} {build.extra_ldflags} {compiler.zephyr.common_ldflags} {compiler.ldflags} {object_files} -Wl,--start-group "{build.path}/{archive_file}" {compiler.zephyr.extra_ldflags} {compiler.libraries.ldflags} -Wl,--end-group {build.link_args.{build.link_mode}} +kit_pse84_ai.build.postbuild.cmd="{tools.openocd.path}/{tools.openocd.cmd}" exit +kit_pse84_ai.build.board=KIT_PSE84_AI +kit_pse84_ai.upload.address=0x60200000 +kit_pse84_ai.upload.target=pse84 +kit_pse84_ai.upload.tool=openocd +kit_pse84_ai.upload.tool.default=openocd +kit_pse84_ai.tools.openocd.path={runtime.tools.openocd.path} +kit_pse84_ai.tools.openocd.cmd=bin/openocd +kit_pse84_ai.tools.openocd.cmd.windows=bin/openocd.exe +kit_pse84_ai.programmer.default=cmsis-dap +kit_pse84_ai.tools.openocd.upload.pattern="{path}/{cmd}" {upload.verbose} -s "{path}/scripts/" -s "{path}/share/openocd/scripts/" -s "{runtime.platform.path}/variants/{build.variant}/" -f "{runtime.platform.path}/variants/{build.variant}/openocd.cfg" -c "telnet_port disabled; init; reset init; halt; adapter speed 10000; flash write_image erase {{build.path}/{build.project_name}.{upload.extension}} {upload.address} bin; reset run; shutdown" +kit_pse84_ai.tools.openocd.program.pattern="{path}/{cmd}" {program.verbose} -s "{path}/scripts/" -s "{path}/share/openocd/scripts/" -s "{runtime.platform.path}/variants/{build.variant}/" -f "{runtime.platform.path}/variants/{build.variant}/openocd.cfg" -c "telnet_port disabled; init; reset init; halt; adapter speed 10000; flash write_image erase {{build.path}/{build.project_name}.{upload.extension}} {upload.address} bin; reset run; shutdown" +kit_pse84_ai.tools.openocd.bootloader.pattern="{path}/{cmd}" {bootloader.verbose} -s "{path}/scripts/" -s "{path}/share/openocd/scripts/" -s "{runtime.platform.path}/variants/{build.variant}/" -f "{runtime.platform.path}/variants/{build.variant}/openocd.cfg" -c "telnet_port disabled; init; reset init; halt; adapter speed 10000; program {{runtime.platform.path}/firmwares/zephyr-{build.variant}.hex}; reset run; shutdown" +kit_pse84_ai.tools.openocd.upload.pattern.windows=cmd /C cd /D "{build.path}" && "{path}/{cmd}" {upload.verbose} -s "{path}/scripts/" -s "{path}/share/openocd/scripts/" -s "{runtime.platform.path}/variants/{build.variant}/" -f "{runtime.platform.path}/variants/{build.variant}/openocd.cfg" -c "set sketch_file [list {build.project_name}.{upload.extension}]; telnet_port disabled; init; reset init; halt; adapter speed 10000; flash write_image erase $sketch_file {upload.address} bin; reset run; shutdown" +kit_pse84_ai.tools.openocd.program.pattern.windows=cmd /C cd /D "{build.path}" && "{path}/{cmd}" {program.verbose} -s "{path}/scripts/" -s "{path}/share/openocd/scripts/" -s "{runtime.platform.path}/variants/{build.variant}/" -f "{runtime.platform.path}/variants/{build.variant}/openocd.cfg" -c "set sketch_file [list {build.project_name}.{upload.extension}]; telnet_port disabled; init; reset init; halt; adapter speed 10000; flash write_image erase $sketch_file {upload.address} bin; reset run; shutdown" +kit_pse84_ai.upload.protocol= +kit_pse84_ai.upload.transport= +kit_pse84_ai.upload.interface=0 +kit_pse84_ai.upload.use_1200bps_touch=false +kit_pse84_ai.upload.wait_for_upload_port=false +kit_pse84_ai.upload.native_usb=false +kit_pse84_ai.upload.maximum_size=1047552 +kit_pse84_ai.upload.maximum_data_size=135168 +kit_pse84_ai.bootloader.tool=openocd +kit_pse84_ai.bootloader.tool.default=openocd +kit_pse84_ai.tools.openocd.bootloader.pattern.windows=cmd /C cd /D "{runtime.platform.path}/firmwares" && "{path}/{cmd}" {bootloader.verbose} -s "{path}/scripts/" -s "{path}/share/openocd/scripts/" -s "{runtime.platform.path}/variants/{build.variant}/" -f "{runtime.platform.path}/variants/{build.variant}/openocd.cfg" -c "set bootloader_file [list zephyr-{build.variant}.hex]; telnet_port disabled; init; reset init; halt; adapter speed 10000; program $bootloader_file; reset run; shutdown" +kit_pse84_ai.bootloader.target=pse84 ########################################################################################## diff --git a/extra/apply_zephyr_patches.sh b/extra/apply_zephyr_patches.sh new file mode 100644 index 000000000..12d1c5b43 --- /dev/null +++ b/extra/apply_zephyr_patches.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# Copyright (c) Arduino s.r.l. and/or its affiliated companies +# SPDX-License-Identifier: Apache-2.0 + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PATCH_DIR="$SCRIPT_DIR/patches/zephyr" + +if [ ! -d "$PATCH_DIR" ]; then + # No patch set is configured. + exit 0 +fi + +if ! command -v west >/dev/null 2>&1; then + echo "[ERROR] west is not available; cannot resolve Zephyr workspace" + exit 1 +fi + +ZEPHYR_BASE="$(west list -f '{abspath}' zephyr 2>/dev/null || true)" +if [ -z "$ZEPHYR_BASE" ]; then + echo "[ERROR] Unable to locate Zephyr module with 'west list zephyr'" + exit 1 +fi + +if [ ! -d "$ZEPHYR_BASE/.git" ]; then + echo "[ERROR] Zephyr repository not found at '$ZEPHYR_BASE'" + exit 1 +fi + +applied_any=false +for patch in "$PATCH_DIR"/*.patch; do + [ -e "$patch" ] || continue + patch_name="$(basename "$patch")" + + if git -C "$ZEPHYR_BASE" apply --check "$patch" >/dev/null 2>&1; then + echo "[INFO] Applying Zephyr patch: $patch_name" + git -C "$ZEPHYR_BASE" apply "$patch" + applied_any=true + elif git -C "$ZEPHYR_BASE" apply --reverse --check "$patch" >/dev/null 2>&1; then + echo "[INFO] Zephyr patch already applied: $patch_name" + else + echo "[ERROR] Cannot apply Zephyr patch cleanly: $patch_name" + echo "[ERROR] Patch file: $patch" + exit 1 + fi +done + +if [ "$applied_any" = true ]; then + echo "[INFO] Zephyr patch set applied" +fi diff --git a/extra/artifacts/_common.json b/extra/artifacts/_common.json index 9d9723469..f8fc37d8b 100644 --- a/extra/artifacts/_common.json +++ b/extra/artifacts/_common.json @@ -16,7 +16,7 @@ { "packager": "zephyr", "name": "arm-zephyr-eabi", - "version": "0.16.8" + "version": "1.0.1" }, { "packager": "arduino", diff --git a/extra/bootstrap.sh b/extra/bootstrap.sh index ef3d48929..c60e6dc6d 100755 --- a/extra/bootstrap.sh +++ b/extra/bootstrap.sh @@ -35,12 +35,13 @@ log_msg "group" "Initializing Zephyr workspace and modules: $HAL_FILTER" west init -l . west config manifest.project-filter -- "$HAL_FILTER" west update "$@" +bash ./extra/apply_zephyr_patches.sh west zephyr-export pip install -r ../zephyr/scripts/requirements-base.txt log_msg "endgroup" -log_msg "group" "Installing Zephyr SDK 0.16.8" -west sdk install --version 0.16.8 -t arm-zephyr-eabi +log_msg "group" "Installing Zephyr SDK 1.0.1" +west sdk install --version 1.0.1 -t arm-zephyr-eabi log_msg "endgroup" log_msg "group" "Fetching blobs for: $NEEDED_HALS" diff --git a/extra/build.sh b/extra/build.sh index 8e3029bc4..58cdc7b8f 100755 --- a/extra/build.sh +++ b/extra/build.sh @@ -9,6 +9,10 @@ source venv/bin/activate ZEPHYR_BASE=$(west topdir)/zephyr +# Ensure Zephyr patch set is applied even for incremental builds where +# bootstrap.sh was not re-run. +bash ./extra/apply_zephyr_patches.sh + if [ x$ZEPHYR_SDK_INSTALL_DIR == x"" ]; then SDK_PATH=$(west sdk list | grep path | tail -n 1 | cut -d ':' -f 2 | tr -d ' ') if [ x$SDK_PATH == x ]; then @@ -100,9 +104,12 @@ perl -i -pe "s/${c_comment}//gs unless /${line_preproc_ok}/ || (/${line_comment_ for ext in elf bin hex; do rm -f firmwares/zephyr-$variant.$ext - if [ -f ${BUILD_DIR}/zephyr/zephyr.$ext ]; then - cp ${BUILD_DIR}/zephyr/zephyr.$ext firmwares/zephyr-$variant.$ext - fi + if [ "$ext" = "hex" ] && [ -f ${BUILD_DIR}/zephyr/zephyr.signed.hex ]; then + # Prefer signed HEX when available (for PSE84) for bootloader programming. + cp ${BUILD_DIR}/zephyr/zephyr.signed.hex firmwares/zephyr-$variant.hex + elif [ -f ${BUILD_DIR}/zephyr/zephyr.$ext ]; then + cp ${BUILD_DIR}/zephyr/zephyr.$ext firmwares/zephyr-$variant.$ext + fi done cp ${BUILD_DIR}/zephyr/zephyr.dts firmwares/zephyr-$variant.dts cp ${BUILD_DIR}/zephyr/.config firmwares/zephyr-$variant.config diff --git a/extra/patches/zephyr/0001-i2c-infineon-pdl-add-peri-clock-divider-for-psoc-edge.patch b/extra/patches/zephyr/0001-i2c-infineon-pdl-add-peri-clock-divider-for-psoc-edge.patch new file mode 100644 index 000000000..74d396eb1 --- /dev/null +++ b/extra/patches/zephyr/0001-i2c-infineon-pdl-add-peri-clock-divider-for-psoc-edge.patch @@ -0,0 +1,168 @@ +From 204b535428cff5c3609e76fcd581e96b17df9724 Mon Sep 17 00:00:00 2001 +From: Arduino PSoC Edge BSP contributors +Date: Mon, 13 Apr 2026 00:00:00 +0000 +Subject: [PATCH] drivers: i2c: infineon_pdl: add peri clock divider setup for + PSoC Edge + +The i2c_infineon_pdl driver has two existing paths for programming the +SCB peripheral clock divider before enabling I2C: + + 1. USE_I2C_SET_PERI_DIVIDER - legacy HAL path (never defined on Edge) + 2. CONFIG_SOC_FAMILY_INFINEON_PSOC4 - PSoC 4 only + +Neither path is active on CONFIG_SOC_FAMILY_INFINEON_EDGE builds, so +Cy_SCB_I2C_SetDataRate() is never called and the SCB divider register +keeps its power-on-reset value (divide-by-1). This leaves the SCB +input clock at the raw HF10 frequency (>=100 MHz), making I2C waveforms +many orders of magnitude too fast for any device to respond. + +Add a CONFIG_SOC_FAMILY_INFINEON_EDGE branch that: + - maps the peri group to the correct HF clock source (mirrors the + existing helper in uart_infineon_pdl.c / spi_infineon_pdl.c) + - computes an integer divider to target the required SCB input clock + frequency for the requested I2C speed + - programs the divider via ifx_cat1_utils_peri_pclk_set_divider() + - calls Cy_SCB_I2C_SetDataRate() with the actual resulting frequency + +Tested on KIT-PSE84-AI (PSE846GPS2DBZC4A) with DPS310 barometric +pressure sensor at 100 kHz standard mode. + +Signed-off-by: Arduino PSoC Edge BSP contributors + +diff --git a/drivers/i2c/i2c_infineon_pdl.c b/drivers/i2c/i2c_infineon_pdl.c +--- a/drivers/i2c/i2c_infineon_pdl.c ++++ b/drivers/i2c/i2c_infineon_pdl.c +@@ -233,6 +233,120 @@ void ifx_cat1_i2c_register_callback(const struct device *dev, + data->irq_cause = 0; + } + ++#if defined(CONFIG_SOC_FAMILY_INFINEON_EDGE) ++/* Packs a (peri-instance, peri-group) pair into a single uint8_t key, ++ * matching the macro used in uart_infineon_pdl.c and spi_infineon_pdl.c. ++ */ ++#define IFX_CAT1_INSTANCE_GROUP(instance, group) (((instance) << 4) | (group)) ++ ++/* Map peri group to the HF clock index that drives it on PSE84. ++ * Mirrors ifx_cat1_get_hfclk_for_peri_group() in uart_infineon_pdl.c. ++ */ ++static uint8_t _i2c_get_hfclk_for_peri_group(uint8_t peri_group) ++{ ++#if defined(CONFIG_SOC_SERIES_PSE84) ++ switch (peri_group) { ++ case IFX_CAT1_INSTANCE_GROUP(0, 0): ++ case IFX_CAT1_INSTANCE_GROUP(1, 4): ++ return 0; ++ case IFX_CAT1_INSTANCE_GROUP(0, 7): ++ case IFX_CAT1_INSTANCE_GROUP(1, 0): ++ return 1; ++ case IFX_CAT1_INSTANCE_GROUP(0, 3): ++ case IFX_CAT1_INSTANCE_GROUP(1, 2): ++ return 5; ++ case IFX_CAT1_INSTANCE_GROUP(0, 4): ++ case IFX_CAT1_INSTANCE_GROUP(1, 3): ++ return 6; ++ case IFX_CAT1_INSTANCE_GROUP(1, 1): ++ return 7; ++ case IFX_CAT1_INSTANCE_GROUP(0, 2): ++ return 9; ++ case IFX_CAT1_INSTANCE_GROUP(0, 1): ++ case IFX_CAT1_INSTANCE_GROUP(0, 5): ++ return 10; ++ case IFX_CAT1_INSTANCE_GROUP(0, 8): ++ return 11; ++ case IFX_CAT1_INSTANCE_GROUP(0, 6): ++ case IFX_CAT1_INSTANCE_GROUP(0, 9): ++ return 13; ++ default: ++ break; ++ } ++#endif ++ return 0; ++} ++ ++/* ++ * Set the peri clock divider for I2C on PSOC Edge so that the SCB input clock ++ * falls in the range required by Cy_SCB_I2C_SetDataRate(). ++ * ++ * Target peri frequencies (from the PDL API Reference Guide for PSOC Edge): ++ * Controller 100 kHz: [1.55, 3.2] MHz -> 2 MHz ++ * Controller 400 kHz: [7.82, 10] MHz -> 8.5 MHz ++ * Controller 1 MHz: [14.32, 25.8] MHz -> 20 MHz ++ * Target 100 kHz: [1.55, 12.8] MHz -> 6 MHz ++ * Target 400 kHz: [7.82, 15.38] MHz -> 12 MHz ++ * Target 1 MHz: [15.84, 89.0] MHz -> 50 MHz ++ */ ++static int _i2c_set_peri_divider_edge(const struct device *dev, uint32_t freq, bool is_target_mode) ++{ ++#define _EDGE_SCB_I2C_PERI_CTRL_STD 2000000UL /* controller, 100 kHz */ ++#define _EDGE_SCB_I2C_PERI_CTRL_FST 8500000UL /* controller, 400 kHz */ ++#define _EDGE_SCB_I2C_PERI_CTRL_FSTP 20000000UL /* controller, 1 MHz */ ++#define _EDGE_SCB_I2C_PERI_TGT_STD 6000000UL /* target, 100 kHz */ ++#define _EDGE_SCB_I2C_PERI_TGT_FST 12000000UL /* target, 400 kHz */ ++#define _EDGE_SCB_I2C_PERI_TGT_FSTP 50000000UL /* target, 1 MHz */ ++ ++ struct ifx_cat1_i2c_data *data = dev->data; ++ const struct ifx_cat1_i2c_config *const config = dev->config; ++ CySCB_Type *base = config->base; ++ uint32_t peri_freq = 0; ++ uint32_t source_freq; ++ uint32_t div_value; ++ cy_rslt_t status; ++ ++ if (freq <= CY_SCB_I2C_STD_DATA_RATE) { ++ peri_freq = is_target_mode ? _EDGE_SCB_I2C_PERI_TGT_STD ++ : _EDGE_SCB_I2C_PERI_CTRL_STD; ++ } else if (freq <= CY_SCB_I2C_FST_DATA_RATE) { ++ peri_freq = is_target_mode ? _EDGE_SCB_I2C_PERI_TGT_FST ++ : _EDGE_SCB_I2C_PERI_CTRL_FST; ++ } else if (freq <= CY_SCB_I2C_FSTP_DATA_RATE) { ++ peri_freq = is_target_mode ? _EDGE_SCB_I2C_PERI_TGT_FSTP ++ : _EDGE_SCB_I2C_PERI_CTRL_FSTP; ++ } ++ ++ if (peri_freq == 0) { ++ return -EINVAL; ++ } ++ ++ source_freq = Cy_SysClk_ClkHfGetFrequency( ++ _i2c_get_hfclk_for_peri_group(data->clock_peri_group)); ++ if (source_freq == 0) { ++ return -EIO; ++ } ++ ++ div_value = source_freq / peri_freq; ++ if (div_value == 0) { ++ div_value = 1; ++ } ++ ++ status = ifx_cat1_utils_peri_pclk_set_divider(config->clk_dst, &data->clock, div_value - 1); ++ if (status != CY_RSLT_SUCCESS) { ++ return -EIO; ++ } ++ ++ ifx_cat1_utils_peri_pclk_enable_divider(config->clk_dst, &data->clock); ++ ++ uint32_t actual_peri_freq = ifx_cat1_utils_peri_pclk_get_frequency( ++ config->clk_dst, &data->clock); ++ ++ Cy_SCB_I2C_SetDataRate(base, freq, actual_peri_freq); ++ return 0; ++} ++#endif /* CONFIG_SOC_FAMILY_INFINEON_EDGE */ ++ + #ifdef USE_I2C_SET_PERI_DIVIDER + uint32_t _i2c_set_peri_divider(const struct device *dev, uint32_t freq, bool is_slave) + { +@@ -472,6 +586,12 @@ static int ifx_cat1_i2c_configure(const struct device *dev, uint32_t dev_config) + #ifdef USE_I2C_SET_PERI_DIVIDER + _i2c_set_peri_divider(dev, CAT1_I2C_SPEED_STANDARD_HZ, + (_i2c_default_config.i2cMode == CY_SCB_I2C_SLAVE)); ++#elif defined(CONFIG_SOC_FAMILY_INFINEON_EDGE) ++ if (_i2c_set_peri_divider_edge(dev, data->frequencyhal_hz, is_target_mode) != 0) { ++ LOG_ERR("Failed to configure I2C peripheral clock divider"); ++ k_sem_give(&data->operation_sem); ++ return -EIO; ++ } + #elif defined(CONFIG_SOC_FAMILY_INFINEON_PSOC4) + if (_i2c_set_peri_divider_psoc4(dev, data->frequencyhal_hz, is_target_mode) != 0) { + LOG_ERR("Failed to configure I2C peripheral clock divider"); diff --git a/extra/patches/zephyr/0002-soc-infineon-pse84-install-imgtool-python-deps.patch b/extra/patches/zephyr/0002-soc-infineon-pse84-install-imgtool-python-deps.patch new file mode 100644 index 000000000..8d02f3368 --- /dev/null +++ b/extra/patches/zephyr/0002-soc-infineon-pse84-install-imgtool-python-deps.patch @@ -0,0 +1,49 @@ +From 8e84a1d6677a4b6f9e4b49e8c55dc6f5ea1a9f41 Mon Sep 17 00:00:00 2001 +From: Arduino PSoC Edge BSP contributors +Date: Mon, 8 Jun 2026 00:00:00 +0000 +Subject: [PATCH] soc: infineon: pse84: install imgtool Python dependencies + +The PSE84 SoC metadata step invokes imgtool as part of the Zephyr +post-build pipeline to produce a metadata-bearing secure HEX image. + +In ArduinoCore-zephyr CI and local west workspaces, only Zephyr +requirements-base.txt is installed by default, which does not include +all of imgtool's Python dependencies. This causes the PSE84 build to +fail at post-build time with missing module errors. + +Install the required imgtool dependencies at CMake configure time in the +PSE84 metadata module itself so the requirement is scoped to PSE84 +builds only and does not affect other boards. + +This patch is intended as a temporary downstream workaround and should be +removed once the upstream Zephyr/Infineon flow ensures imgtool +requirements are installed in the standard workspace bootstrap path. + +Signed-off-by: Arduino PSoC Edge BSP contributors + +diff --git a/soc/infineon/edge/pse84/pse84_metadata.cmake b/soc/infineon/edge/pse84/pse84_metadata.cmake +--- a/soc/infineon/edge/pse84/pse84_metadata.cmake ++++ b/soc/infineon/edge/pse84/pse84_metadata.cmake +@@ -3,6 +3,22 @@ + # + # SPDX-License-Identifier: Apache-2.0 + ++# Install imgtool Python dependencies during CMake configuration. ++# imgtool (from mcuboot) is invoked as a post-build step by this file, but its ++# required packages (cryptography, cbor2, click, intelhex, Pillow) are not part ++# of Zephyr's requirements-base.txt and therefore not installed by a standard ++# west bootstrap. ++# TODO: Remove once mcuboot's Python requirements are installed as part of the ++# standard Zephyr workspace setup. ++execute_process( ++ COMMAND ${PYTHON_EXECUTABLE} -m pip install --quiet ++ cryptography cbor2 click intelhex Pillow ++ RESULT_VARIABLE _imgtool_pip_result ++) ++if(NOT _imgtool_pip_result EQUAL 0) ++ message(WARNING "pse84_metadata: failed to install imgtool Python dependencies") ++endif() ++ + # Adds mcuboot metadata to the PSE84 CM33 secure image using imgtool + # with parameters derived from the DT memory map (header address, + # header size, and slot size). Uses default version 0.0.0+0 as imgtool diff --git a/loader/main.c b/loader/main.c index a368b3eed..4bc9f04b8 100644 --- a/loader/main.c +++ b/loader/main.c @@ -117,6 +117,7 @@ struct backup_store { volatile __stm32_backup_sram_section struct backup_store backup; static int loader(const struct shell *sh) { +#if defined(CONFIG_FLASH_MAP) const struct flash_area *fa; int rc; @@ -126,16 +127,21 @@ static int loader(const struct shell *sh) { printk("Failed to open flash area, rc %d\n", rc); return rc; } +#endif uintptr_t base_addr = DT_REG_ADDR(DT_GPARENT(DT_NODELABEL(user_sketch))) + DT_REG_ADDR(DT_NODELABEL(user_sketch)); char header[HEADER_LEN]; +#if defined(CONFIG_FLASH_MAP) rc = flash_area_read(fa, 0, header, sizeof(header)); if (rc) { printk("Failed to read header, rc %d\n", rc); return rc; } +#else + memcpy(header, (const void *)base_addr, sizeof(header)); +#endif bool sketch_valid = true; struct sketch_header_v1 *sketch_hdr = (struct sketch_header_v1 *)(header + 7); diff --git a/package/config.yml b/package/config.yml new file mode 100644 index 000000000..85d66f673 --- /dev/null +++ b/package/config.yml @@ -0,0 +1,14 @@ +package-name: arduinocore-zephyr-pse84 +include: + - cores + - libraries + - variants + - boards.txt + - platform.txt + - LICENSE + - README.md +index-name: package_infineon_pse84_index +server: + type: github + owner: michal-gora + repo: ArduinoCore-zephyr diff --git a/package/package_infineon_pse84_index.template.json b/package/package_infineon_pse84_index.template.json new file mode 100644 index 000000000..f7e929bc0 --- /dev/null +++ b/package/package_infineon_pse84_index.template.json @@ -0,0 +1,125 @@ +{ + "packages": [ + { + "name": "infineon", + "maintainer": "Infineon Technologies AG", + "websiteURL": "https://www.infineon.com/", + "email": "maker@infineon.com", + "platforms": [ + { + "name": "Infineon PSOC Edge Boards", + "architecture": "zephyr_pse84", + "version": "", + "category": "Contributed", + "url": "", + "archiveFileName": "", + "checksum": "", + "size": "", + "help": { + "online": "" + }, + "boards": [ + { + "name": "Infineon KIT-PSE84-AI (PSOC Edge E84)" + } + ], + "toolsDependencies": [ + { + "packager": "infineon", + "name": "openocd", + "version": "5.16.1.4486" + }, + { + "packager": "arduino", + "name": "gen-rodata-ld", + "version": "0.1.1" + }, + { + "packager": "arduino", + "name": "zephyr-sketch-tool", + "version": "0.3.0" + }, + { + "packager": "zephyr", + "name": "arm-zephyr-eabi", + "version": "1.0.1" + }, + { + "packager": "arduino", + "name": "zephyr-check-size", + "version": "0.1.0" + } + ] + } + ], + "tools": [ + { + "name": "openocd", + "version": "5.16.1.4486", + "systems": [ + { + "host": "i686-mingw32", + "archiveFileName": "openocd-5.16.1.4486-windows.zip", + "url": "https://github.com/Infineon/openocd/releases/download/release-v5.16.1/openocd-5.16.1.4486-windows.zip", + "checksum": "SHA-256:5bfde009a525c6a2490f50456efc18ba8420892d0e7b5a2a47e7727603deec87", + "size": "5690850" + }, + { + "host": "x86_64-pc-linux-gnu", + "archiveFileName": "openocd-5.16.1.4486-linux.tar.gz", + "url": "https://github.com/Infineon/openocd/releases/download/release-v5.16.1/openocd-5.16.1.4486-linux.tar.gz", + "checksum": "SHA-256:d3c6d0142d29c898f11c124140d44e0ca64fe58794aea15769eb6a981293c637", + "size": "5339070" + }, + { + "host": "arm64-apple-darwin", + "archiveFileName": "openocd-5.16.1.4486-macos-arm64.zip", + "url": "https://github.com/Infineon/openocd/releases/download/release-v5.16.1/openocd-5.16.1.4486-macos-arm64.zip", + "checksum": "SHA-256:7b1b3dfb3fc13c2c189bdcc14b25c08fa06cc50c5e37b21fd093305fa0eedafd", + "size": "5576669" + } + ] + } + ] + }, + { + "name": "zephyr", + "maintainer": "The Zephyr Project", + "websiteURL": "https://zephyrproject.org/", + "email": "devel@zephyrproject.org", + "help": { + "online": "https://docs.zephyrproject.org/latest/" + }, + "platforms": [], + "tools": [ + { + "name": "arm-zephyr-eabi", + "version": "1.0.1", + "systems": [ + { + "host": "i686-mingw32", + "archiveFileName": "toolchain_gnu_windows-x86_64_arm-zephyr-eabi-1.0.1.tar.xz", + "url": "https://github.com/michal-gora/ArduinoCore-zephyr/releases/download/windows_toolchain_1.0.1/toolchain_gnu_windows-x86_64_arm-zephyr-eabi-1.0.1.tar.xz", + "checksum": "SHA-256:bca104bc09a3c5173622ccd17b80ab26aff1d2370d85258b6b7aba429fab3f61", + "size": "96856296" + }, + { + "host": "x86_64-linux-gnu", + "archiveFileName": "toolchain_gnu_linux-x86_64_arm-zephyr-eabi-1.0.1.tar.xz", + "url": "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v1.0.1/toolchain_gnu_linux-x86_64_arm-zephyr-eabi.tar.xz", + "checksum": "SHA-256:21b85981cb5a1818d9bc53d82af80f208946ec038b982ff1907287572ed3a634", + "size": "101752776" + }, + { + "host": "arm64-apple-darwin", + "archiveFileName": "toolchain_gnu_macos-aarch64_arm-zephyr-eabi.tar.xz", + "url": "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v1.0.1/toolchain_gnu_macos-aarch64_arm-zephyr-eabi.tar.xz", + "checksum": "SHA-256:4008edb5d4840cd994aedd7f1309bfb63e7243729d57839ebf1cc83c1f17c886", + "size": "89958448" + } + ] + } + ] + } + ] +} diff --git a/platform.txt b/platform.txt index e12655cda..76e7e957a 100644 --- a/platform.txt +++ b/platform.txt @@ -278,12 +278,12 @@ tools.remoteocd.path={runtime.tools.remoteocd.path} tools.remoteocd.cmd=remoteocd tools.remoteocd.upload.params.verbose=--verbose tools.remoteocd.upload.params.quiet= -tools.remoteocd.upload.pattern="{path}/{cmd}" upload --adb-path "{runtime.tools.adb.path}/adb" -s "{upload.port.properties.serialNumber}" -f "{build.variant.path}/{openocd_cfg}" "{upload.verbose}" "{runtime.platform.path}/firmwares/{bootloader.file}" "{build.path}/{build.project_name}.{upload.extension}" +tools.remoteocd.upload.pattern="{path}/{cmd}" upload --adb-path "{runtime.tools.adb.path}/adb" -s "{upload.port.properties.serialNumber}" -f "{build.variant.path}/{openocd_cfg}" "{upload.verbose}" "{build.path}/{build.project_name}.{upload.extension}" tools.remoteocd.bootloader.params.verbose=--verbose tools.remoteocd.bootloader.params.quiet= tools.remoteocd.erase.pattern= -tools.remoteocd.bootloader.pattern="{path}/{cmd}" upload --adb-path "{runtime.tools.adb.path}/adb" -s "{upload.port.properties.serialNumber}" -f "{build.variant.path}/flash_bootloader.cfg" "{upload.verbose}" "{runtime.platform.path}/firmwares/{bootloader.file}" +tools.remoteocd.bootloader.pattern="{path}/{cmd}" upload --adb-path "{runtime.tools.adb.path}/adb" -s "{upload.port.properties.serialNumber}" -f "{build.variant.path}/flash_bootloader.cfg" "{upload.verbose}" "{runtime.platform.path}/firmwares/{bootloader.file}" tools.remoteocd_network.upload.protocol=network tools.remoteocd_network.upload.field.password=Password @@ -292,7 +292,7 @@ tools.remoteocd_network.path={runtime.tools.remoteocd.path} tools.remoteocd_network.cmd=remoteocd tools.remoteocd_network.upload.params.verbose=--verbose tools.remoteocd_network.upload.params.quiet= -tools.remoteocd_network.upload.pattern="{path}/{cmd}" upload -a "{upload.port.address}" --password "{upload.field.password}" -f "{build.variant.path}/{openocd_cfg}" "{upload.verbose}" "{runtime.platform.path}/firmwares/{bootloader.file}" "{build.path}/{build.project_name}.{upload.extension}" +tools.remoteocd_network.upload.pattern="{path}/{cmd}" upload -a "{upload.port.address}" --password "{upload.field.password}" -f "{build.variant.path}/{openocd_cfg}" "{upload.verbose}" "{build.path}/{build.project_name}.{upload.extension}" # # PYOCD WRAPPER diff --git a/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/kit_pse84_ai_pse846gps2dbzc4a_m33.conf b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/kit_pse84_ai_pse846gps2dbzc4a_m33.conf new file mode 100644 index 000000000..3c87c6611 --- /dev/null +++ b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/kit_pse84_ai_pse846gps2dbzc4a_m33.conf @@ -0,0 +1,57 @@ +# Copyright (c) Arduino s.r.l. and/or its affiliated companies +# SPDX-License-Identifier: Apache-2.0 +# +# Kconfig overlay for KIT-PSE84-AI (PSOC Edge E84, CM33 secure) +# +# NOTE: The board defconfig already provides: +# CONFIG_GPIO=y +# CONFIG_SERIAL=y +# CONFIG_UART_CONSOLE=y +# CONFIG_FPU=y +# CONFIG_ARM_TRUSTZONE_M=y +# CONFIG_TRUSTED_EXECUTION_SECURE=y +# CONFIG_CORTEX_M_SYSTICK=y + +# --- Bootloader --- +# Force MCUBoot off for Infineon KIT-PSE84-AI (PSOC Edge E84) +CONFIG_BOOTLOADER_MCUBOOT=n + +# --- Stack / heap sizing for Arduino + LLEXT runtime --- +# CM33 SRAM (m33s_data) is only 132 KB — keep sizes minimal +CONFIG_MAIN_STACK_SIZE=4096 +CONFIG_HEAP_MEM_POOL_SIZE=16384 +CONFIG_LLEXT_HEAP_SIZE=16 +CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=1024 + +# --- XIP flash: read sketch directly from memory, no RAM copy needed --- +CONFIG_LLEXT_STORAGE_WRITABLE=n + +# --- Peripheral drivers --- +CONFIG_I2C=y +CONFIG_SPI=y + +# Required for arch_irq_disconnect_dynamic, which is exported by +# loader/llext_exports.c when CONFIG_DYNAMIC_INTERRUPTS is enabled. +# Zephyr provides that symbol from arch/common/shared_irq.c only when +# CONFIG_SHARED_INTERRUPTS is enabled. +CONFIG_SHARED_INTERRUPTS=y + +# Disable boot banner to save flash and reduce startup time; the loader doesn't need it, and the sketch can print its own banner if desired +CONFIG_BOOT_BANNER=n + +# --- Override board defconfig for Arduino LLEXT loader --- +# Board defconfig enables MPU + HW_STACK_PROTECTION which the loader doesn't need +# and ASSERT which adds code size +CONFIG_ARM_MPU=n +CONFIG_HW_STACK_PROTECTION=n + +# The PSE84 QSPI controller DTS entry uses "infineon,qspi-flash-mtb-hal" which has no +# Zephyr binding, so the flash driver never compiles. Explicitly disabling CONFIG_FLASH +# prevents the Zephyr build from trying to compile/link flash symbols. +# Without this, loader/main.c would call flash_area_open/flash_area_read which do not +# exist — the loader function must guard those calls with #if defined(CONFIG_FLASH_MAP). +CONFIG_FLASH=n +CONFIG_FLASH_MAP=n + +# --- Build output --- +# CONFIG_BUILD_OUTPUT_BIN=n # removed: conflicts with Zephyr default; use HEX instead diff --git a/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/kit_pse84_ai_pse846gps2dbzc4a_m33.overlay b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/kit_pse84_ai_pse846gps2dbzc4a_m33.overlay new file mode 100644 index 000000000..048f0f159 --- /dev/null +++ b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/kit_pse84_ai_pse846gps2dbzc4a_m33.overlay @@ -0,0 +1,328 @@ +/* + * Copyright (c) Arduino s.r.l. and/or its affiliated companies + * + * SPDX-License-Identifier: Apache-2.0 + * + * Devicetree overlay for KIT-PSE84-AI (PSOC Edge E84, CM33 secure) + * + * Hardware mapping derived from: + * - Infineon TARGET_KIT_PSE84_AI BSP (design.modus) + * - Zephyr board DTS (kit_pse84_ai_common.dtsi) + * - Zephyr SoC DTS (pse84.bga-220.dtsi) + * + * Peripherals: + * UART : SCB2 - P6_7(TX) / P6_5(RX) (console, enabled in board DTS) + * I2C : SCB0 - P8_0(SCL) / P8_1(SDA) (1.8V I2C bus) + * SPI : SCB10 - P16_0(CLK) / P16_1(MOSI) / P16_2(MISO) / P16_6(CS) + * LEDs : P10_7(LED0) P10_5(LED1) P20_6(RED) P20_4(GREEN) P20_5(BLUE) + * Button: P7_0 (SW1, active-low, internal pull-up) + */ + +/* ------------------------------------------------------------------ */ +/* Arduino user sketch partition */ +/* Placed at the end of the CM33 secure XIP flash region. */ +/* m33s_xip starts at 0x70100400 with size 0x1FFC00 (~2MB). */ +/* Loader occupies the first portion; user_sketch gets the tail end. */ +/* */ +/* IMPORTANT: Keep one coherent address model for both: */ +/* - upstream loader flash_area_read() (partition reg as flash off) */ +/* - upstream loader runtime base math (flash0_base + reg) */ +/* PSE84 secure XIP uses the 0x70000000 alias for SMIF flash. */ +/* Target sketch address is 0x70200000, so use: */ +/* flash0_base = 0x70000000 */ +/* user_sketch_offset = 0x00200000 */ +/* ------------------------------------------------------------------ */ +&flash0 { + reg = <0x70000000 DT_SIZE_M(64)>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + user_sketch: partition@200000 { + reg = <0x200000 DT_SIZE_K(1023)>; + }; + }; +}; + +/* ------------------------------------------------------------------ */ +/* Enable GPIO ports needed for digital pins, LEDs, button, SPI, I2C */ +/* ------------------------------------------------------------------ */ +&gpio_prt7 { + status = "okay"; +}; + +&gpio_prt8 { + status = "okay"; +}; + +&gpio_prt9 { + status = "okay"; +}; + +&gpio_prt10 { + status = "okay"; +}; + +&gpio_prt11 { + status = "okay"; +}; + +&gpio_prt13 { + status = "okay"; +}; + +&gpio_prt15 { + status = "okay"; +}; + +&gpio_prt16 { + status = "okay"; +}; + +&gpio_prt17 { + status = "okay"; +}; + +&gpio_prt20 { + status = "okay"; +}; + +&gpio_prt21 { + status = "okay"; +}; + +/* ------------------------------------------------------------------ */ +/* I2C bus - SCB0 on P8_0(SCL) / P8_1(SDA) */ +/* ------------------------------------------------------------------ */ +i2c0: &scb0 { + compatible = "infineon,i2c"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <100000>; + + clocks = <&peri0_group1_16bit_1>; + + pinctrl-0 = <&p8_0_scb0_i2c_scl &p8_1_scb0_i2c_sda>; + pinctrl-names = "default"; +}; + + + +i2c1: &scb5 { + compatible = "infineon,i2c"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <100000>; + + clocks = <&peri0_group1_16bit_3>; + + pinctrl-0 = <&p17_0_scb5_i2c_scl &p17_1_scb5_i2c_sda>; + pinctrl-names = "default"; +}; + + +&peri0_group1_16bit_1 { + status = "okay"; + clock-div = <1>; +}; + +&peri0_group1_16bit_3 { + status = "okay"; + clock-div = <1>; +}; + +&p8_0_scb0_i2c_scl { + drive-open-drain; + input-enable; +}; + +&p8_1_scb0_i2c_sda { + drive-open-drain; + input-enable; +}; + +&p17_0_scb5_i2c_scl { + drive-open-drain; + input-enable; +}; + +&p17_1_scb5_i2c_sda { + drive-open-drain; + input-enable; +}; + +/* ------------------------------------------------------------------ */ +/* UART1 bus - SCB1 on P9_2(TX) / P9_3(RX) */ +/* Exposed as Arduino Serial1 via zephyr,user.serials */ +/* ------------------------------------------------------------------ */ +uart1: &scb1 { + compatible = "infineon,uart"; + status = "okay"; + current-speed = <115200>; + + clocks = <&peri0_group1_16bit_0>; + + pinctrl-0 = <&p9_2_scb1_uart_tx &p9_3_scb1_uart_rx>; + pinctrl-names = "default"; +}; + +&p9_2_scb1_uart_tx { + drive-push-pull; +}; + +&p9_3_scb1_uart_rx { + input-enable; +}; + +/* ------------------------------------------------------------------ */ +/* SPI bus - SCB3 on P21_6(CLK) / P21_5(MOSI) / P21_4(MISO) */ +/* CS on P21_7 (directly driven as GPIO) */ +/* ------------------------------------------------------------------ */ +spi0: &scb3 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "infineon,spi"; + status = "disabled"; + + clocks = <&peri0_group1_16bit_2>; + + pinctrl-0 = <&p21_5_scb3_spi_m_mosi &p21_4_scb3_spi_m_miso + &p21_6_scb3_spi_m_clk>; + pinctrl-names = "default"; + cs-gpios = <&gpio_prt21 7 GPIO_ACTIVE_LOW>; +}; + +/* ------------------------------------------------------------------ */ +/* SPI bus (external header) - SCB10 on P16_0/1/2 */ +/* CLK = D3 (P16_0) */ +/* MOSI = D2 (P16_1) */ +/* MISO = D5 (P16_2) */ +/* CS = D9 (P16_6, GPIO-driven) */ +/* ------------------------------------------------------------------ */ +spi1: &scb10 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "infineon,spi"; + status = "okay"; + clocks = <&peri0_group1_16bit_2>; + + pinctrl-0 = <&p16_1_scb10_spi_m_mosi &p16_2_scb10_spi_m_miso + &p16_0_scb10_spi_m_clk>; + pinctrl-names = "default"; + cs-gpios = <&gpio_prt16 6 GPIO_ACTIVE_LOW>; +}; + +&peri0_group1_16bit_2 { + status = "okay"; +}; + +&p21_5_scb3_spi_m_mosi { + drive-strength = "full"; + drive-push-pull; +}; + +&p21_4_scb3_spi_m_miso { + drive-strength = "full"; + input-enable; +}; + +&p21_6_scb3_spi_m_clk { + drive-strength = "full"; + drive-push-pull; +}; + +&p16_1_scb10_spi_m_mosi { + drive-strength = "full"; + drive-push-pull; +}; + +&p16_2_scb10_spi_m_miso { + drive-strength = "full"; + input-enable; +}; + +&p16_0_scb10_spi_m_clk { + drive-strength = "full"; + drive-push-pull; +}; + +/* ------------------------------------------------------------------ */ +/* Arduino 'zephyr,user' node */ +/* */ +/* Digital pin numbers are assigned by order in digital-pin-gpios */ +/* below (top entry is D0, then D1, etc.). */ +/* */ +/* SPI mapping (SCB10): D3=CLK(P16_0), D2=MOSI(P16_1), */ +/* D5=MISO(P16_2), D9=CS(P16_6) */ +/* Internal SCB3 SPI is disabled for now to free clock/divider usage. */ +/* The only exposed SPI bus is SCB10 (use Arduino SPI object). */ +/* */ +/* ------------------------------------------------------------------ */ +/ { + zephyr,user { + digital-pin-gpios = <&gpio_prt17 5 0>, /* D0 - P17_5 */ + <&gpio_prt17 7 0>, /* D1 - P17_7 */ + <&gpio_prt16 1 0>, /* D2 - P16_1 */ + <&gpio_prt16 0 0>, /* D3 - P16_0 */ + <&gpio_prt16 3 0>, /* D4 - P16_3 */ + <&gpio_prt16 2 0>, /* D5 - P16_2 */ + <&gpio_prt16 5 0>, /* D6 - P16_5 */ + <&gpio_prt16 4 0>, /* D7 - P16_4 */ + <&gpio_prt16 7 0>, /* D8 - P16_7 */ + <&gpio_prt16 6 0>, /* D9 - P16_6 */ + <&gpio_prt11 1 0>, /* D10 - P11_1 (input only) */ + <&gpio_prt17 4 0>, /* D11 - P17_4 */ + <&gpio_prt17 2 0>, /* D12 - P17_2 */ + <&gpio_prt17 3 0>, /* D13 - P17_3 */ + <&gpio_prt17 0 0>, /* D14 - P17_0 */ + <&gpio_prt17 1 0>, /* D15 - P17_1 */ + + <&gpio_prt9 3 0>, /* D16 - P9_3 / SERIAL_INT3 */ + <&gpio_prt9 2 0>, /* D17 - P9_2 / SERIAL_INT2 */ + <&gpio_prt9 1 0>, /* D18 - P9_1 / SERIAL_INT1 */ + <&gpio_prt9 0 0>, /* D19 - P9_0 / SERIAL_INT0 */ + + <&gpio_prt15 0 0>, /* D20 - P15_0 - A0 */ + <&gpio_prt15 1 0>, /* D21 - P15_1 - A1 */ + <&gpio_prt15 2 0>, /* D22 - P15_2 - A2 */ + <&gpio_prt15 3 0>, /* D23 - P15_3 - A3 */ + <&gpio_prt15 4 0>, /* D24 - P15_4 - A4 */ + <&gpio_prt15 5 0>, /* D25 - P15_5 - A5 */ + <&gpio_prt15 6 0>, /* D26 - P15_6 - A6 */ + <&gpio_prt15 7 0>, /* D27 - P15_7 - A7 */ + + <&gpio_prt13 0 0>, /* D28 - P13_0 - A8 */ + <&gpio_prt13 1 0>, /* D29 - P13_1 - A9 */ + <&gpio_prt13 2 0>, /* D30 - P13_2 - A10 */ + <&gpio_prt13 3 0>, /* D31 - P13_3 - A11 */ + <&gpio_prt13 4 0>, /* D32 - P13_4 - A12 */ + <&gpio_prt13 5 0>, /* D33 - P13_5 - A13 */ + <&gpio_prt13 6 0>, /* D34 - P13_6 - A14 */ + <&gpio_prt13 7 0>, /* D35 - P13_7 - A15 */ + + <&gpio_prt10 7 0>, /* D36 - LED_0 */ + <&gpio_prt10 5 0>, /* D37 - LED_1 */ + <&gpio_prt20 6 0>, /* D38 - LED_RGB_RED */ + <&gpio_prt20 4 0>, /* D39 - LED_RGB_GRN */ + <&gpio_prt20 5 0>, /* D40 - LED_RGB_BLU */ + <&gpio_prt7 0 0>, /* D41 - SW1 / BTN */ + <&gpio_prt8 0 0>, /* D42 - I2C_SCL */ + <&gpio_prt8 1 0>, /* D43 - I2C_SDA */ + <&gpio_prt21 6 0>, /* D44 - SCB3_CLK */ + <&gpio_prt21 5 0>, /* D45 - SCB3_MOSI */ + <&gpio_prt21 4 0>, /* D46 - SCB3_MISO */ + <&gpio_prt21 7 0>; /* D47 - SCB3_CS */ + + builtin-led-gpios = <&gpio_prt10 7 GPIO_ACTIVE_HIGH>, /* LED_0 (default) */ + <&gpio_prt10 7 GPIO_ACTIVE_HIGH>, /* LED_0 */ + <&gpio_prt10 5 GPIO_ACTIVE_HIGH>, /* LED_1 */ + <&gpio_prt20 6 GPIO_ACTIVE_HIGH>; /* LED_RGB_RED */ + + serials = <&uart2 &uart1>; + i2cs = <&i2c0 &i2c1>; + spis = <&spi1>; + }; +}; diff --git a/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/machine_flags.txt b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/machine_flags.txt new file mode 100644 index 000000000..28fc43eee --- /dev/null +++ b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/machine_flags.txt @@ -0,0 +1,4 @@ +-mcpu=cortex-m33 +-mthumb +-mfloat-abi=hard +-mfpu=fpv5-sp-d16 diff --git a/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/openocd.cfg b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/openocd.cfg new file mode 100644 index 000000000..ada2b2e31 --- /dev/null +++ b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/openocd.cfg @@ -0,0 +1,42 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +set ENABLE_CM55 1 +set ENABLE_CM33 1 + +source [find interface/kitprog3.cfg] +transport select swd + +if { [info exists _ZEPHYR_BOARD_SERIAL] } { + adapter serial $_ZEPHYR_BOARD_SERIAL +} + +if { [info exists WEST_ATTACH] } { + set ENABLE_ACQUIRE 0 +} + +source [find target/infineon/pse84xgxs2.cfg] +cat1d.cm55 configure -rtos auto -rtos-wipe-on-reset-halt 1 +cat1d.cm33 configure -rtos auto -rtos-wipe-on-reset-halt 1 +gdb_breakpoint_override hard + +if { [info exists WEST_ATTACH] } { + set _RESET 0 +} else { + set _RESET 1 +} + +if {$_RESET} { + cat1d.cm55 configure -event gdb-attach { + reset_halt cm55 + } + + cat1d.cm33 configure -event gdb-attach { + cat1d.cm33 cortex_m vector_catch reset + reset run + cat1d.cm33 arp_waitstate halted 8000 + cat1d.cm33 cortex_m vector_catch none + } +} diff --git a/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/qspi_config.cfg b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/qspi_config.cfg new file mode 100644 index 000000000..4b5f461dc --- /dev/null +++ b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/qspi_config.cfg @@ -0,0 +1,8 @@ +# Copyright (c) 2025 Infineon Technologies AG, +# or an affiliate of Infineon Technologies AG. +# +# SPDX-License-Identifier: Apache-2.0 + +set SMIF_BANKS { + 1 {addr 0x60000000 size 0x1000000 psize 0x0000100 esize 0x0010000} +} diff --git a/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/skip_these_examples.txt b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/skip_these_examples.txt new file mode 100644 index 000000000..dcd0d7ae7 --- /dev/null +++ b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/skip_these_examples.txt @@ -0,0 +1,10 @@ +# Copyright (c) Arduino s.r.l. and/or its affiliated companies +# SPDX-License-Identifier: Apache-2.0 + +# Examples skipped for kit_pse84_ai: these libraries are not yet supported +# on this board. Remove entries as support is added. + +libraries/CAN/ +libraries/Ethernet/ +libraries/RTC/ +libraries/WiFi/ diff --git a/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/variant.h b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/variant.h new file mode 100644 index 000000000..7f701c590 --- /dev/null +++ b/variants/kit_pse84_ai_pse846gps2dbzc4a_m33/variant.h @@ -0,0 +1,197 @@ +/* + * Copyright (c) Arduino s.r.l. and/or its affiliated companies + * + * SPDX-License-Identifier: Apache-2.0 + * + * Arduino variant header for KIT-PSE84-AI (PSOC Edge E84, CM33 secure) + * + * Pin numbers correspond to digital-pin-gpios indices in the overlay: + * + * D0 = P17_5 D12 = P17_2 D24 = P15_4 - A4 + * D1 = P17_7 D13 = P17_3 D25 = P15_5 - A5 + * D2 = P16_1 D14 = P17_0 - I2C1_SCL D26 = P15_6 - A6 + * D3 = P16_0 D15 = P17_1 - I2C1_SDA D27 = P15_7 - A7 + * D4 = P16_3 D16 = P9_3 - SINT3 D28 = P13_0 - A8 + * D5 = P16_2 D17 = P9_2 - SINT2 D29 = P13_1 - A9 + * D6 = P16_5 D18 = P9_1 - SINT1 D30 = P13_2 - A10 + * D7 = P16_4 D19 = P9_0 - SINT0 D31 = P13_3 - A11 + * D8 = P16_7 D20 = P15_0 - A0 D32 = P13_4 - A12 + * D9 = P16_6 D21 = P15_1 - A1 D33 = P13_5 - A13 + * D10 = P11_1 D22 = P15_2 - A2 D34 = P13_6 - A14 + * D11 = P17_4 D23 = P15_3 - A3 D35 = P13_7 - A15 + * + * D36 = P10_7 - LED_0 D40 = P20_5 - LED_BLU D44 = P21_6 - SCB3_CLK + * D37 = P10_5 - LED_1 D41 = P7_0 - SW1/BTN D45 = P21_5 - SCB3_MOSI + * D38 = P20_6 - LED_RED D42 = P8_0 - I2C_SCL D46 = P21_4 - SCB3_MISO + * D39 = P20_4 - LED_GRN D43 = P8_1 - I2C_SDA D47 = P21_7 - SCB3_CS + */ + +#pragma once + +/** Digital pin aliases (indices into digital-pin-gpios) */ +#define D0 0 +#define D1 1 +#define D2 2 +#define D3 3 +#define D4 4 +#define D5 5 +#define D6 6 +#define D7 7 +#define D8 8 +#define D9 9 +#define D10 10 +#define D11 11 +#define D12 12 +#define D13 13 +#define D14 14 +#define D15 15 +#define D16 16 +#define D17 17 +#define D18 18 +#define D19 19 +#define D20 20 +#define D21 21 +#define D22 22 +#define D23 23 +#define D24 24 +#define D25 25 +#define D26 26 +#define D27 27 +#define D28 28 +#define D29 29 +#define D30 30 +#define D31 31 +#define D32 32 +#define D33 33 +#define D34 34 +#define D35 35 +#define D36 36 +#define D37 37 +#define D38 38 +#define D39 39 +#define D40 40 +#define D41 41 +#define D42 42 +#define D43 43 +#define D44 44 +#define D45 45 +#define D46 46 +#define D47 47 + +/** SPI pin definitions (default SPI = SCB10 on P16) */ +#define MOSI D2 /**< P16_1 */ +#define MISO D5 /**< P16_2 */ +#define SCK D3 /**< P16_0 */ +#define SS D9 /**< P16_6 */ + +/** I2C pin definitions (Wire = SCB0 on P8, Wire1 = SCB5 on P17) */ +#define SDA 43 /**< P8_1 */ +#define SCL 42 /**< P8_0 */ +#define SDA1 15 /**< P17_1 */ +#define SCL1 14 /**< P17_0 */ + +#define PIN_WIRE_SDA SDA +#define PIN_WIRE_SCL SCL +#define PIN_WIRE1_SDA SDA1 +#define PIN_WIRE1_SCL SCL1 + +/** Built-in LED aliases */ +#undef LED_BUILTIN +#define LED_BUILTIN 36 /**< LED_0 on P10_7 (primary) */ +#define LED_BUILTIN_1 36 /**< LED_0 on P10_7 */ +#define LED_BUILTIN_2 37 /**< LED_1 on P10_5 */ +#define LED_BUILTIN_ACTIVE (HIGH) + +/** RGB LED aliases */ +#define LED_RED 38 /**< P20_6 */ +#define LED_GREEN 39 /**< P20_4 */ +#define LED_BLUE 40 /**< P20_5 */ + +/** Built-in button alias */ +#define BTN_BUILTIN 41 /**< SW1 on P7_0 (active-low) */ + +/** Analog pin definitions (indices into digital-pin-gpios) */ +#define A0 20 +#define A1 21 +#define A2 22 +#define A3 23 +#define A4 24 +#define A5 25 +#define A6 26 +#define A7 27 +#define A8 28 +#define A9 29 +#define A10 30 +#define A11 31 +#define A12 32 +#define A13 33 +#define A14 34 +#define A15 35 + +/** + * GPIO aliases using Infineon-style P_ names. + * Values are indices into the digital-pin-gpios array in the overlay. + */ +/* Expansion GPIO - P16/P17 */ +#define P17_5 0 +#define P17_7 1 +#define P16_1 2 +#define P16_0 3 +#define P16_3 4 +#define P16_2 5 +#define P16_5 6 +#define P16_4 7 +#define P16_7 8 +#define P16_6 9 +#define P11_1 10 +#define P17_4 11 +#define P17_2 12 +#define P17_3 13 +#define P17_0 14 +#define P17_1 15 + +/* UART1 / serial interrupt pins */ +#define P9_3 16 +#define P9_2 17 +#define P9_1 18 +#define P9_0 19 + +/* Analog input pins - P15 (A0-A7) */ +#define P15_0 20 +#define P15_1 21 +#define P15_2 22 +#define P15_3 23 +#define P15_4 24 +#define P15_5 25 +#define P15_6 26 +#define P15_7 27 + +/* Analog input pins - P13 (A8-A15) */ +#define P13_0 28 +#define P13_1 29 +#define P13_2 30 +#define P13_3 31 +#define P13_4 32 +#define P13_5 33 +#define P13_6 34 +#define P13_7 35 + +/* On-board peripherals */ +#define P10_7 36 +#define P10_5 37 +#define P20_6 38 +#define P20_4 39 +#define P20_5 40 +#define P7_0 41 +#define P8_0 42 +#define P8_1 43 +#define P21_6 44 +#define P21_5 45 +#define P21_4 46 +#define P21_7 47 + +/** Serial interrupt aliases */ +#define SERIAL_INT0 P9_0 +#define SERIAL_INT1 P9_1 +#define SERIAL_INT2 P9_2 +#define SERIAL_INT3 P9_3 diff --git a/west.yml b/west.yml index e8b1b3103..6076f99dc 100644 --- a/west.yml +++ b/west.yml @@ -20,8 +20,8 @@ manifest: projects: - name: zephyr - remote: arduino - revision: zephyr-arduino-v4.2.0 + remote: zephyrproject-rtos + revision: v4.4.0 import: name-allowlist: - cmsis