diff options
| author | Nick Brassel <nick@tzarc.org> | 2025-04-20 05:20:00 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-19 20:20:00 +0100 |
| commit | 5c39722ab9c9c7b86f34d4ed4ca4620a47dab01b (patch) | |
| tree | 54580856cc6c7cdea1fdf69775f67c13d0d28c82 | |
| parent | ea85ace4a90baca401e49f35365a6a8f7d3802c4 (diff) | |
Allow for disabling EEPROM subsystem entirely. (#25173)
| -rw-r--r-- | builddefs/common_features.mk | 146 | ||||
| -rw-r--r-- | data/schemas/keyboard.jsonschema | 2 | ||||
| -rw-r--r-- | quantum/dynamic_keymap.c | 2 | ||||
| -rw-r--r-- | quantum/eeconfig.c | 5 | ||||
| -rw-r--r-- | quantum/led_matrix/led_matrix.c | 1 | ||||
| -rw-r--r-- | quantum/rgb_matrix/rgb_matrix.c | 1 | ||||
| -rw-r--r-- | quantum/unicode/unicode.c | 1 | ||||
| -rw-r--r-- | quantum/via.c | 1 |
8 files changed, 75 insertions, 84 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 | ||
| 172 | VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling legacy_stm32_flash | 172 | VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling legacy_stm32_flash |
| 173 | EEPROM_DRIVER ?= vendor | 173 | EEPROM_DRIVER ?= vendor |
| 174 | ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) | 174 | ifneq ($(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) |
| 176 | else | 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 |
| 250 | endif | 252 | endif |
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 2314c72bdb..4e8bae1084 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema | |||
| @@ -319,7 +319,7 @@ | |||
| 319 | "properties": { | 319 | "properties": { |
| 320 | "driver": { | 320 | "driver": { |
| 321 | "type": "string", | 321 | "type": "string", |
| 322 | "enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"] | 322 | "enum": ["none", "custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"] |
| 323 | }, | 323 | }, |
| 324 | "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}, | 324 | "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}, |
| 325 | "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"} | 325 | "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"} |
diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index 756b232f59..59027fb694 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c | |||
| @@ -18,8 +18,6 @@ | |||
| 18 | #include "dynamic_keymap.h" | 18 | #include "dynamic_keymap.h" |
| 19 | #include "keymap_introspection.h" | 19 | #include "keymap_introspection.h" |
| 20 | #include "action.h" | 20 | #include "action.h" |
| 21 | #include "eeprom.h" | ||
| 22 | #include "progmem.h" | ||
| 23 | #include "send_string.h" | 21 | #include "send_string.h" |
| 24 | #include "keycodes.h" | 22 | #include "keycodes.h" |
| 25 | #include "nvm_dynamic_keymap.h" | 23 | #include "nvm_dynamic_keymap.h" |
diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index 9aa60fc968..31bc9a6051 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c | |||
| @@ -2,16 +2,11 @@ | |||
| 2 | #include <stdint.h> | 2 | #include <stdint.h> |
| 3 | #include <stdbool.h> | 3 | #include <stdbool.h> |
| 4 | #include "debug.h" | 4 | #include "debug.h" |
| 5 | #include "eeprom.h" | ||
| 6 | #include "eeconfig.h" | 5 | #include "eeconfig.h" |
| 7 | #include "action_layer.h" | 6 | #include "action_layer.h" |
| 8 | #include "nvm_eeconfig.h" | 7 | #include "nvm_eeconfig.h" |
| 9 | #include "keycode_config.h" | 8 | #include "keycode_config.h" |
| 10 | 9 | ||
| 11 | #ifdef EEPROM_DRIVER | ||
| 12 | # include "eeprom_driver.h" | ||
| 13 | #endif // EEPROM_DRIVER | ||
| 14 | |||
| 15 | #ifdef BACKLIGHT_ENABLE | 10 | #ifdef BACKLIGHT_ENABLE |
| 16 | # include "backlight.h" | 11 | # include "backlight.h" |
| 17 | #endif // BACKLIGHT_ENABLE | 12 | #endif // BACKLIGHT_ENABLE |
diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 2e107a66e9..f9d76e2776 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c | |||
| @@ -19,7 +19,6 @@ | |||
| 19 | 19 | ||
| 20 | #include "led_matrix.h" | 20 | #include "led_matrix.h" |
| 21 | #include "progmem.h" | 21 | #include "progmem.h" |
| 22 | #include "eeprom.h" | ||
| 23 | #include "eeconfig.h" | 22 | #include "eeconfig.h" |
| 24 | #include "keyboard.h" | 23 | #include "keyboard.h" |
| 25 | #include "sync_timer.h" | 24 | #include "sync_timer.h" |
diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index a18105c9b3..3fc9085f06 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c | |||
| @@ -18,7 +18,6 @@ | |||
| 18 | 18 | ||
| 19 | #include "rgb_matrix.h" | 19 | #include "rgb_matrix.h" |
| 20 | #include "progmem.h" | 20 | #include "progmem.h" |
| 21 | #include "eeprom.h" | ||
| 22 | #include "eeconfig.h" | 21 | #include "eeconfig.h" |
| 23 | #include "keyboard.h" | 22 | #include "keyboard.h" |
| 24 | #include "sync_timer.h" | 23 | #include "sync_timer.h" |
diff --git a/quantum/unicode/unicode.c b/quantum/unicode/unicode.c index b0729335f0..dff1d43fb4 100644 --- a/quantum/unicode/unicode.c +++ b/quantum/unicode/unicode.c | |||
| @@ -16,7 +16,6 @@ | |||
| 16 | 16 | ||
| 17 | #include "unicode.h" | 17 | #include "unicode.h" |
| 18 | 18 | ||
| 19 | #include "eeprom.h" | ||
| 20 | #include "eeconfig.h" | 19 | #include "eeconfig.h" |
| 21 | #include "action.h" | 20 | #include "action.h" |
| 22 | #include "action_util.h" | 21 | #include "action_util.h" |
diff --git a/quantum/via.c b/quantum/via.c index c746d9a608..3682b4ab2b 100644 --- a/quantum/via.c +++ b/quantum/via.c | |||
| @@ -26,7 +26,6 @@ | |||
| 26 | 26 | ||
| 27 | #include "raw_hid.h" | 27 | #include "raw_hid.h" |
| 28 | #include "dynamic_keymap.h" | 28 | #include "dynamic_keymap.h" |
| 29 | #include "eeprom.h" | ||
| 30 | #include "eeconfig.h" | 29 | #include "eeconfig.h" |
| 31 | #include "matrix.h" | 30 | #include "matrix.h" |
| 32 | #include "timer.h" | 31 | #include "timer.h" |
