1. --- lf1000.c.original   2010-07-15 20:33:23.000000000 -0400
  2. +++ lf1000.c    2010-07-15 22:01:10.000000000 -0400
  3. @@ -81,9 +81,28 @@
  4.  const char *part_probes[] = { "cmdlinepart", NULL };
  5.  #endif
  6.  
  7. +//NIRV START
  8. +
  9. +#define CONFIG_NAND_LF1000_P0_SIZE 0x00020000
  10. +#define CONFIG_NAND_LF1000_P1_SIZE 0x000E0000
  11. +#define CONFIG_NAND_LF1000_P2_SIZE 0x00100000
  12. +#define CONFIG_NAND_LF1000_P3_SIZE 0x00200000
  13. +#define CONFIG_NAND_LF1000_P4_SIZE 0x00E00000
  14. +#define CONFIG_NAND_LF1000_P5_SIZE 0x00200000
  15. +#define CONFIG_NAND_LF1000_P6_SIZE 0x00E00000
  16. +#define CONFIG_NAND_LF1000_P7_SIZE 0x0DE00000
  17. +
  18. +
  19. +/*
  20. + * Define partitions for flash devices
  21. + */
  22. +
  23. +#if defined (CONFIG_MACH_ME_MP2530F)
  24. +#define LF_ERASE_BLK 0x4000
  25. +#else
  26.  /* All other boards have big erase blocks */
  27. -/* TODO: FIXME: when MLC NAND is used, this ought to be 0x40000 */
  28. -#define LF_ERASE_BLK 0x40000
  29. +#define LF_ERASE_BLK 0x20000
  30. +#endif
  31.  
  32.  /* Just shortening the names for clearer code */
  33.  #define LF_P0 (CONFIG_NAND_LF1000_P0_SIZE)
  34. @@ -91,6 +110,76 @@
  35.  #define LF_P2 (CONFIG_NAND_LF1000_P2_SIZE)
  36.  #define LF_P3 (CONFIG_NAND_LF1000_P3_SIZE)
  37.  #define LF_P4 (CONFIG_NAND_LF1000_P4_SIZE)
  38. +#define LF_P5 (CONFIG_NAND_LF1000_P5_SIZE)
  39. +#define LF_P6 (CONFIG_NAND_LF1000_P6_SIZE)
  40. +#define LF_P7 (CONFIG_NAND_LF1000_P7_SIZE)
  41. +
  42. +#if ((LF_P0 % LF_ERASE_BLK) || (LF_P1 % LF_ERASE_BLK) || \
  43. +   (LF_P2 % LF_ERASE_BLK) || (LF_P3 % LF_ERASE_BLK) || \
  44. +   (LF_P4 % LF_ERASE_BLK) || (LF_P5 % LF_ERASE_BLK) || \
  45. +   (LF_P6 % LF_ERASE_BLK) || (LF_P7 % LF_ERASE_BLK))
  46. +#error "NAND partitions must be multiple of erase block."
  47. +#endif
  48. +
  49. +static struct mtd_partition partition_info[] = {
  50. +   { .name     = "LF1000_uniboot",
  51. +     .offset   = 0,
  52. +     .size     = LF_P0},
  53. +   { .name     = "Atomic_Boot_Flags",
  54. +     .offset   = LF_P0,
  55. +     .size     = LF_P1 },
  56. +   { .name     = "Manufacturing_Data",
  57. +     .offset   = LF_P0 + LF_P1,
  58. +     .size     = LF_P2},
  59. +   { .name     = "Kernel0",
  60. +     .offset   = LF_P0 + LF_P1 + LF_P2,
  61. +     .size     = LF_P3 },
  62. +   { .name     = "Linux_RFS0",
  63. +     .offset   = LF_P0 + LF_P1 + LF_P2 + LF_P3,
  64. +     .size     = LF_P4 },
  65. +   { .name     = "Kernel1",
  66. +     .offset   = LF_P0 + LF_P1 + LF_P2 + LF_P3 + LF_P4,
  67. +     .size     = LF_P5 },
  68. +   { .name     = "Linux_RFS1",
  69. +     .offset   = LF_P0 + LF_P1 + LF_P2 + LF_P3 + LF_P4 + LF_P5,
  70. +     .size     = LF_P6 },
  71. +   { .name     = "Brio",
  72. +     .offset   = LF_P0 + LF_P1 + LF_P2 + LF_P3 + LF_P4 + LF_P5 + LF_P6,
  73. +     .size     = LF_P7 },
  74. +   { .name     = "EXT",
  75. +     .offset   = LF_P0 + LF_P1 + LF_P2 + LF_P3 + LF_P4 + LF_P5 + LF_P6 + LF_P7,
  76. +     .size     = MTDPART_SIZ_FULL },
  77. +};
  78. +
  79. +static struct mtd_partition partition_info_cart[] = {
  80. +   { .name     = "Cartridge",
  81. +     .offset   = 0,
  82. +     .size     = MTDPART_SIZ_FULL },
  83. +};
  84. +
  85. +#undef LF_P0
  86. +#undef LF_P1
  87. +#undef LF_P2
  88. +#undef LF_P3
  89. +#undef LF_P4
  90. +#undef LF_P5
  91. +#undef LF_P6
  92. +#undef LF_P7
  93. +#undef LF_ERASE_BLK
  94. +
  95. +//NIRV-END
  96. +
  97. +/* All other boards have big erase blocks */
  98. +/* TODO: FIXME: when MLC NAND is used, this ought to be 0x40000 */
  99. +
  100. +//#define LF_ERASE_BLK 0x40000
  101. +
  102. +/* Just shortening the names for clearer code */
  103. +/*#define LF_P0 (CONFIG_NAND_LF1000_P0_SIZE)
  104. +#define LF_P1 (CONFIG_NAND_LF1000_P1_SIZE)
  105. +#define LF_P2 (CONFIG_NAND_LF1000_P2_SIZE)
  106. +#define LF_P3 (CONFIG_NAND_LF1000_P3_SIZE)
  107. +#define LF_P4 (CONFIG_NAND_LF1000_P4_SIZE)
  108.  
  109.  #if ((LF_P0 % LF_ERASE_BLK) || (LF_P1 % LF_ERASE_BLK) || \
  110.       (LF_P2 % LF_ERASE_BLK) || (LF_P3 % LF_ERASE_BLK) || \
  111. @@ -134,6 +223,13 @@
  112.  #undef LF_P3
  113.  #undef LF_P4
  114.  #undef LF_ERASE_BLK
  115. +*/
  116. +
  117. +
  118. +
  119. +
  120. +
  121. +
  122.  
  123.  /* Ask gpio driver, which sampled this at boot time. */
  124.  static u8 get_cart_type(void)
  125. @@ -998,8 +1094,8 @@
  126.     if (base_parts_nb == 0) {
  127.         if (gpio_get_boot_source_config() == SCRATCH_BOOT_SOURCE_USB)
  128.         {
  129. -           base_parts = partition_info_recovery;
  130. -           base_parts_nb = ARRAY_SIZE(partition_info_recovery);
  131. +       //  base_parts = partition_info_recovery;
  132. +       //  base_parts_nb = ARRAY_SIZE(partition_info_recovery);
  133.         }
  134.         else
  135.         {