Add FTL logic

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2307 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2009-12-06 00:19:50 +00:00
parent b585cbbcd4
commit bea1cb5e0e
7 changed files with 578 additions and 7 deletions
+5
View File
@@ -985,4 +985,9 @@
* arch/hc: Adding framework to support m68hc11/12
* configs/demo9s12ne64: Configuration to support Freescale DEMO9S12NE64
development board (MC9S12NE64 m68hcs12 processor).
* drivers/mtd/ftl.c - A FLASH translation layer (FTL) has been implemented.
This layer will convert a FLASH MTD interface into a block driver that
can be used with any file system. Good performance of this layer will
depend upon functioning write buffer support!
NOTE: FTL support is untested as of the initial check-in.
+6 -1
View File
@@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4">
<td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
<p>Last Updated: December 3, 2009</p>
<p>Last Updated: December 5 2009</p>
</td>
</tr>
</table>
@@ -1611,6 +1611,11 @@ nuttx-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
* arch/hc: Adding framework to support m68hc11/12
* configs/demo9s12ne64: Configuration to support Freescale DEMO9S12NE64
development board (MC9S12NE64 m68hcs12 processor).
* drivers/mtd/ftl.c - A FLASH translation layer (FTL) has been implemented.
This layer will convert a FLASH MTD interface into a block driver that
can be used with any file system. Good performance of this layer will
depend upon functioning write buffer support!
NOTE: FTL support is untested as of the initial check-in.
pascal-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+21 -2
View File
@@ -1,4 +1,4 @@
NuttX TODO List (Last updated November 29, 2009)
NuttX TODO List (Last updated December 5, 2009)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(5) Task/Scheduler (sched/)
@@ -11,7 +11,7 @@ NuttX TODO List (Last updated November 29, 2009)
(4) Network Utilities (netutils/)
(1) USB (drivers/usbdev)
(5) Libraries (lib/)
(8) File system/Generic drivers (fs/, drivers/)
(11) File system/Generic drivers (fs/, drivers/)
(2) Graphics subystem (graphics/)
(1) Pascal add-on (pcode/)
(1) Documentation (Documentation/)
@@ -359,6 +359,25 @@ o File system / Generic drivers (fs/, drivers/)
Status: Open
Priority: Low
Description: Block driver read-ahead buffer and write buffer support is
implemented but not yet tested.
Status: Open
Priority: Low
Description: The drivers/mmcsd/mmcsd_sdio.c driver has hooks in place to
support read-ahead buffering and write buffering, but the logic
is incomplete and untested.
Status: Open
Priority: Low
Description: A FLASH translation layer (FTL) has been implemented at
drivers/mtd/ftl.c but has not yet been tested. This layer
will convert a FLASH MTD interface into a block driver that
can be used with any file system. Good performance of this
layer will depend upon functioning write buffer support!
Status: Open
Priority: Low
o Graphics subystem (graphics/)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1 -1
View File
@@ -34,5 +34,5 @@
############################################################################
MTD_ASRCS =
MTD_CSRCS = m25px.c
MTD_CSRCS = ftl.c m25px.c
+542
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -71,7 +71,7 @@ struct mtd_geometry_s
uint16 blocksize; /* Size of one read/write block */
uint16 erasesize; /* Size of one erase blocks -- must be a multiple
* of blocksize. */
size_t neraseblocks; /* Number of erase blocks */
size_t neraseblocks; /* Number of erase blocks */
};
/* This structure defines the interface to a simple memory technology device.
@@ -83,7 +83,7 @@ struct mtd_dev_s
{
/* The following methods operate on the MTD: */
/* Erase the specified erase blocks */
/* Erase the specified erase blocks (units are erase blocks) */
int (*erase)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks);
+1 -1
View File
@@ -106,7 +106,7 @@ struct rwbuffer_s
uint16 blocksize; /* The size of one block */
size_t nblocks; /* The total number blocks supported */
void *dev; /* Device state passed to callout functions */
FAR void *dev; /* Device state passed to callout functions */
/* Write buffer setup. If CONFIG_FS_WRITEBUFFER is defined, but you
* want read-ahead-only operation, (1) set wrmaxblocks to zero and do