view src/cs/drivers/drv_app/ffs/board/HISTORY @ 16:c15047b3d00d
cdg3: import from freecalypso-citrine/cdg
author
Mychaela Falconia <falcon@freecalypso.org>
date
Tue, 27 Sep 2016 16:27:34 +0000 (2016-09-27)
parents
945cf7f506b2
children
line source
+ − Brief Revision History of FFS
+ − ============================================================
+ − Revision 5.27:
+ −
+ − - API change:
+ − Made change request from TIF.
+ −
+ − Renamed functions:
+ − ffs_init() to ffs_initialize()
+ − ffs_env_init/start/stop/kill() to ffs_init/start/stop/kill() (in ffs_env.[ch])
+ −
+ − NOTE: Because of this API change are we not backward compatible with earlier FFS versions!
+ −
+ −
+ − Revision 5.18:
+ −
+ − - Implemented new ffs protocol. Improvements:
+ −
+ − * More intelligible.
+ − * No static testmode buffer (Before 8kB!)
+ − * Stream interface (Only flash size limit for file transfer)
+ − * Use blocking functions in target (waits for data to be written etc)
+ −
+ − The new protocol require etm v0.127 or above in target.
+ −
+ − Note the "old" protocol is still supported.
+ −
+ − Revision 5.14:
+ −
+ − - BUGFIX: http://bugs.tidk.ti.com/bugs/show_bug.cgi?id=313.
+ − A sudden power off can in a rare case trikker FFS to use the last free
+ − block. Because of the missing free block is it not possible to make a
+ − garbage collection/reclaim data! (no further write will be possible!).
+ −
+ − Revision 5.6:
+ −
+ − - Implemented a request id. On success, all non-blocking functions return a unique request identifier (request_id). This same id is returned in the associated request confirm message. This feature can be used to pair requests with confirmations when using the non-blocking function interface.
+ −
+ − Revision 4.6:
+ −
+ − - Made support for random access to a file (open in RDWR mode).
+ −
+ − - Removed API functions ffs_xstat() and ffs_xfstat() because its function is covered by ffs_xlstat().
+ −
+ − - Renamed ffs_linkstat() to ffs_lstat() (POSIX alike).
+ −
+ − - Made a non blocking version of ffs_seek() because it can now block the caller in several second because it sometimes need to flush the stream buffer.
+ −
+ − - Made new API function ffs_fdatasync() which makes it possible to
+ − flush the stream buffer ad any time.
+ −
+ − Revision 3.4:
+ −
+ − - Changed function ffs_file_write() so it automatil split one huge write up
+ − in several small chunks instead of one big chunk. This makes support of
+ − files that is bigger than one flash block.
+ −
+ − Revision 3.2:
+ −
+ − - Implemented ffs_truncate() and ffs_ftruncate(). These functions make it
+ − possible to truncate a file by the file name or the file descriptor.
+ −
+ − Revision 3.1:
+ −
+ − - Changed ffs_stat() function. Implemented ffs_xlstat() and ffs_fstat().
+ −
+ − Revision 2.15:
+ −
+ − - Implemented ffs_rename(). This function makes it possible to move and rename
+ − files, dirs and symlinks.
+ −
+ − Revision 2.10:
+ −
+ − - Implemented stream functions: ffs_open, ffs_close, ffs_read, ffs_write and
+ − ffs_seek.
+ −
+ − Revision 1.29:
+ −
+ − - The copying of the single bank driver code to RAM is now handled
+ − internally by ffsdrv_init(). This means linker dependency is gone and the
+ − linker file does not need to have any special sections for the FFS
+ − single-bank driver code. Actually, it must NOT have the special sections!
+ −
+ −
+ − Revision 1.28:
+ −
+ − - Updated code for Calypso chipset and RiViera Frame.
+ −
+ −
+ − Revision 1.27:
+ −
+ − - Intel single-bank driver bugfixed, tested and working.
+ −
+ −
+ − Revision 1.24:
+ −
+ − - Implemented Intel dual/multi-bank and single-bank flash support. Untested!
+ − - Changed ffs_fread() and ffs_readlink() semantics and prototype. They now
+ − return an integer denoting the number of bytes actually read.
+ − - Changed ffs_opendir() semantics and prototype. It now returns an integer
+ − denoting the number of entries in the directory.
+ − - Replaced 'filesize_t' by 'int' in FFS API functions.
+ − - Increased FFS_INODES_MAX_DEFAULT from 512 to 1024. This means that FFS can
+ − contain up 1024/2 = 512 objects.
+ −
+ −
+ − Revision 1.23:
+ −
+ − - Implemented ffs_query(Q_DEV_DRIVER) returning the flash device driver
+ − identifier.
+ −
+ −
+ − Revision 1.22:
+ −
+ − - Implemented AMD single-bank flash support.
+ −
+ −
+ − Revision 1.21:
+ −
+ − - Changed ffs_fcontrol() prototype such that <param> argument is 'int'
+ − instead of 'uint16'.
+ −
+ −
+ − Revision 1.20:
+ −
+ − - Only one (auto-generated) target file exists now, namely target.c which
+ − replaces previous targetffs.c and taskffs.c.
+ − - Implemented ffs_query(Q_DEV_BASE) returning the start address of FFS in the
+ − flash device.
+ − - Removed PCM functionality from testmode ffs protocol (tmffs.c).
+ −
+ −
+ − Revision 1.19:
+ −
+ − - Corrected bug in ffs_query(Q_BYTES_FREE); it did not subtract number of
+ − bytes lost.
+ −
+ −
+ − Revision 1.18:
+ −
+ − - Implemented call-back functionality. All modify functions have a sibling
+ − function with same name but suffix '_nb' for 'non-blocking'. This sibling
+ − function has an additional argument specifying how the caller want the
+ − result of the operation communicated back; either by mail or call-back
+ − function. This way, *all* error codes can be returned and caller knows when
+ − data has actually been written/committed to the actual device memory.
+ −
+ −
+ − Revision 1.12:
+ −
+ − - Replaced old crash recovery code with true journalling system. The old
+ − crash recovery code had in a few rare scenarios the risk of rendering FFS
+ − useless upon a power-fail.
+ −
+ −
+ − Revision 1.9:
+ −
+ − - ffs_preformat() now calls the user defined function ffs_is_modifiable()
+ − with empty string (not a NULL string). This means that permission to
+ − re-formatting ffs can be controlled.
+ −
+ −
+ − Revision 1.3:
+ −
+ − - Implemented device wear-levelling.
+ −
+ −
+ − Revision 0.517:
+ −
+ − - Added HISTORY file.
+ − - Flash driver updated to take flash base address into account when doing
+ − writes and erasures (not when auto-detecting device).
+ − - Moved task.[hc] from ffs.mak to ffsdrv.mak. These files are now included
+ − in object releases.
+ −
+ −
+ − Revision 0.516:
+ −
+ − - Renamed ffs_config.mak to ffsdrv.mak.
+ − - Splitted pcm.c into pcmcode.c and pcmdata.c. pcmcode.c contains only pcm
+ − function code. pcmdata.c contains only pcm data tables.
+ − - Corrected bug in pcm_WriteRecord().
+ −
+ −
+ − Revision 0.515:
+ −
+ − - Corrected possible bug in erase suspend; it did not check for
+ − completion. Bug has never been observed in practice.
+ −
+ −
+ − Revision 0.514:
+ −
+ − - Added support of flash devices: AMD Am29DL161T and Fujitsu MBM29DL16xT.
+ −
+ −
+ − Revision 0.512:
+ −
+ − - Added flash device auto-detection. This *only* works for flash devices
+ − mapped to address zero! Remember that both ffs_flash_manufact and
+ − ffs_flash_device (in cfgffs.c) must be zero in order for auto-detection to
+ − be enabled.
+ −
+ −
+ − Revision 0.510:
+ −
+ − - Added low-level driver for SST flash devices.
+ − - Added support of flash device: SST SST36VF1601.
+ − - Added ffs_query(Q_FFS_FORMAT_WRITE) and renamed Q_FFS_FORMAT to
+ − Q_FFS_FORMAT_READ. With this, we can both query the ffs format read from
+ − ffs as well as the format version written on a fresh format. This can be
+ − used to determine compatibilty between ffs formats.
+ − - Corrected non-critical bug in ffs_remove().