diff --git a/arch/risc-v/Kconfig b/arch/risc-v/Kconfig index 9c478054aaf991a2cd341c987bda83e05c39ffa9..d31f61db4d73741e820d366d9875469386916555 100644 --- a/arch/risc-v/Kconfig +++ b/arch/risc-v/Kconfig @@ -144,6 +144,8 @@ config ARCH_CHIP_ESP32C6 select ARCH_HAVE_RESET select ARCH_HAVE_RNG select ARCH_HAVE_TICKLESS + select ONESHOT_COUNT if ONESHOT + select ONESHOT_FAST_DIVISION if ONESHOT select LIBC_ARCH_MEMCPY select LIBC_ARCH_MEMCHR select LIBC_ARCH_MEMCMP diff --git a/arch/risc-v/src/common/espressif/Wireless.mk b/arch/risc-v/src/common/espressif/Wireless.mk index c63e1d190fb1b244b89c36777899b3306a6d2e87..4a923700495ac072012014b4987e7d0708f7db18 100644 --- a/arch/risc-v/src/common/espressif/Wireless.mk +++ b/arch/risc-v/src/common/espressif/Wireless.mk @@ -242,4 +242,11 @@ CHIP_CSRCS += crypto_mbedtls.c CHIP_CSRCS += tls_mbedtls.c CHIP_CSRCS += aes-siv.c +# Force esp_mbedtls.h before any mbedtls headers for crypto_mbedtls-* and tls_mbedtls files. +# These files include mbedtls headers before the __NuttX__ esp_mbedtls.h guard, +# causing implicit-declaration errors. -include guarantees the rename macros are +# active before any mbedtls header is parsed. +# Use TOPDIR (reliable in all sub-make contexts) not ARCH_SRCDIR (empty in makedepfile). +CFLAGS += -include $(TOPDIR)$(DELIM)arch$(DELIM)risc-v$(DELIM)src$(DELIM)chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)nuttx$(DELIM)include$(DELIM)mbedtls$(DELIM)esp_mbedtls.h + endif diff --git a/arch/risc-v/src/common/espressif/esp_oneshot.c b/arch/risc-v/src/common/espressif/esp_oneshot.c index ff9307d1aaca735aa4420fa2a2aae3d335271763..7809bcd44db2dbe4bea5d393a36dc55b521e292f 100644 --- a/arch/risc-v/src/common/espressif/esp_oneshot.c +++ b/arch/risc-v/src/common/espressif/esp_oneshot.c @@ -414,24 +414,19 @@ struct oneshot_lowerhalf_s *oneshot_initialize(int chan, uint16_t resolution) periph = timer_group_periph_signals.groups[GROUP_ID].module; - PERIPH_RCC_ACQUIRE_ATOMIC(periph, ref_count) - { - if (ref_count == 0) - { - timer_ll_enable_bus_clock(GROUP_ID, true); - timer_ll_reset_register(GROUP_ID); - } - } + /* esp-hal-3rdparty release/v5.1.c (pinned via ESP_HAL_3RDPARTY_VERSION) + * predates the RCC abstraction (PERIPH_RCC_ACQUIRE_ATOMIC, + * timer_ll_enable_bus_clock, timer_ll_reset_register, + * esp_clk_tree_enable_src — all v5.2+). periph_module_enable() is the + * v5.1.c equivalent: it ungates the peripheral bus clock, resets the + * peripheral registers, and bumps an internal refcount. The default + * GPTimer clock source is always available without an explicit enable + * call in v5.1.c. + */ + periph_module_enable(periph); timer_hal_init(&lower->hal, GROUP_ID, TIMER_ID); - ret = esp_clk_tree_enable_src((soc_module_clk_t)GPTIMER_CLK_SRC_DEFAULT, - true); - if (ret != ESP_OK) - { - return NULL; - } - /* Configure clock source */ timer_ll_set_clock_source(GROUP_ID, lower->hal.timer_id, diff --git a/arch/risc-v/src/common/espressif/esp_wifi_utils.c b/arch/risc-v/src/common/espressif/esp_wifi_utils.c index a47d0e206d25d6b2f5df60716938c0cb66405976..a6461f9af0e7657a06c48f5962df423d45ffac09 100644 --- a/arch/risc-v/src/common/espressif/esp_wifi_utils.c +++ b/arch/risc-v/src/common/espressif/esp_wifi_utils.c @@ -31,6 +31,7 @@ #include #include +#include #include #include diff --git a/arch/risc-v/src/esp32c6/esp_coex_adapter.c b/arch/risc-v/src/esp32c6/esp_coex_adapter.c index 88fed2ea4488d5d3535320ad88a3a3f970c9a1b7..031f9ba7d91acea5b917c5cbcc079984904b3a7a 100644 --- a/arch/risc-v/src/esp32c6/esp_coex_adapter.c +++ b/arch/risc-v/src/esp32c6/esp_coex_adapter.c @@ -45,6 +45,7 @@ #include "rom/ets_sys.h" #include "soc/soc_caps.h" #include "private/esp_modem_wrapper.h" +#include /**************************************************************************** * Pre-processor Definitions diff --git a/arch/risc-v/src/esp32c6/hal_esp32c6.mk b/arch/risc-v/src/esp32c6/hal_esp32c6.mk index 7d99f1c6c74e45381f16d2c0151e21868d615144..f0a47a57a7f00a4073b613ad70e2b0048ed63de7 100644 --- a/arch/risc-v/src/esp32c6/hal_esp32c6.mk +++ b/arch/risc-v/src/esp32c6/hal_esp32c6.mk @@ -153,6 +153,7 @@ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)log$ CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)riscv$(DELIM)interrupt.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)soc$(DELIM)lldesc.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)gpio_periph.c +CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)timer_periph.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)ledc_periph.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)rmt_periph.c CHIP_CSRCS += chip$(DELIM)$(ESP_HAL_3RDPARTY_REPO)$(DELIM)components$(DELIM)soc$(DELIM)$(CHIP_SERIES)$(DELIM)i2c_periph.c diff --git a/boards/risc-v/esp32c6/esp32c6-devkitc/configs/nsh/defconfig b/boards/risc-v/esp32c6/esp32c6-devkitc/configs/nsh/defconfig index 0447207f137a0442e1232ac18dbc7f1689f362a7..629ba02718657135a672162a04b221fce8c4c6fe 100644 --- a/boards/risc-v/esp32c6/esp32c6-devkitc/configs/nsh/defconfig +++ b/boards/risc-v/esp32c6/esp32c6-devkitc/configs/nsh/defconfig @@ -33,6 +33,7 @@ CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_FILEIOSIZE=512 CONFIG_NSH_READLINE=y CONFIG_NSH_STRERROR=y +CONFIG_ONESHOT=y CONFIG_PREALLOC_TIMERS=0 CONFIG_RR_INTERVAL=200 CONFIG_SCHED_BACKTRACE=y @@ -44,4 +45,4 @@ CONFIG_SYSTEM_DUMPSTACK=y CONFIG_SYSTEM_NSH=y CONFIG_TESTING_GETPRIME=y CONFIG_TESTING_OSTEST=y -CONFIG_UART0_SERIAL_CONSOLE=y +CONFIG_ESPRESSIF_USBSERIAL=y diff --git a/boards/risc-v/esp32c6/esp32c6-devkitc/configs/wifi_usj/defconfig b/boards/risc-v/esp32c6/esp32c6-devkitc/configs/wifi_usj/defconfig new file mode 100644 index 0000000000000000000000000000000000000000..3423c5fd01678d30ceb9f0bc65317032960be5ee --- /dev/null +++ b/boards/risc-v/esp32c6/esp32c6-devkitc/configs/wifi_usj/defconfig @@ -0,0 +1,83 @@ +# +# 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_ESPRESSIF_UART0 is not set +# CONFIG_NDEBUG is not set +# 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="esp32c6-devkitc" +CONFIG_ARCH_BOARD_COMMON=y +CONFIG_ARCH_BOARD_ESP32C6_DEVKITC=y +CONFIG_ARCH_CHIP="esp32c6" +CONFIG_ARCH_CHIP_ESP32C6=y +CONFIG_ARCH_CHIP_ESP32C6WROOM1=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_RISCV=y +CONFIG_ARCH_STACKDUMP=y +CONFIG_BOARDCTL_RESET=y +CONFIG_BOARD_LOOPSPERMSEC=15000 +CONFIG_BUILTIN=y +CONFIG_DRIVERS_IEEE80211=y +CONFIG_DRIVERS_WIRELESS=y +CONFIG_ESPRESSIF_ESP32C6=y +CONFIG_ESPRESSIF_SPIFLASH=y +CONFIG_ESPRESSIF_SPIFLASH_SPIFFS=y +CONFIG_ESPRESSIF_USBSERIAL=y +CONFIG_ESPRESSIF_WIFI=y +CONFIG_EXAMPLES_RANDOM=y +CONFIG_EXAMPLES_WIFICONN=y +CONFIG_FS_PROCFS=y +CONFIG_IDLETHREAD_STACKSIZE=2048 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=8192 +CONFIG_INTELHEX_BINARY=y +CONFIG_IOB_NBUFFERS=64 +CONFIG_IOB_THROTTLE=24 +CONFIG_LIBC_PERROR_STDOUT=y +CONFIG_LIBC_STRERROR=y +CONFIG_NETDB_DNSCLIENT=y +CONFIG_NETDEV_LATEINIT=y +CONFIG_NETDEV_PHY_IOCTL=y +CONFIG_NETDEV_WIRELESS_IOCTL=y +CONFIG_NETUTILS_CJSON=y +CONFIG_NET_BROADCAST=y +CONFIG_NET_ETH_PKTSIZE=1514 +CONFIG_NET_ICMP_SOCKET=y +CONFIG_NET_TCP=y +CONFIG_NET_TCP_DELAYED_ACK=y +CONFIG_NET_TCP_WRITE_BUFFERS=y +CONFIG_NET_UDP=y +CONFIG_NET_UDP_WRITE_BUFFERS=y +CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 +CONFIG_NSH_ARCHINIT=y +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_READLINE=y +CONFIG_NSH_STRERROR=y +CONFIG_ONESHOT=y +CONFIG_PREALLOC_TIMERS=0 +CONFIG_PTHREAD_MUTEX_TYPES=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_BACKTRACE=y +CONFIG_SCHED_LPWORK=y +CONFIG_SCHED_WAITPID=y +CONFIG_SIG_DEFAULT=y +CONFIG_START_DAY=29 +CONFIG_START_MONTH=11 +CONFIG_START_YEAR=2019 +CONFIG_SYSTEM_DHCPC_RENEW=y +CONFIG_SYSTEM_DUMPSTACK=y +CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_PING=y +CONFIG_TESTING_GETPRIME=y +CONFIG_TESTING_OSTEST=y +CONFIG_TLS_TASK_NELEM=4 +CONFIG_WIRELESS=y +CONFIG_WIRELESS_WAPI=y +CONFIG_WIRELESS_WAPI_CMDTOOL=y