logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

wear_leveling_legacy_config.h (2950B)


  1. // Copyright 2022 Nick Brassel (@tzarc)
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. // Work out the page size to use
  5. #ifndef WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE
  6. # if defined(QMK_MCU_STM32F042)
  7. # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE 1024
  8. # elif defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072)
  9. # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE 2048
  10. # elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411)
  11. # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE 16384
  12. # endif
  13. #endif
  14. // Work out how much flash space we have
  15. #ifndef WEAR_LEVELING_LEGACY_EMULATION_FLASH_SIZE
  16. # define WEAR_LEVELING_LEGACY_EMULATION_FLASH_SIZE ((*(uint32_t *)FLASHSIZE_BASE) & 0xFFFFU) // in kB
  17. #endif
  18. // The base location of program memory
  19. #ifndef WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE
  20. # define WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE 0x08000000
  21. #endif
  22. // The number of pages to use
  23. #ifndef WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT
  24. # if defined(QMK_MCU_STM32F042)
  25. # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT 2
  26. # elif defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072)
  27. # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT 1
  28. # elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411)
  29. # define WEAR_LEVELING_LEGACY_EMULATION_PAGE_COUNT 1
  30. # endif
  31. #endif
  32. // The origin of the emulated eeprom
  33. #ifndef WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS
  34. # if defined(QMK_MCU_STM32F042) || defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072)
  35. # 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))
  36. # elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411)
  37. # if defined(BOOTLOADER_STM32_DFU)
  38. # define WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS (WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE + (1 * (WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE))) // +16k
  39. # elif defined(BOOTLOADER_TINYUF2)
  40. # define WEAR_LEVELING_LEGACY_EMULATION_BASE_PAGE_ADDRESS (WEAR_LEVELING_LEGACY_EMULATION_FLASH_BASE + (3 * (WEAR_LEVELING_LEGACY_EMULATION_PAGE_SIZE))) // +48k
  41. # endif
  42. # endif
  43. #endif
  44. // 2-byte writes
  45. #ifndef BACKING_STORE_WRITE_SIZE
  46. # define BACKING_STORE_WRITE_SIZE 2
  47. #endif
  48. // The amount of space to use for the entire set of emulation
  49. #ifndef WEAR_LEVELING_BACKING_SIZE
  50. # if defined(QMK_MCU_STM32F042) || defined(QMK_MCU_STM32F070) || defined(QMK_MCU_STM32F072)
  51. # define WEAR_LEVELING_BACKING_SIZE 2048
  52. # elif defined(QMK_MCU_STM32F401) || defined(QMK_MCU_STM32F411)
  53. # define WEAR_LEVELING_BACKING_SIZE 16384
  54. # endif
  55. #endif
  56. // The logical amount of eeprom available
  57. #ifndef WEAR_LEVELING_LOGICAL_SIZE
  58. # define WEAR_LEVELING_LOGICAL_SIZE 1024
  59. #endif