Skip to content

Fix/k210 module registration#6

Merged
odudex merged 2 commits into
mainfrom
fix/k210-module-registration
Jul 6, 2026
Merged

Fix/k210 module registration#6
odudex merged 2 commits into
mainfrom
fix/k210-module-registration

Conversation

@odudex

@odudex odudex commented Jul 6, 2026

Copy link
Copy Markdown
Owner

No description provided.

odudex and others added 2 commits July 6, 2026 16:48
IDF 6.0 ships mbedTLS v4, which moved the crypto headers under
mbedtls/private/. The repo-root component CMakeLists already requires
the Kern-style mbedtls_compat shim on IDF >= 6; the CI smoke app now
mirrors that conditional and vendors a minimal header-only copy of
the shim (the sha256 redirect only — the single mbedTLS API cUR
uses). mbedtls_sha256() itself still exists in v4, so no source file
is needed.

The esp-idf job becomes a two-leg matrix: v5.5.4/esp32 keeps covering
the plain-mbedtls path, v6.0.2/esp32p4 (Kern's target) exercises the
shim path.

Verified locally against ESP-IDF v6.0.2 for esp32p4: the smoke app
builds and links, with cUR resolving mbedtls_sha256 through the
shim's include path.
The K210 MaixPy build generates genhdr/moduledefs.h by regex-scanning
raw C sources for the registration macro, ignoring preprocessor
conditionals. With 4ecccea's dual registration (2-arg modern form plus
3-arg legacy form under #if MICROPY_VERSION), the DOTALL 3-group
pattern matched across the #else and emitted a mangled header
("#else after #else", "#if (bc_ur_module, MODULE_BC_UR_ENABLED)"),
breaking the Krux Amigo firmware build.

Register the modern branch through a UR_REGISTER_MODULE alias: the
legacy raw-text scanner no longer matches that line and sees only the
3-arg form (its generated header is again identical in shape to the
pre-4ecccea output), while modern MicroPython (>= 1.19, incl. 1.27)
collects registrations from preprocessed source, where the alias has
already expanded to the real 2-arg macro — the same token stream
already verified on-device for 1.27.

Verified by running Krux's own makemoduledefs.py against uUR.c
(mangled before, clean after) and by preprocessing the modern branch
with MICROPY_VERSION=1.27.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@odudex odudex merged commit 8247ba2 into main Jul 6, 2026
4 checks passed
@odudex odudex deleted the fix/k210-module-registration branch July 12, 2026 11:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant