summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml7
-rw-r--r--README.md2
-rw-r--r--examples/device/board_test/CMakeLists.txt2
-rw-r--r--examples/device/board_test/sdkconfig.defaults3
-rw-r--r--examples/device/board_test/src/CMakeLists.txt12
-rw-r--r--examples/device/board_test/src/main.c2
-rw-r--r--examples/device/cdc_msc/CMakeLists.txt2
-rw-r--r--examples/device/cdc_msc_freertos/CMakeLists.txt2
-rw-r--r--examples/device/cdc_msc_freertos/sdkconfig.defaults2
-rw-r--r--examples/device/cdc_msc_freertos/src/CMakeLists.txt15
-rw-r--r--examples/device/cdc_msc_freertos/src/main.c6
-rw-r--r--examples/device/hid_composite_freertos/CMakeLists.txt4
-rw-r--r--examples/device/hid_composite_freertos/sdkconfig.defaults2
-rw-r--r--examples/device/hid_composite_freertos/src/CMakeLists.txt15
-rw-r--r--examples/device/hid_composite_freertos/src/main.c6
-rw-r--r--examples/host/cdc_msc_hid/CMakeLists.txt2
-rw-r--r--examples/make.mk3
-rw-r--r--examples/rules.mk4
-rw-r--r--hw/bsp/board_mcu.h3
-rw-r--r--hw/bsp/esp32s2/family.cmake6
-rw-r--r--hw/bsp/esp32s2/family.mk36
-rw-r--r--hw/bsp/esp32sx/boards/CMakeLists.txt (renamed from hw/bsp/esp32s2/boards/CMakeLists.txt)8
-rw-r--r--hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/CMakeLists.txt15
-rw-r--r--hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/board.h (renamed from hw/bsp/esp32s2/boards/adafruit_feather_esp32s2/board.h)0
-rw-r--r--hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/board.mk3
-rw-r--r--hw/bsp/esp32sx/boards/adafruit_magtag_29gray/CMakeLists.txt15
-rw-r--r--hw/bsp/esp32sx/boards/adafruit_magtag_29gray/board.h (renamed from hw/bsp/esp32s2/boards/adafruit_magtag_29gray/board.h)0
-rw-r--r--hw/bsp/esp32sx/boards/adafruit_magtag_29gray/board.mk3
-rw-r--r--hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/CMakeLists.txt15
-rw-r--r--hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/board.h (renamed from hw/bsp/esp32s2/boards/adafruit_metro_esp32s2/board.h)0
-rw-r--r--hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/board.mk3
-rw-r--r--hw/bsp/esp32sx/boards/esp32sx.c (renamed from hw/bsp/esp32s2/boards/esp32s2.c)0
-rw-r--r--hw/bsp/esp32sx/boards/espressif_addax_1/CMakeLists.txt15
-rw-r--r--hw/bsp/esp32sx/boards/espressif_addax_1/board.h44
-rw-r--r--hw/bsp/esp32sx/boards/espressif_addax_1/board.mk3
-rw-r--r--hw/bsp/esp32sx/boards/espressif_kaluga_1/CMakeLists.txt14
-rw-r--r--hw/bsp/esp32sx/boards/espressif_kaluga_1/board.h (renamed from hw/bsp/esp32s2/boards/espressif_kaluga_1/board.h)0
-rw-r--r--hw/bsp/esp32sx/boards/espressif_kaluga_1/board.mk3
-rw-r--r--hw/bsp/esp32sx/boards/espressif_saola_1/CMakeLists.txt14
-rw-r--r--hw/bsp/esp32sx/boards/espressif_saola_1/board.h (renamed from hw/bsp/esp32s2/boards/espressif_saola_1/board.h)0
-rw-r--r--hw/bsp/esp32sx/boards/espressif_saola_1/board.mk3
-rw-r--r--hw/bsp/esp32sx/components/led_strip/CMakeLists.txt (renamed from hw/bsp/esp32s2/components/led_strip/CMakeLists.txt)0
-rw-r--r--hw/bsp/esp32sx/components/led_strip/include/led_strip.h (renamed from hw/bsp/esp32s2/components/led_strip/include/led_strip.h)0
-rw-r--r--hw/bsp/esp32sx/components/led_strip/src/led_strip_rmt_ws2812.c (renamed from hw/bsp/esp32s2/components/led_strip/src/led_strip_rmt_ws2812.c)0
-rw-r--r--hw/bsp/esp32sx/family.cmake6
-rw-r--r--hw/bsp/esp32sx/family.mk26
-rw-r--r--src/osal/osal_freertos.h4
-rw-r--r--src/portable/espressif/esp32sx/dcd_esp32sx.c (renamed from src/portable/espressif/esp32s2/dcd_esp32s2.c)7
-rw-r--r--src/tusb_option.h1
-rw-r--r--tools/build_esp32sx.py (renamed from tools/build_esp32s2.py)2
-rw-r--r--tools/build_family.py2
51 files changed, 257 insertions, 85 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index cccf8eacc..41ce430ad 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -180,9 +180,9 @@ jobs:
asset_content_type: application/zip
# ---------------------------------------
- # Build ESP32S2 family
+ # Build ESP32SX family
# ---------------------------------------
- build-esp32s2:
+ build-esp32sx:
runs-on: ubuntu-latest
strategy:
fail-fast: false
@@ -192,6 +192,7 @@ jobs:
- 'adafruit_feather_esp32s2'
- 'adafruit_magtag_29gray'
- 'adafruit_metro_esp32s2'
+ - 'espressif_addax_1'
- 'espressif_kaluga_1'
- 'espressif_saola_1'
@@ -206,7 +207,7 @@ jobs:
uses: actions/checkout@v2
- name: Build
- run: docker run --rm -v $PWD:/project -w /project espressif/idf:latest python3 tools/build_esp32s2.py ${{ matrix.board }}
+ run: docker run --rm -v $PWD:/project -w /project espressif/idf:latest python3 tools/build_esp32sx.py ${{ matrix.board }}
# ---------------------------------------
# Build msp430 family
diff --git a/README.md b/README.md
index ddbd8a7fb..b77ddb662 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ Special thanks to all the people who spent their precious time and effort to hel
The stack supports the following MCUs:
- **Dialog:** DA1469x
-- **Espressif:** ESP32-S2
+- **Espressif:** ESP32-S2, ESP32-S3
- **MicroChip:** SAMD11, SAMD21, SAMD51, SAME5x, SAMG55
- **NordicSemi:** nRF52833, nRF52840
- **Nuvoton:** NUC120, NUC121/NUC125, NUC126, NUC505
diff --git a/examples/device/board_test/CMakeLists.txt b/examples/device/board_test/CMakeLists.txt
index 32c0329ea..7658fae49 100644
--- a/examples/device/board_test/CMakeLists.txt
+++ b/examples/device/board_test/CMakeLists.txt
@@ -7,7 +7,7 @@ set(TOP "../../..")
get_filename_component(TOP "${TOP}" REALPATH)
# Check for -DFAMILY=
-if(FAMILY STREQUAL "esp32s2")
+if(FAMILY STREQUAL "esp32sx")
cmake_minimum_required(VERSION 3.5)
include(${TOP}/hw/bsp/${FAMILY}/family.cmake)
diff --git a/examples/device/board_test/sdkconfig.defaults b/examples/device/board_test/sdkconfig.defaults
index cede66031..83871619e 100644
--- a/examples/device/board_test/sdkconfig.defaults
+++ b/examples/device/board_test/sdkconfig.defaults
@@ -1,4 +1,3 @@
CONFIG_IDF_CMAKE=y
-CONFIG_IDF_TARGET="esp32s2"
-CONFIG_IDF_TARGET_ESP32S2=y
+CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
diff --git a/examples/device/board_test/src/CMakeLists.txt b/examples/device/board_test/src/CMakeLists.txt
index e59661069..e44863609 100644
--- a/examples/device/board_test/src/CMakeLists.txt
+++ b/examples/device/board_test/src/CMakeLists.txt
@@ -1,10 +1,18 @@
-# FAMILY = "esp32s2"
+# FAMILY = esp32sx
idf_component_register(SRCS "main.c"
INCLUDE_DIRS "."
REQUIRES freertos soc)
+string(REGEX MATCH "^(esp32s[2-3])*" chip_target "$ENV{IDF_TARGET}")
+
+if(NOT chip_target)
+ message(FATAL_ERROR "Incorrect target: $ENV{IDF_TARGET}" )
+endif()
+
+string(TOUPPER ${chip_target} upper_case_target)
+
target_compile_options(${COMPONENT_TARGET} PUBLIC
- "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
+ "-DCFG_TUSB_MCU=OPT_MCU_${upper_case_target}"
"-DCFG_TUSB_OS=OPT_OS_FREERTOS"
)
diff --git a/examples/device/board_test/src/main.c b/examples/device/board_test/src/main.c
index d94b24650..c77dd5647 100644
--- a/examples/device/board_test/src/main.c
+++ b/examples/device/board_test/src/main.c
@@ -70,7 +70,7 @@ int main(void)
return 0;
}
-#if CFG_TUSB_MCU == OPT_MCU_ESP32S2
+#if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3
void app_main(void)
{
main();
diff --git a/examples/device/cdc_msc/CMakeLists.txt b/examples/device/cdc_msc/CMakeLists.txt
index d4ee8c050..5f515c825 100644
--- a/examples/device/cdc_msc/CMakeLists.txt
+++ b/examples/device/cdc_msc/CMakeLists.txt
@@ -7,7 +7,7 @@ set(TOP "../../..")
get_filename_component(TOP "${TOP}" REALPATH)
# Check for -DFAMILY=
-if(FAMILY STREQUAL "esp32s2")
+if(FAMILY STREQUAL "esp32sx")
cmake_minimum_required(VERSION 3.5)
include(${TOP}/hw/bsp/${FAMILY}/family.cmake)
project(${PROJECT})
diff --git a/examples/device/cdc_msc_freertos/CMakeLists.txt b/examples/device/cdc_msc_freertos/CMakeLists.txt
index dabb4bc80..643cebebe 100644
--- a/examples/device/cdc_msc_freertos/CMakeLists.txt
+++ b/examples/device/cdc_msc_freertos/CMakeLists.txt
@@ -9,7 +9,7 @@ set(TOP "../../..")
get_filename_component(TOP "${TOP}" REALPATH)
# Check for -DFAMILY=
-if(FAMILY STREQUAL "esp32s2")
+if(FAMILY STREQUAL "esp32sx")
include(${TOP}/hw/bsp/${FAMILY}/family.cmake)
project(${PROJECT})
diff --git a/examples/device/cdc_msc_freertos/sdkconfig.defaults b/examples/device/cdc_msc_freertos/sdkconfig.defaults
index 3253f605c..83871619e 100644
--- a/examples/device/cdc_msc_freertos/sdkconfig.defaults
+++ b/examples/device/cdc_msc_freertos/sdkconfig.defaults
@@ -1,5 +1,3 @@
CONFIG_IDF_CMAKE=y
-CONFIG_IDF_TARGET="esp32s2"
-CONFIG_IDF_TARGET_ESP32S2=y
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
diff --git a/examples/device/cdc_msc_freertos/src/CMakeLists.txt b/examples/device/cdc_msc_freertos/src/CMakeLists.txt
index a7ece92c9..17bc0b3eb 100644
--- a/examples/device/cdc_msc_freertos/src/CMakeLists.txt
+++ b/examples/device/cdc_msc_freertos/src/CMakeLists.txt
@@ -2,8 +2,19 @@ idf_component_register(SRCS "main.c" "usb_descriptors.c" "msc_disk.c"
INCLUDE_DIRS "."
REQUIRES freertos soc)
+string(REGEX MATCH "^(esp32s[2-3])*" chip_target "$ENV{IDF_TARGET}")
+
+if(NOT chip_target)
+ message(FATAL_ERROR "Incorrect target: $ENV{IDF_TARGET}" )
+else()
+ set(chip_family "esp32sx")
+endif()
+
+string(TOUPPER ${chip_target} upper_case_target)
+
target_compile_options(${COMPONENT_TARGET} PUBLIC
- "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
+ "-DCFG_TUSB_MCU=OPT_MCU_${upper_case_target}"
+ "-DCFG_TUSB_OS=OPT_OS_FREERTOS"
)
idf_component_get_property( FREERTOS_ORIG_INCLUDE_PATH freertos ORIG_INCLUDE_PATH)
@@ -26,5 +37,5 @@ target_sources(${COMPONENT_TARGET} PUBLIC
"${TOP}/src/class/net/net_device.c"
"${TOP}/src/class/usbtmc/usbtmc_device.c"
"${TOP}/src/class/vendor/vendor_device.c"
- "${TOP}/src/portable/espressif/esp32s2/dcd_esp32s2.c"
+ "${TOP}/src/portable/espressif/${chip_family}/dcd_${chip_family}.c"
)
diff --git a/examples/device/cdc_msc_freertos/src/main.c b/examples/device/cdc_msc_freertos/src/main.c
index ccff2e0fb..c27b7feda 100644
--- a/examples/device/cdc_msc_freertos/src/main.c
+++ b/examples/device/cdc_msc_freertos/src/main.c
@@ -94,15 +94,15 @@ int main(void)
// Create CDC task
(void) xTaskCreateStatic( cdc_task, "cdc", CDC_STACK_SZIE, NULL, configMAX_PRIORITIES-2, cdc_stack, &cdc_taskdef);
- // skip starting scheduler (and return) for ESP32-S2
-#if CFG_TUSB_MCU != OPT_MCU_ESP32S2
+ // skip starting scheduler (and return) for ESP32-S2 or ESP32-S3
+#if CFG_TUSB_MCU != OPT_MCU_ESP32S2 && CFG_TUSB_MCU != OPT_MCU_ESP32S3
vTaskStartScheduler();
#endif
return 0;
}
-#if CFG_TUSB_MCU == OPT_MCU_ESP32S2
+#if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3
void app_main(void)
{
main();
diff --git a/examples/device/hid_composite_freertos/CMakeLists.txt b/examples/device/hid_composite_freertos/CMakeLists.txt
index dabb4bc80..a3c7697aa 100644
--- a/examples/device/hid_composite_freertos/CMakeLists.txt
+++ b/examples/device/hid_composite_freertos/CMakeLists.txt
@@ -9,10 +9,10 @@ set(TOP "../../..")
get_filename_component(TOP "${TOP}" REALPATH)
# Check for -DFAMILY=
-if(FAMILY STREQUAL "esp32s2")
+if(FAMILY STREQUAL "esp32sx")
include(${TOP}/hw/bsp/${FAMILY}/family.cmake)
project(${PROJECT})
else()
- message(FATAL_ERROR "Invalid FAMILY specified")
+ message(FATAL_ERROR "Invalid FAMILY specified: ${FAMILY}")
endif()
diff --git a/examples/device/hid_composite_freertos/sdkconfig.defaults b/examples/device/hid_composite_freertos/sdkconfig.defaults
index 3253f605c..83871619e 100644
--- a/examples/device/hid_composite_freertos/sdkconfig.defaults
+++ b/examples/device/hid_composite_freertos/sdkconfig.defaults
@@ -1,5 +1,3 @@
CONFIG_IDF_CMAKE=y
-CONFIG_IDF_TARGET="esp32s2"
-CONFIG_IDF_TARGET_ESP32S2=y
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
diff --git a/examples/device/hid_composite_freertos/src/CMakeLists.txt b/examples/device/hid_composite_freertos/src/CMakeLists.txt
index f79e8f845..ae213a3c8 100644
--- a/examples/device/hid_composite_freertos/src/CMakeLists.txt
+++ b/examples/device/hid_composite_freertos/src/CMakeLists.txt
@@ -2,8 +2,19 @@ idf_component_register(SRCS "main.c" "usb_descriptors.c"
INCLUDE_DIRS "."
REQUIRES freertos soc)
+string(REGEX MATCH "^(esp32s[2-3])*" chip_target "$ENV{IDF_TARGET}")
+
+if(NOT chip_target)
+ message(FATAL_ERROR "Incorrect target: $ENV{IDF_TARGET}" )
+else()
+ set(chip_family "esp32sx")
+endif()
+
+string(TOUPPER ${chip_target} upper_case_target)
+
target_compile_options(${COMPONENT_TARGET} PUBLIC
- "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
+ "-DCFG_TUSB_MCU=OPT_MCU_${upper_case_target}"
+ "-DCFG_TUSB_OS=OPT_OS_FREERTOS"
)
idf_component_get_property( FREERTOS_ORIG_INCLUDE_PATH freertos ORIG_INCLUDE_PATH)
@@ -26,5 +37,5 @@ target_sources(${COMPONENT_TARGET} PUBLIC
"${TOP}/src/class/net/net_device.c"
"${TOP}/src/class/usbtmc/usbtmc_device.c"
"${TOP}/src/class/vendor/vendor_device.c"
- "${TOP}/src/portable/espressif/esp32s2/dcd_esp32s2.c"
+ "${TOP}/src/portable/espressif/${chip_family}/dcd_${chip_family}.c"
)
diff --git a/examples/device/hid_composite_freertos/src/main.c b/examples/device/hid_composite_freertos/src/main.c
index 37b4a0cf7..47f976427 100644
--- a/examples/device/hid_composite_freertos/src/main.c
+++ b/examples/device/hid_composite_freertos/src/main.c
@@ -95,15 +95,15 @@ int main(void)
// Create HID task
(void) xTaskCreateStatic( hid_task, "hid", HID_STACK_SZIE, NULL, configMAX_PRIORITIES-2, hid_stack, &hid_taskdef);
- // skip starting scheduler (and return) for ESP32-S2
-#if CFG_TUSB_MCU != OPT_MCU_ESP32S2
+ // skip starting scheduler (and return) for ESP32-S2 or ESP32-S3
+#if CFG_TUSB_MCU != OPT_MCU_ESP32S2 && CFG_TUSB_MCU != OPT_MCU_ESP32S3
vTaskStartScheduler();
#endif
return 0;
}
-#if CFG_TUSB_MCU == OPT_MCU_ESP32S2
+#if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3
void app_main(void)
{
main();
diff --git a/examples/host/cdc_msc_hid/CMakeLists.txt b/examples/host/cdc_msc_hid/CMakeLists.txt
index 30b6c713e..e9360a731 100644
--- a/examples/host/cdc_msc_hid/CMakeLists.txt
+++ b/examples/host/cdc_msc_hid/CMakeLists.txt
@@ -7,7 +7,7 @@ set(TOP "../../..")
get_filename_component(TOP "${TOP}" REALPATH)
# Check for -DFAMILY=
-if(FAMILY STREQUAL "esp32s2")
+if(FAMILY STREQUAL "esp32sx")
cmake_minimum_required(VERSION 3.5)
include(${TOP}/hw/bsp/${FAMILY}/family.cmake)
project(${PROJECT})
diff --git a/examples/make.mk b/examples/make.mk
index e04a2592a..47879c66f 100644
--- a/examples/make.mk
+++ b/examples/make.mk
@@ -27,6 +27,9 @@ endif
# Board within family
ifeq ($(BOARD_PATH),)
BOARD_PATH := $(subst $(TOP)/,,$(wildcard $(TOP)/hw/bsp/*/boards/$(BOARD)))
+ifneq ($(wildcard $(TOP)/hw/bsp/*/boards/$(BOARD)/board.mk),)
+ include $(TOP)/hw/bsp/*/boards/$(BOARD)/board.mk
+endif
FAMILY := $(word 3, $(subst /, ,$(BOARD_PATH)))
FAMILY_PATH = hw/bsp/$(FAMILY)
endif
diff --git a/examples/rules.mk b/examples/rules.mk
index a19cd678e..461683fad 100644
--- a/examples/rules.mk
+++ b/examples/rules.mk
@@ -5,8 +5,8 @@
# Set all as default goal
.DEFAULT_GOAL := all
-# ESP32-S2 and RP2040 has its own CMake build system
-ifneq ($(FAMILY),esp32s2)
+# ESP32-SX and RP2040 has its own CMake build system
+ifneq ($(FAMILY),esp32sx)
ifneq ($(FAMILY),rp2040)
# ---------------------------------------
# GNU Make build system
diff --git a/hw/bsp/board_mcu.h b/hw/bsp/board_mcu.h
index b00958e5e..1a659c410 100644
--- a/hw/bsp/board_mcu.h
+++ b/hw/bsp/board_mcu.h
@@ -115,6 +115,9 @@
#elif CFG_TUSB_MCU == OPT_MCU_ESP32S2
// no header needed
+#elif CFG_TUSB_MCU == OPT_MCU_ESP32S3
+ // no header needed
+
#elif CFG_TUSB_MCU == OPT_MCU_DA1469X
#include "DA1469xAB.h"
diff --git a/hw/bsp/esp32s2/family.cmake b/hw/bsp/esp32s2/family.cmake
deleted file mode 100644
index c19221b14..000000000
--- a/hw/bsp/esp32s2/family.cmake
+++ /dev/null
@@ -1,6 +0,0 @@
-cmake_minimum_required(VERSION 3.5)
-
-# Add example src and bsp directories
-set(EXTRA_COMPONENT_DIRS "src" "${TOP}/hw/bsp/esp32s2/boards" "${TOP}/hw/bsp/esp32s2/components")
-include($ENV{IDF_PATH}/tools/cmake/project.cmake)
-set(SUPPORTED_TARGETS esp32s2)
diff --git a/hw/bsp/esp32s2/family.mk b/hw/bsp/esp32s2/family.mk
deleted file mode 100644
index 8bd290eb3..000000000
--- a/hw/bsp/esp32s2/family.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-#DEPS_SUBMODULES +=
-
-.PHONY: all clean flash
-
-all:
- idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) build
-
-build: all
-
-clean:
- idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) clean
-
-fullclean:
- idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) fullclean
-
-flash:
- idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) flash
-
-bootloader-flash:
- idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) bootloader-flash
-
-app-flash:
- idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) app-flash
-
-erase:
- idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) erase_flash
-
-monitor:
- idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) monitor
-
-uf2: $(BUILD)/$(PROJECT).uf2
-
-UF2_FAMILY_ID = 0xbfdd4eee
-$(BUILD)/$(PROJECT).uf2: $(BUILD)/$(PROJECT).bin
- @echo CREATE $@
- $(PYTHON) $(TOP)/tools/uf2/utils/uf2conv.py -f $(UF2_FAMILY_ID) -b 0x0 -c -o $@ $^
diff --git a/hw/bsp/esp32s2/boards/CMakeLists.txt b/hw/bsp/esp32sx/boards/CMakeLists.txt
index 98c929ef3..0d8de0895 100644
--- a/hw/bsp/esp32s2/boards/CMakeLists.txt
+++ b/hw/bsp/esp32sx/boards/CMakeLists.txt
@@ -1,12 +1,10 @@
-idf_component_register(SRCS esp32s2.c
+idf_component_register(SRCS esp32sx.c
INCLUDE_DIRS "." "${BOARD}"
PRIV_REQUIRES "driver"
REQUIRES freertos src led_strip)
-target_compile_options(${COMPONENT_TARGET} PUBLIC
- "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
- "-DCFG_TUSB_OS=OPT_OS_FREERTOS"
-)
+# Apply board specific content
+add_subdirectory(${BOARD})
idf_component_get_property( FREERTOS_ORIG_INCLUDE_PATH freertos ORIG_INCLUDE_PATH)
target_include_directories(${COMPONENT_TARGET} PUBLIC
diff --git a/hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/CMakeLists.txt b/hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/CMakeLists.txt
new file mode 100644
index 000000000..fc7f5a43a
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/CMakeLists.txt
@@ -0,0 +1,15 @@
+# Apply board specific context here
+target_include_directories(${COMPONENT_LIB} PRIVATE .)
+
+message(STATUS "Apply board specific content ${BOARD}: $ENV{IDF_TARGET} " )
+idf_build_get_property(idf_target IDF_TARGET)
+
+if(NOT ${idf_target} STREQUAL "esp32s2")
+ message(STATUS "Incorrect target for board ${BOARD}: $ENV{IDF_TARGET} " )
+ set(IDF_TARGET "esp32s2" FORCE)
+endif()
+
+target_compile_options(${COMPONENT_TARGET} PUBLIC
+ "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
+ "-DCFG_TUSB_OS=OPT_OS_FREERTOS"
+) \ No newline at end of file
diff --git a/hw/bsp/esp32s2/boards/adafruit_feather_esp32s2/board.h b/hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/board.h
index 43e00901d..43e00901d 100644
--- a/hw/bsp/esp32s2/boards/adafruit_feather_esp32s2/board.h
+++ b/hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/board.h
diff --git a/hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/board.mk b/hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/board.mk
new file mode 100644
index 000000000..7308a9f62
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/adafruit_feather_esp32s2/board.mk
@@ -0,0 +1,3 @@
+IDF_TARGET = esp32s2
+
+$(info Processing of board.mk for board: $(BOARD){$(BOARD_PATH)}, family: $(FAMILY), target: $(IDF_TARGET)) \ No newline at end of file
diff --git a/hw/bsp/esp32sx/boards/adafruit_magtag_29gray/CMakeLists.txt b/hw/bsp/esp32sx/boards/adafruit_magtag_29gray/CMakeLists.txt
new file mode 100644
index 000000000..fc7f5a43a
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/adafruit_magtag_29gray/CMakeLists.txt
@@ -0,0 +1,15 @@
+# Apply board specific context here
+target_include_directories(${COMPONENT_LIB} PRIVATE .)
+
+message(STATUS "Apply board specific content ${BOARD}: $ENV{IDF_TARGET} " )
+idf_build_get_property(idf_target IDF_TARGET)
+
+if(NOT ${idf_target} STREQUAL "esp32s2")
+ message(STATUS "Incorrect target for board ${BOARD}: $ENV{IDF_TARGET} " )
+ set(IDF_TARGET "esp32s2" FORCE)
+endif()
+
+target_compile_options(${COMPONENT_TARGET} PUBLIC
+ "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
+ "-DCFG_TUSB_OS=OPT_OS_FREERTOS"
+) \ No newline at end of file
diff --git a/hw/bsp/esp32s2/boards/adafruit_magtag_29gray/board.h b/hw/bsp/esp32sx/boards/adafruit_magtag_29gray/board.h
index 16e30b685..16e30b685 100644
--- a/hw/bsp/esp32s2/boards/adafruit_magtag_29gray/board.h
+++ b/hw/bsp/esp32sx/boards/adafruit_magtag_29gray/board.h
diff --git a/hw/bsp/esp32sx/boards/adafruit_magtag_29gray/board.mk b/hw/bsp/esp32sx/boards/adafruit_magtag_29gray/board.mk
new file mode 100644
index 000000000..7308a9f62
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/adafruit_magtag_29gray/board.mk
@@ -0,0 +1,3 @@
+IDF_TARGET = esp32s2
+
+$(info Processing of board.mk for board: $(BOARD){$(BOARD_PATH)}, family: $(FAMILY), target: $(IDF_TARGET)) \ No newline at end of file
diff --git a/hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/CMakeLists.txt b/hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/CMakeLists.txt
new file mode 100644
index 000000000..fc7f5a43a
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/CMakeLists.txt
@@ -0,0 +1,15 @@
+# Apply board specific context here
+target_include_directories(${COMPONENT_LIB} PRIVATE .)
+
+message(STATUS "Apply board specific content ${BOARD}: $ENV{IDF_TARGET} " )
+idf_build_get_property(idf_target IDF_TARGET)
+
+if(NOT ${idf_target} STREQUAL "esp32s2")
+ message(STATUS "Incorrect target for board ${BOARD}: $ENV{IDF_TARGET} " )
+ set(IDF_TARGET "esp32s2" FORCE)
+endif()
+
+target_compile_options(${COMPONENT_TARGET} PUBLIC
+ "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
+ "-DCFG_TUSB_OS=OPT_OS_FREERTOS"
+) \ No newline at end of file
diff --git a/hw/bsp/esp32s2/boards/adafruit_metro_esp32s2/board.h b/hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/board.h
index 49a2474bc..49a2474bc 100644
--- a/hw/bsp/esp32s2/boards/adafruit_metro_esp32s2/board.h
+++ b/hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/board.h
diff --git a/hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/board.mk b/hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/board.mk
new file mode 100644
index 000000000..7308a9f62
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/adafruit_metro_esp32s2/board.mk
@@ -0,0 +1,3 @@
+IDF_TARGET = esp32s2
+
+$(info Processing of board.mk for board: $(BOARD){$(BOARD_PATH)}, family: $(FAMILY), target: $(IDF_TARGET)) \ No newline at end of file
diff --git a/hw/bsp/esp32s2/boards/esp32s2.c b/hw/bsp/esp32sx/boards/esp32sx.c
index 358c0c803..358c0c803 100644
--- a/hw/bsp/esp32s2/boards/esp32s2.c
+++ b/hw/bsp/esp32sx/boards/esp32sx.c
diff --git a/hw/bsp/esp32sx/boards/espressif_addax_1/CMakeLists.txt b/hw/bsp/esp32sx/boards/espressif_addax_1/CMakeLists.txt
new file mode 100644
index 000000000..b64efa399
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/espressif_addax_1/CMakeLists.txt
@@ -0,0 +1,15 @@
+# Apply board specific content here
+target_include_directories(${COMPONENT_LIB} PRIVATE .)
+
+message(STATUS "Apply board specific content ${BOARD}: $ENV{IDF_TARGET} " )
+idf_build_get_property(idf_target IDF_TARGET)
+
+if(NOT ${idf_target} STREQUAL "esp32s3")
+ message(STATUS "Incorrect target for board ${BOARD}: $ENV{IDF_TARGET} " )
+ set(IDF_TARGET "esp32s3" FORCE)
+endif()
+
+target_compile_options(${COMPONENT_TARGET} PUBLIC
+ "-DCFG_TUSB_MCU=OPT_MCU_ESP32S3"
+ "-DCFG_TUSB_OS=OPT_OS_FREERTOS"
+) \ No newline at end of file
diff --git a/hw/bsp/esp32sx/boards/espressif_addax_1/board.h b/hw/bsp/esp32sx/boards/espressif_addax_1/board.h
new file mode 100644
index 000000000..fff24ba44
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/espressif_addax_1/board.h
@@ -0,0 +1,44 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020, Ha Thach (tinyusb.org)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * This file is part of the TinyUSB stack.
+ */
+
+#ifndef BOARD_H_
+#define BOARD_H_
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+// Note: On the production version (v1.1) WS2812 is connected to GPIO 47
+#define NEOPIXEL_PIN 47
+
+#define BUTTON_PIN 0
+#define BUTTON_STATE_ACTIVE 0
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* BOARD_H_ */
diff --git a/hw/bsp/esp32sx/boards/espressif_addax_1/board.mk b/hw/bsp/esp32sx/boards/espressif_addax_1/board.mk
new file mode 100644
index 000000000..6c5bda9b1
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/espressif_addax_1/board.mk
@@ -0,0 +1,3 @@
+IDF_TARGET = esp32s3
+
+$(info Processing of board.mk for board: $(BOARD){$(BOARD_PATH)}, family: $(FAMILY), target: $(IDF_TARGET)) \ No newline at end of file
diff --git a/hw/bsp/esp32sx/boards/espressif_kaluga_1/CMakeLists.txt b/hw/bsp/esp32sx/boards/espressif_kaluga_1/CMakeLists.txt
new file mode 100644
index 000000000..9b76625a7
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/espressif_kaluga_1/CMakeLists.txt
@@ -0,0 +1,14 @@
+# Apply board specific context here
+target_include_directories(${COMPONENT_LIB} PRIVATE .)
+
+idf_build_get_property(idf_target IDF_TARGET)
+
+if( NOT ${idf_target} STREQUAL "esp32s2")
+ message(STATUS "Incorrect target for board ${BOARD}: $ENV{IDF_TARGET} " )
+ set(IDF_TARGET "esp32s2" FORCE)
+endif()
+
+target_compile_options(${COMPONENT_TARGET} PUBLIC
+ "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
+ "-DCFG_TUSB_OS=OPT_OS_FREERTOS"
+) \ No newline at end of file
diff --git a/hw/bsp/esp32s2/boards/espressif_kaluga_1/board.h b/hw/bsp/esp32sx/boards/espressif_kaluga_1/board.h
index 6bb44f76d..6bb44f76d 100644
--- a/hw/bsp/esp32s2/boards/espressif_kaluga_1/board.h
+++ b/hw/bsp/esp32sx/boards/espressif_kaluga_1/board.h
diff --git a/hw/bsp/esp32sx/boards/espressif_kaluga_1/board.mk b/hw/bsp/esp32sx/boards/espressif_kaluga_1/board.mk
new file mode 100644
index 000000000..7308a9f62
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/espressif_kaluga_1/board.mk
@@ -0,0 +1,3 @@
+IDF_TARGET = esp32s2
+
+$(info Processing of board.mk for board: $(BOARD){$(BOARD_PATH)}, family: $(FAMILY), target: $(IDF_TARGET)) \ No newline at end of file
diff --git a/hw/bsp/esp32sx/boards/espressif_saola_1/CMakeLists.txt b/hw/bsp/esp32sx/boards/espressif_saola_1/CMakeLists.txt
new file mode 100644
index 000000000..c034a11a6
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/espressif_saola_1/CMakeLists.txt
@@ -0,0 +1,14 @@
+# Apply board specific context here
+target_include_directories(${COMPONENT_LIB} PUBLIC .)
+
+idf_build_get_property(idf_target IDF_TARGET)
+
+if(NOT ${idf_target} STREQUAL "esp32s2")
+ message(STATUS "Incorrect target for board ${BOARD}: $ENV{IDF_TARGET} " )
+ set(IDF_TARGET "esp32s2" FORCE)
+endif()
+
+target_compile_options(${COMPONENT_TARGET} PUBLIC
+ "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
+ "-DCFG_TUSB_OS=OPT_OS_FREERTOS"
+) \ No newline at end of file
diff --git a/hw/bsp/esp32s2/boards/espressif_saola_1/board.h b/hw/bsp/esp32sx/boards/espressif_saola_1/board.h
index f450b9a8b..f450b9a8b 100644
--- a/hw/bsp/esp32s2/boards/espressif_saola_1/board.h
+++ b/hw/bsp/esp32sx/boards/espressif_saola_1/board.h
diff --git a/hw/bsp/esp32sx/boards/espressif_saola_1/board.mk b/hw/bsp/esp32sx/boards/espressif_saola_1/board.mk
new file mode 100644
index 000000000..7308a9f62
--- /dev/null
+++ b/hw/bsp/esp32sx/boards/espressif_saola_1/board.mk
@@ -0,0 +1,3 @@
+IDF_TARGET = esp32s2
+
+$(info Processing of board.mk for board: $(BOARD){$(BOARD_PATH)}, family: $(FAMILY), target: $(IDF_TARGET)) \ No newline at end of file
diff --git a/hw/bsp/esp32s2/components/led_strip/CMakeLists.txt b/hw/bsp/esp32sx/components/led_strip/CMakeLists.txt
index 6d0fcbc86..6d0fcbc86 100644
--- a/hw/bsp/esp32s2/components/led_strip/CMakeLists.txt
+++ b/hw/bsp/esp32sx/components/led_strip/CMakeLists.txt
diff --git a/hw/bsp/esp32s2/components/led_strip/include/led_strip.h b/hw/bsp/esp32sx/components/led_strip/include/led_strip.h
index a9dffc325..a9dffc325 100644
--- a/hw/bsp/esp32s2/components/led_strip/include/led_strip.h
+++ b/hw/bsp/esp32sx/components/led_strip/include/led_strip.h
diff --git a/hw/bsp/esp32s2/components/led_strip/src/led_strip_rmt_ws2812.c b/hw/bsp/esp32sx/components/led_strip/src/led_strip_rmt_ws2812.c
index 025d3c590..025d3c590 100644
--- a/hw/bsp/esp32s2/components/led_strip/src/led_strip_rmt_ws2812.c
+++ b/hw/bsp/esp32sx/components/led_strip/src/led_strip_rmt_ws2812.c
diff --git a/hw/bsp/esp32sx/family.cmake b/hw/bsp/esp32sx/family.cmake
new file mode 100644
index 000000000..54f36e5d0
--- /dev/null
+++ b/hw/bsp/esp32sx/family.cmake
@@ -0,0 +1,6 @@
+cmake_minimum_required(VERSION 3.5)
+
+# Add example src and bsp directories
+set(EXTRA_COMPONENT_DIRS "src" "${TOP}/hw/bsp/esp32sx/boards" "${TOP}/hw/bsp/esp32sx/components")
+include($ENV{IDF_PATH}/tools/cmake/project.cmake)
+set(SUPPORTED_TARGETS esp32s2 esp32s3)
diff --git a/hw/bsp/esp32sx/family.mk b/hw/bsp/esp32sx/family.mk
new file mode 100644
index 000000000..46df596ea
--- /dev/null
+++ b/hw/bsp/esp32sx/family.mk
@@ -0,0 +1,26 @@
+#DEPS_SUBMODULES +=
+
+.PHONY: all clean flash bootloader-flash app-flash erase monitor dfu-flash dfu
+
+all:
+ idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) -DIDF_TARGET=$(IDF_TARGET) build
+
+build: all
+
+clean:
+ idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) clean
+
+fullclean:
+ if test -f sdkconfig; then $(RM) -f sdkconfig ; fi
+ if test -d $(BUILD); then $(RM) -rf $(BUILD) ; fi
+
+flash bootloader-flash app-flash erase monitor dfu-flash dfu:
+ idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) $(CMAKE_DEFSYM) $@
+
+uf2: $(BUILD)/$(PROJECT).uf2
+
+UF2_FAMILY_ID = 0xbfdd4eee
+$(BUILD)/$(PROJECT).uf2: $(BUILD)/$(PROJECT).bin
+ @echo CREATE $@
+ $(PYTHON) $(TOP)/tools/uf2/utils/uf2conv.py -f $(UF2_FAMILY_ID) -b 0x0 -c -o $@ $^
+
diff --git a/src/osal/osal_freertos.h b/src/osal/osal_freertos.h
index 004bd1b6b..66070c273 100644
--- a/src/osal/osal_freertos.h
+++ b/src/osal/osal_freertos.h
@@ -67,7 +67,7 @@ static inline bool osal_semaphore_post(osal_semaphore_t sem_hdl, bool in_isr)
BaseType_t xHigherPriorityTaskWoken;
BaseType_t res = xSemaphoreGiveFromISR(sem_hdl, &xHigherPriorityTaskWoken);
-#if CFG_TUSB_MCU == OPT_MCU_ESP32S2
+#if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3
if ( xHigherPriorityTaskWoken ) portYIELD_FROM_ISR();
#else
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
@@ -150,7 +150,7 @@ static inline bool osal_queue_send(osal_queue_t qhdl, void const * data, bool in
BaseType_t xHigherPriorityTaskWoken;
BaseType_t res = xQueueSendToBackFromISR(qhdl, data, &xHigherPriorityTaskWoken);
-#if CFG_TUSB_MCU == OPT_MCU_ESP32S2
+#if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3
if ( xHigherPriorityTaskWoken ) portYIELD_FROM_ISR();
#else
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
diff --git a/src/portable/espressif/esp32s2/dcd_esp32s2.c b/src/portable/espressif/esp32sx/dcd_esp32sx.c
index edbc872fe..74842a291 100644
--- a/src/portable/espressif/esp32s2/dcd_esp32s2.c
+++ b/src/portable/espressif/esp32sx/dcd_esp32sx.c
@@ -29,14 +29,14 @@
#include "tusb_option.h"
#include "common/tusb_fifo.h"
-#if CFG_TUSB_MCU == OPT_MCU_ESP32S2 && TUSB_OPT_DEVICE_ENABLED
+#if (((CFG_TUSB_MCU == OPT_MCU_ESP32S2) || (CFG_TUSB_MCU == OPT_MCU_ESP32S3)) && TUSB_OPT_DEVICE_ENABLED)
// Espressif
#include "driver/periph_ctrl.h"
#include "freertos/xtensa_api.h"
#include "esp_intr_alloc.h"
#include "esp_log.h"
-#include "esp32s2/rom/gpio.h"
+#include "driver/gpio.h"
#include "soc/dport_reg.h"
#include "soc/gpio_sig_map.h"
#include "soc/usb_periph.h"
@@ -254,6 +254,7 @@ bool dcd_edpt_open(uint8_t rhport, tusb_desc_endpoint_t const *desc_edpt)
uint8_t const epnum = tu_edpt_number(desc_edpt->bEndpointAddress);
uint8_t const dir = tu_edpt_dir(desc_edpt->bEndpointAddress);
+ TU_ASSERT(desc_edpt->wMaxPacketSize.size <= 64);
TU_ASSERT(epnum < EP_MAX);
xfer_ctl_t *xfer = XFER_CTL_BASE(epnum, dir);
@@ -863,5 +864,5 @@ void dcd_int_disable (uint8_t rhport)
esp_intr_free(usb_ih);
}
-#endif // OPT_MCU_ESP32S2
+#endif // #if OPT_MCU_ESP32S2 || OPT_MCU_ESP32S3
diff --git a/src/tusb_option.h b/src/tusb_option.h
index 7585a9ff6..9fcc6c565 100644
--- a/src/tusb_option.h
+++ b/src/tusb_option.h
@@ -94,6 +94,7 @@
// Espressif
#define OPT_MCU_ESP32S2 900 ///< Espressif ESP32-S2
+#define OPT_MCU_ESP32S3 901 ///< Espressif ESP32-S3
// Dialog
#define OPT_MCU_DA1469X 1000 ///< Dialog Semiconductor DA1469x
diff --git a/tools/build_esp32s2.py b/tools/build_esp32sx.py
index 0ef05023c..82352c269 100644
--- a/tools/build_esp32s2.py
+++ b/tools/build_esp32sx.py
@@ -35,7 +35,7 @@ all_examples.sort()
# Build all boards if not specified
all_boards = []
-for entry in os.scandir("hw/bsp/esp32s2/boards"):
+for entry in os.scandir("hw/bsp/esp32sx/boards"):
if entry.is_dir():
all_boards.append(entry.name)
filter_with_input(all_boards)
diff --git a/tools/build_family.py b/tools/build_family.py
index 65d0e8fc2..35a61f97a 100644
--- a/tools/build_family.py
+++ b/tools/build_family.py
@@ -38,7 +38,7 @@ all_examples.sort()
# If family are not specified in arguments, build all
all_families = []
for entry in os.scandir("hw/bsp"):
- if entry.is_dir() and os.path.isdir(entry.path + "/boards") and entry.name != "esp32s2":
+ if entry.is_dir() and os.path.isdir(entry.path + "/boards") and entry.name != "esp32sx":
all_families.append(entry.name)
filter_with_input(all_families)