1
0
Fork 0
mirror of https://github.com/imjasonh/esp32 synced 2026-07-06 23:52:24 +00:00
esp32/partitions.csv
Jason Hall 979c862941 Aggressive release-profile flags + grow OTA slots to 1.94 MB
`[profile.release]` now uses lto, codegen-units=1, strip, and
panic=abort (last one matches the build-std=panic_abort already in
.cargo/config.toml). Combined: firmware shrinks from 1.71 MB to
1.52 MB (~9% smaller).

partitions.csv: grow each OTA slot from 1.75 MB to 1.9375 MB by
absorbing the previously-unused 384 KB at the end of flash. Now no
unused space at the end. Repartitioning is a USB-only migration
(`make flash-all`); device migrated locally before pushing.

Net headroom per slot: 126 KB -> 463 KB (3.7x). Plenty for the
upcoming e-ink driver + embedded-graphics stack.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 15:39:33 -04:00

1.2 KiB

1# Partition table for OTA. Two equal app slots (ota_0 / ota_1), no
2# `factory` partition — once OTA is enabled we always boot from one of
3# the OTA slots, with the other holding the previous (or pending) image.
4#
5# Flash layout (4 MB total):
6# 0x001000-0x008FFF bootloader (~28 KB)
7# 0x008000-0x008FFF partition table itself (4 KB)
8# 0x009000-0x00EFFF nvs (24 KB)
9# 0x00F000-0x010FFF otadata (8 KB) - which slot to boot
10# 0x011000-0x011FFF phy_init (4 KB)
11# 0x020000-0x20FFFF ota_0 (1.9375 MB)
12# 0x210000-0x3FFFFF ota_1 (1.9375 MB)
13#
14# Bumped from 1.75 MB to 1.9375 MB slots so we can absorb future feature
15# work (e-ink driver, more crates) without immediately running out. There
16# is no unused space left at the end of flash; if we need it later (extra
17# nvs, spiffs, etc.) we'd have to shrink slots again. Repartitioning is
18# a USB-only migration (`make flash-all`).
19#
20# Name, Type, SubType, Offset, Size
21nvs, data, nvs, 0x9000, 0x6000
22otadata, data, ota, 0xf000, 0x2000
23phy_init, data, phy, 0x11000, 0x1000
24ota_0, app, ota_0, 0x20000, 0x1F0000
25ota_1, app, ota_1, 0x210000, 0x1F0000