Skip to content

Releases: andyshinn/nRF54_Bootloader

v0.5.0

Choose a tag to compare

@andyshinn andyshinn released this 25 Sep 01:28

v0.5.0-dev2

v0.5.0-dev2 Pre-release
Pre-release

Choose a tag to compare

@andyshinn andyshinn released this 24 Sep 20:46

v0.5.0-dev1

v0.5.0-dev1 Pre-release
Pre-release

Choose a tag to compare

@andyshinn andyshinn released this 24 Sep 02:05

v0.4.1

Choose a tag to compare

@andyshinn andyshinn released this 17 Sep 02:21

v0.4.0 — nRF54LM20A on the upstream s145 layout

Choose a tag to compare

@andyshinn andyshinn released this 15 Sep 03:56

nRF54LM20A support. On the XIAO nRF54LM20A the bootloader starts and answers
on the serial DFU link; application DFU and BLE OTA are not verified yet.

  • nRF54LM20A with SoftDevice s145 10.0.1 and the XIAO nRF54LM20A board: same
    layout as the other parts, settings page at 0x1D1000, s145 at 0x1DA800,
    serial DFU on UARTE20
  • app_timer runs on TIMER21; TIMER20 belongs to the SoftDevice
  • Every NVIC register is cleared before the application starts, not just
    IRQ 0-255
  • DFU peer data is placed ahead of its CRC, as the application writes it, so
    bonded OTA DFU no longer falls back to unbonded advertising
  • Double-reset marker address comes from the linker script; nRF54L10 and
    nRF54L05 no longer write past the end of RAM
  • OTA DFU falls back to serial DFU when no SoftDevice is programmed
  • nrf_nvic.h and ble_l2cap.h shims moved out of the vendored SoftDevice tree

v0.2.3 — nRF54LM20A boots standalone

Choose a tag to compare

@andyshinn andyshinn released this 06 Sep 07:16

The nRF54LM20A bootloader now boots from its own hex with no hand-patching.

Fixed: nothing occupied address 0, so a flashed board locked up at reset.
nRF54L has no MBR — Nordic puts the reset-vector owner at 0x00000000 — while
this port inherited the nRF52 layout that expects an MBR there. src/boot_stub.S
adds a reset vector inside the 4 KB page already reserved below the
application, and points VTOR at the bootloader before jumping.

Fixed: dropped the nRF52-legacy UICR sections at 0x10001014/0x10001018.
Those addresses are unmapped on nRF54LM20A (its UICR is at 0x00FFD000), so the
hex carried a segment the part does not have and flashers rejected or skipped it.

Verified on a XIAO nRF54LM20A: resets into VTOR=0x001D0000, no lockup, UARTE20
live on P1.11/P1.10, parked in bootloader_dfu_start() awaiting a serial DFU host.

nRF54L05/L10/L15 are unchanged and still have the same address-0 gap.

v0.2.2 — nRF54LM20A stack top fix

Choose a tag to compare

@andyshinn andyshinn released this 06 Sep 06:59

Fixes the nRF54LM20A stack pointer landing in inaccessible RAM.

__StackTop was 0x20080000, the nominal top of the 512 KB. That address is
not usable on silicon, so the first instruction of SystemInit HardFaulted and
the core locked up before reaching main(). The RAM limit is now 0x2007FCC0,
matching where Nordic's own sdk-nrf-bm devicetree ends app_ram.

Verified over SWD on a XIAO nRF54LM20A: the bootloader now reaches
bootloader_dfu_start() and waits for a serial DFU host.

Known limitation: nothing is placed at 0x00000000, so a board flashed with only
this bootloader still locks up at reset. nRF54L has no MBR, and Nordic's model
puts the reset vector owner at 0x0. That is still unresolved.

nRF54L05/L10/L15 are unchanged.

v0.2.0 — nRF54LM20A support

Choose a tag to compare

@andyshinn andyshinn released this 05 Sep 21:24

Adds nRF54LM20A support and the Seeed XIAO nRF54LM20A board (xiao_nrf54lm20a).

SoftDevice selection is now per board. nRF54LM20A uses S145 v10.0.1 (the first
S145 release with an nRF54LM20A build, from sdk-nrf-bm v2.0.1); nRF54L05/L10/L15
keep the vendored v9.0.0 unchanged and build identically to v0.1.0.

Not verified on hardware. The XIAO nRF54LM20A pin mapping comes from the
upstream Zephyr board definition and has not been checked against a real board.
Published from a fork branch so the bootloader hex can be consumed by
platform-nordicnrf54 for testing.