summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2015-11-27 19:59:02 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2016-02-17 10:54:09 +0100
commit84c035f40ba3088fff11c53e9d1a314787f4310c (patch)
treef0814cc386c714b2cb50cca57a8da8c84feb1779
parentbf57c3c17bdfd78ed519ec536b4ba29bbb5490ef (diff)
cmd_writebcb.c: add i.MX7 struct members
-rw-r--r--arch/arm/imx-common/cmd_writebcb.c25
-rw-r--r--include/configs/colibri_imx7.h1
2 files changed, 22 insertions, 4 deletions
diff --git a/arch/arm/imx-common/cmd_writebcb.c b/arch/arm/imx-common/cmd_writebcb.c
index 1ee497f110..e0d6138f63 100644
--- a/arch/arm/imx-common/cmd_writebcb.c
+++ b/arch/arm/imx-common/cmd_writebcb.c
@@ -44,8 +44,8 @@ struct mxs_nand_fcb {
uint32_t num_ecc_blocks_per_page_sdk; /* Ignored */
uint32_t metadata_bytes_sdk; /* Ignored */
uint32_t erase_threshold;
- uint32_t boot_patch;
- uint32_t patch_sectors;
+ uint32_t boot_patch; /* not iMX7 */
+ uint32_t patch_sectors; /* not iMX7 */
uint32_t firmware1_starting_sector;
uint32_t firmware2_starting_sector;
uint32_t sectors_in_firmware1;
@@ -54,11 +54,26 @@ struct mxs_nand_fcb {
uint32_t badblock_marker_byte;
uint32_t badblock_marker_start_bit;
uint32_t bb_marker_physical_offset;
- uint32_t reserved1[9];
+ uint32_t bch_type; /* only iMX7 */
+ uint32_t tm_timing2_read_latency; /* only iMX7 */
+ uint32_t tm_timing2_preambel_delay; /* only iMX7 */
+ uint32_t tm_timing2_ce_delay; /* only iMX7 */
+ uint32_t tm_timing2_postamble_delay; /* only iMX7 */
+ uint32_t tm_timing2_cmd_add_pause; /* only iMX7 */
+ uint32_t tm_timing2_data_pause; /* only iMX7 */
+ uint32_t tm_speed; /* only iMX7 */
+ uint32_t tm_timing1_busy_timeout; /* only iMX7 */
uint32_t disbbm;
- uint32_t reserved2[10];
+ uint32_t bbmark_spare_offset; /* only iMX7 */
+ uint32_t onfi_sync_enable; /* only iMX7 */
+ uint32_t onfi_sync_speed; /* only iMX7 */
+ uint32_t onfi_sync_nand_data; /* only iMX7 */
+ uint32_t reserved2[6];
uint32_t disbbm_search;
uint32_t disbbm_search_limit;
+ uint32_t reserved3[15]; /* only iMX7 */
+ uint32_t read_retry_enable; /* only iMX7 */
+ uint32_t reserved4[1]; /* only iMX7 */
};
struct mxs_nand_dbbt {
@@ -117,6 +132,8 @@ static void create_fcb(nand_info_t *nand, uint8_t *buf, int fw1_start_address,
fcb->ecc_block_0_ecc_type = 6;
#elif defined(CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES)
fcb->ecc_block_0_ecc_type = 7;
+#elif defined (CONFIG_SYS_NAND_MX7_GPMI_62_ECC_BYTES)
+ fcb->ecc_block_0_ecc_type = 31;
#endif
fcb->firmware1_starting_sector = fw1_start_address / nand->writesize;
diff --git a/include/configs/colibri_imx7.h b/include/configs/colibri_imx7.h
index 8b3391208a..f2c93e41e3 100644
--- a/include/configs/colibri_imx7.h
+++ b/include/configs/colibri_imx7.h
@@ -421,6 +421,7 @@
#define CONFIG_SYS_NAND_BASE 0x40000000
#define CONFIG_SYS_NAND_5_ADDR_CYCLE
#define CONFIG_SYS_NAND_ONFI_DETECTION
+#define CONFIG_SYS_NAND_MX7_GPMI_62_ECC_BYTES
/* UBI stuff */
#define CONFIG_RBTREE