Nordic nRF Util

nRF Util

To support interaction with Nordic’s nRF Util tooling during production, an SBC or x86-64 should be included in the test fixture.

RPi4B

An RPi4B with AgentOS SBC image running nRF Util can be controlled by the PLT over USB.

Sample Test Plan (nRF54 firmware)

title: "nRF54 programming with nrfutil on RPi4B SBC,using Segger J-Link"
suite:
 - title: Defines
   steps:
    - command: define FIRMWARE.hex "nrf54l20-fw.hex"
 - title: New SBC Session
   steps:
    - command: agentCfg PROGSBC %SBC.uart%
      with:
       - "%FIRMWARE.hex%"
 - title: "Erase and Program nRF54 with nrfutil"
   steps:
     - command: agentExec PROGSBC "nrfutil device recover --log-output=stdout --json"
     - command: agentExec PROGSBC "nrfutil device program --firmware %FIRMWARE.hex% --log-output=stdout --json"

nRF Util Preparation

Use the following test plan to prepare an SBC with an AgentOS SD Card image with nRF Util and an “Offline bundle”.

Files:

title: "AgentOS: Install nrfutil"
suite:
 - ident: SBC
   title: "SBC Setup"
   retry: 2
   steps:
    - command: agentCfg SBC
      with:
       - nrfutil.bin
       - offline.tgz
 - ident: NRFUTIL.INST
   title: "Install nrfutil binary and offline bundle"
   steps:
    - command: agentExec SBC "sudo bash"
    - command: agentExec SBC "mount -o remount,rw /"
    - command: agentExec SBC "cp /run/pltagent/mnt/nrfutil.bin /opt/nrfutil/nrfutil"
    - command: agentExec SBC "tar -C /opt/nrfutil -xzvf /run/pltagent/mnt/offline.tgz"
      timeout: 30s
    - command: agentExec SBC "chmod +x /opt/nrfutil/nrfutil"
 - ident: NRFUTIL.VER
   title: "nrfutil version check"
   steps:
    - command: agentExec SBC  "/opt/nrfutil/nrfutil --version"
 - ident: NRFUTIL.BOOTSRAP
   title: "nrfutil bootstrap"
   steps:
    - command: agentExec SBC "export NRFUTIL_BOOTSTRAP_TARBALL_PATH=/opt/nrfutil/offline/package-repository/nrfutil-aarch64-unknown-linux-gnu-8.0.0.tar.gz"
    - command: agentExec SBC "/opt/nrfutil/nrfutil install device --from-offline /opt/nrfutil/offline"
      timeout: 30s
    - command: agentExec SBC  "/opt/nrfutil/nrfutil list"
      timeout: 30s
    - command: agentExec SBC "mount -o remount,ro /"
      timeout: 30s

Tip

Deploying nrfutil and the offline bundle only needs to be done once after writing the AgentOS SD card image, after this nrfutil can be used directly after agentCfg

References

x86-64 PC

When using an x86-64 PC to run nRF Util, a PLT agent should be installed on the programming PC to allow control from a PLT over Ethernet:

References

to program an nRF54:

Sample Test Plan (nRF54 firmware)

title: "nRF54 programming with nrfutil on x86-64 PC, using Segger J-Link"
suite:
 - title: Defines
   steps:
    - command: define FIRMWARE.hex "nrf54l20-fw.hex"
 - title: New SBC Session
   steps:
    - command: agentCfg PROGSBC %SBC.uart%
      id: "a0:36:bc:57:9c:a8" # Ethernet MAC address of nrfutil host (x86-64).
      with:
       - "%FIRMWARE.hex%"
 - title: "Erase and Program nRF54 with nrfutil"
   steps:
     - command: agentExec PROGPC "nrfutil device recover --log-output=stdout --json"
     - command: agentExec PROGPC "nrfutil device program --firmware %FIRMWARE.hex% --log-output=stdout --json"