nand_device_define.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #ifndef __NAND_DEVICE_LIST_H__
  2. #define __NAND_DEVICE_LIST_H__
  3. /* #define NAND_ABTC_ATAG */
  4. /* #define ATAG_FLASH_NUMBER_INFO 0x54430006 */
  5. /* #define ATAG_FLASH_INFO 0x54430007 */
  6. struct tag_nand_number {
  7. u32 number;
  8. };
  9. #define MAX_FLASH 20 /* modify this define if device list is more than 20 later .xiaolei */
  10. #define NAND_MAX_ID 6
  11. #define CHIP_CNT 10
  12. #define P_SIZE 16384
  13. #define P_PER_BLK 256
  14. #define C_SIZE 8192
  15. #define RAMDOM_READ (1<<0)
  16. #define CACHE_READ (1<<1)
  17. #define RAND_TYPE_SAMSUNG 0
  18. #define RAND_TYPE_TOSHIBA 1
  19. #define RAND_TYPE_NONE 2
  20. #define READ_RETRY_MAX 10
  21. struct gFeature {
  22. u32 address;
  23. u32 feature;
  24. };
  25. enum readRetryType {
  26. RTYPE_MICRON,
  27. RTYPE_SANDISK,
  28. RTYPE_SANDISK_19NM,
  29. RTYPE_TOSHIBA,
  30. RTYPE_HYNIX,
  31. RTYPE_HYNIX_16NM
  32. };
  33. struct gFeatureSet {
  34. u8 sfeatureCmd;
  35. u8 gfeatureCmd;
  36. u8 readRetryPreCmd;
  37. u8 readRetryCnt;
  38. u32 readRetryAddress;
  39. u32 readRetryDefault;
  40. u32 readRetryStart;
  41. enum readRetryType rtype;
  42. struct gFeature Interface;
  43. struct gFeature Async_timing;
  44. };
  45. struct gRandConfig {
  46. u8 type;
  47. u32 seed[6];
  48. };
  49. enum pptbl {
  50. MICRON_8K,
  51. HYNIX_8K,
  52. SANDISK_16K,
  53. };
  54. struct MLC_feature_set {
  55. enum pptbl ptbl_idx;
  56. struct gFeatureSet FeatureSet;
  57. struct gRandConfig randConfig;
  58. };
  59. enum flashdev_vendor {
  60. VEND_SAMSUNG,
  61. VEND_MICRON,
  62. VEND_TOSHIBA,
  63. VEND_HYNIX,
  64. VEND_SANDISK,
  65. VEND_BIWIN,
  66. VEND_NONE,
  67. };
  68. enum flashdev_IOWidth {
  69. IO_8BIT = 8,
  70. IO_16BIT = 16,
  71. IO_TOGGLEDDR = 9,
  72. IO_TOGGLESDR = 10,
  73. IO_ONFI = 12,
  74. };
  75. typedef struct {
  76. u8 id[NAND_MAX_ID];
  77. u8 id_length;
  78. u8 addr_cycle;
  79. u32 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. u16 vendor;
  89. u16 sectorsize;
  90. u8 devciename[30];
  91. u32 advancedmode;
  92. struct MLC_feature_set feature_set;
  93. } flashdev_info_t, *pflashdev_info;
  94. #endif