update all boards with storage revert

This commit is contained in:
liquidraver
2026-03-09 12:58:59 +01:00
parent 14f0bb54c6
commit ae47c5a062
6 changed files with 43 additions and 71 deletions
+17 -6
View File
@@ -357,8 +357,9 @@ Power: `powersaving on/off`
### 7.2 DataStore (`adapters/datastore/`)
- **Internal**: LittleFS on flash (`/lfs`)
- **Internal**: LittleFS on flash (`/lfs`), 256-byte cache for reduced flash I/O
- **External**: Optional LittleFS on QSPI (`/ext`) with auto-migration
- **BLE bonds**: File-based settings on LittleFS (`/lfs/settings/`) — all platforms (no NVS)
- **Prefs**: 93-byte binary format, Arduino-compatible, field-by-field I/O
- **Contacts**: 152-byte records, stored on external flash if available
- **Channels**: 68-byte records (4 pad + 32 name + 32 secret)
@@ -381,7 +382,7 @@ Power: `powersaving on/off`
### 7.5 Board (`adapters/board/`)
- Battery ADC with optional regulator-gated voltage divider, 8-sample average
- Battery ADC with optional regulator-gated voltage divider, 8-sample average (boards with `zephyr,user` ADC node; MG24 has no battery divider, ADC disabled)
- UF2 bootloader entry via GPREGRET magic (0x57 = UF2, 0xA8 = BLE DFU)
- TX LED bracketing for LoRa transmissions
- Bootloader version detection via flash memory scan
@@ -442,7 +443,14 @@ prj.conf (base: console, logging)
- **Radio**: `ZEPHCORE_RADIO_NATIVE` (SX126x, default) vs `ZEPHCORE_RADIO_LR1110`
- **Features**: Display, buzzer, buttons, multi-tap, Doom (auto-enabled from DT)
### 9.3 Patches
### 9.3 Platform Notes
- **nRF52840**: Zephyr open-source BLE controller, UF2 bootloader, partial flash erase for BLE coexistence
- **nRF54L15**: Same BLE controller as nRF52, CMSIS-DAP via SAMD11 bridge, no native USB
- **ESP32**: Espressif proprietary BLE blob, 32KB heap, asserts disabled (blob IRQ false positives)
- **EFR32MG24**: SiLabs proprietary BLE blob, 32KB heap, SEMAILBOX enabled for hardware TRNG/crypto entropy, ADC disabled (no battery divider), CMSIS-DAP via onboard SAMD11
### 9.4 Patches
| Patch | Risk | Purpose |
|-------|------|---------|
@@ -451,12 +459,14 @@ prj.conf (base: console, logging)
| 0005-gnss-air530z-easy | MEDIUM | EASY ephemeris + removes PM (prevents deadlocks) |
| 0006-blobs-py | LOW | Fix `west blobs fetch` KeyError |
### 9.4 Flash Partition Layouts
### 9.5 Flash Partition Layouts
**nRF52840 SD v6**: SoftDevice 152KB → App 696KB → LFS 128KB → UF2 48KB
**nRF52840 SD v7**: SoftDevice 156KB → App 692KB → LFS 128KB → UF2 48KB
**ESP32 (4MB)**: Boot + App → NVS 8KB → LFS 184KB
**nRF54L15**: MCUboot 64KB → App 1272KB → NVS 8KB → LFS 84KB
**ESP32 (4MB)**: Boot + App → LFS 192KB
**ESP32-S3 (16MB)**: Boot + App → LFS 384KB
**nRF54L15**: MCUboot 64KB → App 1272KB → LFS 92KB
**EFR32MG24**: MCUboot 48KB → App 1344KB → LFS 144KB
---
@@ -573,6 +583,7 @@ Over USB CDC: V3 framing: `[2B LE length] [1B opcode] [payload...]`
| `/lfs/adv_blobs` or `/ext/adv_blobs` | Advert cache | Fixed-size blob records |
| `/lfs/repeater/acl` | Client ACL | 136B × N records |
| `/lfs/repeater/regions2` | Region map | Header + 164B × N entries |
| `/lfs/settings/` | BLE bonds + Zephyr settings | File-based settings (all platforms) |
### Preferences Binary Layout (93 bytes)
@@ -20,10 +20,6 @@
led0 = &user_led;
};
chosen {
zephyr,settings-partition = &storage_partition;
};
leds {
compatible = "gpio-leds";
user_led: led_0 {
@@ -62,25 +58,19 @@
};
/*
* Flash partitions — split default storage into NVS + LittleFS.
* Standard ESP32 4MB layout:
* 0x3B0000 - 0x3B2000 (8KB) NVS (BLE bonds)
* 0x3B2000 - 0x3E0000 (184KB) LittleFS (identity, contacts)
* Flash partitions — repartition default ESP32 layout.
* Default storage_partition is 192KB at 0x3B0000.
*
* 0x3B0000 - 0x3E0000 (192KB) LittleFS (identity, contacts, channels, BLE bonds)
*/
/delete-node/ &storage_partition;
&flash0 {
partitions {
/* NVS 8KB for BLE bonds + settings */
storage_partition: partition@3b0000 {
label = "storage";
reg = <0x3B0000 0x2000>;
};
/* LittleFS 184KB for DataStore */
lfs_partition: partition@3b2000 {
/* LittleFS 192KB for DataStore + file-based BLE settings */
lfs_partition: partition@3b0000 {
label = "lfs";
reg = <0x3B2000 0x2E000>;
reg = <0x3B0000 0x30000>;
};
};
};
+5 -11
View File
@@ -21,7 +21,6 @@
};
chosen {
zephyr,settings-partition = &storage_partition;
zephyr,display = &oled;
};
@@ -89,7 +88,8 @@
* Flash partitions — repartition default ESP32-S3 16 MB layout.
* Default storage_partition is 192 KB at 0xFB0000.
* Delete unused partitions (lpcore, scratch, coredump) to reclaim space.
* Split into: NVS 8 KB (BLE bonds) + LittleFS 376 KB (DataStore).
*
* 0xFA0000 - 0x1000000 (384KB) LittleFS (identity, contacts, channels, BLE bonds)
*/
/delete-node/ &slot0_lpcore_partition;
/delete-node/ &slot1_lpcore_partition;
@@ -99,16 +99,10 @@
&flash0 {
partitions {
/* NVS 8 KB for BLE bonds + settings */
storage_partition: partition@fa0000 {
label = "storage";
reg = <0xFA0000 0x2000>;
};
/* LittleFS 376 KB for DataStore (identity, contacts, channels, etc.) */
lfs_partition: partition@fa2000 {
/* LittleFS 384KB for DataStore + file-based BLE settings */
lfs_partition: partition@fa0000 {
label = "lfs";
reg = <0xFA2000 0x5E000>;
reg = <0xFA0000 0x60000>;
};
};
};
@@ -23,7 +23,6 @@
chosen {
zephyr,console = &usb_serial;
zephyr,shell-uart = &usb_serial;
zephyr,settings-partition = &storage_partition;
};
};
@@ -57,22 +56,17 @@
/*
* Flash partitions — repartition default ESP32 layout.
* Default storage_partition is 192KB at 0x3B0000.
* Split into: NVS 8KB (BLE bonds) + LittleFS 184KB (identity, contacts, etc.)
*
* 0x3B0000 - 0x3E0000 (192KB) LittleFS (identity, contacts, channels, BLE bonds)
*/
/delete-node/ &storage_partition;
&flash0 {
partitions {
/* NVS 8KB for BLE bonds + settings */
storage_partition: partition@3b0000 {
label = "storage";
reg = <0x3B0000 0x2000>;
};
/* LittleFS 184KB for DataStore */
lfs_partition: partition@3b2000 {
/* LittleFS 192KB for DataStore + file-based BLE settings */
lfs_partition: partition@3b0000 {
label = "lfs";
reg = <0x3B2000 0x2E000>;
reg = <0x3B0000 0x30000>;
};
};
};
@@ -23,7 +23,6 @@
chosen {
zephyr,console = &usb_serial;
zephyr,shell-uart = &usb_serial;
zephyr,settings-partition = &storage_partition;
};
};
@@ -57,22 +56,17 @@
/*
* Flash partitions — repartition default ESP32 layout.
* Default storage_partition is 192KB at 0x3B0000.
* Split into: NVS 8KB (BLE bonds) + LittleFS 184KB (identity, contacts, etc.)
*
* 0x3B0000 - 0x3E0000 (192KB) LittleFS (identity, contacts, channels, BLE bonds)
*/
/delete-node/ &storage_partition;
&flash0 {
partitions {
/* NVS 8KB for BLE bonds + settings */
storage_partition: partition@3b0000 {
label = "storage";
reg = <0x3B0000 0x2000>;
};
/* LittleFS 184KB for DataStore */
lfs_partition: partition@3b2000 {
/* LittleFS 192KB for DataStore + file-based BLE settings */
lfs_partition: partition@3b0000 {
label = "lfs";
reg = <0x3B2000 0x2E000>;
reg = <0x3B0000 0x30000>;
};
};
};
@@ -20,10 +20,6 @@
aliases {
lora0 = &lora;
};
chosen {
zephyr,settings-partition = &storage_partition;
};
};
/* Disable I2C22 — default pins P1.10/P1.11 (D4/D5) conflict with NSS/RXEN */
@@ -67,8 +63,7 @@
*
* 0x00000 - 0x10000 (64KB) MCUboot (reserved, even if unused)
* 0x10000 - 0x14E000 (1272KB) Application (slot0 — expanded into slot1 space)
* 0x14E000 - 0x150000 (8KB) NVS storage (BLE bonds) — 2 sectors × 4KB
* 0x150000 - 0x165000 (84KB) LittleFS (identity, contacts, channels)
* 0x14E000 - 0x165000 (92KB) LittleFS (identity, contacts, channels, BLE bonds)
*/
/delete-node/ &slot0_partition;
/delete-node/ &slot1_partition;
@@ -82,16 +77,10 @@
reg = <0x10000 0x13E000>; /* 1272KB */
};
/* NVS 8KB for BLE bonds + settings (2 × 4KB sectors) */
storage_partition: partition@14e000 {
label = "storage";
reg = <0x14E000 0x2000>;
};
/* LittleFS 84KB for DataStore */
lfs_partition: partition@150000 {
/* LittleFS 92KB for DataStore + file-based BLE settings */
lfs_partition: partition@14e000 {
label = "lfs";
reg = <0x150000 0x15000>;
reg = <0x14E000 0x17000>;
};
};
};