Skip to content

docs: populate installation, boards, contributing, env-setup, run-tests - #31

Open
IFX-Anusha wants to merge 15 commits into
ifx-mainfrom
ifx-docs-content
Open

IFX-Anusha wants to merge 15 commits into
ifx-mainfrom
ifx-docs-content

Conversation

@IFX-Anusha

@IFX-Anusha IFX-Anusha commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

By creating this pull request you agree to the terms in CONTRIBUTING.md.
https://github.com/Infineon/.github/blob/master/CONTRIBUTING.md
--- DO NOT DELETE ANYTHING ABOVE THIS LINE ---

CONTRIBUTING.md also tells you what to expect in the PR process.

Summary

Populates the Read the Docs scaffold (from ifx-readthedocs-setup) with real content for the KIT-PSE84-AI board, based on psoc-edge-main's existing install/pinout docs and the arduino-core-tests integration work.

Refer here - https://arduinocore-zephyr.readthedocs.io/en/ifx-docs-content/index.html

Pages populated

  • Installation Instructions — Arduino IDE Boards Manager steps and Arduino CLI install/flash/compile/upload commands, using the real infineon:zephyr_pse84 package index URL (verified against edge-main's actual package/package_infineon_pse84_index.template.json).
  • Supported Boards — KIT-PSE84-AI FQBN, silicon (PSE846GPS2DBZC4A), pinout image, and pin-macro conventions (Dx/Ax ranges, LED_BUILTIN*, BTN_BUILTIN, SERIAL_INTx) — all cross-checked against the current variant.h on edge-main.
  • Contributing — fork/branch/commit/PR flow plus the <scope>: <description> commit/PR title convention.
  • Environment Setup — prerequisites, bootstrap script, build/flash the loader, install arduino-cli, install the core, local-checkout development via symlink, compile/upload.
  • Running Tests — how tests/test_config.h board blocks work, with the KIT-PSE84-AI test_digitalio_single example (D0/D1 jumper) and the ENABLE_SYNC gotcha.

Intentionally excluded

  • Internal Infineon branch-topology/PR-targeting policy (ifx-main/edge-main/control-main, rebase policy) — team-internal process, not relevant to external readers.
  • Detailed OpenOCD/WSL/udev/PAT-token troubleshooting — kept only the one common first-time blocker (~/.west/config OpenOCD path), rest better suited to an internal wiki.
  • Arduino API Deviations — left as TODO, deferred until peripheral support is further along.

Verification

  • sphinx-build -b html docs docs/_build succeeds cleanly (no warnings/errors).
  • Every factual claim (FQBN, package index naming, pin macros, script names/usage) was cross-checked directly against the current edge-main source, not just copied from the reference material.

Note

run-tests.rst documents the tests/arduino_core_tests submodule and tests/test_config.h, which aren't merged into ifx-main yet (still on ifx-arduino-core-tests/edge-arduino-core-tests-config). The page is accurate for once those land.

@IFX-Anusha
IFX-Anusha force-pushed the ifx-docs-content branch 3 times, most recently from 2a414fb to a9fd00c Compare October 8, 2026 12:54
IFX-Anusha and others added 14 commits October 9, 2026 03:08
The job runs in a container, where GitHub Actions defaults run: steps
to sh instead of bash. The step uses <<< here-strings (bash-only),
which sh rejects with 'Syntax error: redirection unexpected'.
…reachable

git describe was picking up windows_toolchain_1.0.1 (created by
repackage_toolchain_windows.yml) as the closest tag, since the
existing --exclude '*/*' only filters tags containing a slash. The
resulting non-semver describe output made the script's regex match
fail and exit 1, breaking build-env on any branch reachable from that
tag.

Excluding it uncovers a second issue on edge-main/control-main: no
semver tag is reachable at all from their rebuilt history (0.0.1/0.0.2
are on the old pre-branch-split history). Fall back to 9.9.9-0 in that
case, same as the existing no-git-history fallback path.
Matches the codebase convention of putting CI logic in extra/*.sh
scripts rather than inlining it in workflow YAML (get_core_version.sh,
get_board_details.sh, package_core.sh, etc.).

Invoking it as 'bash <script>' also sidesteps the sh-vs-bash
default-shell issue at the source, instead of relying on an explicit
shell: bash override on the step.

Also installs jq on demand if missing, since
zephyrprojectrtos/ci-base:latest doesn't ship it.
Direct pushes to edge-main/control-main only need to build/package that
family's own feature boards; PRs still validate the full board matrix
before merge. package_core.sh now respects a pre-filtered ALL_BOARD_DATA
if the caller sets it, falling back to the full board set otherwise.
… opted in

A direct push to a branch with zero feature_board=true boards (e.g.
control-main today) previously filtered ALL_BOARD_DATA down to an empty
array, causing build-board to produce zero binaries and package-core to
crash with a confusing 'tar: Cannot open: No such file or directory'
instead of a clear error.

Only apply the feature-board filter if it leaves at least one board, so
branches with no board opted in yet keep building/packaging their full
board set exactly as before this mechanism existed.
Previously only direct pushes were limited to a board family's own
feature_board boards; PRs always ran the full board matrix as a
pre-merge safety net. Per request, apply the same filtering to PRs as
well, so both events only build/test the branch's own boards (still
falling back to the full set if none are opted in).

Note: this trades away full-matrix pre-merge validation on PRs against
edge-main/control-main - a PR touching shared CI/build logic will no
longer be checked against unrelated boards (giga, portenta, etc.)
before merge.
hal_infineon's pse84_metadata.cmake attempts to pip-install imgtool's
Python dependencies (cryptography, cbor2, click, intelhex, Pillow) at
CMake-configure time, but only emits a message(WARNING ...) if that
fails rather than aborting the build. In our CI this silently no-ops,
and the failure resurfaces later as a confusing
ModuleNotFoundError: No module named 'cryptography' from imgtool.py
during the post-build signing step.

Pre-install the same packages explicitly in this workflow, scoped to
kit_pse84_ai only, so the existing HAL-level install attempt becomes
a harmless no-op regardless of whether/why it fails in CI.
Signed-off-by: jaenrig-ifx <enriquezgarcia.external@infineon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants