jerpelea opened a new pull request, #20275:
URL: https://github.com/apache/nuttx/pull/20275

   ## Summary
   
   The in-tree esp32s3-xiao board bringup never wires up Wi-Fi at all -- unlike 
esp32s3-devkit/esp32s3-eye, it has no
   `#ifdef CONFIG_ESPRESSIF_WIFI` include of esp32s3_board_wlan.h and no call 
to board_wlan_init(). Add both, mirroring those boards' pattern and placement 
exactly.
   
   On its own this is not enough for a board that also uses CONFIG_PM: Wi-Fi's 
PHY/RF calibration inside board_wlan_init() cannot tolerate the clock gating of 
PM_STANDBY (light sleep). If the idle task enters light sleep while phy_init's 
calibration is still running -- which the greedy governor is free to do the 
moment the CPU goes idle during driver init -- the calibration hangs forever 
waiting on a clock that just stopped. Confirmed on real XIAO ESP32-S3 hardware: 
with CONFIG_PM + CONFIG_ESPRESSIF_WIFI both enabled and no guard, boot got 
stuck 100% of the time right after the "net80211 rom version" line, before 
phy_init ever printed, and never reached NSH -- reproducible across repeated 
flashes, 50s+ waits, not even responding to a UART wakeup keypress (a genuine 
hang, not quiet sleep).
   
   Fixed by holding a stronger PM lock than PM_STANDBY for the duration of 
board_wlan_init(): pm_stay(PM_IDLE_DOMAIN, PM_IDLE) blocks PM_STANDBY/PM_SLEEP 
while still allowing normal CPU idle, and pm_relax() releases it immediately 
after, restoring whatever floor the board's own PM policy holds otherwise. 
Confirmed fixed on the same hardware: boots clean to NSH with Wi-Fi + PM 
enabled together, `ps` shows the wifi/netdev-wlan0 kernel threads running, and 
`wapi scan`/ `ifup wlan0` work normally.
   
   esp32c3-devkit and esp32c6-devkit also combine CONFIG_PM with Wi-Fi, but 
don't need this guard today: both call board_wlan_init() well before 
esp_pmconfigure() (which is what actually arms the PM governor) runs near the 
end of bringup, so PM isn't active yet during their Wi-Fi init. This board's PM 
handling begins earlier in bringup, so the two can race here.
   
   ## Impact
   
   RELEASE
   
   ## Testing
   
   CI


-- 
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