diff --git a/AGENTS.md b/AGENTS.md index 01621b4..9d500ec 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -128,7 +128,8 @@ chip-independently. Per-chip values (from `nrf54l_s145_v10.ld`): | nRF54L10 | `0x8000 – 0xC7000` | `0xC7000 – 0xCE000` | `0xCF000` | `0xDA800` | | nRF54L15 | `0x8000 – 0x147000` | `0x147000 – 0x14E000` | `0x14F000` | `0x15A800` | -RAM ends at `0x2003FF80`; the bootloader keeps its BLE peer data and the +App RAM ends at `0x20017F80` / `0x2002FF80` / `0x2003FF80` (L05 96 KB, L10 +192 KB, L15 256 KB); the bootloader keeps its BLE peer data and the double-reset marker in the last 128 bytes. Both sides must agree, so change the layout in the bootloader repo's `linker/` scripts in the same step. diff --git a/README.md b/README.md index 1c9c1d2..868623a 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,8 @@ of RRAM. | nRF54L15 | `0x0 – 0x8000` | `0x8000 – 0x147000` | `0x147000 – 0x14E000` | `0x14F000` | `0x15A800` | RAM: `0x20000000 – 0x20004800` belongs to the SoftDevice, the application -runs from `0x20004800` to `0x2003FF80`; the last 128 bytes hold the +runs from `0x20004800` to `0x20017F80` / `0x2002FF80` / `0x2003FF80` (L05 / +L10 / L15); the last 128 bytes of RAM hold the bootloader's BLE peer data and double-reset marker. The layout matches the [nRF54_Bootloader](https://github.com/meshtastic/nRF54_Bootloader) linker scripts. diff --git a/changelog.md b/changelog.md index f3d7aa0..3d53700 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,12 @@ # Changelog +## 0.5.1 — 2026-10-26 + +- nRF54L05 and nRF54L10: application RAM ends at `0x20017F80` / `0x2002FF80` + instead of the nRF54L15's `0x2003FF80`, which is past the end of their RAM. + The stack and the bootloader's peer data and double-reset marker are now + inside RAM, where the bootloader expects them + ## 0.5.0 — 2026-10-26 Requires s145 10.0.1, bootloader 0.5.0 and a platform with the 10.0.1 boards. diff --git a/cores/nRF5/linker/nrf54l05_s145_v10.ld b/cores/nRF5/linker/nrf54l05_s145_v10.ld index 9c3ca80..6609d0d 100644 --- a/cores/nRF5/linker/nrf54l05_s145_v10.ld +++ b/cores/nRF5/linker/nrf54l05_s145_v10.ld @@ -6,10 +6,10 @@ GROUP(-lgcc -lc -lnosys) MEMORY { FLASH (rx) : ORIGIN = 0x00008000, LENGTH = 0x3f000 - RAM (rwx) : ORIGIN = 0x20004800, LENGTH = 0x3B780 + RAM (rwx) : ORIGIN = 0x20004800, LENGTH = 0x13780 /* Bootloader peer data and double-reset marker, must stay untouched by the app */ - NOINIT (rwx) : ORIGIN = 0x2003FF80, LENGTH = 0x78 + NOINIT (rwx) : ORIGIN = 0x20017F80, LENGTH = 0x78 } __softdevice_start__ = 0x0005A800; diff --git a/cores/nRF5/linker/nrf54l10_s145_v10.ld b/cores/nRF5/linker/nrf54l10_s145_v10.ld index 1136491..624f905 100644 --- a/cores/nRF5/linker/nrf54l10_s145_v10.ld +++ b/cores/nRF5/linker/nrf54l10_s145_v10.ld @@ -6,10 +6,10 @@ GROUP(-lgcc -lc -lnosys) MEMORY { FLASH (rx) : ORIGIN = 0x00008000, LENGTH = 0xbf000 - RAM (rwx) : ORIGIN = 0x20004800, LENGTH = 0x3B780 + RAM (rwx) : ORIGIN = 0x20004800, LENGTH = 0x2B780 /* Bootloader peer data and double-reset marker, must stay untouched by the app */ - NOINIT (rwx) : ORIGIN = 0x2003FF80, LENGTH = 0x78 + NOINIT (rwx) : ORIGIN = 0x2002FF80, LENGTH = 0x78 } __softdevice_start__ = 0x000DA800; diff --git a/package.json b/package.json index 6cf52e4..abe1c64 100644 --- a/package.json +++ b/package.json @@ -28,5 +28,5 @@ "url": "https://github.com/meshtastic/nRF54_Arduino.git" }, "license": "LGPL-2.1-or-later", - "version": "0.5.0" + "version": "0.5.1" }