diff --git a/Documentation/platforms/arm/rp2040/boards/raspberrypi-pico-w/index.rst b/Documentation/platforms/arm/rp2040/boards/raspberrypi-pico-w/index.rst index 0d94d0bc13d..25d8afcb1cc 100644 --- a/Documentation/platforms/arm/rp2040/boards/raspberrypi-pico-w/index.rst +++ b/Documentation/platforms/arm/rp2040/boards/raspberrypi-pico-w/index.rst @@ -215,6 +215,17 @@ st7735 NuttShell configuration (console enabled in UART0, at 115200 bps) with support for st7735. +telnet +------ + +NuttShell configuration (console enabled in UART0, at 115200 bps) with WiFi client +mode and both telnet server and client enabled. + +After loading this configuration use make menuconfig to change the country code in +Device Drivers->Wireless Device Support->IEEE 802.11 Device Support and the +wireless configuration in Application Configuration->Network Utilities->Network +initialization->WAPI Configuration to match your wireless network. + usbmsc ------ diff --git a/boards/arm/rp2040/raspberrypi-pico-w/README.txt b/boards/arm/rp2040/raspberrypi-pico-w/README.txt index 109478555e5..7266629b2d5 100644 --- a/boards/arm/rp2040/raspberrypi-pico-w/README.txt +++ b/boards/arm/rp2040/raspberrypi-pico-w/README.txt @@ -84,10 +84,24 @@ Defconfigs - nshsram Load NuttX binary to SRAM - + - smp Enable SMP mode. Both Core 0 and Core 1 are used by NuttX. +- telnet + NuttShell configuration (console enabled in UART0, at 115200 bps) with + WiFi client mode and both telnet server and client enabled. + + In order to use this configuration you must have RaspberryPi's pico-sdk + on your build system and have the PICO-SDK-PATH environment variable + set with the location of pico-sdk. + + After loading this configuration use make menuconfig to change the + country code in Device Drivers->Wireless Device Support->IEEE 802.11 + Device Support and the wireless configuration in Application + Configuration->Network Utilities->Network initialization->WAPI + Configuration to match your wireless network. + - ssd1306 SSD1306 OLED display (I2C) test configuration Connection: @@ -96,8 +110,8 @@ Defconfigs VCC ----- 3V3 OUT (Pin 36) SDA ----- GP4 (I2C0 SDA) (Pin 6) SCL ----- GP5 (I2C0 SCL) (Pin 7) - -- lcd1602 + +- lcd1602 LCD 1602 Segment LCD Disaply (I2C) Connection: PCF8574 BackPack Raspberry Pi Pico @@ -120,7 +134,7 @@ Defconfigs * Card hot swapping is not supported. - st7735 - st7735 SPI LCD support + st7735 SPI LCD support Connection: st7735 Raspberry Pi Pico GND ----- GND (Pin 3 or 38 or ...) @@ -130,7 +144,7 @@ Defconfigs CS ----- GP13 (SPI1 CSn) (Pin 17) AO(D/C) ----- GP12 (SPI1 RX) (Pin 16) BL ----- GP11 (Pin 15) - RESET ----- GP10 (Pin 14) + RESET ----- GP10 (Pin 14) - enc28j60 ENC28J60 SPI ethernet controller support diff --git a/boards/arm/rp2040/raspberrypi-pico-w/configs/telnet/defconfig b/boards/arm/rp2040/raspberrypi-pico-w/configs/telnet/defconfig new file mode 100644 index 00000000000..206abaa84e8 --- /dev/null +++ b/boards/arm/rp2040/raspberrypi-pico-w/configs/telnet/defconfig @@ -0,0 +1,79 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set +# CONFIG_LIBC_LONG_LONG is not set +# CONFIG_NSH_ARGCAT is not set +# CONFIG_NSH_CMDOPT_HEXDUMP is not set +# CONFIG_NSH_DISABLE_DATE is not set +# CONFIG_NSH_DISABLE_LOSMART is not set +# CONFIG_STANDARD_SERIAL is not set +CONFIG_ALLOW_BSD_COMPONENTS=y +CONFIG_ARCH="arm" +CONFIG_ARCH_BOARD="raspberrypi-pico-w" +CONFIG_ARCH_BOARD_RASPBERRYPI_PICO_W=y +CONFIG_ARCH_CHIP="rp2040" +CONFIG_ARCH_CHIP_RP2040=y +CONFIG_ARCH_RAMVECTORS=y +CONFIG_ARCH_STACKDUMP=y +CONFIG_BOARDCTL_RESET=y +CONFIG_BOARD_LOOPSPERMSEC=10450 +CONFIG_BUILTIN=y +CONFIG_DISABLE_POSIX_TIMERS=y +CONFIG_DRIVERS_IEEE80211=y +CONFIG_DRIVERS_WIRELESS=y +CONFIG_EXAMPLES_HELLO=y +CONFIG_FS_PROCFS=y +CONFIG_FS_PROCFS_REGISTER=y +CONFIG_IEEE80211_BROADCOM_DEFAULT_COUNTRY="XX" +CONFIG_IEEE80211_BROADCOM_FULLMAC_GSPI=y +CONFIG_IEEE80211_INFINEON_CYW43439=y +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_MM_BACKTRACE=0 +CONFIG_NET=y +CONFIG_NETDB_DNSCLIENT=y +CONFIG_NETDB_DNSCLIENT_RECV_TIMEOUT=3 +CONFIG_NETDEVICES=y +CONFIG_NETDEV_LATEINIT=y +CONFIG_NETDEV_WIRELESS_IOCTL=y +CONFIG_NETINIT_DHCPC=y +CONFIG_NETINIT_DNS=y +CONFIG_NETINIT_DNSIPADDR=0x08080808 +CONFIG_NETINIT_WAPI_PASSPHRASE="-ssid-passphrase-" +CONFIG_NETINIT_WAPI_SSID="-my-ssid-" +CONFIG_NETUTILS_TELNETD=y +CONFIG_NET_BROADCAST=y +CONFIG_NET_ICMP=y +CONFIG_NET_ICMP_SOCKET=y +CONFIG_NET_LOOPBACK=y +CONFIG_NET_LOOPBACK_PKTSIZE=1024 +CONFIG_NET_TCP=y +CONFIG_NET_UDP=y +CONFIG_NSH_ARCHINIT=y +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_READLINE=y +CONFIG_RAM_SIZE=270336 +CONFIG_RAM_START=0x20000000 +CONFIG_READLINE_CMD_HISTORY=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_LPWORK=y +CONFIG_SCHED_WAITPID=y +CONFIG_START_DAY=9 +CONFIG_START_MONTH=2 +CONFIG_START_YEAR=2021 +CONFIG_SYSLOG_CONSOLE=y +CONFIG_SYSTEM_DHCPC_RENEW=y +CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_PING=y +CONFIG_SYSTEM_TELNET_CLIENT=y +CONFIG_TESTING_GETPRIME=y +CONFIG_TESTING_OSTEST=y +CONFIG_UART0_SERIAL_CONSOLE=y +CONFIG_WIRELESS_WAPI=y +CONFIG_WIRELESS_WAPI_CMDTOOL=y +CONFIG_WQUEUE_NOTIFIER=y diff --git a/boards/arm/rp2040/raspberrypi-pico-w/src/Make.defs b/boards/arm/rp2040/raspberrypi-pico-w/src/Make.defs index 2423976ceb8..e68161cc2db 100644 --- a/boards/arm/rp2040/raspberrypi-pico-w/src/Make.defs +++ b/boards/arm/rp2040/raspberrypi-pico-w/src/Make.defs @@ -42,10 +42,26 @@ ifeq ($(CONFIG_IEEE80211_INFINEON_CYW43439),y) FIRMWARE = src$(DELIM)cyw43439.firmware.image +# --- If PICO_SDK_PATH is not defined set a dummy path. -------------------- +# See comment below. + +ifeq ($(PICO_SDK_PATH),) + PICO_SDK_PATH = /tmp +endif + FIRMWARE_SRC := $(patsubst "%",%,$(CONFIG_CYW43439_FIRMWARE_BIN_PATH)) -src$(DELIM)cyw43439.firmware.image: $(FIRMWARE_SRC) - $(call CATFILE, src$(DELIM)cyw43439.firmware.image, $(FIRMWARE_SRC)) +# --- If the firmware source does not exist create a dummy file. ----------- +# NuttX built with the cyw43439 driver will not run successfully +# when built with this dummy file. The sole purpose of adding +# this dummy is so GitHub's validation tests will not fail. + +$(FIRMWARE_SRC): + mkdir -p `dirname $(FIRMWARE_SRC)` + echo "dummy" >$(FIRMWARE_SRC) + + $(FIRMWARE): $(FIRMWARE_SRC) + $(call CATFILE, $(FIRMWARE), $(FIRMWARE_SRC)) src$(DELIM)rp2040_firmware.c: $(FIRMWARE)