JianyuWang0623 opened a new pull request, #20041:
URL: https://github.com/apache/nuttx/pull/20041
## 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/[email protected]/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 is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]