1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>MTD NAND Driver Programming Interface</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="MTD NAND Driver Programming Interface"><link rel="next" href="intro.html" title="Chapter&#160;1.&#160;Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">MTD NAND Driver Programming Interface</th></tr><tr><td width="20%" align="left">&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<a accesskey="n" href="intro.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a name="MTD-NAND-Guide"></a>MTD NAND Driver Programming Interface</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Thomas</span> <span class="surname">Gleixner</span></h3><div class="affiliation"><div class="address"><p><br>
2&#160;&#160;&#160;&#160;&#160;&#160;<code class="email">&lt;<a class="email" href="mailto:tglx@linutronix.de">tglx@linutronix.de</a>&gt;</code><br>
3&#160;&#160;&#160;&#160;&#160;</p></div></div></div></div></div><div><p class="copyright">Copyright &#169; 2004 Thomas Gleixner</p></div><div><div class="legalnotice"><a name="idp1102105244"></a><p>
4     This documentation is free software; you can redistribute
5     it and/or modify it under the terms of the GNU General Public
6     License version 2 as published by the Free Software Foundation.
7   </p><p>
8     This program is distributed in the hope that it will be
9     useful, but WITHOUT ANY WARRANTY; without even the implied
10     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11     See the GNU General Public License for more details.
12   </p><p>
13     You should have received a copy of the GNU General Public
14     License along with this program; if not, write to the Free
15     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
16     MA 02111-1307 USA
17   </p><p>
18     For more details see the file COPYING in the source
19     distribution of Linux.
20   </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="intro.html">1. Introduction</a></span></dt><dt><span class="chapter"><a href="bugs.html">2. Known Bugs And Assumptions</a></span></dt><dt><span class="chapter"><a href="dochints.html">3. Documentation hints</a></span></dt><dd><dl><dt><span class="sect1"><a href="dochints.html#Function_identifiers_XXX">Function identifiers [XXX]</a></span></dt><dt><span class="sect1"><a href="Struct_member_identifiers_XXX.html">Struct member identifiers [XXX]</a></span></dt></dl></dd><dt><span class="chapter"><a href="basicboarddriver.html">4. Basic board driver</a></span></dt><dd><dl><dt><span class="sect1"><a href="basicboarddriver.html#Basic_defines">Basic defines</a></span></dt><dt><span class="sect1"><a href="Partition_defines.html">Partition defines</a></span></dt><dt><span class="sect1"><a href="Hardware_control_functions.html">Hardware control function</a></span></dt><dt><span class="sect1"><a href="Device_ready_function.html">Device ready function</a></span></dt><dt><span class="sect1"><a href="Init_function.html">Init function</a></span></dt><dt><span class="sect1"><a href="Exit_function.html">Exit function</a></span></dt></dl></dd><dt><span class="chapter"><a href="boarddriversadvanced.html">5. Advanced board driver functions</a></span></dt><dd><dl><dt><span class="sect1"><a href="boarddriversadvanced.html#Multiple_chip_control">Multiple chip control</a></span></dt><dt><span class="sect1"><a href="Hardware_ECC_support.html">Hardware ECC support</a></span></dt><dd><dl><dt><span class="sect2"><a href="Hardware_ECC_support.html#Functions_and_constants">Functions and constants</a></span></dt><dt><span class="sect2"><a href="Hardware_ECC_support.html#Hardware_ECC_with_syndrome_calculation">Hardware ECC with syndrome calculation</a></span></dt></dl></dd><dt><span class="sect1"><a href="Bad_Block_table_support.html">Bad block table support</a></span></dt><dd><dl><dt><span class="sect2"><a href="Bad_Block_table_support.html#Flash_based_tables">Flash based tables</a></span></dt><dt><span class="sect2"><a href="Bad_Block_table_support.html#User_defined_tables">User defined tables</a></span></dt></dl></dd><dt><span class="sect1"><a href="Spare_area_placement.html">Spare area (auto)placement</a></span></dt><dd><dl><dt><span class="sect2"><a href="Spare_area_placement.html#Placement_defined_by_fs_driver">Placement defined by fs driver</a></span></dt><dt><span class="sect2"><a href="Spare_area_placement.html#Automatic_placement">Automatic placement</a></span></dt></dl></dd><dt><span class="sect1"><a href="Spare_area_autoplacement_default.html">Spare area autoplacement default schemes</a></span></dt><dd><dl><dt><span class="sect2"><a href="Spare_area_autoplacement_default.html#pagesize_256">256 byte pagesize</a></span></dt><dt><span class="sect2"><a href="Spare_area_autoplacement_default.html#pagesize_512">512 byte pagesize</a></span></dt><dt><span class="sect2"><a href="Spare_area_autoplacement_default.html#pagesize_2048">2048 byte pagesize</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="filesystems.html">6. Filesystem support</a></span></dt><dt><span class="chapter"><a href="tools.html">7. Tools</a></span></dt><dt><span class="chapter"><a href="defines.html">8. Constants</a></span></dt><dd><dl><dt><span class="sect1"><a href="defines.html#Chip_option_constants">Chip option constants</a></span></dt><dd><dl><dt><span class="sect2"><a href="defines.html#Constants_for_chip_id_table">Constants for chip id table</a></span></dt><dt><span class="sect2"><a href="defines.html#Constants_for_runtime_options">Constants for runtime options</a></span></dt></dl></dd><dt><span class="sect1"><a href="EEC_selection_constants.html">ECC selection constants</a></span></dt><dt><span class="sect1"><a href="Hardware_control_related_constants.html">Hardware control related constants</a></span></dt><dt><span class="sect1"><a href="Bad_block_table_constants.html">Bad block table related constants</a></span></dt></dl></dd><dt><span class="chapter"><a href="structs.html">9. Structures</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-nand-hw-control.html"><span class="phrase">struct nand_hw_control</span></a></span><span class="refpurpose"> &#8212; 
21  Control structure for hardware controller (e.g ECC generator) shared among independent devices
22 </span></dt><dt><span class="refentrytitle"><a href="API-struct-nand-ecc-ctrl.html"><span class="phrase">struct nand_ecc_ctrl</span></a></span><span class="refpurpose"> &#8212; 
23     Control structure for ECC
24 </span></dt><dt><span class="refentrytitle"><a href="API-struct-nand-buffers.html"><span class="phrase">struct nand_buffers</span></a></span><span class="refpurpose"> &#8212; 
25     buffer structure for read/write
26 </span></dt><dt><span class="refentrytitle"><a href="API-struct-nand-chip.html"><span class="phrase">struct nand_chip</span></a></span><span class="refpurpose"> &#8212; 
27     NAND Private Flash Chip Data
28 </span></dt><dt><span class="refentrytitle"><a href="API-struct-nand-flash-dev.html"><span class="phrase">struct nand_flash_dev</span></a></span><span class="refpurpose"> &#8212; 
29     NAND Flash Device ID Structure
30 </span></dt><dt><span class="refentrytitle"><a href="API-struct-nand-manufacturers.html"><span class="phrase">struct nand_manufacturers</span></a></span><span class="refpurpose"> &#8212; 
31     NAND Flash Manufacturer ID Structure
32 </span></dt><dt><span class="refentrytitle"><a href="API-struct-platform-nand-chip.html"><span class="phrase">struct platform_nand_chip</span></a></span><span class="refpurpose"> &#8212; 
33     chip level device structure
34 </span></dt><dt><span class="refentrytitle"><a href="API-struct-platform-nand-ctrl.html"><span class="phrase">struct platform_nand_ctrl</span></a></span><span class="refpurpose"> &#8212; 
35     controller level device structure
36 </span></dt><dt><span class="refentrytitle"><a href="API-struct-platform-nand-data.html"><span class="phrase">struct platform_nand_data</span></a></span><span class="refpurpose"> &#8212; 
37     container structure for platform-specific data
38 </span></dt><dt><span class="refentrytitle"><a href="API-nand-opcode-8bits.html"><span class="phrase">nand_opcode_8bits</span></a></span><span class="refpurpose"> &#8212; 
39   </span></dt></dl></dd><dt><span class="chapter"><a href="pubfunctions.html">10. Public Functions Provided</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-nand-unlock.html"><span class="phrase">nand_unlock</span></a></span><span class="refpurpose"> &#8212; 
40  [REPLACEABLE] unlocks specified locked blocks
41 </span></dt><dt><span class="refentrytitle"><a href="API-nand-lock.html"><span class="phrase">nand_lock</span></a></span><span class="refpurpose"> &#8212; 
42     [REPLACEABLE] locks all blocks present in the device
43 </span></dt><dt><span class="refentrytitle"><a href="API-nand-scan-ident.html"><span class="phrase">nand_scan_ident</span></a></span><span class="refpurpose"> &#8212; 
44     [NAND Interface] Scan for the NAND device
45 </span></dt><dt><span class="refentrytitle"><a href="API-nand-scan-tail.html"><span class="phrase">nand_scan_tail</span></a></span><span class="refpurpose"> &#8212; 
46     [NAND Interface] Scan for the NAND device
47 </span></dt><dt><span class="refentrytitle"><a href="API-nand-scan.html"><span class="phrase">nand_scan</span></a></span><span class="refpurpose"> &#8212; 
48     [NAND Interface] Scan for the NAND device
49 </span></dt><dt><span class="refentrytitle"><a href="API-nand-release.html"><span class="phrase">nand_release</span></a></span><span class="refpurpose"> &#8212; 
50     [NAND Interface] Free resources held by the NAND device
51 </span></dt><dt><span class="refentrytitle"><a href="API-nand-scan-bbt.html"><span class="phrase">nand_scan_bbt</span></a></span><span class="refpurpose"> &#8212; 
52  [NAND Interface] scan, find, read and maybe create bad block table(s)
53 </span></dt><dt><span class="refentrytitle"><a href="API---nand-calculate-ecc.html"><span class="phrase">__nand_calculate_ecc</span></a></span><span class="refpurpose"> &#8212; 
54  [NAND Interface] Calculate 3-byte ECC for 256/512-byte block
55 </span></dt><dt><span class="refentrytitle"><a href="API-nand-calculate-ecc.html"><span class="phrase">nand_calculate_ecc</span></a></span><span class="refpurpose"> &#8212; 
56     [NAND Interface] Calculate 3-byte ECC for 256/512-byte block
57 </span></dt><dt><span class="refentrytitle"><a href="API---nand-correct-data.html"><span class="phrase">__nand_correct_data</span></a></span><span class="refpurpose"> &#8212; 
58     [NAND Interface] Detect and correct bit error(s)
59 </span></dt><dt><span class="refentrytitle"><a href="API-nand-correct-data.html"><span class="phrase">nand_correct_data</span></a></span><span class="refpurpose"> &#8212; 
60     [NAND Interface] Detect and correct bit error(s)
61 </span></dt></dl></dd><dt><span class="chapter"><a href="intfunctions.html">11. Internal Functions Provided</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-nand-release-device.html"><span class="phrase">nand_release_device</span></a></span><span class="refpurpose"> &#8212; 
62  [GENERIC] release chip
63 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-byte.html"><span class="phrase">nand_read_byte</span></a></span><span class="refpurpose"> &#8212; 
64     [DEFAULT] read one byte from the chip
65 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-byte16.html"><span class="phrase">nand_read_byte16</span></a></span><span class="refpurpose"> &#8212; 
66     [DEFAULT] read one byte endianness aware from the chip
67 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-word.html"><span class="phrase">nand_read_word</span></a></span><span class="refpurpose"> &#8212; 
68     [DEFAULT] read one word from the chip
69 </span></dt><dt><span class="refentrytitle"><a href="API-nand-select-chip.html"><span class="phrase">nand_select_chip</span></a></span><span class="refpurpose"> &#8212; 
70     [DEFAULT] control CE line
71 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-byte.html"><span class="phrase">nand_write_byte</span></a></span><span class="refpurpose"> &#8212; 
72     [DEFAULT] write single byte to chip
73 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-byte16.html"><span class="phrase">nand_write_byte16</span></a></span><span class="refpurpose"> &#8212; 
74     [DEFAULT] write single byte to a chip with width 16
75 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-buf.html"><span class="phrase">nand_write_buf</span></a></span><span class="refpurpose"> &#8212; 
76     [DEFAULT] write buffer to chip
77 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-buf.html"><span class="phrase">nand_read_buf</span></a></span><span class="refpurpose"> &#8212; 
78     [DEFAULT] read chip data into buffer
79 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-buf16.html"><span class="phrase">nand_write_buf16</span></a></span><span class="refpurpose"> &#8212; 
80     [DEFAULT] write buffer to chip
81 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-buf16.html"><span class="phrase">nand_read_buf16</span></a></span><span class="refpurpose"> &#8212; 
82     [DEFAULT] read chip data into buffer
83 </span></dt><dt><span class="refentrytitle"><a href="API-nand-block-bad.html"><span class="phrase">nand_block_bad</span></a></span><span class="refpurpose"> &#8212; 
84     [DEFAULT] Read bad block marker from the chip
85 </span></dt><dt><span class="refentrytitle"><a href="API-nand-default-block-markbad.html"><span class="phrase">nand_default_block_markbad</span></a></span><span class="refpurpose"> &#8212; 
86     [DEFAULT] mark a block bad via bad block marker
87 </span></dt><dt><span class="refentrytitle"><a href="API-nand-block-markbad-lowlevel.html"><span class="phrase">nand_block_markbad_lowlevel</span></a></span><span class="refpurpose"> &#8212; 
88     mark a block bad
89 </span></dt><dt><span class="refentrytitle"><a href="API-nand-check-wp.html"><span class="phrase">nand_check_wp</span></a></span><span class="refpurpose"> &#8212; 
90     [GENERIC] check if the chip is write protected
91 </span></dt><dt><span class="refentrytitle"><a href="API-nand-block-isreserved.html"><span class="phrase">nand_block_isreserved</span></a></span><span class="refpurpose"> &#8212; 
92     [GENERIC] Check if a block is marked reserved.
93 </span></dt><dt><span class="refentrytitle"><a href="API-nand-block-checkbad.html"><span class="phrase">nand_block_checkbad</span></a></span><span class="refpurpose"> &#8212; 
94     [GENERIC] Check if a block is marked bad
95 </span></dt><dt><span class="refentrytitle"><a href="API-panic-nand-wait-ready.html"><span class="phrase">panic_nand_wait_ready</span></a></span><span class="refpurpose"> &#8212; 
96     [GENERIC] Wait for the ready pin after commands.
97 </span></dt><dt><span class="refentrytitle"><a href="API-nand-wait-status-ready.html"><span class="phrase">nand_wait_status_ready</span></a></span><span class="refpurpose"> &#8212; 
98     [GENERIC] Wait for the ready status after commands.
99 </span></dt><dt><span class="refentrytitle"><a href="API-nand-command.html"><span class="phrase">nand_command</span></a></span><span class="refpurpose"> &#8212; 
100     [DEFAULT] Send command to NAND device
101 </span></dt><dt><span class="refentrytitle"><a href="API-nand-command-lp.html"><span class="phrase">nand_command_lp</span></a></span><span class="refpurpose"> &#8212; 
102     [DEFAULT] Send command to NAND large page device
103 </span></dt><dt><span class="refentrytitle"><a href="API-panic-nand-get-device.html"><span class="phrase">panic_nand_get_device</span></a></span><span class="refpurpose"> &#8212; 
104     [GENERIC] Get chip for selected access
105 </span></dt><dt><span class="refentrytitle"><a href="API-nand-get-device.html"><span class="phrase">nand_get_device</span></a></span><span class="refpurpose"> &#8212; 
106     [GENERIC] Get chip for selected access
107 </span></dt><dt><span class="refentrytitle"><a href="API-panic-nand-wait.html"><span class="phrase">panic_nand_wait</span></a></span><span class="refpurpose"> &#8212; 
108     [GENERIC] wait until the command is done
109 </span></dt><dt><span class="refentrytitle"><a href="API-nand-wait.html"><span class="phrase">nand_wait</span></a></span><span class="refpurpose"> &#8212; 
110     [DEFAULT] wait until the command is done
111 </span></dt><dt><span class="refentrytitle"><a href="API---nand-unlock.html"><span class="phrase">__nand_unlock</span></a></span><span class="refpurpose"> &#8212; 
112     [REPLACEABLE] unlocks specified locked blocks
113 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-page-raw.html"><span class="phrase">nand_read_page_raw</span></a></span><span class="refpurpose"> &#8212; 
114     [INTERN] read raw page data without ecc
115 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-page-raw-syndrome.html"><span class="phrase">nand_read_page_raw_syndrome</span></a></span><span class="refpurpose"> &#8212; 
116     [INTERN] read raw page data without ecc
117 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-page-swecc.html"><span class="phrase">nand_read_page_swecc</span></a></span><span class="refpurpose"> &#8212; 
118     [REPLACEABLE] software ECC based page read function
119 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-subpage.html"><span class="phrase">nand_read_subpage</span></a></span><span class="refpurpose"> &#8212; 
120     [REPLACEABLE] ECC based sub-page read function
121 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-page-hwecc.html"><span class="phrase">nand_read_page_hwecc</span></a></span><span class="refpurpose"> &#8212; 
122     [REPLACEABLE] hardware ECC based page read function
123 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-page-hwecc-oob-first.html"><span class="phrase">nand_read_page_hwecc_oob_first</span></a></span><span class="refpurpose"> &#8212; 
124     [REPLACEABLE] hw ecc, read oob first
125 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-page-syndrome.html"><span class="phrase">nand_read_page_syndrome</span></a></span><span class="refpurpose"> &#8212; 
126     [REPLACEABLE] hardware ECC syndrome based page read
127 </span></dt><dt><span class="refentrytitle"><a href="API-nand-transfer-oob.html"><span class="phrase">nand_transfer_oob</span></a></span><span class="refpurpose"> &#8212; 
128     [INTERN] Transfer oob to client buffer
129 </span></dt><dt><span class="refentrytitle"><a href="API-nand-setup-read-retry.html"><span class="phrase">nand_setup_read_retry</span></a></span><span class="refpurpose"> &#8212; 
130     [INTERN] Set the READ RETRY mode
131 </span></dt><dt><span class="refentrytitle"><a href="API-nand-do-read-ops.html"><span class="phrase">nand_do_read_ops</span></a></span><span class="refpurpose"> &#8212; 
132     [INTERN] Read data with ECC
133 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read.html"><span class="phrase">nand_read</span></a></span><span class="refpurpose"> &#8212; 
134     [MTD Interface] MTD compatibility function for nand_do_read_ecc
135 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-oob-std.html"><span class="phrase">nand_read_oob_std</span></a></span><span class="refpurpose"> &#8212; 
136     [REPLACEABLE] the most common OOB data read function
137 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-oob-syndrome.html"><span class="phrase">nand_read_oob_syndrome</span></a></span><span class="refpurpose"> &#8212; 
138     [REPLACEABLE] OOB data read function for HW ECC with syndromes
139 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-oob-std.html"><span class="phrase">nand_write_oob_std</span></a></span><span class="refpurpose"> &#8212; 
140     [REPLACEABLE] the most common OOB data write function
141 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-oob-syndrome.html"><span class="phrase">nand_write_oob_syndrome</span></a></span><span class="refpurpose"> &#8212; 
142     [REPLACEABLE] OOB data write function for HW ECC with syndrome - only for large page flash
143 </span></dt><dt><span class="refentrytitle"><a href="API-nand-do-read-oob.html"><span class="phrase">nand_do_read_oob</span></a></span><span class="refpurpose"> &#8212; 
144     [INTERN] NAND read out-of-band
145 </span></dt><dt><span class="refentrytitle"><a href="API-nand-read-oob.html"><span class="phrase">nand_read_oob</span></a></span><span class="refpurpose"> &#8212; 
146     [MTD Interface] NAND read data and/or out-of-band
147 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-page-raw.html"><span class="phrase">nand_write_page_raw</span></a></span><span class="refpurpose"> &#8212; 
148     [INTERN] raw page write function
149 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-page-raw-syndrome.html"><span class="phrase">nand_write_page_raw_syndrome</span></a></span><span class="refpurpose"> &#8212; 
150     [INTERN] raw page write function
151 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-page-swecc.html"><span class="phrase">nand_write_page_swecc</span></a></span><span class="refpurpose"> &#8212; 
152     [REPLACEABLE] software ECC based page write function
153 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-page-hwecc.html"><span class="phrase">nand_write_page_hwecc</span></a></span><span class="refpurpose"> &#8212; 
154     [REPLACEABLE] hardware ECC based page write function
155 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-subpage-hwecc.html"><span class="phrase">nand_write_subpage_hwecc</span></a></span><span class="refpurpose"> &#8212; 
156     [REPLACEABLE] hardware ECC based subpage write
157 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-page-syndrome.html"><span class="phrase">nand_write_page_syndrome</span></a></span><span class="refpurpose"> &#8212; 
158     [REPLACEABLE] hardware ECC syndrome based page write
159 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-page.html"><span class="phrase">nand_write_page</span></a></span><span class="refpurpose"> &#8212; 
160     [REPLACEABLE] write one page
161 </span></dt><dt><span class="refentrytitle"><a href="API-nand-fill-oob.html"><span class="phrase">nand_fill_oob</span></a></span><span class="refpurpose"> &#8212; 
162     [INTERN] Transfer client buffer to oob
163 </span></dt><dt><span class="refentrytitle"><a href="API-nand-do-write-ops.html"><span class="phrase">nand_do_write_ops</span></a></span><span class="refpurpose"> &#8212; 
164     [INTERN] NAND write with ECC
165 </span></dt><dt><span class="refentrytitle"><a href="API-panic-nand-write.html"><span class="phrase">panic_nand_write</span></a></span><span class="refpurpose"> &#8212; 
166     [MTD Interface] NAND write with ECC
167 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write.html"><span class="phrase">nand_write</span></a></span><span class="refpurpose"> &#8212; 
168     [MTD Interface] NAND write with ECC
169 </span></dt><dt><span class="refentrytitle"><a href="API-nand-do-write-oob.html"><span class="phrase">nand_do_write_oob</span></a></span><span class="refpurpose"> &#8212; 
170     [MTD Interface] NAND write out-of-band
171 </span></dt><dt><span class="refentrytitle"><a href="API-nand-write-oob.html"><span class="phrase">nand_write_oob</span></a></span><span class="refpurpose"> &#8212; 
172     [MTD Interface] NAND write data and/or out-of-band
173 </span></dt><dt><span class="refentrytitle"><a href="API-single-erase.html"><span class="phrase">single_erase</span></a></span><span class="refpurpose"> &#8212; 
174     [GENERIC] NAND standard block erase command function
175 </span></dt><dt><span class="refentrytitle"><a href="API-nand-erase.html"><span class="phrase">nand_erase</span></a></span><span class="refpurpose"> &#8212; 
176     [MTD Interface] erase block(s)
177 </span></dt><dt><span class="refentrytitle"><a href="API-nand-erase-nand.html"><span class="phrase">nand_erase_nand</span></a></span><span class="refpurpose"> &#8212; 
178     [INTERN] erase block(s)
179 </span></dt><dt><span class="refentrytitle"><a href="API-nand-sync.html"><span class="phrase">nand_sync</span></a></span><span class="refpurpose"> &#8212; 
180     [MTD Interface] sync
181 </span></dt><dt><span class="refentrytitle"><a href="API-nand-block-isbad.html"><span class="phrase">nand_block_isbad</span></a></span><span class="refpurpose"> &#8212; 
182     [MTD Interface] Check if block at offset is bad
183 </span></dt><dt><span class="refentrytitle"><a href="API-nand-block-markbad.html"><span class="phrase">nand_block_markbad</span></a></span><span class="refpurpose"> &#8212; 
184     [MTD Interface] Mark block at the given offset as bad
185 </span></dt><dt><span class="refentrytitle"><a href="API-nand-onfi-set-features.html"><span class="phrase">nand_onfi_set_features</span></a></span><span class="refpurpose"> &#8212; 
186     [REPLACEABLE] set features for ONFI nand
187 </span></dt><dt><span class="refentrytitle"><a href="API-nand-onfi-get-features.html"><span class="phrase">nand_onfi_get_features</span></a></span><span class="refpurpose"> &#8212; 
188     [REPLACEABLE] get features for ONFI nand
189 </span></dt><dt><span class="refentrytitle"><a href="API-nand-suspend.html"><span class="phrase">nand_suspend</span></a></span><span class="refpurpose"> &#8212; 
190     [MTD Interface] Suspend the NAND flash
191 </span></dt><dt><span class="refentrytitle"><a href="API-nand-resume.html"><span class="phrase">nand_resume</span></a></span><span class="refpurpose"> &#8212; 
192     [MTD Interface] Resume the NAND flash
193 </span></dt><dt><span class="refentrytitle"><a href="API-nand-shutdown.html"><span class="phrase">nand_shutdown</span></a></span><span class="refpurpose"> &#8212; 
194     [MTD Interface] Finish the current NAND operation and prevent further operations
195 </span></dt><dt><span class="refentrytitle"><a href="API-check-pattern.html"><span class="phrase">check_pattern</span></a></span><span class="refpurpose"> &#8212; 
196  [GENERIC] check if a pattern is in the buffer
197 </span></dt><dt><span class="refentrytitle"><a href="API-check-short-pattern.html"><span class="phrase">check_short_pattern</span></a></span><span class="refpurpose"> &#8212; 
198     [GENERIC] check if a pattern is in the buffer
199 </span></dt><dt><span class="refentrytitle"><a href="API-add-marker-len.html"><span class="phrase">add_marker_len</span></a></span><span class="refpurpose"> &#8212; 
200     compute the length of the marker in data area
201 </span></dt><dt><span class="refentrytitle"><a href="API-read-bbt.html"><span class="phrase">read_bbt</span></a></span><span class="refpurpose"> &#8212; 
202     [GENERIC] Read the bad block table starting from page
203 </span></dt><dt><span class="refentrytitle"><a href="API-read-abs-bbt.html"><span class="phrase">read_abs_bbt</span></a></span><span class="refpurpose"> &#8212; 
204     [GENERIC] Read the bad block table starting at a given page
205 </span></dt><dt><span class="refentrytitle"><a href="API-scan-read-oob.html"><span class="phrase">scan_read_oob</span></a></span><span class="refpurpose"> &#8212; 
206     [GENERIC] Scan data+OOB region to buffer
207 </span></dt><dt><span class="refentrytitle"><a href="API-read-abs-bbts.html"><span class="phrase">read_abs_bbts</span></a></span><span class="refpurpose"> &#8212; 
208     [GENERIC] Read the bad block table(s) for all chips starting at a given page
209 </span></dt><dt><span class="refentrytitle"><a href="API-create-bbt.html"><span class="phrase">create_bbt</span></a></span><span class="refpurpose"> &#8212; 
210     [GENERIC] Create a bad block table by scanning the device
211 </span></dt><dt><span class="refentrytitle"><a href="API-search-bbt.html"><span class="phrase">search_bbt</span></a></span><span class="refpurpose"> &#8212; 
212     [GENERIC] scan the device for a specific bad block table
213 </span></dt><dt><span class="refentrytitle"><a href="API-search-read-bbts.html"><span class="phrase">search_read_bbts</span></a></span><span class="refpurpose"> &#8212; 
214     [GENERIC] scan the device for bad block table(s)
215 </span></dt><dt><span class="refentrytitle"><a href="API-write-bbt.html"><span class="phrase">write_bbt</span></a></span><span class="refpurpose"> &#8212; 
216     [GENERIC] (Re)write the bad block table
217 </span></dt><dt><span class="refentrytitle"><a href="API-nand-memory-bbt.html"><span class="phrase">nand_memory_bbt</span></a></span><span class="refpurpose"> &#8212; 
218     [GENERIC] create a memory based bad block table
219 </span></dt><dt><span class="refentrytitle"><a href="API-check-create.html"><span class="phrase">check_create</span></a></span><span class="refpurpose"> &#8212; 
220     [GENERIC] create and write bbt(s) if necessary
221 </span></dt><dt><span class="refentrytitle"><a href="API-mark-bbt-region.html"><span class="phrase">mark_bbt_region</span></a></span><span class="refpurpose"> &#8212; 
222     [GENERIC] mark the bad block table regions
223 </span></dt><dt><span class="refentrytitle"><a href="API-verify-bbt-descr.html"><span class="phrase">verify_bbt_descr</span></a></span><span class="refpurpose"> &#8212; 
224     verify the bad block description
225 </span></dt><dt><span class="refentrytitle"><a href="API-nand-update-bbt.html"><span class="phrase">nand_update_bbt</span></a></span><span class="refpurpose"> &#8212; 
226     update bad block table(s)
227 </span></dt><dt><span class="refentrytitle"><a href="API-nand-create-badblock-pattern.html"><span class="phrase">nand_create_badblock_pattern</span></a></span><span class="refpurpose"> &#8212; 
228     [INTERN] Creates a BBT descriptor structure
229 </span></dt><dt><span class="refentrytitle"><a href="API-nand-default-bbt.html"><span class="phrase">nand_default_bbt</span></a></span><span class="refpurpose"> &#8212; 
230     [NAND Interface] Select a default bad block table for the device
231 </span></dt><dt><span class="refentrytitle"><a href="API-nand-isreserved-bbt.html"><span class="phrase">nand_isreserved_bbt</span></a></span><span class="refpurpose"> &#8212; 
232     [NAND Interface] Check if a block is reserved
233 </span></dt><dt><span class="refentrytitle"><a href="API-nand-isbad-bbt.html"><span class="phrase">nand_isbad_bbt</span></a></span><span class="refpurpose"> &#8212; 
234     [NAND Interface] Check if a block is bad
235 </span></dt><dt><span class="refentrytitle"><a href="API-nand-markbad-bbt.html"><span class="phrase">nand_markbad_bbt</span></a></span><span class="refpurpose"> &#8212; 
236     [NAND Interface] Mark a block bad in the BBT
237 </span></dt></dl></dd><dt><span class="chapter"><a href="credits.html">12. Credits</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="intro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right" valign="top">&#160;Chapter&#160;1.&#160;Introduction</td></tr></table></div></body></html>
238