summaryrefslogtreecommitdiff
path: root/include/nand.h
diff options
context:
space:
mode:
authorJon Loeliger <jdl@freescale.com>2006-10-11 10:16:01 -0500
committerJon Loeliger <jdl@freescale.com>2006-10-11 10:16:01 -0500
commitc3c3b089adcee06df3afd4e8b00a3fea82263bcd (patch)
treef0e65751f51993a6b46160a8362065a0e36ae315 /include/nand.h
parentbf651baa365e5447246aad6a633ccd667cf24a39 (diff)
parent2255b2d2044d434463eb2661e18018e50f1643d9 (diff)
downloadu-boot-imx-c3c3b089adcee06df3afd4e8b00a3fea82263bcd.zip
u-boot-imx-c3c3b089adcee06df3afd4e8b00a3fea82263bcd.tar.gz
u-boot-imx-c3c3b089adcee06df3afd4e8b00a3fea82263bcd.tar.bz2
Merge branch 'master' of http://www.denx.de/git/u-boot
Diffstat (limited to 'include/nand.h')
-rw-r--r--include/nand.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/include/nand.h b/include/nand.h
index 905115b..5c7311f 100644
--- a/include/nand.h
+++ b/include/nand.h
@@ -60,4 +60,61 @@ static inline int nand_erase(nand_info_t *info, ulong off, ulong size)
return info->erase(info, &instr);
}
+
+/*****************************************************************************
+ * declarations from nand_util.c
+ ****************************************************************************/
+
+struct nand_write_options {
+ u_char *buffer; /* memory block containing image to write */
+ ulong length; /* number of bytes to write */
+ ulong offset; /* start address in NAND */
+ int quiet; /* don't display progress messages */
+ int autoplace; /* if true use auto oob layout */
+ int forcejffs2; /* force jffs2 oob layout */
+ int forceyaffs; /* force yaffs oob layout */
+ int noecc; /* write without ecc */
+ int writeoob; /* image contains oob data */
+ int pad; /* pad to page size */
+ int blockalign; /* 1|2|4 set multiple of eraseblocks
+ * to align to */
+};
+
+typedef struct nand_write_options nand_write_options_t;
+
+struct nand_read_options {
+ u_char *buffer; /* memory block in which read image is written*/
+ ulong length; /* number of bytes to read */
+ ulong offset; /* start address in NAND */
+ int quiet; /* don't display progress messages */
+ int readoob; /* put oob data in image */
+};
+
+typedef struct nand_read_options nand_read_options_t;
+
+struct nand_erase_options {
+ ulong length; /* number of bytes to erase */
+ ulong offset; /* first address in NAND to erase */
+ int quiet; /* don't display progress messages */
+ int jffs2; /* if true: format for jffs2 usage
+ * (write appropriate cleanmarker blocks) */
+ int scrub; /* if true, really clean NAND by erasing
+ * bad blocks (UNSAFE) */
+};
+
+typedef struct nand_erase_options nand_erase_options_t;
+
+int nand_write_opts(nand_info_t *meminfo, const nand_write_options_t *opts);
+
+int nand_read_opts(nand_info_t *meminfo, const nand_read_options_t *opts);
+int nand_erase_opts(nand_info_t *meminfo, const nand_erase_options_t *opts);
+
+#define NAND_LOCK_STATUS_TIGHT 0x01
+#define NAND_LOCK_STATUS_LOCK 0x02
+#define NAND_LOCK_STATUS_UNLOCK 0x04
+
+int nand_lock( nand_info_t *meminfo, int tight );
+int nand_unlock( nand_info_t *meminfo, ulong start, ulong length );
+int nand_get_lock_status(nand_info_t *meminfo, ulong offset);
+
#endif