fal_cfg.h 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2019-04-10 ZYH first version
  9. */
  10. #ifndef _FAL_CFG_H_
  11. #define _FAL_CFG_H_
  12. #include <rtthread.h>
  13. #include <board.h>
  14. #if defined(BSP_USING_ON_CHIP_FLASH)
  15. #define FLASH_SIZE_GRANULARITY_16K (4 * 16 * 1024)
  16. #define FLASH_SIZE_GRANULARITY_64K (64 * 1024)
  17. #define FLASH_SIZE_GRANULARITY_128K (15 * 128 * 1024)
  18. #define STM32_FLASH_START_ADRESS_16K STM32_FLASH_START_ADRESS
  19. #define STM32_FLASH_START_ADRESS_64K (STM32_FLASH_START_ADRESS_16K + FLASH_SIZE_GRANULARITY_16K)
  20. #define STM32_FLASH_START_ADRESS_128K (STM32_FLASH_START_ADRESS_64K + FLASH_SIZE_GRANULARITY_64K)
  21. extern const struct fal_flash_dev stm32_onchip_flash_16k;
  22. extern const struct fal_flash_dev stm32_onchip_flash_64k;
  23. extern const struct fal_flash_dev stm32_onchip_flash_128k;
  24. #endif
  25. #if defined(BSP_USING_QSPI_FLASH)
  26. extern struct fal_flash_dev nor_flash0;
  27. #endif
  28. /* flash device table */
  29. #if defined(BSP_USING_QSPI_FLASH) && defined(BSP_USING_ON_CHIP_FLASH)
  30. #define FAL_FLASH_DEV_TABLE \
  31. { \
  32. &stm32_onchip_flash_16k, \
  33. &stm32_onchip_flash_64k, \
  34. &stm32_onchip_flash_128k, \
  35. &nor_flash0, \
  36. }
  37. #define ONCHIP_FLASH_PART_TABLE \
  38. {FAL_PART_MAGIC_WROD, "bootloader", "onchip_flash_16k", 0 , FLASH_SIZE_GRANULARITY_16K , 0}, \
  39. {FAL_PART_MAGIC_WROD, "param", "onchip_flash_64k", 0 , FLASH_SIZE_GRANULARITY_64K , 0}, \
  40. {FAL_PART_MAGIC_WROD, "app", "onchip_flash_128k", 0 , FLASH_SIZE_GRANULARITY_128K, 0},
  41. #define QSPI_FLASH_PART_TABLE \
  42. {FAL_PART_MAGIC_WROD, "qspiflash", FAL_USING_NOR_FLASH_DEV_NAME, 0 , (16 * 1024 * 1024), 0},
  43. #elif defined(BSP_USING_QSPI_FLASH)
  44. #define FAL_FLASH_DEV_TABLE \
  45. { \
  46. &nor_flash0, \
  47. }
  48. #define ONCHIP_FLASH_PART_TABLE
  49. #define QSPI_FLASH_PART_TABLE \
  50. {FAL_PART_MAGIC_WROD, "qspiflash", FAL_USING_NOR_FLASH_DEV_NAME, 0 , (16 * 1024 * 1024), 0},
  51. #elif defined(BSP_USING_ON_CHIP_FLASH)
  52. #define FAL_FLASH_DEV_TABLE \
  53. { \
  54. &stm32_onchip_flash_16k, \
  55. &stm32_onchip_flash_64k, \
  56. &stm32_onchip_flash_128k, \
  57. }
  58. #define ONCHIP_FLASH_PART_TABLE \
  59. {FAL_PART_MAGIC_WROD, "bootloader", "onchip_flash_16k", 0 , FLASH_SIZE_GRANULARITY_16K , 0}, \
  60. {FAL_PART_MAGIC_WROD, "param", "onchip_flash_64k", 0 , FLASH_SIZE_GRANULARITY_64K , 0}, \
  61. {FAL_PART_MAGIC_WROD, "app", "onchip_flash_128k", 0 , FLASH_SIZE_GRANULARITY_128K, 0},
  62. #define QSPI_FLASH_PART_TABLE
  63. #else
  64. #define FAL_FLASH_DEV_TABLE { 0 }
  65. #define FAL_PART_TABLE { 0 }
  66. #endif
  67. #ifdef FAL_PART_HAS_TABLE_CFG
  68. /* partition table */
  69. #define FAL_PART_TABLE \
  70. { \
  71. ONCHIP_FLASH_PART_TABLE \
  72. QSPI_FLASH_PART_TABLE \
  73. }
  74. #endif /* FAL_PART_HAS_TABLE_CFG */
  75. #endif /* _FAL_CFG_H_ */