Skip to content

Revert "boards/esp32s3-xiao: switch defconfigs to nxinit entrypoint" - #20041

Merged
xiaoxiang781216 merged 1 commit into
apache:masterfrom
JianyuWang0623:revert-esp32s3-xiao-nxinit
Sep 2, 2026
Merged

Revert "boards/esp32s3-xiao: switch defconfigs to nxinit entrypoint"#20041
xiaoxiang781216 merged 1 commit into
apache:masterfrom
JianyuWang0623:revert-esp32s3-xiao-nxinit

Conversation

@JianyuWang0623

Copy link
Copy Markdown
Contributor

Summary

Revert commit 7cc6707a76b10cc951f209c09b7f2b6cd228e535 ("boards/esp32s3-xiao: switch defconfigs to nxinit entrypoint").

Felipe Moura de Oliveira reported on the dev mailing list that this commit hangs boot on real Seeed XIAO ESP32-S3 Sense hardware (chip rev v0.2): both defconfigs (combo, usbnsh) never reach nx_start after a normal reset — no console output, no USB enumeration; the board only responds when forced into ROM download mode via the BOOT strap pin. JTAG (OpenOCD + GDB) shows the core statically stuck inside the chip boot ROM address range (0x40034000-0x40048000) across independent halts, while nx_start in that build lives at a completely different address (0x42011068). Reverting only this commit's two defconfig changes on top of current master fixes the boot.

Reference: https://www.mail-archive.com/dev@nuttx.apache.org/msg15063.html

I don't have this specific board (Seeed XIAO ESP32-S3 Sense) locally to reproduce. I did a static before/after build-product comparison (esptool image_info + readelf -S) to sanity-check the most likely hypothesis (image size/segment layout), and it does not explain the hang: both binaries have 3 segments, byte-identical IRAM segment address/size, and the total flash-mapped code/data growth from the reverted commit is ~14.7KB against an 8MB flash budget — negligible. So the real root cause is still open; reverting now to unblock master per the reporter's request, root cause to be investigated further with real hardware access (the reporter offered to help test).

Impact

  • esp32s3-xiao combo/usbnsh defconfigs go back to nsh_main as the top-level init entrypoint (pre-nxinit behavior), matching every other released esp32s3-xiao defconfig prior to 7cc6707a76b.
  • No other board is affected; the reverted commit only touched these two esp32s3-xiao defconfigs.

Testing

Build-only (no esp32s3-xiao hardware available locally):

$ ./tools/configure.sh -l esp32s3-xiao:usbnsh && make -j8
...
Memory region         Used Size  Region Size  %age Used
             ROM:      210160 B    8388576 B      2.51%
     iram0_0_seg:       34048 B       304 KB     10.94%
     irom0_0_seg:      170607 B    8388576 B      2.03%
     dram0_0_seg:       32268 B       288 KB     10.94%
     drom0_0_seg:      275660 B    8388576 B      3.29%
MKIMAGE: ESP32-S3 binary
Successfully created esp32s3 image.
Generated: nuttx.bin

$ ./tools/configure.sh -l esp32s3-xiao:combo && make -j8
...
MKIMAGE: ESP32-S3 binary
Successfully created esp32s3 image.
Generated: nuttx.bin

$ tools/checkpatch.sh -g HEAD
✔️ All checks pass.

Both defconfigs build cleanly after the revert, matching their pre-7cc6707a76b state (CONFIG_INIT_ENTRYPOINT="nsh_main", no CONFIG_SYSTEM_NXINIT). This is a pure config revert (git revert, no manual edits) so behavior is byte-for-byte the same as before the reverted commit. Runtime boot on real esp32s3-xiao hardware is not re-verified here (no such board available); the reporter (Felipe) has the hardware and offered to help validate.

This reverts commit 7cc6707.

Felipe Moura de Oliveira reported on the dev mailing list that this
commit hangs boot on real Seeed XIAO ESP32-S3 Sense hardware (chip
rev v0.2): both defconfigs (combo, usbnsh) never reach nx_start after
a normal reset (no console output, no USB enumeration; only ROM
download mode via the BOOT strap pin responds). JTAG (OpenOCD + GDB)
shows the core statically stuck inside the chip boot ROM address
range (0x40034000-0x40048000), with nx_start never reached at its
own address (0x42011068) in that build. Reverting only this commits
defconfig changes on top of current master fixes the boot.

Local static analysis (before/after build product comparison via
esptool image_info and readelf -S) ruled out image size/segment
count as the cause: both binaries have 3 segments, identical IRAM
segment address/size byte-for-byte, and the flash-mapped code/data
growth from this change is ~14.7KB total against an 8MB flash
budget. No hardware matching the reported board was available
locally to reproduce or bisect further; reverting to unblock master
per the reporters request while root cause is investigated with
real hardware access.

Reference: https://www.mail-archive.com/dev@nuttx.apache.org/msg15063.html

Assisted-by: Kiro:claude-sonnet-5
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
@github-actions github-actions Bot added Size: S The size of the change in this PR is small Board: xtensa labels Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

MemBrowse Memory Report

No memory changes detected for:

@JianyuWang0623
JianyuWang0623 marked this pull request as ready for review September 2, 2026 02:30
@xiaoxiang781216
xiaoxiang781216 merged commit 76b90e0 into apache:master Sep 2, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Board: xtensa Size: S The size of the change in this PR is small

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants