1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-15 09:33:50 +01:00

cpu/esp32: add flashpage support to Kconfig

This commit is contained in:
Gunar Schorcht 2022-12-31 14:23:00 +01:00
parent f4c0d7da71
commit 6f9c64c6cb
7 changed files with 89 additions and 0 deletions

View File

@ -17,6 +17,9 @@ config CPU_FAM_ESP32
select HAS_ESP_BLE_ESP32
select HAS_ESP_HW_COUNTER
select HAS_ESP_WIFI_ENTERPRISE
select HAS_PERIPH_FLASHPAGE
select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE
select HAS_PERIPH_FLASHPAGE_PAGEWISE
select HAS_PERIPH_GPIO_LL
select HAS_PERIPH_GPIO_LL_IRQ
select HAS_PERIPH_GPIO_LL_IRQ_LEVEL_TRIGGERED_HIGH

View File

@ -18,6 +18,9 @@ config CPU_FAM_ESP32C3
select HAS_ESP_BLE
select HAS_ESP_BLE_ESP32C3
select HAS_ESP_WIFI_ENTERPRISE
select HAS_PERIPH_FLASHPAGE
select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE
select HAS_PERIPH_FLASHPAGE_PAGEWISE
select HAS_PERIPH_GPIO_LL
select HAS_PERIPH_GPIO_LL_IRQ
select HAS_PERIPH_GPIO_LL_IRQ_LEVEL_TRIGGERED_HIGH

View File

@ -13,6 +13,9 @@ config CPU_FAM_ESP32S2
select HAS_CPU_ESP32
select HAS_ESP_HW_COUNTER
select HAS_ESP_WIFI_ENTERPRISE
select HAS_PERIPH_FLASHPAGE
select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE
select HAS_PERIPH_FLASHPAGE_PAGEWISE
select HAS_PERIPH_GPIO_LL
select HAS_PERIPH_GPIO_LL_IRQ
select HAS_PERIPH_GPIO_LL_IRQ_LEVEL_TRIGGERED_HIGH

View File

@ -19,6 +19,9 @@ config CPU_FAM_ESP32S3
select HAS_ESP_BLE_ESP32C3
select HAS_ESP_HW_COUNTER
select HAS_ESP_WIFI_ENTERPRISE
select HAS_PERIPH_FLASHPAGE
select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE
select HAS_PERIPH_FLASHPAGE_PAGEWISE
select HAS_PERIPH_GPIO_LL
select HAS_PERIPH_GPIO_LL_IRQ
select HAS_PERIPH_GPIO_LL_IRQ_LEVEL_TRIGGERED_HIGH

View File

@ -23,6 +23,38 @@ else ifneq (,$(filter esp32s2,$(CPU_FAM)))
else
$(error Unkwnown ESP32x SoC variant (family))
endif
ifneq (,$(filter periph_flashpage,$(USEMODULE)))
ifneq (,$(CONFIG_ESP_FLASHPAGE_CAPACITY_64K))
FLASHFILE_POS = 0x20000
FLASHPAGE_CAP = 0x10000
else ifneq (,$(CONFIG_ESP_FLASHPAGE_CAPACITY_128K))
FLASHFILE_POS = 0x30000
FLASHPAGE_CAP = 0x20000
else ifneq (,$(CONFIG_ESP_FLASHPAGE_CAPACITY_256K))
FLASHFILE_POS = 0x50000
FLASHPAGE_CAP = 0x40000
else ifneq (,$(CONFIG_ESP_FLASHPAGE_CAPACITY_512K))
FLASHFILE_POS = 0x90000
FLASHPAGE_CAP = 0x80000
else ifneq (,$(CONFIG_ESP_FLASHPAGE_CAPACITY_1M))
FLASHFILE_POS = 0x110000
FLASHPAGE_CAP = 0x100000
else ifneq (,$(CONFIG_ESP_FLASHPAGE_CAPACITY_2M))
FLASHFILE_POS = 0x210000
FLASHPAGE_CAP = 0x200000
else
# use 512 kByte for periph_flashpage by default
FLASHFILE_POS = 0x90000
FLASHPAGE_CAP = 0x80000
CFLAGS += -DCONFIG_ESP_FLASHPAGE_CAPACITY_512K
endif
FLASHPAGE_ADDR_START = 0x10000
FLASHPAGE_ADDR_END = $(FLASHFILE_POS)
CFLAGS += -DFLASHPAGE_ADDR_START=$(FLASHPAGE_ADDR_START)
CFLAGS += -DFLASHPAGE_ADDR_END=$(FLASHPAGE_ADDR_END)
endif
FLASHFILE_POS ?= 0x10000
ESPTOOL ?= $(RIOTTOOLS)/esptools/esptool_v3.2.py

View File

@ -206,6 +206,33 @@
#define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE
#define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER
/**
* Flashpage configuration
*/
#ifndef CONFIG_ESP_FLASHPAGE_CAPACITY
#ifdef MODULE_PERIPH_FLASHPAGE
#if CONFIG_ESP_FLASHPAGE_CAPACITY_64K
#define CONFIG_ESP_FLASHPAGE_CAPACITY 0x10000
#elif CONFIG_ESP_FLASHPAGE_CAPACITY_128K
#define CONFIG_ESP_FLASHPAGE_CAPACITY 0x20000
#elif CONFIG_ESP_FLASHPAGE_CAPACITY_256K
#define CONFIG_ESP_FLASHPAGE_CAPACITY 0x40000
#elif CONFIG_ESP_FLASHPAGE_CAPACITY_512K
#define CONFIG_ESP_FLASHPAGE_CAPACITY 0x80000
#elif CONFIG_ESP_FLASHPAGE_CAPACITY_1M
#define CONFIG_ESP_FLASHPAGE_CAPACITY 0x100000
#elif CONFIG_ESP_FLASHPAGE_CAPACITY_2M
#define CONFIG_ESP_FLASHPAGE_CAPACITY 0x200000
#else
#define CONFIG_ESP_FLASHPAGE_CAPACITY 0x80000
#endif
#else /* MODULE_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE */
#define CONFIG_ESP_FLASHPAGE_CAPACITY 0x0
#endif /* MODULE_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE */
#endif /* !CONFIG_ESP_FLASHPAGE_CAPACITY */
#endif /* DOXYGEN */
/**

View File

@ -31,4 +31,22 @@ config MODULE_ESP_HW_COUNTER
registers that can be used as low-level timer peripherals. Use this
option to enable these CCOUNT and CCOMPARE register as low-level timer.
choice ESP_FLASHPAGE_CAPACITY
bool "Flashpage capacity"
default ESP_FLASHPAGE_CAPACITY_512K
depends on MODULE_PERIPH_FLASHPAGE
config ESP_FLASHPAGE_CAPACITY_64K
bool "64 kByte"
config ESP_FLASHPAGE_CAPACITY_128K
bool "128 kByte"
config ESP_FLASHPAGE_CAPACITY_256K
bool "256 kByte"
config ESP_FLASHPAGE_CAPACITY_512K
bool "512 kByte"
config ESP_FLASHPAGE_CAPACITY_1M
bool "1 MByte"
config ESP_FLASHPAGE_CAPACITY_2M
bool "2 MByte"
endchoice
endif # TEST_KCONFIG