wolfBoot/config/examples
Aidan Garske 943d4fd866 Fix NXP LPC54S018M SPIFI flash operations and complete boot+update cycle
The LPC54S018M HAL had three critical SPIFI controller issues preventing
   flash write/erase operations from working, which blocked wolfBoot_success(),
   wolfBoot_update_trigger(), and the firmware swap:

   1. Wrong memory-mode read command: Used opcode 0x6B (Quad Output, serial
      address) but the boot ROM configures 0xEB (Quad I/O, quad address) with
      MCMD=0xEB930000. The mismatch caused garbled address bits when re-entering
      XIP after flash operations, crashing on instruction fetch.

   2. SPIFI POLL mode not waiting: The boot ROM leaves CLIMIT[7:0]=0x00 which
      makes the hardware POLL comparison always succeed immediately. Set
      IDATA=0x00 and CLIMIT[7:0]=0x01 to properly wait for flash BUSY to clear.

   3. SPIFI reset clears CTRL/CLIMIT: The reset used to exit memory mode clears
      the boot ROM's timing config (CTRL=0x600F03E8) and cache limit
      (CLIMIT=0x08000000). Save and restore both registers around every reset.

   Additional changes:
   - Add RAMFUNCTION memcpy (src/string.o) to test app for SPIFI XIP safety
   - Add bare-metal UART driver for Flexcomm0 (non-blocking, skips if FC0
     doesn't respond — observed on some LPC54S018M-EVK boards)
   - Add DSB+ISB barriers after entering memory mode for pipeline coherency
   - Enable DEBUG_UART in example config
   - Update test app to follow LPC55S69 port patterns with LED indicators
     for boot version and update status

   Tested: cold boot, ECC256 signature verify, wolfBoot_success(),
   wolfBoot_update_trigger(), and full v1->v2 firmware swap all working.
   Swap takes ~60 seconds for the 960KB partition (240 sector operations).
2026-04-22 14:10:55 +02:00
..
README.md CMake Improvements 2025-11-18 17:44:43 -08:00
aurix-tc375-ecc.config -add wolfHSM RSA4096 configs for sim and AURIX 2025-12-10 07:43:32 +01:00
aurix-tc375-elf-ecc.config -add wolfHSM RSA4096 configs for sim and AURIX 2025-12-10 07:43:32 +01:00
aurix-tc375-elf-wolfHSM-certs-ecc.config -add wolfHSM RSA4096 configs for sim and AURIX 2025-12-10 07:43:32 +01:00
aurix-tc375-elf-wolfHSM-certs-rsa4096.config -add wolfHSM RSA4096 configs for sim and AURIX 2025-12-10 07:43:32 +01:00
aurix-tc375-elf-wolfHSM-ecc.config -add wolfHSM RSA4096 configs for sim and AURIX 2025-12-10 07:43:32 +01:00
aurix-tc375-hsm-ecc.config enable tc3 HSM use of sp cortex-m asm 2026-02-16 14:54:48 -07:00
aurix-tc375-hsm-self-update-wolfHSM-certs-rsa4096.config Add self-header feature with support for sim and AURIX TC3xx 2026-02-27 11:39:51 +01:00
aurix-tc375-hsm-wolfHSM-certs-ecc.config enable tc3 HSM use of sp cortex-m asm 2026-02-16 14:54:48 -07:00
aurix-tc375-hsm-wolfHSM-certs-rsa4096.config enable tc3 HSM use of sp cortex-m asm 2026-02-16 14:54:48 -07:00
cypsoc6.config Add external flash support and dual-bank flash swap functionality for PSoC6 devices. 2026-03-12 09:17:04 +01:00
hifive1.config Fix actual overlap in hifive config 2026-04-15 01:03:42 +02:00
imx-rt1040.config Switch MCUXSDK back to 0 in iMX-RT 2026-01-30 01:23:37 +01:00
imx-rt1050.config Switch MCUXSDK back to 0 in iMX-RT 2026-01-30 01:23:37 +01:00
imx-rt1060.config Switch MCUXSDK back to 0 in iMX-RT 2026-01-30 01:23:37 +01:00
imx-rt1060_hab.config Switch MCUXSDK back to 0 in iMX-RT 2026-01-30 01:23:37 +01:00
imx-rt1064.config Switch MCUXSDK back to 0 in iMX-RT 2026-01-30 01:23:37 +01:00
kinetis-k64f.config
kinetis-k82f.config
kontron_vx3060_s2.config kontron-vx3060-s2: simplify example, add build test, improve docs 2024-12-19 20:12:16 +01:00
library.config Add small stack. Fix to use sim for test-lib. 2025-04-29 11:50:29 +02:00
library_fs.config Improvements to lib-fs status and added keystore. Added some useful logging/debugging 2025-10-30 16:31:27 +01:00
lpc55s69-tz.config Remove NO_DIRECT_READ_OF_ERASED_SECTOR option; write after erase instead 2026-03-18 11:53:26 +01:00
lpc55s69.config Remove NO_DIRECT_READ_OF_ERASED_SECTOR option; write after erase instead 2026-03-18 11:53:26 +01:00
lpc54606j512.config Update MCUXpresso SDK to new refactor 2026-01-29 17:35:24 +01:00
mcxa.config Update MCUXpresso SDK to new refactor 2026-01-29 17:35:24 +01:00
mcxn-tz.config Updated mcxn build partition geometry 2026-03-20 20:19:56 +01:00
mcxn-wolfcrypt-tz.config Updated mcxn build partition geometry 2026-03-20 20:19:56 +01:00
mcxn.config Use default name for SDK directory 2026-01-22 18:55:46 +01:00
mcxw-tz.config Remove flash keyvault partition where not needed 2026-03-23 15:51:00 +01:00
mcxw.config Remove flash keyvault partition where not needed 2026-03-23 15:51:00 +01:00
nrf54l15-wolfcrypt-tz.config Disable DELTA_UPDATES by default 2026-03-18 09:15:00 +01:00
nrf54l15.config Disable DELTA_UPDATES by default 2026-03-18 09:15:00 +01:00
nrf5340-tz.config Remove flash keyvault partition where not needed 2026-03-23 15:51:00 +01:00
nrf5340-wolfcrypt-tz.config Support WOLFCRYPT_TZ and PKCS11 on nRF5340 2025-12-13 04:05:32 +01:00
nrf5340.config Non-TZ nRF5340 fixes 2025-11-20 18:00:55 +01:00
nrf5340_net.config Non-TZ nRF5340 fixes 2025-11-20 18:00:55 +01:00
nrf52840.config
nxp-ls1028a-tpm.config
nxp-ls1028a.config
nxp-p1021.config Add support for PowerPC 32-bit SHA256 assembly speedups. Minor fix for ELF loading to set entry point before copying sections (resolves issue with loading on top of current location). Rename elf_load_image_mmu argument `entry` to `pentry` to avoid confusion with GET_H64 macro's use of header member "entry". 2025-06-24 19:02:49 +02:00
nxp-s32k142.config Support for custom flash option byte on NXP S32K14xx 2026-02-27 11:36:53 +01:00
nxp-s32k144.config Support for custom flash option byte on NXP S32K14xx 2026-02-27 11:36:53 +01:00
nxp-s32k146.config Support for custom flash option byte on NXP S32K14xx 2026-02-27 11:36:53 +01:00
nxp-s32k148.config Support for custom flash option byte on NXP S32K14xx 2026-02-27 11:36:53 +01:00
nxp-t1024.config
nxp-t1040.config Support for NXP T1040 RDB 2026-03-20 14:51:15 +01:00
nxp-t2080.config Feedback from customer with actual hardware 2026-03-20 14:43:42 +01:00
nxp_lpc54s018m.config Fix NXP LPC54S018M SPIFI flash operations and complete boot+update cycle 2026-04-22 14:10:55 +02:00
pic32ck.config add support for PIC32CZ and PIC32CK 2025-06-09 16:29:31 +02:00
pic32cz.config add support for PIC32CZ and PIC32CK 2025-06-09 16:29:31 +02:00
polarfire_mpfs250.config PolarFire SoC M-Mode, QSPI and L2-LIM support 2026-03-09 07:29:27 +01:00
polarfire_mpfs250_hss_l2lim.config PolarFire SoC M-Mode, QSPI and L2-LIM support 2026-03-09 07:29:27 +01:00
polarfire_mpfs250_m_qspi.config PolarFire SoC M-Mode, QSPI and L2-LIM support 2026-03-09 07:29:27 +01:00
polarfire_mpfs250_qspi.config PolarFire SoC M-Mode, QSPI and L2-LIM support 2026-03-09 07:29:27 +01:00
raspi3-encrypted.config Added upper limit for NO_PARTITIONS builds 2026-03-02 14:18:23 +01:00
raspi3.config Added upper limit for NO_PARTITIONS builds 2026-03-02 14:18:23 +01:00
renesas-rx65n.config
renesas-rx72n.config
rp2350.config Cleanup initialization code for rp2350. 2025-01-27 12:36:19 +01:00
sama5d3.config
same51-dualbank.config
same51.config
sim-delta-update.config
sim-dualbank.config Add simulator support for DUALBANK, test bank swap 2025-11-03 11:21:22 +01:00
sim-elf-scattered.config - Support external flash for elf scatter-loading 2025-05-08 08:50:26 -06:00
sim-encrypt-delta-nvm-writeonce-update.config
sim-encrypt-delta-update.config
sim-encrypt-nvm-writeonce-flags-home-invert-update.config
sim-encrypt-nvm-writeonce-flags-home-update.config
sim-encrypt-nvm-writeonce-update.config
sim-encrypt-update.config
sim-lms.config
sim-ml-dsa-ecc-hybrid.config Added Vorago VA416x0 wolfBoot support 2025-11-19 11:11:28 +01:00
sim-ml-dsa.config Added Vorago VA416x0 wolfBoot support 2025-11-19 11:11:28 +01:00
sim-ml-dsa3.config Added Vorago VA416x0 wolfBoot support 2025-11-19 11:11:28 +01:00
sim-ml-dsa5.config Added Vorago VA416x0 wolfBoot support 2025-11-19 11:11:28 +01:00
sim-nobackup-flags-home.config
sim-nobackup-nvm-writeonce.config
sim-nobackup.config
sim-nvm-writeonce-flags-home-invert.config
sim-nvm-writeonce-flags-home.config
sim-nvm-writeonce.config
sim-self-header-ext.config Add self-header feature with support for sim and AURIX TC3xx 2026-02-27 11:39:51 +01:00
sim-self-header.config Add self-header feature with support for sim and AURIX TC3xx 2026-02-27 11:39:51 +01:00
sim-self-update-ext.config sim self update: test external flash 2026-01-08 13:31:33 -08:00
sim-self-update-monolithic.config add ci test coverage for monolithic and self-update combined cases 2026-04-17 08:27:05 +02:00
sim-self-update.config Add support for simulator self-update test 2026-01-08 09:40:44 -08:00
sim-tpm-keystore.config
sim-tpm-measured.config
sim-tpm-seal.config Fixes for Xilinx Zynq UltraScale+ MPSoC: 2024-12-30 15:36:43 +01:00
sim-tpm.config
sim-wolfHSM-client-certchain-ecc.config Update wolfHSM pointer, fix minor issues 2026-03-23 20:05:07 +01:00
sim-wolfHSM-client-certchain-rsa4096.config Update wolfHSM pointer, fix minor issues 2026-03-23 20:05:07 +01:00
sim-wolfHSM-client-ecc.config Update wolfHSM pointer, fix minor issues 2026-03-23 20:05:07 +01:00
sim-wolfHSM-client-mldsa.config Update wolfHSM pointer, fix minor issues 2026-03-23 20:05:07 +01:00
sim-wolfHSM-server-certchain-ecc.config -add wolfHSM RSA4096 configs for sim and AURIX 2025-12-10 07:43:32 +01:00
sim-wolfHSM-server-certchain-rsa4096.config -add wolfHSM RSA4096 configs for sim and AURIX 2025-12-10 07:43:32 +01:00
sim-xmss.config
sim.config
sim32-elf-scattered.config - Support external flash for elf scatter-loading 2025-05-08 08:50:26 -06:00
sim32.config
stm32c0-lms-8-10-1.config Fixes for test failures 2025-10-23 18:35:09 +02:00
stm32c0-rsa2048.config
stm32c0.config Fixes for test failures 2025-10-23 18:35:09 +02:00
stm32f1.config stm32f103: add example config 2025-02-21 18:41:04 +01:00
stm32f4-small-blocks-uart-update.config Fix build and test issues with stm32f4 targets 2025-06-21 15:02:11 -04:00
stm32f7-dualbank.config
stm32f7.config
stm32f407-discovery.config Replace example stm32f4 config 2025-06-21 14:54:04 -04:00
stm32f411-blackpill.config Replace example stm32f4 config 2025-06-21 14:54:04 -04:00
stm32g0.config Improve docs, add targets and tests per https://github.com/wolfSSL/wolfBoot/pull/598#pullrequestreview-3492319645 2025-11-21 17:54:14 -08:00
stm32h5-dualbank.config Fixes for STM32H5 TrustZone and PKCS11 store 2025-10-10 19:42:20 +02:00
stm32h5-no-tz.config Updated benchmark to run on rpi + stm32h563 2026-02-09 18:48:47 +01:00
stm32h5-tz-dualbank-otp-lms.config Various STM32 TrustZone improvements 2025-11-20 18:00:55 +01:00
stm32h5-tz-dualbank-otp.config Various STM32 TrustZone improvements 2025-11-20 18:00:55 +01:00
stm32h5-tz-dualbank.config Various STM32 TrustZone improvements 2025-11-20 18:00:55 +01:00
stm32h5-tz-psa-otp.config Add support for DICE attestation + PSA attestation 2026-02-06 18:36:47 +01:00
stm32h5-tz-psa.config Add support for DICE attestation + PSA attestation 2026-02-06 18:36:47 +01:00
stm32h5-tz-tpm.config Fix new stm32h5-tz-tpm.config 2025-11-20 18:00:55 +01:00
stm32h5-tz.config Various STM32 TrustZone improvements 2025-11-20 18:00:55 +01:00
stm32h5.config Remove flash keyvault partition where not needed 2026-03-23 15:51:00 +01:00
stm32h7-octospi.config
stm32h7.config
stm32l0.config
stm32l4-cube.config Fixes for unused variables. Also repaired STM32WB55 build with PKA 2025-11-20 18:26:58 +01:00
stm32l5-nonsecure-dualbank.config
stm32l5-wolfcrypt-tz.config Uniform STM32L5 flash write hal 2026-01-13 13:46:58 +01:00
stm32l5.config
stm32u5-nonsecure-dualbank.config
stm32u5-wolfcrypt-tz.config Fixed stm32u5 WOLFBOOT_SECTOR_SIZE 2026-01-15 13:54:10 +01:00
stm32u5.config Remove flash keyvault partition where not needed 2026-03-23 15:51:00 +01:00
stm32wb-delta-enc-ext.config
stm32wb-delta-ext.config
stm32wb-delta.config
stm32wb-pka-1mb.config Fixes for unused variables. Also repaired STM32WB55 build with PKA 2025-11-20 18:26:58 +01:00
stm32wb-tpm.config
stm32wb-uart-flash-encryption-aes128.config
stm32wb-uart-flash-encryption-aes256.config
stm32wb-uart-flash-encryption.config
stm32wb.config
ti-tms570lc435.config
versal_vmk180.config Cleanups and added BOOT_EL2 option. 2026-01-26 13:08:50 +01:00
versal_vmk180_sdcard.config Added upper limit for NO_PARTITIONS builds 2026-03-02 14:18:23 +01:00
visualgdb-stm32l4.config CMake Improvements 2025-11-18 17:44:43 -08:00
vorago_va416x0.config Fix for tools/scripts/va416x0/build_test.sh portability (MacOS) 2026-03-03 12:29:09 +01:00
x86_64_efi.config
x86_fsp_qemu.config
x86_fsp_qemu_seal.config
zynqmp.config Implement filesystem-based partition state access and CLI tools 2025-10-30 16:31:27 +01:00
zynqmp_sdcard.config Support for wolfBoot ZynqMP (UltraScale+ MPSoC) SD Card 2026-03-05 10:12:02 +01:00

README.md

Config Example Files

This directory contains example .config presets for various target devices.

Make

The examples here can be copied directly to the project .config file to use with make.

CMake

See the CMakePresets.json file.

Config files can be added or updated to the CMakePresets.json like this:

python3 ./tools/scripts/config2presets.py ./config/examples/stm32h7.config

# then test it:

./tools/scripts/wolfboot_cmake_full_build.sh --target stm32h7

Troubleshooting

The wrong toolchain is being used, or a target was not specified

Error: no such instruction: `isb'