nand_device_list.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #ifndef __NAND_DEVICE_LIST_H__
  2. #define __NAND_DEVICE_LIST_H__
  3. #define NAND_MAX_ID 5
  4. #define CHIP_CNT 2
  5. #define P_SIZE 2048
  6. #define P_PER_BLK 64
  7. #define C_SIZE 512
  8. #define RAMDOM_READ (1<<0)
  9. #define CACHE_READ (1<<1)
  10. #define RAND_TYPE_SAMSUNG 0
  11. #define RAND_TYPE_TOSHIBA 1
  12. #define RAND_TYPE_NONE 2
  13. #define READ_RETRY_MAX 10
  14. struct gFeature
  15. {
  16. u32 address;
  17. u32 feature;
  18. };
  19. enum readRetryType
  20. {
  21. RTYPE_FEATURE,
  22. RTYPE_PRECMD,
  23. RTYPE_PARAPAGE,
  24. RTYPE_HYNIX_16NM,
  25. RTYPE_HYNIX
  26. };
  27. struct gFeatureSet
  28. {
  29. u8 sfeatureCmd;
  30. u8 gfeatureCmd;
  31. u8 readRetryPreCmd;
  32. u8 readRetryCnt;
  33. u32 readRetryAddress;
  34. u32 readRetryDefault;
  35. u32 readRetryStart;
  36. enum readRetryType rtype;
  37. struct gFeature Interface;
  38. struct gFeature Async_timing;
  39. };
  40. struct gRandConfig
  41. {
  42. u8 type;
  43. u32 seed[6];
  44. };
  45. enum pptbl
  46. {
  47. MICRON_8K,
  48. HYNIX_8K,
  49. SANDISK_16K,
  50. };
  51. struct MLC_feature_set
  52. {
  53. enum pptbl ptbl_idx;
  54. struct gFeatureSet FeatureSet;
  55. struct gRandConfig randConfig;
  56. };
  57. enum flashdev_vendor
  58. {
  59. VEND_SAMSUNG,
  60. VEND_MICRON,
  61. VEND_TOSHIBA,
  62. VEND_HYNIX,
  63. VEND_SANDISK,
  64. VEND_NONE,
  65. };
  66. enum flashdev_IOWidth
  67. {
  68. IO_8BIT = 8,
  69. IO_16BIT = 16,
  70. IO_TOGGLEDDR = 9,
  71. IO_TOGGLESDR = 10,
  72. IO_ONFI = 12,
  73. };
  74. typedef struct
  75. {
  76. u8 id[NAND_MAX_ID];
  77. u8 id_length;
  78. u8 addr_cycle;
  79. enum flashdev_IOWidth iowidth;
  80. u16 totalsize;
  81. u16 blocksize;
  82. u16 pagesize;
  83. u16 sparesize;
  84. u32 timmingsetting;
  85. u32 s_acccon;
  86. u32 s_acccon1;
  87. u32 freq;
  88. enum flashdev_vendor vendor;
  89. u16 sectorsize;
  90. u8 devciename[30];
  91. u32 advancedmode;
  92. struct MLC_feature_set feature_set;
  93. }flashdev_info,*pflashdev_info;
  94. static const flashdev_info gen_FlashTable[]={
  95. {{0xAD,0xBC,0x90,0x55,0x54}, 5,5,IO_16BIT,512,128,2048,64,0x21014133, 0,0,0,VEND_NONE,512, "H9DA4GH4JJAMCR_4EM",0},
  96. {{0xAD,0xBC,0x90,0x55,0x56}, 5,5,IO_16BIT,512,128,2048,64,0x21014133, 0,0,0,VEND_NONE,512, "H9TA4GH2GDMCPR ",0},
  97. };
  98. #endif