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 1. 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"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <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      <code class="email"><<a class="email" href="mailto:tglx@linutronix.de">tglx@linutronix.de</a>></code><br> 3     </p></div></div></div></div></div><div><p class="copyright">Copyright © 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div></body></html> 238