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

Reply via email to