This is an automated email from the ASF dual-hosted git repository. acassis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 6d52766ea3f0291bbe95173ce014c0f61f109b7d Author: Tiago Medicci Serrano <[email protected]> AuthorDate: Wed Jun 10 08:34:35 2026 -0300 boards/risc-v/esp32p4: Enable NuttX Web Panel for ESP32-P4 This commit adds a defconfig for enabling the NuttX Web Panel on ESP32-P4. It also create entries to automatically call the Web panel application after system's boot up. The `webpanel` is removed from regular ESP32-P4 CI testing because it ships with Python and that would overload CI infrastructure. Signed-off-by: Tiago Medicci Serrano <[email protected]> --- boards/risc-v/esp32p4/common/src/Make.defs | 4 + .../esp32p4/common/src/etc/init.d/rc.sysinit | 23 ++++ boards/risc-v/esp32p4/common/src/etc/init.d/rcS | 35 +++++ .../configs/webpanel/defconfig | 148 +++++++++++++++++++++ tools/ci/testlist/risc-v-03.dat | 1 + tools/ci/testlist/risc-v-07.dat | 1 + 6 files changed, 212 insertions(+) diff --git a/boards/risc-v/esp32p4/common/src/Make.defs b/boards/risc-v/esp32p4/common/src/Make.defs index 640235bcb10..7436d237a20 100644 --- a/boards/risc-v/esp32p4/common/src/Make.defs +++ b/boards/risc-v/esp32p4/common/src/Make.defs @@ -80,6 +80,10 @@ ifeq ($(CONFIG_ESPRESSIF_ULP_USE_TEST_BIN),y) include $(TOPDIR)$(DELIM)arch$(DELIM)risc-v$(DELIM)src$(DELIM)common$(DELIM)espressif$(DELIM)ulp_makefile endif +ifeq ($(CONFIG_ETC_ROMFS),y) + RCSRCS = etc/init.d/rc.sysinit etc/init.d/rcS +endif + DEPPATH += --dep-path src VPATH += :src CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)src diff --git a/boards/risc-v/esp32p4/common/src/etc/init.d/rc.sysinit b/boards/risc-v/esp32p4/common/src/etc/init.d/rc.sysinit new file mode 100644 index 00000000000..0d263ee2222 --- /dev/null +++ b/boards/risc-v/esp32p4/common/src/etc/init.d/rc.sysinit @@ -0,0 +1,23 @@ +/**************************************************************************** + * boards/risc-v/esp32p4/common/src/etc/init.d/rc.sysinit + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +#include <nuttx/config.h> diff --git a/boards/risc-v/esp32p4/common/src/etc/init.d/rcS b/boards/risc-v/esp32p4/common/src/etc/init.d/rcS new file mode 100644 index 00000000000..e46d0109336 --- /dev/null +++ b/boards/risc-v/esp32p4/common/src/etc/init.d/rcS @@ -0,0 +1,35 @@ +/**************************************************************************** + * boards/risc-v/esp32p4/common/src/etc/init.d/rcS + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +#include <nuttx/config.h> + +#ifdef CONFIG_SYSTEM_HOSTNAME +hostname webpanel +#endif + +#ifdef CONFIG_EXAMPLES_WEBPANEL +webpanel & +#endif + +#ifdef CONFIG_EXAMPLES_MDNSD +mdnsd_event & +#endif diff --git a/boards/risc-v/esp32p4/esp32p4-function-ev-board/configs/webpanel/defconfig b/boards/risc-v/esp32p4/esp32p4-function-ev-board/configs/webpanel/defconfig new file mode 100644 index 00000000000..4c90b61be34 --- /dev/null +++ b/boards/risc-v/esp32p4/esp32p4-function-ev-board/configs/webpanel/defconfig @@ -0,0 +1,148 @@ +# +# 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_NSH_ARGCAT is not set +# CONFIG_NSH_CMDOPT_HEXDUMP is not set +CONFIG_ALLOW_BSD_COMPONENTS=y +CONFIG_ARCH="risc-v" +CONFIG_ARCH_BOARD="esp32p4-function-ev-board" +CONFIG_ARCH_BOARD_COMMON=y +CONFIG_ARCH_BOARD_ESP32P4_FUNCTION_EV_BOARD=y +CONFIG_ARCH_CHIP="esp32p4" +CONFIG_ARCH_CHIP_ESP32P4=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_IRQ_TO_NDX=y +CONFIG_ARCH_MINIMAL_VECTORTABLE_DYNAMIC=y +CONFIG_ARCH_NUSER_INTERRUPTS=17 +CONFIG_ARCH_RISCV=y +CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL_ROMDISK=y +CONFIG_BOARD_LOOPSPERMSEC=15000 +CONFIG_BUILTIN=y +CONFIG_COVERAGE_DEFAULT_PREFIX="/mnt" +CONFIG_DEV_GPIO=y +CONFIG_DEV_URANDOM=y +CONFIG_ESPRESSIF_EMAC=y +CONFIG_ESPRESSIF_ETH_DMA_BUFFER_SIZE=512 +CONFIG_ESPRESSIF_FLASH_16M=y +CONFIG_ESPRESSIF_FLASH_MODE_QIO=y +CONFIG_ESPRESSIF_GPIO_IRQ=y +CONFIG_ESPRESSIF_LEDC=y +CONFIG_ESPRESSIF_LEDC_CHANNEL0_PIN=6 +CONFIG_ESPRESSIF_LEDC_TIMER0=y +CONFIG_ESPRESSIF_MERGE_BINS=y +CONFIG_ESPRESSIF_SPIFLASH=y +CONFIG_ESPRESSIF_SPIFLASH_FS_MOUNT_PT="/mnt" +CONFIG_ESPRESSIF_SPIFLASH_SMARTFS=y +CONFIG_ESPRESSIF_SPIRAM=y +CONFIG_ESPRESSIF_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y +CONFIG_ESPRESSIF_STORAGE_MTD_OFFSET=0xFCA000 +CONFIG_ESPRESSIF_STORAGE_MTD_SIZE=0x36000 +CONFIG_ETC_ROMFS=y +CONFIG_EVENT_FD=y +CONFIG_EXAMPLES_GPIO=y +CONFIG_EXAMPLES_MDNSD=y +CONFIG_EXAMPLES_MDNS_SERVICE="_http._tcp.local." +CONFIG_EXAMPLES_MDNS_SERVICE_PORT="80" +CONFIG_EXAMPLES_ONESHOT=y +CONFIG_EXAMPLES_PWM=y +CONFIG_EXAMPLES_WEBPANEL=y +CONFIG_EXPERIMENTAL=y +CONFIG_FS_BINFS=y +CONFIG_FS_HEAPBUF_SECTION=".ext_ram.bss.buf" +CONFIG_FS_HEAPSIZE=2097152 +CONFIG_FS_LARGEFILE=y +CONFIG_FS_PROCFS=y +CONFIG_FS_ROMFS=y +CONFIG_FS_TMPFS=y +CONFIG_FS_UNIONFS=y +CONFIG_IDLETHREAD_STACKSIZE=2048 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=3072 +CONFIG_INTELHEX_BINARY=y +CONFIG_INTERPRETERS_CPYTHON=y +CONFIG_INTERPRETERS_CPYTHON_ENABLE_PIP=y +CONFIG_INTERPRETERS_CPYTHON_PYTHONPATH="/mnt" +CONFIG_INTERPRETERS_CPYTHON_STACKSIZE=512000 +CONFIG_LIBC_DLFCN=y +CONFIG_LIBC_EXECFUNCS=y +CONFIG_LIBC_LOCALE=y +CONFIG_LIBC_LOCALE_GETTEXT=y +CONFIG_LIBC_PERROR_STDOUT=y +CONFIG_LIBC_STRERROR=y +CONFIG_LIB_LIBFFI=y +CONFIG_LIB_MDNS=y +CONFIG_LIB_ZLIB=y +CONFIG_LINE_MAX=200 +CONFIG_MM_KERNEL_HEAP=y +CONFIG_MM_REGIONS=2 +CONFIG_NAME_MAX=48 +CONFIG_NETDB_DNSCLIENT=y +CONFIG_NETDEV_LATEINIT=y +CONFIG_NETDEV_PHY_IOCTL=y +CONFIG_NETINIT_DHCPC=y +CONFIG_NETINIT_THREAD=y +CONFIG_NETLINK_ROUTE=y +CONFIG_NETUTILS_IPERF=y +CONFIG_NETUTILS_LIBWEBSOCKETS=y +CONFIG_NETUTILS_LIBWEBSOCKETS_SERVER=y +CONFIG_NETUTILS_MDNS=y +CONFIG_NETUTILS_MDNS_DAEMON=y +CONFIG_NETUTILS_MDNS_STACKSIZE=4096 +CONFIG_NETUTILS_THTTPD=y +CONFIG_NETUTILS_WEBCLIENT=y +CONFIG_NET_BROADCAST=y +CONFIG_NET_ETH_PKTSIZE=1514 +CONFIG_NET_ICMP_SOCKET=y +CONFIG_NET_IGMP=y +CONFIG_NET_NETLINK=y +CONFIG_NET_TCP=y +CONFIG_NET_UDP=y +CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_DISABLE_LOSMART=y +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_READLINE=y +CONFIG_NSH_STRERROR=y +CONFIG_ONESHOT=y +CONFIG_PREALLOC_TIMERS=0 +CONFIG_PSEUDOFS_SOFTLINKS=y +CONFIG_PSEUDOTERM=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_BACKTRACE=y +CONFIG_SMARTFS_MAXNAMLEN=48 +CONFIG_STACK_COLORATION=y +CONFIG_START_DAY=29 +CONFIG_START_MONTH=11 +CONFIG_START_YEAR=2019 +CONFIG_SYSTEM_DHCPC_RENEW=y +CONFIG_SYSTEM_DUMPSTACK=y +CONFIG_SYSTEM_FLASH_ERASEALL=y +CONFIG_SYSTEM_HOSTNAME=y +CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_PING=y +CONFIG_SYSTEM_SYSTEM=y +CONFIG_SYSTEM_SYSTEM_STACKSIZE=4096 +CONFIG_TESTING_FSTEST=y +CONFIG_TESTING_FSTEST_MOUNTPT="/mnt" +CONFIG_TESTING_HEAP=y +CONFIG_THTTPD_CGI_PATH="/data/www/cgi-bin" +CONFIG_THTTPD_CGI_PATTERN="/data/www/cgi-bin/*" +CONFIG_THTTPD_CGI_STACKSIZE=4096 +CONFIG_THTTPD_CHARSET="utf-8" +CONFIG_THTTPD_INDEX_NAMES="index.html" +CONFIG_THTTPD_IOBUFFERSIZE=2048 +CONFIG_THTTPD_IPADDR=0x00000000 +CONFIG_THTTPD_PATH="/data/www" +CONFIG_THTTPD_SERVER_ADDRESS="http://nuttx.local" +CONFIG_THTTPD_SERVER_SOFTWARE="NuttX-WebPanel/1.0" +CONFIG_TIMER=y +CONFIG_TIMER_FD=y +CONFIG_TLS_NELEM=4 +CONFIG_TLS_TASK_NELEM=4 +CONFIG_UART0_SERIAL_CONSOLE=y +CONFIG_WEBCLIENT_MAXFILENAME=300 diff --git a/tools/ci/testlist/risc-v-03.dat b/tools/ci/testlist/risc-v-03.dat index 2d220201225..c36d9781348 100644 --- a/tools/ci/testlist/risc-v-03.dat +++ b/tools/ci/testlist/risc-v-03.dat @@ -1,3 +1,4 @@ /risc-v/esp32c[6-z]* /risc-v/esp32[d-z]* -esp32p4-function-ev-board:python +-esp32p4-function-ev-board:webpanel diff --git a/tools/ci/testlist/risc-v-07.dat b/tools/ci/testlist/risc-v-07.dat index 45aca82670f..5a800fb0623 100644 --- a/tools/ci/testlist/risc-v-07.dat +++ b/tools/ci/testlist/risc-v-07.dat @@ -1,2 +1,3 @@ /risc-v/qemu-rv/rv-virt/configs/python /risc-v/esp32p4/esp32p4-function-ev-board/configs/python +/risc-v/esp32p4/esp32p4-function-ev-board/configs/webpanel
