FreeCalypso > hg > fc-magnetite
view src/cs/drivers/drv_app/ffs/board/HISTORY @ 636:57e67ca2e1cb
pcmdata.c: default +CGMI to "FreeCalypso" and +CGMM to model
The present change has no effect whatsoever on Falconia-made and Openmoko-made
devices on which /pcm/CGMI and /pcm/CGMM files have been programmed in FFS
with sensible ID strings by the respective factories, but what should AT+CGMI
and AT+CGMM queries return when the device is a Huawei GTM900 or Tango modem
that has been converted to FreeCalypso with a firmware change? Before the
present change they would return compiled-in defaults of "<manufacturer>" and
"<model>", respectively; with the present change the firmware will self-identify
as "FreeCalypso GTM900-FC" or "FreeCalypso Tango" on the two respective targets.
This firmware identification will become important if someone incorporates an
FC-converted GTM900 or Tango modem into a ZeroPhone-style smartphone where some
high-level software like ofono will be talking to the modem and will need to
properly identify this modem as FreeCalypso, as opposed to some other AT command
modem flavor with different quirks.
In technical terms, the compiled-in default for the AT+CGMI query (which will
always be overridden by the /pcm/CGMI file in FFS if one is present) is now
"FreeCalypso" in all configs on all targets; the compiled-in default for the
AT+CGMM query (likewise always overridden by /pcm/CGMM if present) is
"GTM900-FC" if CONFIG_TARGET_GTM900 or "Tango" if CONFIG_TARGET_TANGO or the
original default of "<model>" otherwise.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 19 Jan 2020 20:14:58 +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().