Skip to content

Add wolfBoot port for STM32U3 (NUCLEO-U385RG-Q)#758

Open
dgarske wants to merge 2 commits intowolfSSL:masterfrom
dgarske:stm32u3
Open

Add wolfBoot port for STM32U3 (NUCLEO-U385RG-Q)#758
dgarske wants to merge 2 commits intowolfSSL:masterfrom
dgarske:stm32u3

Conversation

@dgarske
Copy link
Copy Markdown
Member

@dgarske dgarske commented Apr 23, 2026

New HAL port for the STM32U3 family (Cortex-M33, no TrustZone, 1MB dual-bank flash with 4KB pages, 64-bit double-word writes).

Features:

  • hal/stm32u3.c, hal/stm32u3.h, hal/stm32u3.ld: flash driver, clock init (96 MHz MSIRC0 via EPOD booster), inline UART, ICACHE
  • config/examples/stm32u3.config: ECC384/SHA384, DEBUG_UART=1, NVM_FLASH_WRITEONCE=1, RAM_CODE=1, dual-bank layout
  • test-app/app_stm32u3.c: LED blink + UART output + version check
  • tools/scripts/prepare_update_u3.sh: v2 pBOOT update image builder
  • docs/Targets.md: STM32U3 section with build/flash/update instructions
  • CI: stm32u3_test job + Clang rebuild coverage

Tested on NUCLEO-U385RG-Q:

  • Verified boot with ECC384/SHA384 signature
  • 96 MHz clock (MSIRC0 + SMPS + EPOD booster + VOS1)
  • UART output on USART1 PA9/PA10 (ST-LINK VCP)
  • TEST_FLASH erase/write/readback on both flash banks
  • A/B firmware update (v1 -> v2 swap with pBOOT trigger)

New HAL port for the STM32U3 family (Cortex-M33, no TrustZone,
1MB dual-bank flash with 4KB pages, 64-bit double-word writes).

Features:
- hal/stm32u3.c, hal/stm32u3.h, hal/stm32u3.ld: flash driver,
  clock init (96 MHz MSIRC0 via EPOD booster), inline UART, ICACHE
- config/examples/stm32u3.config: ECC384/SHA384, DEBUG_UART=1,
  NVM_FLASH_WRITEONCE=1, RAM_CODE=1, dual-bank layout
- test-app/app_stm32u3.c: LED blink + UART output + version check
- tools/scripts/prepare_update_u3.sh: v2 pBOOT update image builder
- docs/Targets.md: STM32U3 section with build/flash/update instructions
- CI: stm32u3_test job + Clang rebuild coverage

Tested on NUCLEO-U385RG-Q:
- Verified boot with ECC384/SHA384 signature
- 96 MHz clock (MSIRC0 + SMPS + EPOD booster + VOS1)
- UART output on USART1 PA9/PA10 (ST-LINK VCP)
- TEST_FLASH erase/write/readback on both flash banks
- A/B firmware update (v1 -> v2 swap with pBOOT trigger)
@dgarske dgarske self-assigned this Apr 23, 2026
Copilot AI review requested due to automatic review settings April 23, 2026 14:55
@danielinux danielinux self-assigned this Apr 23, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 7 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread hal/stm32u3.c
Comment thread hal/stm32u3.c Outdated
Comment thread hal/stm32u3.h Outdated
Comment thread config/examples/stm32u3.config Outdated
Comment thread docs/Targets.md Outdated
Comment thread hal/stm32u3.c Outdated
Comment thread hal/stm32u3.c
@dgarske dgarske assigned wolfSSL-Bot and unassigned dgarske Apr 23, 2026
@dgarske dgarske requested a review from danielinux April 23, 2026 21:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants