Create Nucleo N657x0-Q Platform#1547
Open
bremoran wants to merge 22 commits into
Open
Conversation
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
c71f1bc to
32c4136
Compare
Contributor
|
@bremoran What's your plan for this? |
Contributor
Author
|
I am hoping to finalise this but I'm not able to spend time on it right now. |
Contributor
Thanks for the update. Marking it as draft for now. Please mark it as ready when you have finished it. |
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Factor common host-side logic for argv blobs, GDB scripts, result parsing, ST tool lookup, and symbol resolution into a nucleo_host package shared by the NUCLEO wrapper scripts. Detect pre-output GDB load failures, rerun FLEXMEM configuration, and retry the same test ELF via GDB_LOAD_FAILURE_RECOVERY_ATTEMPTS. Add unit coverage for the helper modules and retry behavior, extend FLEXMEM setup dependencies to all run targets, and document manual load-recovery validation. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Remove the unused ST LRUN linker-script copy and D-TCM stack patching from the Nix platform package now that the platform uses repository-owned linker scripts. Add a shared FLEXMEM diagnostic helper and use it from both exec_wrapper.py and flexmem_configure.py so missing flexmem_config.elf errors explain how to build and run the config target. Cover the new diagnostics with host-side unit tests. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
e3776fa to
c95d72a
Compare
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Contributor
Author
Done! |
Contributor
CBMC Results (ML-KEM-512)Full Results (191 proofs)
|
Contributor
CBMC Results (ML-KEM-1024)Full Results (191 proofs)
|
Contributor
CBMC Results (ML-KEM-768)Full Results (191 proofs)
|
Add NUCLEO_DEBUG_BACKEND=openocd support for FLEXMEM setup and runtime GDB loading. Share OpenOCD command construction in nucleo_host.openocd_tools, use connect-under-reset only for the FLEXMEM helper, and skip ST-LINK semihost socket setup for OpenOCD runtime sessions. Package an OpenOCD snapshot with STM32N6 target support as st-openocd and add it to the NUCLEO devshell. Document the ST-LINK/OpenOCD workflows and add host-side tests for OpenOCD command generation and wrapper selection. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Remove the STM32Cube CLT/ST-LINK_gdbserver backend and make the RAM-only NUCLEO-N657X0-Q flow use OpenOCD directly for both FLEXMEM configuration and runtime GDB sessions. Keep the required reset split: FLEXMEM configuration uses connect-under-reset, while the runtime OpenOCD server does not. Replace STLINK_* controls with OPENOCD_* controls, update host tests and docs, and remove the obsolete st_tools helper. Also define ARMCM55 for the platform and use the STM32N6 CMSIS device header in the PMU benchmark path so benchmark builds work on target. Validated with host unit tests, py_compile, git diff --check, and on-target ML-KEM test/benchmark runs. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Improve OpenOCD/FLEXMEM handling for the NUCLEO-N657X0-Q platform by retrying FLEXMEM configuration without connect-under-reset after attach failures, resetting the target after runtime output harvesting, and using the recovered FLEXMEM path for GDB load failures. Route target-side _exit(status) through the platform semihosting exit path so libc exit() calls emit the ML-KEM exit sentinel. Treat SIGTRAP without that sentinel as a target failure instead of a successful run. Update the Nucleo platform docs and host-side regression tests for the new reset sequencing, attach fallback, load-failure recovery, default OpenOCD speed, and missing-sentinel handling. Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
54df290 to
dd9798a
Compare
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
dd9798a to
1ad95e2
Compare
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
Signed-off-by: Brendan Moran <brendan.moran@arm.com>
e2e7f94 to
a276ffa
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This change introduces a new bare-metal test platform for the Nucleo N657x0-Q board and integrates it into the project’s Nix devshell and test build system.
Summary
nucleo-n657x0-q.test/baremetal/platform/nucleo-n657x0-q/, including build rules, execution wrapper, argument packing utility, and platform sources.Changes
flake.nix: Add.#nucleo-n657x0-qdevshell.nix/nucleo-n657x0-q/default.nix: Define board devshell and tooling.nix/util.nix: Utility update for new platform.test/baremetal/platform/nucleo-n657x0-q/README.md: Platform documentation.test/baremetal/platform/nucleo-n657x0-q/platform.mk: Makefile integration for the platform.test/baremetal/platform/nucleo-n657x0-q/exec_wrapper.py: Execution wrapper for running tests on target.test/baremetal/platform/nucleo-n657x0-q/make_argv_bin.py: Helper to pack argv for target.test/baremetal/platform/nucleo-n657x0-q/src/*.c,*.h: Platform sources (cmdline, semihosting syscall, helpers).test/hal/hal.c,test/hal/pmu_armv8.h: Minor HAL updates for compatibility.test/mk/components.mk: Include the new platform components.Why
Usage
nix develop .#nucleo-n657x0-qmake test EXTRA_MAKEFILE=test/baremetal/platform/nucleo-n657x0-q/platform.mkNotes
README.md.