From beb11eda5e8f06abe9f9bbf5304c75ce37ea3347 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sun, 12 Jul 2026 12:23:10 +0200 Subject: [PATCH] chore(firmware): skip legacy-I2C conflict check esp-idf-hal always compiles its i2c.rs, which binds the old driver/i2c.h API, so ESP-IDF links the legacy driver's constructor into every image and prints its deprecation warning at boot. Typoena uses no I2C (EPD/SD are SPI, keyboard is USB), so the warning is pure noise; this flag compiles the constructor (and its conflict-abort check) out. --- firmware/sdkconfig.defaults | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/firmware/sdkconfig.defaults b/firmware/sdkconfig.defaults index 94f7d4a..885b163 100644 --- a/firmware/sdkconfig.defaults +++ b/firmware/sdkconfig.defaults @@ -44,6 +44,15 @@ CONFIG_SPIRAM=y CONFIG_SPIRAM_MODE_OCT=y CONFIG_SPIRAM_USE_MALLOC=y +# Silence the legacy-I2C boot warning. esp-idf-hal's i2c.rs is always compiled +# and binds the old `driver/i2c.h` API, so the legacy driver's TU (and its +# `__attribute__((constructor))` deprecation warning) gets linked into every +# image — even though Typoena uses no I2C at all (EPD/SD are SPI, keyboard is +# USB). This flag wraps that constructor out. Safe here: we link neither the +# new i2c_master driver nor call the old one, so the conflict-abort check it +# also removes can never fire. +CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK=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