From 41f961a197219d3cc36f4e54e4c292132b75cb1d Mon Sep 17 00:00:00 2001 From: Ollrogge Date: Thu, 17 Mar 2022 19:45:54 +0100 Subject: [PATCH] periph/flashpage: Add _in_address_space feature --- cpu/cc2538/Kconfig | 1 + cpu/cc2538/Makefile.features | 1 + cpu/efm32/Kconfig | 1 + cpu/efm32/Makefile.features | 1 + cpu/gd32v/Kconfig | 1 + cpu/gd32v/Makefile.features | 1 + cpu/kinetis/Kconfig | 2 ++ cpu/kinetis/Makefile.features | 1 + cpu/msp430_common/Kconfig | 1 + cpu/msp430_common/Makefile.features | 1 + cpu/nrf5x_common/Kconfig | 1 + cpu/nrf5x_common/Makefile.features | 1 + cpu/nrf9160/Kconfig | 1 + cpu/sam0_common/Kconfig | 1 + cpu/sam0_common/Makefile.features | 1 + cpu/stm32/Makefile.features | 1 + cpu/stm32/kconfigs/f0/Kconfig | 1 + cpu/stm32/kconfigs/f1/Kconfig | 1 + cpu/stm32/kconfigs/f3/Kconfig | 1 + cpu/stm32/kconfigs/g0/Kconfig | 1 + cpu/stm32/kconfigs/g4/Kconfig | 1 + cpu/stm32/kconfigs/l0/Kconfig | 1 + cpu/stm32/kconfigs/l1/Kconfig | 1 + cpu/stm32/kconfigs/l4/Kconfig | 1 + cpu/stm32/kconfigs/l5/Kconfig | 1 + cpu/stm32/kconfigs/u5/Kconfig | 1 + cpu/stm32/kconfigs/wb/Kconfig | 1 + cpu/stm32/kconfigs/wl/Kconfig | 1 + drivers/periph_common/Kconfig.flashpage | 5 +++++ kconfigs/Kconfig.features | 6 ++++++ 30 files changed, 40 insertions(+) diff --git a/cpu/cc2538/Kconfig b/cpu/cc2538/Kconfig index 50d27267c9..88972540eb 100644 --- a/cpu/cc2538/Kconfig +++ b/cpu/cc2538/Kconfig @@ -12,6 +12,7 @@ config CPU_FAM_CC2538 select HAS_CPU_CC2538 select HAS_PERIPH_CPUID select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_GPIO select HAS_PERIPH_GPIO_IRQ diff --git a/cpu/cc2538/Makefile.features b/cpu/cc2538/Makefile.features index a25dc67994..e19f99cf64 100644 --- a/cpu/cc2538/Makefile.features +++ b/cpu/cc2538/Makefile.features @@ -3,6 +3,7 @@ CPU_FAM = cc2538 FEATURES_PROVIDED += periph_cpuid FEATURES_PROVIDED += periph_flashpage +FEATURES_PROVIDED += periph_flashpage_in_address_space FEATURES_PROVIDED += periph_flashpage_pagewise FEATURES_PROVIDED += periph_gpio periph_gpio_irq FEATURES_PROVIDED += periph_hwrng diff --git a/cpu/efm32/Kconfig b/cpu/efm32/Kconfig index b3cb7fe977..7c39a5a769 100644 --- a/cpu/efm32/Kconfig +++ b/cpu/efm32/Kconfig @@ -10,6 +10,7 @@ config CPU_COMMON_EFM32 select HAS_CPU_EFM32 select HAS_PERIPH_CPUID select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_GPIO select HAS_PERIPH_GPIO_IRQ diff --git a/cpu/efm32/Makefile.features b/cpu/efm32/Makefile.features index 47e9bb76b0..e5e49fe300 100644 --- a/cpu/efm32/Makefile.features +++ b/cpu/efm32/Makefile.features @@ -11,6 +11,7 @@ endif FEATURES_PROVIDED += arch_efm32 FEATURES_PROVIDED += periph_cpuid FEATURES_PROVIDED += periph_flashpage +FEATURES_PROVIDED += periph_flashpage_in_address_space FEATURES_PROVIDED += periph_flashpage_pagewise FEATURES_PROVIDED += periph_gpio periph_gpio_irq FEATURES_PROVIDED += periph_rtt_set_counter diff --git a/cpu/gd32v/Kconfig b/cpu/gd32v/Kconfig index d34071cc44..7e6b245d97 100644 --- a/cpu/gd32v/Kconfig +++ b/cpu/gd32v/Kconfig @@ -12,6 +12,7 @@ config CPU_FAM_GD32V select HAS_PERIPH_CLIC select HAS_PERIPH_GPIO select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_PM select HAS_PERIPH_TIMER diff --git a/cpu/gd32v/Makefile.features b/cpu/gd32v/Makefile.features index 7dd18287e6..efe6509f76 100644 --- a/cpu/gd32v/Makefile.features +++ b/cpu/gd32v/Makefile.features @@ -7,6 +7,7 @@ FEATURES_PROVIDED += periph_timer_periodic FEATURES_PROVIDED += periph_wdt FEATURES_PROVIDED += periph_pm FEATURES_PROVIDED += periph_flashpage +FEATURES_PROVIDED += periph_flashpage_in_address_space FEATURES_PROVIDED += periph_flashpage_pagewise include $(RIOTCPU)/riscv_common/Makefile.features diff --git a/cpu/kinetis/Kconfig b/cpu/kinetis/Kconfig index 0a867907fc..5281715314 100644 --- a/cpu/kinetis/Kconfig +++ b/cpu/kinetis/Kconfig @@ -30,6 +30,7 @@ config CPU_FAM_K bool select CPU_COMMON_KINETIS select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_MCG @@ -42,6 +43,7 @@ config CPU_FAM_W bool select CPU_COMMON_KINETIS select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_MCG diff --git a/cpu/kinetis/Makefile.features b/cpu/kinetis/Makefile.features index 3a47100142..6ef7edd96e 100644 --- a/cpu/kinetis/Makefile.features +++ b/cpu/kinetis/Makefile.features @@ -21,6 +21,7 @@ include $(LAST_MAKEFILEDIR)/kinetis-info.mk ifneq (,$(filter k w,$(CPU_FAM))) FEATURES_PROVIDED += periph_flashpage + FEATURES_PROVIDED += periph_flashpage_in_address_space FEATURES_PROVIDED += periph_flashpage_pagewise endif diff --git a/cpu/msp430_common/Kconfig b/cpu/msp430_common/Kconfig index 6f5b27df0d..aaf2b5d1cc 100644 --- a/cpu/msp430_common/Kconfig +++ b/cpu/msp430_common/Kconfig @@ -33,6 +33,7 @@ config CPU_ARCH_MSP430 select HAS_ARCH_MSP430 select HAS_DBGPIN select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_NEWLIB select HAS_PERIPH_PM diff --git a/cpu/msp430_common/Makefile.features b/cpu/msp430_common/Makefile.features index f6dafead7c..b2d2886aa8 100644 --- a/cpu/msp430_common/Makefile.features +++ b/cpu/msp430_common/Makefile.features @@ -6,5 +6,6 @@ FEATURES_PROVIDED += arch_msp430 FEATURES_PROVIDED += dbgpin FEATURES_PROVIDED += newlib FEATURES_PROVIDED += periph_flashpage +FEATURES_PROVIDED += periph_flashpage_in_address_space FEATURES_PROVIDED += periph_flashpage_pagewise FEATURES_PROVIDED += periph_pm diff --git a/cpu/nrf5x_common/Kconfig b/cpu/nrf5x_common/Kconfig index 63ce5e863e..e4897d3fc2 100644 --- a/cpu/nrf5x_common/Kconfig +++ b/cpu/nrf5x_common/Kconfig @@ -9,6 +9,7 @@ config CPU_COMMON_NRF5X select HAS_BLE_NIMBLE select HAS_PERIPH_CPUID select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_GPIO select HAS_PERIPH_GPIO_IRQ diff --git a/cpu/nrf5x_common/Makefile.features b/cpu/nrf5x_common/Makefile.features index babf9ae4d4..1ba09ebd57 100644 --- a/cpu/nrf5x_common/Makefile.features +++ b/cpu/nrf5x_common/Makefile.features @@ -1,6 +1,7 @@ # Put defined MCU peripherals here (in alphabetical order) FEATURES_PROVIDED += periph_cpuid FEATURES_PROVIDED += periph_flashpage +FEATURES_PROVIDED += periph_flashpage_in_address_space FEATURES_PROVIDED += periph_flashpage_pagewise FEATURES_PROVIDED += periph_gpio periph_gpio_irq FEATURES_PROVIDED += periph_timer_periodic diff --git a/cpu/nrf9160/Kconfig b/cpu/nrf9160/Kconfig index f8b0e31e81..78b807ef94 100644 --- a/cpu/nrf9160/Kconfig +++ b/cpu/nrf9160/Kconfig @@ -9,6 +9,7 @@ config CPU_FAM_NRF9160 select HAS_CPU_NRF9160 select HAS_PERIPH_CPUID select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_GPIO select HAS_PERIPH_GPIO_IRQ diff --git a/cpu/sam0_common/Kconfig b/cpu/sam0_common/Kconfig index 0436401e66..46b3a5102f 100644 --- a/cpu/sam0_common/Kconfig +++ b/cpu/sam0_common/Kconfig @@ -9,6 +9,7 @@ config CPU_COMMON_SAM0 bool select HAS_PERIPH_CPUID select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_FLASHPAGE_RWEE select HAS_PERIPH_GPIO diff --git a/cpu/sam0_common/Makefile.features b/cpu/sam0_common/Makefile.features index 666e37bc93..705f3cb855 100644 --- a/cpu/sam0_common/Makefile.features +++ b/cpu/sam0_common/Makefile.features @@ -8,6 +8,7 @@ ifeq (,$(filter $(CPU_MODELS_WITHOUT_DMA),$(CPU_MODEL))) endif FEATURES_PROVIDED += periph_flashpage +FEATURES_PROVIDED += periph_flashpage_in_address_space FEATURES_PROVIDED += periph_flashpage_pagewise FEATURES_PROVIDED += periph_flashpage_rwee FEATURES_PROVIDED += periph_gpio periph_gpio_irq diff --git a/cpu/stm32/Makefile.features b/cpu/stm32/Makefile.features index 935cf7a3d2..e5361a963c 100644 --- a/cpu/stm32/Makefile.features +++ b/cpu/stm32/Makefile.features @@ -14,6 +14,7 @@ FEATURES_PROVIDED += periph_uart_nonblocking ifneq (,$(filter $(CPU_FAM),f0 f1 f3 g0 g4 l0 l1 l4 l5 u5 wb wl)) FEATURES_PROVIDED += periph_flashpage + FEATURES_PROVIDED += periph_flashpage_in_address_space FEATURES_PROVIDED += periph_flashpage_pagewise endif diff --git a/cpu/stm32/kconfigs/f0/Kconfig b/cpu/stm32/kconfigs/f0/Kconfig index d0c1d49834..b77840c956 100644 --- a/cpu/stm32/kconfigs/f0/Kconfig +++ b/cpu/stm32/kconfigs/f0/Kconfig @@ -14,6 +14,7 @@ config CPU_FAM_F0 select CPU_CORE_CORTEX_M0 select HAS_CPU_STM32F0 select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_FLASHPAGE_RAW select HAS_PERIPH_WDT diff --git a/cpu/stm32/kconfigs/f1/Kconfig b/cpu/stm32/kconfigs/f1/Kconfig index 5692629af7..37cf169c1b 100644 --- a/cpu/stm32/kconfigs/f1/Kconfig +++ b/cpu/stm32/kconfigs/f1/Kconfig @@ -13,6 +13,7 @@ config CPU_FAM_F1 select HAS_BOOTLOADER_STM32 select HAS_CPU_STM32F1 select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_FLASHPAGE_RAW select HAS_PERIPH_RTT_SET_COUNTER diff --git a/cpu/stm32/kconfigs/f3/Kconfig b/cpu/stm32/kconfigs/f3/Kconfig index 93651422b5..dc4edf4774 100644 --- a/cpu/stm32/kconfigs/f3/Kconfig +++ b/cpu/stm32/kconfigs/f3/Kconfig @@ -11,6 +11,7 @@ config CPU_FAM_F3 select CPU_CORE_CORTEX_M4F select HAS_CPU_STM32F3 select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_FLASHPAGE_RAW select HAS_PERIPH_RTC_MEM diff --git a/cpu/stm32/kconfigs/g0/Kconfig b/cpu/stm32/kconfigs/g0/Kconfig index b1157ce533..e2aa0381cb 100644 --- a/cpu/stm32/kconfigs/g0/Kconfig +++ b/cpu/stm32/kconfigs/g0/Kconfig @@ -11,6 +11,7 @@ config CPU_FAM_G0 select CPU_CORE_CORTEX_M0PLUS select HAS_CPU_STM32G0 select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_FLASHPAGE_RAW select HAS_PERIPH_WDT diff --git a/cpu/stm32/kconfigs/g4/Kconfig b/cpu/stm32/kconfigs/g4/Kconfig index f80a6f9746..1ec0afe20b 100644 --- a/cpu/stm32/kconfigs/g4/Kconfig +++ b/cpu/stm32/kconfigs/g4/Kconfig @@ -12,6 +12,7 @@ config CPU_FAM_G4 select HAS_CPU_STM32G4 select HAS_CORTEXM_MPU select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_HWRNG select HAS_PERIPH_WDT diff --git a/cpu/stm32/kconfigs/l0/Kconfig b/cpu/stm32/kconfigs/l0/Kconfig index 53c263dd2b..27d18d5be8 100644 --- a/cpu/stm32/kconfigs/l0/Kconfig +++ b/cpu/stm32/kconfigs/l0/Kconfig @@ -11,6 +11,7 @@ config CPU_FAM_L0 select CPU_CORE_CORTEX_M0PLUS select HAS_CPU_STM32L0 select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_EEPROM select HAS_PERIPH_RTC_MEM diff --git a/cpu/stm32/kconfigs/l1/Kconfig b/cpu/stm32/kconfigs/l1/Kconfig index 0e662839b8..21504b9a79 100644 --- a/cpu/stm32/kconfigs/l1/Kconfig +++ b/cpu/stm32/kconfigs/l1/Kconfig @@ -12,6 +12,7 @@ config CPU_FAM_L1 select HAS_CPU_STM32L1 select HAS_CORTEXM_MPU select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_EEPROM select HAS_PERIPH_RTC_MEM diff --git a/cpu/stm32/kconfigs/l4/Kconfig b/cpu/stm32/kconfigs/l4/Kconfig index 6ccd9df6af..1dbb5973d6 100644 --- a/cpu/stm32/kconfigs/l4/Kconfig +++ b/cpu/stm32/kconfigs/l4/Kconfig @@ -12,6 +12,7 @@ config CPU_FAM_L4 select HAS_CPU_STM32L4 select HAS_CORTEXM_MPU select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_HWRNG select HAS_PERIPH_RTC_MEM diff --git a/cpu/stm32/kconfigs/l5/Kconfig b/cpu/stm32/kconfigs/l5/Kconfig index 46d5f24857..7d0df70963 100644 --- a/cpu/stm32/kconfigs/l5/Kconfig +++ b/cpu/stm32/kconfigs/l5/Kconfig @@ -11,6 +11,7 @@ config CPU_FAM_L5 select CPU_CORE_CORTEX_M33 select HAS_CPU_STM32L5 select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_HWRNG select HAS_PERIPH_RTC_MEM diff --git a/cpu/stm32/kconfigs/u5/Kconfig b/cpu/stm32/kconfigs/u5/Kconfig index 3930166cb1..2d7518460d 100644 --- a/cpu/stm32/kconfigs/u5/Kconfig +++ b/cpu/stm32/kconfigs/u5/Kconfig @@ -11,6 +11,7 @@ config CPU_FAM_U5 select CPU_CORE_CORTEX_M33 select HAS_CPU_STM32U5 select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_HWRNG select HAS_PERIPH_RTC_MEM diff --git a/cpu/stm32/kconfigs/wb/Kconfig b/cpu/stm32/kconfigs/wb/Kconfig index 61f2f7444e..fc4ce877a8 100644 --- a/cpu/stm32/kconfigs/wb/Kconfig +++ b/cpu/stm32/kconfigs/wb/Kconfig @@ -11,6 +11,7 @@ config CPU_FAM_WB select CPU_CORE_CORTEX_M4 select HAS_CPU_STM32WB select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_HWRNG select HAS_PERIPH_RTC_MEM diff --git a/cpu/stm32/kconfigs/wl/Kconfig b/cpu/stm32/kconfigs/wl/Kconfig index 7df178c438..b794756942 100644 --- a/cpu/stm32/kconfigs/wl/Kconfig +++ b/cpu/stm32/kconfigs/wl/Kconfig @@ -12,6 +12,7 @@ config CPU_FAM_WL select CPU_CORE_CORTEX_M4 select HAS_CPU_STM32WL select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE select HAS_PERIPH_FLASHPAGE_PAGEWISE select HAS_PERIPH_RTC_MEM select HAS_PERIPH_WDT diff --git a/drivers/periph_common/Kconfig.flashpage b/drivers/periph_common/Kconfig.flashpage index 1b266b0d45..50dca80480 100644 --- a/drivers/periph_common/Kconfig.flashpage +++ b/drivers/periph_common/Kconfig.flashpage @@ -14,6 +14,11 @@ menuconfig MODULE_PERIPH_FLASHPAGE # periph_init_% modules are handled in Makefile. We need to define them to keep # the list the same for now. We should be able to remove them later on. +config MODULE_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE + bool "Static memory sections can fundamentally be turned into flash pages" + depends on HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE + depends on MODULE_PERIPH_FLASHPAGE_PAGEWISE + config MODULE_PERIPH_INIT_FLASHPAGE bool "Auto initialize Flashpage peripheral" default y if MODULE_PERIPH_INIT diff --git a/kconfigs/Kconfig.features b/kconfigs/Kconfig.features index 5469b2420b..c0c5e180e2 100644 --- a/kconfigs/Kconfig.features +++ b/kconfigs/Kconfig.features @@ -73,6 +73,12 @@ config HAS_ETHERNET help Indicates that Ethernet connectivity is present. +config HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE + bool + help + Indicates that static memory sections can fundamentally be turned + into flash pages. + config HAS_HIGHLEVEL_STDIO bool help