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]

Reply via email to