wolfBoot Secure Boot for the NXP RW612

wolfBoot now supports the NXP RW612 wireless MCU on the FRDM-RW612 board, available in PR #926. wolfBoot verifies signed firmware before it runs and every update before it is installed, with optional TrustZone isolation between the bootloader and the application.

About the chip

The RW612 combines Wi-Fi 6, Bluetooth Low Energy and 802.15.4 radios with a 260 MHz Arm Cortex-M33 with TrustZone-M and 1.2 MB of SRAM. It has no internal flash: code executes in place from external FlexSPI NOR flash. The FRDM-RW612 board pairs it with 64 MB of NOR flash and an on-board MCU-Link debugger.

What wolfBoot adds

  • Three example configurations:
    • rw612.config: wolfBoot and the application run in the secure world.
    • rw612-tz.config: wolfBoot runs in the secure world, the application in the non-secure world. To add the PKCS #11 API from the non-secure world into wolfCrypt and a secure key vault, build with make WOLFCRYPT_TZ=1 WOLFCRYPT_TZ_PKCS11=1.
  • Boots directly from the start of flash: wolfboot.bin carries the boot ROM’s flash configuration block and image header, so no extra packaging step is needed.
  • Flash erase and program go through the RW612 boot ROM FlexSPI API.
  • A/B updates with rollback when a new image is never confirmed.
  • ECC256/SHA256 by default; any algorithm wolfBoot supports can be selected at build time.

Boot performance

Signature Hash wolfBoot size Hash time Verify time
ECC256 (P-256) SHA-256 27.6 KB 3.0 ms 24.9 ms
ECC384 (P-384) SHA-384 36.0 KB 6.1 ms 193.9 ms
RSA-4096 SHA-256 20.3 KB 3.0 ms 45.4 ms
ML-DSA-44 SHA-256 24.2 KB 3.0 ms 30.6 ms
ML-DSA-65 SHA-256 24.9 KB 3.0 ms 42.5 ms
ML-DSA-87 SHA-256 25.5 KB 3.0 ms 63.3 ms

Measured on the FRDM-RW612 at 130 MHz verifying a 7.5 KB test application, with the wolfCrypt Thumb-2 assembly that is now the default for the RW612. Hash time scales with the size of the firmware image; verify time depends only on the signature algorithm.

ECC256 is the fastest option at 24.9 ms to verify. ML-DSA-44 follows closely at 30.6 ms, and even ML-DSA-87 verifies in 63.3 ms, so post-quantum secure boot adds very little to start-up time. RSA-4096 produces the smallest bootloader at 20.3 KB, while ECC384 is the slowest to verify at 193.9 ms and the largest at 36.0 KB.

If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.

Download wolfSSL Now