FreeCalypso > hg > fc-magnetite
view src/cs/drivers/drv_app/ffs/board/HISTORY @ 360:ce6d71349af0
FCHG: data structure changes in preparation for the new version
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 29 Dec 2017 05:42:54 +0000 |
parents | 945cf7f506b2 |
children |
line wrap: on
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().