RepoNVIDIANVIDIApublished Sep 16, 2025seen Jun 26

NVIDIA/OpenSMA

C

Open original ↗

Captured source

source ↗
published Sep 16, 2025seen Jun 26captured Aug 30http 200method plain

NVIDIA/OpenSMA

Description: Open-source SMA firmware

Language: C

License: NOASSERTION

Stars: 13

Forks: 5

Open issues: 0

Created: 2025-09-16T01:58:29Z

Pushed: 2026-07-27T14:47:20Z

Default branch: main

Fork: no

Archived: no

README:

OpenSMA #

Instructions to build helloworld FW

Prepare Environment ##

Use Ubuntu 24.04 1. Install package

apt-get update && apt-get install -y --no-install-recommends \
git git-lfs git-delta ca-certificates curl locales \
gawk sed xxd jq rsync make groff ncurses-bin \
gnupg python3 python3-pip python3-dev python3-clang \
openssh-client clang-tidy-18 clang-format-18 \
lcov gcc-13 g++-13 \
doxygen graphviz asciidoctor asciidoc gem javacc ruby-rouge \
file dos2unix less patch xz-utils

2. Install python package

pip3 install --break-system-packages \
jsonschema==4.23.0 \
ruamel.yaml==0.18.14 \
spsdk==3.4.0

3. Link make

ln -sf /usr/bin/make corepdk/ubs/bin/make

Prepare Toolchain ##

1. Download arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz 2. Extract *arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz* into libexec/toolchain/ 3. Download gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 4. Extract *gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2* into libexec/toolchain/ 5. Download alire 6. Run alr get gnat_arm_elf=14.2.1 7. Move *gnat_arm_elf_14.2.1_524d4d41* into libexec/toolchain/

Prepare SDK ##

1. Download Processors MCXN556S SDK version 25.09.00 from https://mcuxpresso.nxp.com/en

  • Host OS: Linux
  • Toolchain/IDE: All toolchains
  • Select all middlewares

2. Extract *25.09.00 SDK* into libexec/sdk/SDK_25_09_00_MCXN556S

mkdir -p libexec/sdk/SDK_25_09_00_MCXN556S
tar -xvzf SDK_25_09_00_MCXN556S.tar.gz -C libexec/sdk/SDK_25_09_00_MCXN556S

Patch SDK ##

MCU SDK ###

cd libexec/sdk/SDK_25_09_00_MCXN556S
xz -dc ../../patch/mcu.patch.xz | patch -p1 -N

Build and Sign FW ##

Artifact will be generated under build folder

MCU FW ###

./mcu_build.sh PROJECT=mcxn547helloworld BOARD=mcxn547helloworld PLATFORM=mcxn556-both MODE=rel SIGN_KEYSET=local RUN_LOCAL=1

Use Docker ##

You can also build and sign FW in Docker.

# Build Docker image if you didn't build before
docker build -f ./libexec/ubs.dockerfile -t opensma .
# Run Docker image
docker run --rm -it --user=${UID}:${GID} -v $(pwd):/opensma opensma
# Build and sign FW
./mcu_build.sh PROJECT=mcxn547helloworld BOARD=mcxn547helloworld PLATFORM=mcxn556-both MODE=rel SIGN_KEYSET=local RUN_LOCAL=1