ricardgb opened a new pull request, #19249:
URL: https://github.com/apache/nuttx/pull/19249
> ⚠️ **Disclosure:** this board port and the RP2350 PIO-gSPI CYW43439 driver
were developed with **Claude Code** (an AI coding agent) and validated on real
Pico 2 W hardware. Please review accordingly.
## Summary
Adds a board port for the **Raspberry Pi Pico 2 W** (RP2350 + Infineon
CYW43439), the Wi-Fi variant of the Pico 2. It reuses the existing
`raspberrypi-pico-2` port and adds support for the onboard CYW43439 Wi-Fi
device.
The CYW43439 is driven through a new **RP2350 PIO-based gSPI transport**
(`arch/arm/src/rp23xx/rp23xx_cyw43439.c`) that plugs into NuttX's existing
`bcm43xxx`/`bcmf` FullMAC driver — the same driver the RP2040
`raspberrypi-pico-w` uses. The WL pins (WL_REG_ON=GPIO23, WL_DATA=GPIO24,
WL_CS=GPIO25, WL_CLK=GPIO29) match the official pico-sdk `pico2_w.h`.
A `telnet` defconfig associates to an AP over WPA2 (`NETINIT_WAPI`), obtains
a DHCP lease, and exposes an NSH shell over TCP/telnet.
The CYW43439 firmware blob is **not** included — it is proprietary and
fetched from pico-sdk / the cyw43-driver exactly as the RP2040 Pico W port
does; `CONFIG_CYW43439_FIRMWARE_BIN_PATH` points at it and it is embedded at
build time.
## Impact
- New: `boards/arm/rp23xx/raspberrypi-pico-2-w/` and
`arch/arm/src/rp23xx/rp23xx_cyw43439.{c,h}`.
- No existing board/arch behaviour changes: the
`arch/arm/src/rp23xx/{Make.defs,CMakeLists.txt}` additions compile the new
driver only under `CONFIG_IEEE80211_INFINEON_CYW43439`; `boards/Kconfig` gains
the new board registration.
## Testing
- **Build:** `./tools/configure.sh raspberrypi-pico-2-w:telnet && make`
(arm-none-eabi-gcc) links to `nuttx.uf2`; `nxstyle` clean on all new files.
- **Hardware:** flashed to a real Pico 2 W. The CYW43439 came up over
PIO-gSPI (no clock tuning needed), associated to a WPA2 AP, obtained a DHCP
lease, and served an NSH shell over telnet:
```
NuttX ... arm raspberrypi-pico-2-w
wlan0 Link encap:Ethernet HWaddr 88:a2:9e:.. RUNNING
inet addr:192.168.0.43 Mask:255.255.255.0
```
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
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]