summaryrefslogtreecommitdiff
path: root/builddefs/common_features.mk
diff options
context:
space:
mode:
Diffstat (limited to 'builddefs/common_features.mk')
-rw-r--r--builddefs/common_features.mk146
1 files changed, 74 insertions, 72 deletions
diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index 802e01de43..f30a456fc3 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -171,80 +171,82 @@ endif
171 171
172VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling legacy_stm32_flash 172VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling legacy_stm32_flash
173EEPROM_DRIVER ?= vendor 173EEPROM_DRIVER ?= vendor
174ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) 174ifneq ($(strip $(EEPROM_DRIVER)),none)
175 ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
175 $(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver) 176 $(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver)
176else 177 else
177 OPT_DEFS += -DEEPROM_ENABLE 178 OPT_DEFS += -DEEPROM_ENABLE
178 COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom 179 COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom
179 COMMON_VPATH += $(DRIVER_PATH)/eeprom 180 COMMON_VPATH += $(DRIVER_PATH)/eeprom
180 COMMON_VPATH += $(PLATFORM_COMMON_DIR) 181 COMMON_VPATH += $(PLATFORM_COMMON_DIR)
181 ifeq ($(strip $(EEPROM_DRIVER)), custom) 182 ifeq ($(strip $(EEPROM_DRIVER)), custom)
182 # Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block 183 # Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block
183 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM 184 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM
184 SRC += eeprom_driver.c 185 SRC += eeprom_driver.c
185 else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling) 186 else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling)
186 # Wear-leveling EEPROM implementation 187 # Wear-leveling EEPROM implementation
187 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING 188 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
188 SRC += eeprom_driver.c eeprom_wear_leveling.c 189 SRC += eeprom_driver.c eeprom_wear_leveling.c
189 else ifeq ($(strip $(EEPROM_DRIVER)), i2c) 190 else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
190 # External I2C EEPROM implementation 191 # External I2C EEPROM implementation
191 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C 192 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
192 I2C_DRIVER_REQUIRED = yes 193 I2C_DRIVER_REQUIRED = yes
193 SRC += eeprom_driver.c eeprom_i2c.c 194 SRC += eeprom_driver.c eeprom_i2c.c
194 else ifeq ($(strip $(EEPROM_DRIVER)), spi) 195 else ifeq ($(strip $(EEPROM_DRIVER)), spi)
195 # External SPI EEPROM implementation 196 # External SPI EEPROM implementation
196 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI 197 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
197 SPI_DRIVER_REQUIRED = yes 198 SPI_DRIVER_REQUIRED = yes
198 SRC += eeprom_driver.c eeprom_spi.c 199 SRC += eeprom_driver.c eeprom_spi.c
199 else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash) 200 else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash)
200 # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) 201 # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
201 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH 202 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
202 COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash 203 COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
203 COMMON_VPATH += $(DRIVER_PATH)/flash 204 COMMON_VPATH += $(DRIVER_PATH)/flash
204 SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c 205 SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c
205 else ifeq ($(strip $(EEPROM_DRIVER)), transient) 206 else ifeq ($(strip $(EEPROM_DRIVER)), transient)
206 # Transient EEPROM implementation -- no data storage but provides runtime area for it 207 # Transient EEPROM implementation -- no data storage but provides runtime area for it
207 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT 208 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
208 SRC += eeprom_driver.c eeprom_transient.c 209 SRC += eeprom_driver.c eeprom_transient.c
209 else ifeq ($(strip $(EEPROM_DRIVER)), vendor) 210 else ifeq ($(strip $(EEPROM_DRIVER)), vendor)
210 # Vendor-implemented EEPROM 211 # Vendor-implemented EEPROM
211 OPT_DEFS += -DEEPROM_VENDOR 212 OPT_DEFS += -DEEPROM_VENDOR
212 ifeq ($(PLATFORM),AVR) 213 ifeq ($(PLATFORM),AVR)
213 # Automatically provided by avr-libc, nothing required 214 # Automatically provided by avr-libc, nothing required
214 else ifeq ($(PLATFORM),CHIBIOS) 215 else ifeq ($(PLATFORM),CHIBIOS)
215 ifneq ($(filter %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),) 216 ifneq ($(filter %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
216 # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) 217 # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
217 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH 218 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
218 COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash 219 COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
219 COMMON_VPATH += $(DRIVER_PATH)/flash 220 COMMON_VPATH += $(DRIVER_PATH)/flash
220 SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c 221 SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c
221 else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),) 222 else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),)
222 # Wear-leveling EEPROM implementation, backed by MCU flash 223 # Wear-leveling EEPROM implementation, backed by MCU flash
223 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING 224 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
224 SRC += eeprom_driver.c eeprom_wear_leveling.c 225 SRC += eeprom_driver.c eeprom_wear_leveling.c
225 WEAR_LEVELING_DRIVER ?= embedded_flash 226 WEAR_LEVELING_DRIVER ?= embedded_flash
226 else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) 227 else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
227 # True EEPROM on STM32L0xx, L1xx 228 # True EEPROM on STM32L0xx, L1xx
228 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1 229 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
229 SRC += eeprom_driver.c eeprom_stm32_L0_L1.c 230 SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
230 else ifneq ($(filter $(MCU_SERIES),RP2040),) 231 else ifneq ($(filter $(MCU_SERIES),RP2040),)
231 # Wear-leveling EEPROM implementation, backed by RP2040 flash 232 # Wear-leveling EEPROM implementation, backed by RP2040 flash
232 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING 233 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
233 SRC += eeprom_driver.c eeprom_wear_leveling.c 234 SRC += eeprom_driver.c eeprom_wear_leveling.c
234 WEAR_LEVELING_DRIVER ?= rp2040_flash 235 WEAR_LEVELING_DRIVER ?= rp2040_flash
235 else ifneq ($(filter $(MCU_SERIES),KL2x K20x),) 236 else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
236 # Teensy EEPROM implementations 237 # Teensy EEPROM implementations
237 OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM 238 OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM
238 SRC += eeprom_kinetis_flexram.c 239 SRC += eeprom_kinetis_flexram.c
239 else 240 else
240 # Fall back to transient, i.e. non-persistent 241 # Fall back to transient, i.e. non-persistent
241 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT 242 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
242 SRC += eeprom_driver.c eeprom_transient.c 243 SRC += eeprom_driver.c eeprom_transient.c
244 endif
245 else ifeq ($(PLATFORM),TEST)
246 # Test harness "EEPROM"
247 OPT_DEFS += -DEEPROM_TEST_HARNESS
248 SRC += eeprom.c
243 endif 249 endif
244 else ifeq ($(PLATFORM),TEST)
245 # Test harness "EEPROM"
246 OPT_DEFS += -DEEPROM_TEST_HARNESS
247 SRC += eeprom.c
248 endif 250 endif
249 endif 251 endif
250endif 252endif