esp32/boards/GENERIC: Merge with GENERIC_{SPIRAM,OTA,D2WD,UNICORE}.
These are now variants of the GENERIC board.
This work was funded through GitHub Sponsors.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
diff --git a/ports/esp32/boards/GENERIC/board.json b/ports/esp32/boards/GENERIC/board.json
index f70e2e0..d08fcfe 100644
--- a/ports/esp32/boards/GENERIC/board.json
+++ b/ports/esp32/boards/GENERIC/board.json
@@ -13,11 +13,15 @@
"esp32_devkitc.jpg"
],
"mcu": "esp32",
- "product": "ESP32",
+ "product": "ESP32 / WROOM",
"thumbnail": "",
"url": "https://www.espressif.com/en/products/modules",
"variants": {
- "idf3": "Compiled with IDF 3.x"
+ "idf3": "Compiled with IDF 3.x",
+ "d2wd": "ESP32 D2WD",
+ "spiram": "Support for SPIRAM / WROVER",
+ "unicore": "ESP32 Unicore",
+ "ota": "Support for OTA"
},
"vendor": "Espressif"
}
diff --git a/ports/esp32/boards/GENERIC/board.md b/ports/esp32/boards/GENERIC/board.md
index efb2b2c..8a66941 100644
--- a/ports/esp32/boards/GENERIC/board.md
+++ b/ports/esp32/boards/GENERIC/board.md
@@ -1 +1,9 @@
-The following files are firmware for ESP32-based boards without external SPIRAM.
+The following files are firmware that should work on most ESP32-based boards
+with 4MiB of flash, including WROOM WROVER, SOLO, PICO, and MINI modules.
+
+If your board is based on a WROVER module, or otherwise has SPIRAM (also known
+as PSRAM), then use the "spiram" variant.
+
+The "d2wd" variant is for ESP32-D2WD chips (with 2MiB flash), and "unicore" is
+for single-core ESP32 chips (e.g. the "SOLO" modules). The "ota" variant sets
+up the partition table to allow for Over-the-Air updates.
diff --git a/ports/esp32/boards/GENERIC/mpconfigboard.cmake b/ports/esp32/boards/GENERIC/mpconfigboard.cmake
index ac60dc8..29096c2 100644
--- a/ports/esp32/boards/GENERIC/mpconfigboard.cmake
+++ b/ports/esp32/boards/GENERIC/mpconfigboard.cmake
@@ -2,3 +2,47 @@
boards/sdkconfig.base
boards/sdkconfig.ble
)
+
+if(MICROPY_BOARD_VARIANT STREQUAL "d2wd")
+ set(SDKCONFIG_DEFAULTS
+ ${SDKCONFIG_DEFAULTS}
+ boards/GENERIC/sdkconfig.d2wd
+ )
+
+ list(APPEND MICROPY_DEF_BOARD
+ MICROPY_HW_MCU_NAME="ESP32-D2WD"
+ )
+endif()
+
+if(MICROPY_BOARD_VARIANT STREQUAL "ota")
+ set(SDKCONFIG_DEFAULTS
+ ${SDKCONFIG_DEFAULTS}
+ boards/GENERIC/sdkconfig.ota
+ )
+
+ list(APPEND MICROPY_DEF_BOARD
+ MICROPY_HW_BOARD_NAME="Generic ESP32 module with OTA"
+ )
+endif()
+
+if(MICROPY_BOARD_VARIANT STREQUAL "spiram")
+ set(SDKCONFIG_DEFAULTS
+ ${SDKCONFIG_DEFAULTS}
+ boards/sdkconfig.spiram
+ )
+
+ list(APPEND MICROPY_DEF_BOARD
+ MICROPY_HW_BOARD_NAME="Generic ESP32 module with SPIRAM"
+ )
+endif()
+
+if(MICROPY_BOARD_VARIANT STREQUAL "unicore")
+ set(SDKCONFIG_DEFAULTS
+ ${SDKCONFIG_DEFAULTS}
+ boards/GENERIC/sdkconfig.unicore
+ )
+
+ list(APPEND MICROPY_DEF_BOARD
+ MICROPY_HW_MCU_NAME="ESP32-UNICORE"
+ )
+endif()
diff --git a/ports/esp32/boards/GENERIC/mpconfigboard.h b/ports/esp32/boards/GENERIC/mpconfigboard.h
index 644807f..7171a84 100644
--- a/ports/esp32/boards/GENERIC/mpconfigboard.h
+++ b/ports/esp32/boards/GENERIC/mpconfigboard.h
@@ -1,2 +1,10 @@
-#define MICROPY_HW_BOARD_NAME "ESP32 module"
+// Both of these can be set by mpconfigboard.cmake if a BOARD_VARIANT is
+// specified.
+
+#ifndef MICROPY_HW_BOARD_NAME
+#define MICROPY_HW_BOARD_NAME "Generic ESP32 module"
+#endif
+
+#ifndef MICROPY_HW_MCU_NAME
#define MICROPY_HW_MCU_NAME "ESP32"
+#endif
diff --git a/ports/esp32/boards/GENERIC_D2WD/sdkconfig.board b/ports/esp32/boards/GENERIC/sdkconfig.d2wd
similarity index 100%
rename from ports/esp32/boards/GENERIC_D2WD/sdkconfig.board
rename to ports/esp32/boards/GENERIC/sdkconfig.d2wd
diff --git a/ports/esp32/boards/GENERIC_OTA/sdkconfig.board b/ports/esp32/boards/GENERIC/sdkconfig.ota
similarity index 100%
rename from ports/esp32/boards/GENERIC_OTA/sdkconfig.board
rename to ports/esp32/boards/GENERIC/sdkconfig.ota
diff --git a/ports/esp32/boards/GENERIC_UNICORE/sdkconfig.board b/ports/esp32/boards/GENERIC/sdkconfig.unicore
similarity index 100%
rename from ports/esp32/boards/GENERIC_UNICORE/sdkconfig.board
rename to ports/esp32/boards/GENERIC/sdkconfig.unicore
diff --git a/ports/esp32/boards/GENERIC_D2WD/board.json b/ports/esp32/boards/GENERIC_D2WD/board.json
deleted file mode 100644
index 0582820..0000000
--- a/ports/esp32/boards/GENERIC_D2WD/board.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "deploy": [
- "../deploy.md"
- ],
- "docs": "",
- "features": [
- "BLE",
- "External Flash",
- "WiFi"
- ],
- "id": "esp32-d2wd",
- "images": [
- "generic_d2wd.jpg"
- ],
- "mcu": "esp32",
- "product": "ESP32 D2WD",
- "thumbnail": "",
- "url": "https://www.espressif.com/en/products/modules",
- "vendor": "Espressif"
-}
diff --git a/ports/esp32/boards/GENERIC_D2WD/mpconfigboard.cmake b/ports/esp32/boards/GENERIC_D2WD/mpconfigboard.cmake
deleted file mode 100644
index 88cc7a7..0000000
--- a/ports/esp32/boards/GENERIC_D2WD/mpconfigboard.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-set(SDKCONFIG_DEFAULTS
- boards/sdkconfig.base
- boards/sdkconfig.ble
- boards/GENERIC_D2WD/sdkconfig.board
-)
diff --git a/ports/esp32/boards/GENERIC_D2WD/mpconfigboard.h b/ports/esp32/boards/GENERIC_D2WD/mpconfigboard.h
deleted file mode 100644
index 8923d46..0000000
--- a/ports/esp32/boards/GENERIC_D2WD/mpconfigboard.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define MICROPY_HW_BOARD_NAME "Generic ESP32-D2WD module"
-#define MICROPY_HW_MCU_NAME "ESP32-D2WD"
diff --git a/ports/esp32/boards/GENERIC_OTA/board.json b/ports/esp32/boards/GENERIC_OTA/board.json
deleted file mode 100644
index 3b882e0..0000000
--- a/ports/esp32/boards/GENERIC_OTA/board.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "deploy": [
- "../deploy.md"
- ],
- "docs": "",
- "features": [
- "BLE",
- "External Flash",
- "WiFi"
- ],
- "id": "esp32-ota",
- "images": [
- "esp32_devkitc.jpg"
- ],
- "mcu": "esp32",
- "product": "ESP32 with OTA support",
- "thumbnail": "",
- "url": "https://www.espressif.com/en/products/modules",
- "vendor": "Espressif"
-}
diff --git a/ports/esp32/boards/GENERIC_OTA/mpconfigboard.cmake b/ports/esp32/boards/GENERIC_OTA/mpconfigboard.cmake
deleted file mode 100644
index 8bc9d50..0000000
--- a/ports/esp32/boards/GENERIC_OTA/mpconfigboard.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-set(SDKCONFIG_DEFAULTS
- boards/sdkconfig.base
- boards/sdkconfig.ble
- boards/GENERIC_OTA/sdkconfig.board
-)
diff --git a/ports/esp32/boards/GENERIC_OTA/mpconfigboard.h b/ports/esp32/boards/GENERIC_OTA/mpconfigboard.h
deleted file mode 100644
index ff39c4b..0000000
--- a/ports/esp32/boards/GENERIC_OTA/mpconfigboard.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define MICROPY_HW_BOARD_NAME "4MB/OTA module"
-#define MICROPY_HW_MCU_NAME "ESP32"
diff --git a/ports/esp32/boards/GENERIC_SPIRAM/board.json b/ports/esp32/boards/GENERIC_SPIRAM/board.json
deleted file mode 100644
index 0224202..0000000
--- a/ports/esp32/boards/GENERIC_SPIRAM/board.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "deploy": [
- "../deploy.md"
- ],
- "docs": "",
- "features": [
- "BLE",
- "External Flash",
- "External RAM",
- "WiFi"
- ],
- "id": "esp32spiram",
- "images": [
- "esp32_psram.jpg"
- ],
- "mcu": "esp32",
- "product": "ESP32 with SPIRAM",
- "thumbnail": "",
- "url": "https://www.espressif.com/en/products/modules",
- "variants": {
- "idf3": "Compiled with IDF 3.x"
- },
- "vendor": "Espressif"
-}
diff --git a/ports/esp32/boards/GENERIC_SPIRAM/board.md b/ports/esp32/boards/GENERIC_SPIRAM/board.md
deleted file mode 100644
index c638f63..0000000
--- a/ports/esp32/boards/GENERIC_SPIRAM/board.md
+++ /dev/null
@@ -1 +0,0 @@
-The following files are firmware for ESP32-based boards with external SPIRAM (also known as PSRAM).
diff --git a/ports/esp32/boards/GENERIC_SPIRAM/mpconfigboard.cmake b/ports/esp32/boards/GENERIC_SPIRAM/mpconfigboard.cmake
deleted file mode 100644
index 2e1d799..0000000
--- a/ports/esp32/boards/GENERIC_SPIRAM/mpconfigboard.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-set(SDKCONFIG_DEFAULTS
- boards/sdkconfig.base
- boards/sdkconfig.ble
- boards/sdkconfig.spiram
-)
diff --git a/ports/esp32/boards/GENERIC_SPIRAM/mpconfigboard.h b/ports/esp32/boards/GENERIC_SPIRAM/mpconfigboard.h
deleted file mode 100644
index a5982e4..0000000
--- a/ports/esp32/boards/GENERIC_SPIRAM/mpconfigboard.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define MICROPY_HW_BOARD_NAME "ESP32 module (spiram)"
-#define MICROPY_HW_MCU_NAME "ESP32"
diff --git a/ports/esp32/boards/GENERIC_UNICORE/board.json b/ports/esp32/boards/GENERIC_UNICORE/board.json
deleted file mode 100644
index 1f3beaf..0000000
--- a/ports/esp32/boards/GENERIC_UNICORE/board.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "deploy": [
- "../deploy.md"
- ],
- "docs": "",
- "features": [
- "BLE",
- "External Flash",
- "WiFi"
- ],
- "id": "esp32-unicore",
- "images": [
- "generic_unicore.jpg"
- ],
- "mcu": "esp32",
- "product": "ESP32 Unicore",
- "thumbnail": "",
- "url": "https://www.espressif.com/en/products/modules",
- "vendor": "Espressif"
-}
diff --git a/ports/esp32/boards/GENERIC_UNICORE/board.md b/ports/esp32/boards/GENERIC_UNICORE/board.md
deleted file mode 100644
index b41c167..0000000
--- a/ports/esp32/boards/GENERIC_UNICORE/board.md
+++ /dev/null
@@ -1 +0,0 @@
-The following files are daily firmware for single-core ESP32-based boards without external SPIRAM.
diff --git a/ports/esp32/boards/GENERIC_UNICORE/mpconfigboard.cmake b/ports/esp32/boards/GENERIC_UNICORE/mpconfigboard.cmake
deleted file mode 100644
index 2f34688..0000000
--- a/ports/esp32/boards/GENERIC_UNICORE/mpconfigboard.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-set(SDKCONFIG_DEFAULTS
- boards/sdkconfig.base
- boards/sdkconfig.ble
- boards/GENERIC_UNICORE/sdkconfig.board
-)
diff --git a/ports/esp32/boards/GENERIC_UNICORE/mpconfigboard.h b/ports/esp32/boards/GENERIC_UNICORE/mpconfigboard.h
deleted file mode 100644
index 5d0624b..0000000
--- a/ports/esp32/boards/GENERIC_UNICORE/mpconfigboard.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define MICROPY_HW_BOARD_NAME "ESP32 Unicore module"
-#define MICROPY_HW_MCU_NAME "ESP32-UNICORE"
diff --git a/ports/esp32/esp32_common.cmake b/ports/esp32/esp32_common.cmake
index 098df1f..f521904 100644
--- a/ports/esp32/esp32_common.cmake
+++ b/ports/esp32/esp32_common.cmake
@@ -170,6 +170,7 @@
# Set compile options for this port.
target_compile_definitions(${MICROPY_TARGET} PUBLIC
${MICROPY_DEF_CORE}
+ ${MICROPY_DEF_BOARD}
MICROPY_ESP_IDF_4=1
MICROPY_VFS_FAT=1
MICROPY_VFS_LFS2=1