FreeCalypso > hg > fc-magnetite
view src/cs/drivers/drv_app/ffs/board/HISTORY @ 638:cab2f315827e
FFS dev.c: added Spansion PL032J to the "generic" table
With the discovery of first GTM900 and then Tango, it now appears that
Openmoko was not the only manuf after all who kept TI's TCS211 firmware
largely intact (as opposed to changing it beyond all recognition like
Compal, Chi-Mei and BenQ did), thus we are now getting new "alien" targets
on which we reuse the original manuf's FFS with IMEI and RF calibration
tables as if it were native. On these targets we use the original
device table for FFS, even though we previously thought that it would
never apply to any target other than dsample, leonardo and gtamodem.
We have previously added Samsung K5L33xxCAM (a new kind of multi-ID device)
to the generic table to support its use in Huawei GTM900-B modules; now
we got news that some slightly older GTM900-B specimen used S71PL032J
instead, so we are now adding PL032J as well.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 30 Jan 2020 17:45:48 +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().