wear_leveling_legacy_config.h (2950B)
- // Copyright 2022 Nick Brassel (@tzarc)
- // SPDX-License-Identifier: GPL-2.0-or-later
- #pragma once
- // Work out the page size to use
- #ifndef WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE
- # if defined(QMK_MCU_STM32F042)
- # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE 1024
- # elif defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072)
- # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE 2048
- # elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411)
- # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE 16384
- # endif
- #endif
- // Work out how much flash space we have
- #ifndef WEAR_LEVELING_LEGACY_EMULATION_FLASH_SIZE
- # define WEAR_LEVELING_LEGACY_EMULATION_FLASH_SIZE ((*(uint32_t *)FLASHSIZE_BASE) & 0xFFFFU) // in kB
- #endif
- // The base location of program memory
- #ifndef WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE
- # define WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE 0x08000000
- #endif
- // The number of pages to use
- #ifndef WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT
- # if defined(QMK_MCU_STM32F042)
- # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT 2
- # elif defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072)
- # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT 1
- # elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411)
- # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT 1
- # endif
- #endif
- // The origin of the emulated eeprom
- #ifndef WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS
- # if defined(QMK_MCU_STM32F042) || defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072)
- # define WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS ((uintptr_t)(WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE) + WEAR_LEVELING_LEGACY_EMULATION_FLASH_SIZE * 1024 - (WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT * WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE))
- # elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411)
- # if defined(BOOTLOADER_STM32_DFU)
- # define WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS (WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE + (1 * (WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE))) // +16k
- # elif defined(BOOTLOADER_TINYUF2)
- # define WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS (WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE + (3 * (WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE))) // +48k
- # endif
- # endif
- #endif
- // 2-byte writes
- #ifndef BACKING_STORE_WRITE_SIZE
- # define BACKING_STORE_WRITE_SIZE 2
- #endif
- // The amount of space to use for the entire set of emulation
- #ifndef WEAR_LEVELING_BACKING_SIZE
- # if defined(QMK_MCU_STM32F042) || defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072)
- # define WEAR_LEVELING_BACKING_SIZE 2048
- # elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411)
- # define WEAR_LEVELING_BACKING_SIZE 16384
- # endif
- #endif
- // The logical amount of eeprom available
- #ifndef WEAR_LEVELING_LOGICAL_SIZE
- # define WEAR_LEVELING_LOGICAL_SIZE 1024
- #endif