diff --git a/.murdock b/.murdock index 5549b63b0802..4f07b4f999ff 100755 --- a/.murdock +++ b/.murdock @@ -31,7 +31,9 @@ cc1352-launchpad cc2650-launchpad derfmega128 dwm1001 +esp32-ci esp32-heltec-lora32-v2 +esp8266-ci esp8266-esp-12x hamilton hifive1 @@ -89,6 +91,7 @@ tests/driver_s* tests/driver_t* tests/driver_u* tests/driver_v* +tests/external_board_dirs tests/periph_* tests/pkg_elk tests/pkg_uzlib diff --git a/boards/esp32-wrover-kit/Makefile.dep b/boards/esp32-wrover-kit/Makefile.dep index e899893606d7..c79cb6fdc28e 100644 --- a/boards/esp32-wrover-kit/Makefile.dep +++ b/boards/esp32-wrover-kit/Makefile.dep @@ -5,34 +5,4 @@ endif # Sets up configuration for openocd USEMODULE += esp_jtag -# if compiled in CI, optional modules are selected for compile tests -ifneq (,$(RIOT_CI_BUILD)) - USEMODULE += esp_idf_heap - USEMODULE += esp_log_startup - USEMODULE += esp_log_tagged - USEMODULE += esp_qemu - USEMODULE += esp_spi_ram - - ifneq (,$(filter periph_i2c,$(USEMODULE))) - USEMODULE += esp_i2c_hw - endif - - ifneq (,$(filter periph_timer,$(USEMODULE))) - USEMODULE += esp_hw_counter - endif - - ifneq (,$(filter netdev_default,$(USEMODULE))) - # if netdev_default is used, we use gnrc modules that are enabled - # in different examples to use different esp_wifi modules - ifneq (,$(filter gnrc_netif_single,$(USEMODULE))) - # if gnrc_netif_single module is enabled, esp_wifi_enterprise is used - USEMODULE += esp_wifi_enterprise - else - # in all other case esp_wifi_ap is enabled - USEMODULE += esp_wifi_ap - endif - endif - -endif - include $(RIOTBOARD)/common/esp32/Makefile.dep diff --git a/boards/esp32-wrover-kit/Makefile.features b/boards/esp32-wrover-kit/Makefile.features index c3a06b4d0fbb..4061dc907cb4 100644 --- a/boards/esp32-wrover-kit/Makefile.features +++ b/boards/esp32-wrover-kit/Makefile.features @@ -19,5 +19,5 @@ FEATURES_PROVIDED += arduino # This configuration enables modules that are only available when using Kconfig # module modelling ifeq (1, $(TEST_KCONFIG)) - KCONFIG_BOARD_CONFIG += $(BOARDDIR)/esp32-wrover-kit.config + KCONFIG_BOARD_CONFIG += $(BOARDDIR)/$(BOARD).config endif diff --git a/boards/esp8266-olimex-mod/Makefile.dep b/boards/esp8266-olimex-mod/Makefile.dep index 9de1a432c0a6..c60e4b8da17c 100644 --- a/boards/esp8266-olimex-mod/Makefile.dep +++ b/boards/esp8266-olimex-mod/Makefile.dep @@ -1,22 +1 @@ -# if compiled in CI, optional modules are selected for compile tests -ifneq (,$(RIOT_CI_BUILD)) - USEMODULE += esp_log_tagged - USEMODULE += esp_log_startup - USEMODULE += esp_qemu - - ifneq (,$(filter periph_timer,$(USEMODULE))) - USEMODULE += esp_sw_timer - endif - - ifneq (,$(filter netdev_default,$(USEMODULE))) - # if netdev_default is used, we use gnrc modules that are enabled - # in different examples to use different esp_wifi modules - ifeq (,$(filter gnrc_netif_single,$(USEMODULE))) - # if gnrc_netif_single module is not enabled, esp_wifi_ap is used - USEMODULE += esp_wifi_ap - endif - endif - -endif - include $(RIOTBOARD)/common/esp8266/Makefile.dep diff --git a/cpu/esp32/periph/Kconfig b/cpu/esp32/periph/Kconfig index d9beb65cac34..ec121a59e278 100644 --- a/cpu/esp32/periph/Kconfig +++ b/cpu/esp32/periph/Kconfig @@ -27,4 +27,8 @@ config MODULE_PERIPH_RTT_HW_RTC bool default y if MODULE_PERIPH_RTT +config MODULE_ESP_HW_COUNTER + bool "Use hardware counter" + depends on MODULE_PERIPH_TIMER + endif # TEST_KCONFIG diff --git a/cpu/esp32/periph/Kconfig.i2c b/cpu/esp32/periph/Kconfig.i2c index fbbce1598b04..fb4daba14b01 100644 --- a/cpu/esp32/periph/Kconfig.i2c +++ b/cpu/esp32/periph/Kconfig.i2c @@ -7,7 +7,7 @@ if TEST_KCONFIG -choice +choice ESP32_I2C_IMPLEMENTATION bool "I2C implementation" depends on MODULE_PERIPH_I2C help diff --git a/cpu/esp8266/Kconfig b/cpu/esp8266/Kconfig index 076fb9256175..175c85b9dc4d 100644 --- a/cpu/esp8266/Kconfig +++ b/cpu/esp8266/Kconfig @@ -84,5 +84,9 @@ config MODULE_ESP_I2C_SW default y if MODULE_PERIPH_I2C select MODULE_PERIPH_I2C_SW +config MODULE_ESP_SW_TIMER + bool "Use software timer" + depends on MODULE_PERIPH_TIMER + rsource "sdk/Kconfig" rsource "vendor/Kconfig" diff --git a/cpu/esp_common/Kconfig b/cpu/esp_common/Kconfig index aef54697a07b..c6668b1f6cd6 100644 --- a/cpu/esp_common/Kconfig +++ b/cpu/esp_common/Kconfig @@ -111,6 +111,9 @@ config MODULE_ESP_LOG_STARTUP endmenu +config MODULE_ESP_QEMU + bool "Simulate ESP with QEMU" + endif # TEST_KCONFIG rsource "freertos/Kconfig" diff --git a/tests/external_board_dirs/Makefile b/tests/external_board_dirs/Makefile index ccece4711903..ffe3d946b8b1 100644 --- a/tests/external_board_dirs/Makefile +++ b/tests/external_board_dirs/Makefile @@ -7,5 +7,6 @@ FEATURES_REQUIRED += arch_native # Set without '?=' to also verify the docker integration when set with = EXTERNAL_BOARD_DIRS = $(CURDIR)/external_board_dir_1 EXTERNAL_BOARD_DIRS += $(CURDIR)/external_board_dir_2 +EXTERNAL_BOARD_DIRS += $(CURDIR)/esp-ci-boards include $(RIOTBASE)/Makefile.include diff --git a/tests/external_board_dirs/esp-ci-boards/esp32-ci/Kconfig b/tests/external_board_dirs/esp-ci-boards/esp32-ci/Kconfig new file mode 100644 index 000000000000..5406aa99aa3c --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp32-ci/Kconfig @@ -0,0 +1,38 @@ +# Copyright (c) 2020 HAW Hamburg +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. + +config BOARD + default "esp32-ci" if BOARD_ESP32_CI + +config BOARD_ESP32_CI + bool + default y + select BOARD_COMMON_ESP32 + select CPU_MODEL_ESP32_WROVER + select HAS_ARDUINO + select HAS_ESP_RTC_TIMER_32K + select HAS_ESP_JTAG + select HAS_PERIPH_ADC + select HAS_PERIPH_I2C + select HAS_PERIPH_PWM + select HAS_PERIPH_SPI + select HAS_SDCARD_SPI + + select HAVE_ILI9341 + +if TEST_KCONFIG + +choice ESP32_I2C_IMPLEMENTATION + default MODULE_ESP_I2C_HW +endchoice + +config MODULE_ESP_HW_COUNTER + default y + depends on MODULE_PERIPH_TIMER + +endif # TEST_KCONFIG + +source "$(RIOTBOARD)/common/esp32/Kconfig" diff --git a/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile b/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile new file mode 100644 index 000000000000..dec9a827f4f7 --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile @@ -0,0 +1,6 @@ +# This must be a different name than 'board' as it is implemented by 'esp32-wrover-kit' +MODULE = board_esp32-ci + +DIRS += $(RIOTBOARD)/esp32-wrover-kit + +include $(RIOTBASE)/Makefile.base diff --git a/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile.dep b/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile.dep new file mode 100644 index 000000000000..53c688865188 --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile.dep @@ -0,0 +1,30 @@ +# This must be a different name than 'board' as it is implemented by 'esp32-wrover-kit' +USEMODULE += board_esp32-ci + +USEMODULE += esp_idf_heap +USEMODULE += esp_log_startup +USEMODULE += esp_log_tagged +USEMODULE += esp_qemu +USEMODULE += esp_spi_ram + +ifneq (,$(filter periph_i2c,$(USEMODULE))) + USEMODULE += esp_i2c_hw +endif + +ifneq (,$(filter periph_timer,$(USEMODULE))) + USEMODULE += esp_hw_counter +endif + +ifneq (,$(filter netdev_default,$(USEMODULE))) + # if netdev_default is used, we use gnrc modules that are enabled + # in different examples to use different esp_wifi modules + ifneq (,$(filter gnrc_netif_single,$(USEMODULE))) + # if gnrc_netif_single module is enabled, esp_wifi_enterprise is used + USEMODULE += esp_wifi_enterprise + else + # in all other case esp_wifi_ap is enabled + USEMODULE += esp_wifi_ap + endif +endif + +include $(RIOTBOARD)/esp32-wrover-kit/Makefile.dep diff --git a/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile.features b/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile.features new file mode 100644 index 000000000000..ef014adbd782 --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile.features @@ -0,0 +1 @@ +include $(RIOTBOARD)/esp32-wrover-kit/Makefile.features diff --git a/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile.include b/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile.include new file mode 100644 index 000000000000..c2608e102b12 --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp32-ci/Makefile.include @@ -0,0 +1,5 @@ +# We must duplicate the include done by $(RIOTBASE)/Makefile.include +# to also include the main board header +INCLUDES += $(addprefix -I,$(wildcard $(RIOTBOARD)/esp32-wrover-kit/include)) + +include $(RIOTBOARD)/esp32-wrover-kit/Makefile.include diff --git a/tests/external_board_dirs/esp-ci-boards/esp32-ci/esp32-ci.config b/tests/external_board_dirs/esp-ci-boards/esp32-ci/esp32-ci.config new file mode 100644 index 000000000000..4586b7c1587f --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp32-ci/esp32-ci.config @@ -0,0 +1,7 @@ +# Sets up configuration for openocd +CONFIG_MODULE_ESP_JTAG=y +CONFIG_MODULE_ESP_IDF_HEAP=y +CONFIG_MODULE_ESP_LOG_STARTUP=y +CONFIG_MODULE_ESP_LOG_TAGGED=y +CONFIG_MODULE_ESP_QEMU=y +CONFIG_MODULE_ESP_SPI_RAM=y diff --git a/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Kconfig b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Kconfig new file mode 100644 index 000000000000..f791329e25ec --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Kconfig @@ -0,0 +1,21 @@ +# Copyright (c) 2020 HAW Hamburg +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. + +config BOARD + default "esp8266-ci" if BOARD_ESP8266_CI + +config BOARD_ESP8266_CI + bool + default y + select BOARD_COMMON_ESP8266 + select CPU_MODEL_ESP8266_ESP_12X + +config MODULE_ESP_SW_TIMER + default y + depends on TEST_KCONFIG + depends on MODULE_PERIPH_TIMER + +source "$(RIOTBOARD)/common/esp8266/Kconfig" diff --git a/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile new file mode 100644 index 000000000000..af94ee48c228 --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile @@ -0,0 +1,6 @@ +# This must be a different name than 'board' as it is implemented by 'esp8266-olimex-mod' +MODULE = board_esp32-ci + +DIRS += $(RIOTBOARD)/esp8266-olimex-mod + +include $(RIOTBASE)/Makefile.base diff --git a/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile.dep b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile.dep new file mode 100644 index 000000000000..1386be6607bc --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile.dep @@ -0,0 +1,18 @@ +USEMODULE += esp_log_tagged +USEMODULE += esp_log_startup +USEMODULE += esp_qemu + +ifneq (,$(filter periph_timer,$(USEMODULE))) + USEMODULE += esp_sw_timer +endif + +ifneq (,$(filter netdev_default,$(USEMODULE))) + # if netdev_default is used, we use gnrc modules that are enabled + # in different examples to use different esp_wifi modules + ifeq (,$(filter gnrc_netif_single,$(USEMODULE))) + # if gnrc_netif_single module is not enabled, esp_wifi_ap is used + USEMODULE += esp_wifi_ap + endif +endif + +include $(RIOTBOARD)/esp8266-olimex-mod/Makefile.dep diff --git a/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile.features b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile.features new file mode 100644 index 000000000000..2ad25ff5c4cc --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile.features @@ -0,0 +1,5 @@ +include $(RIOTBOARD)/esp8266-olimex-mod/Makefile.features + +ifeq (1, $(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(BOARDDIR)/$(BOARD).config +endif diff --git a/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile.include b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile.include new file mode 100644 index 000000000000..fcd817d21b0e --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/Makefile.include @@ -0,0 +1,5 @@ +# We must duplicate the include done by $(RIOTBASE)/Makefile.include +# to also include the main board header +INCLUDES += $(addprefix -I,$(wildcard $(RIOTBOARD)/esp8266-olimex-mod/include)) + +include $(RIOTBOARD)/esp8266-olimex-mod/Makefile.include diff --git a/tests/external_board_dirs/esp-ci-boards/esp8266-ci/esp8266-ci.config b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/esp8266-ci.config new file mode 100644 index 000000000000..e846e7274f36 --- /dev/null +++ b/tests/external_board_dirs/esp-ci-boards/esp8266-ci/esp8266-ci.config @@ -0,0 +1,4 @@ +# Sets up configuration for openocd +CONFIG_MODULE_ESP_LOG_STARTUP=y +CONFIG_MODULE_ESP_LOG_TAGGED=y +CONFIG_MODULE_ESP_QEMU=y diff --git a/tests/periph_i2c/Makefile b/tests/periph_i2c/Makefile index bafa06c4a255..f2d15953753b 100644 --- a/tests/periph_i2c/Makefile +++ b/tests/periph_i2c/Makefile @@ -12,4 +12,6 @@ USEMODULE += xtimer # avoid running Kconfig by default SHOULD_RUN_KCONFIG ?= +EXTERNAL_BOARD_DIRS += $(CURDIR)/../external_board_dirs/esp-ci-boards + include $(RIOTBASE)/Makefile.include