Files
typewriter/firmware/sdkconfig.defaults
Julien Calixte 51c8f461c0 feat(firmware): enable octal PSRAM
Adds the 8 MB octal PSRAM to the heap allocator (verified on the N16R8:
detected, memory-tested, 8192K pooled). OCT mode is required or init
fails; speed left at 40 MHz for a safe first enable. Prerequisite for
the git working set and the rope buffer.
2026-07-05 20:04:11 +02:00

46 lines
2.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Rust often needs a bit of an extra main task stack size compared to C (the default is 3K)
# You might have to increase this further if you allocate large stack variables in the main task.
# Bumped for the TLS handshake (Spike 6): mbedtls runs on the calling task and
# wants several KB of stack on top of the app's own usage.
CONFIG_ESP_MAIN_TASK_STACK_SIZE=12288
# Increase a bit these stack sizes as they are also a bit too small by default
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=4096
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=4096
# You might have to increase this further if you spawn your own Rust threads
# that allocate large stack variables; or better yet - use
# `std::thread::Builder::new().stack_size(XXX)` for spawning
CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=4096
# Raise the compile-time log ceiling so the sdmmc/sdspi drivers' per-command
# DEBUG logs (the raw R1 response bytes) are built in. Runtime level stays INFO
# by default; the SD spike bumps just the sdmmc/sdspi tags to DEBUG so we can see
# exactly what each init command returns. (Diagnostic for Spike 3 init failures.)
CONFIG_LOG_MAXIMUM_LEVEL_DEBUG=y
# FatFS long filenames (Spike 3 — SD). Default is 8.3-only, which rejects the
# persistence module's atomic-save temp name (`notes.md.tmp` has two dots).
# LFN on the heap keeps the working buffer off the (small) task stack.
CONFIG_FATFS_LFN_HEAP=y
# PSRAM (Spike 7 — the git working set needs it; the docs memory plan budgets
# ~1.5 MB PSRAM for pack/delta work, and the rope buffer lives there too). This
# board is an ESP32-S3-WROOM-1-N16R8 → 8 MB *octal* PSRAM, so OCT mode is
# required (quad would fail to init). USE_MALLOC adds PSRAM to the heap
# allocator, so large allocations (Box, Rope, libgit2 buffers) land there
# instead of the ~339 KB internal DRAM Spike 6 measured. Octal PSRAM occupies
# GPIO 3337; the EPD/SD pins (413) deliberately avoid that range, so no wiring
# conflict. Speed left at the 40 MHz default (safe first-enable; 80 MHz needs
# matching flash-freq config and is a later tuning step).
CONFIG_SPIRAM=y
CONFIG_SPIRAM_MODE_OCT=y
CONFIG_SPIRAM_USE_MALLOC=y
# TLS trust store (Spike 6 — Wi-Fi + TLS, the gate for Spike 7 git push).
# The certificate bundle backs esp_crt_bundle_attach so an HTTPS GET to
# api.github.com validates against real roots. FULL rather than the common
# subset so a less common CA in the chain can't surprise us on the bench.
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y