hv_drv_FlashDB.h 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. /*
  2. * @file hv_drv_FlashDB.h
  3. * @brief flash config parameter.
  4. *
  5. * @verbatim
  6. * ==============================================================================
  7. * ##### How to use #####
  8. * ==============================================================================
  9. * (+) Use ()
  10. *
  11. * @endverbatim
  12. * @author HiView SoC Software Team
  13. * @version 1.0.0
  14. * @date 2023-06-19
  15. */
  16. #ifndef _FLASH_DB_H
  17. #define _FLASH_DB_H
  18. #include "hv_comm_Define.h"
  19. /* One Sector Erase is 4K.*/
  20. /**************************N25Q Command and Attribute****************/
  21. #define N25Q_ReadIDCmd 0x9F
  22. #define N25Q_MultiReadIDCmd 0xAF
  23. #define N25Q_SectorErase 0x20
  24. #define N25Q_MultiSectorErase 0xD8
  25. #define N25Q_ChipErase 0xC7
  26. #define N25Q_PageProg 0x02
  27. #define N25Q_PageProgDual 0xA2
  28. #define N25Q_PageProgQuad 0x32
  29. #define N25Q_PageProgQpi 0x00
  30. #define N25Q_PageRead 0x03
  31. #define N25Q_PageReadDual 0x3B
  32. #define N25Q_PageReadQuad 0x6B
  33. #define N25Q_PageReadQpi 0x00
  34. #define N25Q_Flash_ReadStatus 0x05
  35. #define N25Q_Flash_WriteEn 0x06
  36. #define N25Q_Flash_InstruWidth 0x08
  37. #define N25Q_Flash_WaitBusyFlag 0x01
  38. #define N25Q_Flash_WaitCycleDual 0x08
  39. #define N25Q_Flash_WaitCycleQpi 0x0A
  40. #define N25Q_Flash_WaitCycleFastDual 0x08
  41. #define N25Q_Flash_WaitCycleFastQuad 0x08
  42. #define N25Q_Flash_ReadBusyCompltWait 200
  43. /**************************NMT25 Command and Attribute****************/
  44. #define MT25_ReadIDCmd 0x9F
  45. #define MT25_MultiReadIDCmd 0xAF
  46. #define MT25_SectorErase 0x20
  47. #define MT25_MultiSectorErase 0xD8
  48. #define MT25_ChipErase 0xC7
  49. #define MT25_PageProg 0x02
  50. #define MT25_PageProgDual 0xA2
  51. #define MT25_PageProgQuad 0x32
  52. #define MT25_PageProgQpi 0x00
  53. #define MT25_PageRead 0x03
  54. #define MT25_PageReadDual 0x3B
  55. #define MT25_PageReadQuad 0x6B
  56. #define MT25_PageReadQpi 0x00
  57. #define MT25_Flash_ReadStatus 0x05
  58. #define MT25_Flash_WriteEn 0x06
  59. #define MT25_Flash_InstruWidth 0x08
  60. #define MT25_Flash_WaitBusyFlag 0x01
  61. #define MT25_Flash_WaitCycleDual 0x08
  62. #define MT25_Flash_WaitCycleQpi 0x0A
  63. #define MT25_Flash_WaitCycleFastDual 0x08
  64. #define MT25_Flash_WaitCycleFastQuad 0x08
  65. #define MT25_Flash_ReadBusyCompltWait 50
  66. /**************************P25Q Command and Attribute****************/
  67. #define P25Q_ReadIDCmd 0x9F
  68. #define P25Q_ReadIDDual 0x92
  69. #define P25Q_ReadIDQuad 0x94
  70. #define P25Q_SectorErase 0x20
  71. #define P25Q_ChipErase 0xC7
  72. #define P25Q_PageProg 0x02
  73. #define P25Q_PageProgDual 0xA2
  74. #define P25Q_PageProgQuad 0x32
  75. #define P25Q_PageProgQpi 0x00
  76. #define P25Q_PageRead 0x03
  77. #define P25Q_PageReadDual 0x3B
  78. #define P25Q_PageReadQuad 0x6B
  79. #define P25Q_PageReadQpi 0x00
  80. #define P25Q_Flash_ReadStatus 0x05
  81. #define P25Q_Flash_WriteEn 0x06
  82. #define P25Q_Flash_InstruWidth 0x08
  83. #define P25Q_Flash_WaitBusyFlag 0x01
  84. #define P25Q_Flash_WaitCycleDual 0x02
  85. #define P25Q_Flash_WaitCycleQpi 0x02
  86. #define P25Q_Flash_WaitCycleFastDual 0x08
  87. #define P25Q_Flash_WaitCycleFastQuad 0x08
  88. #define P25Q_Flash_QuadEnable 0x00
  89. #define P25Q_Flash_QuadDisable 0x00
  90. #define P25Q_Flash_ReadBusyCompltWait 20
  91. /**************************W25Q Command and Attribute****************/
  92. #define W25Q_ReadIDCmd 0x9F
  93. #define W25Q_ReadIDDual 0x92
  94. #define W25Q_ReadIDQuad 0x94
  95. #define W25Q_SectorErase 0x20
  96. #define W25Q_MultiSectorErase 0xD8
  97. #define W25Q_ChipErase 0xC7
  98. #define W25Q_PageProg 0x02
  99. #define W25Q_PageProgDual 0x00
  100. #define W25Q_PageProgQuad 0x32
  101. #define W25Q_PageProgQpi 0x00
  102. #define W25Q_PageRead 0x03
  103. #define W25Q_PageReadDual 0x3B
  104. #define W25Q_PageReadQuad 0x6B
  105. #define W25Q_PageReadQpi 0x00
  106. #define W25Q_Flash_ReadStatus 0x05
  107. #define W25Q_Flash_WriteEn 0x06
  108. #define W25Q_Flash_InstruWidth 0x08
  109. #define W25Q_Flash_WaitBusyFlag 0x01
  110. #define W25Q_Flash_WaitCycleDual 0x02
  111. #define W25Q_Flash_WaitCycleQpi 0x02
  112. #define W25Q_Flash_WaitCycleFastDual 0x08
  113. #define W25Q_Flash_WaitCycleFastQuad 0x08
  114. #define W25Q_Flash_QuadEnable 0x00
  115. #define W25Q_Flash_QuadDisable 0x00
  116. #define W25Q_Flash_ReadBusyCompltWait 400
  117. /**************************GD25 Command and Attribute****************/
  118. #define GD25_ReadIDCmd 0x9F
  119. #define GD25_SectorErase 0x20
  120. #define GD25_MultiSectorErase 0xD8
  121. #define GD25_ChipErase 0xC7
  122. #define GD25_PageProg 0x02
  123. #define GD25_PageProgDual 0x00
  124. #define GD25_PageProgQuad 0x32
  125. #define GD25_PageProgQpi 0x02
  126. #define GD25_PageRead 0x03
  127. #define GD25_PageReadDual 0x3B
  128. #define GD25_PageReadQuad 0x6B
  129. #define GD25_PageReadQpi 0x00
  130. #define GD25_Flash_ReadStatus 0x05
  131. #define GD25_Flash_WriteEn 0x06
  132. #define GD25_Flash_InstruWidth 0x08
  133. #define GD25_Flash_WaitBusyFlag 0x01
  134. #define GD25_Flash_WaitCycleDual 0x00
  135. #define GD25_Flash_WaitCycleQpi 0x00
  136. #define GD25_Flash_WaitCycleFastDual 0x08
  137. #define GD25_Flash_WaitCycleFastQuad 0x08
  138. #define GD25_Flash_QuadEnable 0x00
  139. #define GD25_Flash_QuadDisable 0x00
  140. #define GD25_Flash_ReadBusyCompltWait 200
  141. /**************************GD25 Command and Attribute****************/
  142. #define MX25_ReadIDCmd 0x9F
  143. #define MX25_SectorErase 0x20
  144. #define MX25_SectorErase_4ByteAddr 0x21
  145. #define MX25_MultiSectorErase 0xD8
  146. #define MX25_MultiSectorErase_4ByteAddr 0xDC
  147. #define MX25_ChipErase 0xC7
  148. #define MX25_PageProg 0x02
  149. #define MX25_PageProg_4ByteAddr 0x12
  150. #define MX25_PageProgDual 0x00
  151. #define MX25_PageProgQuad 0x00
  152. #define MX25_PageProgQpi 0x02
  153. #define MX25_PageProgQpi_4ByteAddr 0x12
  154. #define MX25_PageProg4xIo 0x38
  155. #define MX25_PageProg4xIo_4ByteAddr 0x3E
  156. #define MX25_PageRead 0x03
  157. #define MX25_PageRead_4ByteAddr 0x13
  158. #define MX25_PageReadDual 0x3B
  159. #define MX25_PageReadDual_4ByteAddr 0x3C
  160. #define MX25_PageReadQuad 0x6B
  161. #define MX25_PageReadQpi 0xEB
  162. #define MX25_PageReadQpi_4ByteAddr 0xEC
  163. #define MX25_PageRead4xIo 0xEB
  164. #define MX25_PageRead4xIo_4ByteAddr 0xEC
  165. #define MX25_Flash_ReadStatus 0x05
  166. #define MX25_Flash_WriteEn 0x06
  167. #define MX25_Flash_InstruWidth 0x08
  168. #define MX25_Flash_WaitBusyFlag 0x01
  169. #define MX25_Flash_WaitCycleDual 0x00
  170. #define MX25_Flash_WaitCycleQpi 0x06
  171. #define MX25_Flash_WaitCycle4xIo 0x06
  172. #define MX25_Flash_WaitCycleFastDual 0x08
  173. #define MX25_Flash_WaitCycleFastQuad 0x08
  174. #define MX25_Flash_QuadEnable 0x00
  175. #define MX25_Flash_QuadDisable 0x00
  176. #define MX25_Flash_QpiEnable 0x35
  177. #define MX25_Flash_QpiDisable 0xf5
  178. #define MX25_Flash_ReadBusyCompltWait 20
  179. Status Hv_Drv_FlashDB_GetAttribute(FlashAttribute* pstFlashAttr, FlashModel enFlashModel);
  180. #endif