FreeCalypso > hg > fc-tourmaline
comparison src/cs/drivers/drv_app/ffs/board/HISTORY @ 0:4e78acac3d88
src/{condat,cs,gpf,nucleus}: import from Selenite
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 16 Oct 2020 06:23:26 +0000 | 
| parents | |
| children | 
   comparison
  equal
  deleted
  inserted
  replaced
| -1:000000000000 | 0:4e78acac3d88 | 
|---|---|
| 1 Brief Revision History of FFS | |
| 2 ============================================================ | |
| 3 Revision 5.27: | |
| 4 | |
| 5 - API change: | |
| 6 Made change request from TIF. | |
| 7 | |
| 8 Renamed functions: | |
| 9 ffs_init() to ffs_initialize() | |
| 10 ffs_env_init/start/stop/kill() to ffs_init/start/stop/kill() (in ffs_env.[ch]) | |
| 11 | |
| 12 NOTE: Because of this API change are we not backward compatible with earlier FFS versions! | |
| 13 | |
| 14 | |
| 15 Revision 5.18: | |
| 16 | |
| 17 - Implemented new ffs protocol. Improvements: | |
| 18 | |
| 19 * More intelligible. | |
| 20 * No static testmode buffer (Before 8kB!) | |
| 21 * Stream interface (Only flash size limit for file transfer) | |
| 22 * Use blocking functions in target (waits for data to be written etc) | |
| 23 | |
| 24 The new protocol require etm v0.127 or above in target. | |
| 25 | |
| 26 Note the "old" protocol is still supported. | |
| 27 | |
| 28 Revision 5.14: | |
| 29 | |
| 30 - BUGFIX: http://bugs.tidk.ti.com/bugs/show_bug.cgi?id=313. | |
| 31 A sudden power off can in a rare case trikker FFS to use the last free | |
| 32 block. Because of the missing free block is it not possible to make a | |
| 33 garbage collection/reclaim data! (no further write will be possible!). | |
| 34 | |
| 35 Revision 5.6: | |
| 36 | |
| 37 - 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. | |
| 38 | |
| 39 Revision 4.6: | |
| 40 | |
| 41 - Made support for random access to a file (open in RDWR mode). | |
| 42 | |
| 43 - Removed API functions ffs_xstat() and ffs_xfstat() because its function is covered by ffs_xlstat(). | |
| 44 | |
| 45 - Renamed ffs_linkstat() to ffs_lstat() (POSIX alike). | |
| 46 | |
| 47 - 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. | |
| 48 | |
| 49 - Made new API function ffs_fdatasync() which makes it possible to | |
| 50 flush the stream buffer ad any time. | |
| 51 | |
| 52 Revision 3.4: | |
| 53 | |
| 54 - Changed function ffs_file_write() so it automatil split one huge write up | |
| 55 in several small chunks instead of one big chunk. This makes support of | |
| 56 files that is bigger than one flash block. | |
| 57 | |
| 58 Revision 3.2: | |
| 59 | |
| 60 - Implemented ffs_truncate() and ffs_ftruncate(). These functions make it | |
| 61 possible to truncate a file by the file name or the file descriptor. | |
| 62 | |
| 63 Revision 3.1: | |
| 64 | |
| 65 - Changed ffs_stat() function. Implemented ffs_xlstat() and ffs_fstat(). | |
| 66 | |
| 67 Revision 2.15: | |
| 68 | |
| 69 - Implemented ffs_rename(). This function makes it possible to move and rename | |
| 70 files, dirs and symlinks. | |
| 71 | |
| 72 Revision 2.10: | |
| 73 | |
| 74 - Implemented stream functions: ffs_open, ffs_close, ffs_read, ffs_write and | |
| 75 ffs_seek. | |
| 76 | |
| 77 Revision 1.29: | |
| 78 | |
| 79 - The copying of the single bank driver code to RAM is now handled | |
| 80 internally by ffsdrv_init(). This means linker dependency is gone and the | |
| 81 linker file does not need to have any special sections for the FFS | |
| 82 single-bank driver code. Actually, it must NOT have the special sections! | |
| 83 | |
| 84 | |
| 85 Revision 1.28: | |
| 86 | |
| 87 - Updated code for Calypso chipset and RiViera Frame. | |
| 88 | |
| 89 | |
| 90 Revision 1.27: | |
| 91 | |
| 92 - Intel single-bank driver bugfixed, tested and working. | |
| 93 | |
| 94 | |
| 95 Revision 1.24: | |
| 96 | |
| 97 - Implemented Intel dual/multi-bank and single-bank flash support. Untested! | |
| 98 - Changed ffs_fread() and ffs_readlink() semantics and prototype. They now | |
| 99 return an integer denoting the number of bytes actually read. | |
| 100 - Changed ffs_opendir() semantics and prototype. It now returns an integer | |
| 101 denoting the number of entries in the directory. | |
| 102 - Replaced 'filesize_t' by 'int' in FFS API functions. | |
| 103 - Increased FFS_INODES_MAX_DEFAULT from 512 to 1024. This means that FFS can | |
| 104 contain up 1024/2 = 512 objects. | |
| 105 | |
| 106 | |
| 107 Revision 1.23: | |
| 108 | |
| 109 - Implemented ffs_query(Q_DEV_DRIVER) returning the flash device driver | |
| 110 identifier. | |
| 111 | |
| 112 | |
| 113 Revision 1.22: | |
| 114 | |
| 115 - Implemented AMD single-bank flash support. | |
| 116 | |
| 117 | |
| 118 Revision 1.21: | |
| 119 | |
| 120 - Changed ffs_fcontrol() prototype such that <param> argument is 'int' | |
| 121 instead of 'uint16'. | |
| 122 | |
| 123 | |
| 124 Revision 1.20: | |
| 125 | |
| 126 - Only one (auto-generated) target file exists now, namely target.c which | |
| 127 replaces previous targetffs.c and taskffs.c. | |
| 128 - Implemented ffs_query(Q_DEV_BASE) returning the start address of FFS in the | |
| 129 flash device. | |
| 130 - Removed PCM functionality from testmode ffs protocol (tmffs.c). | |
| 131 | |
| 132 | |
| 133 Revision 1.19: | |
| 134 | |
| 135 - Corrected bug in ffs_query(Q_BYTES_FREE); it did not subtract number of | |
| 136 bytes lost. | |
| 137 | |
| 138 | |
| 139 Revision 1.18: | |
| 140 | |
| 141 - Implemented call-back functionality. All modify functions have a sibling | |
| 142 function with same name but suffix '_nb' for 'non-blocking'. This sibling | |
| 143 function has an additional argument specifying how the caller want the | |
| 144 result of the operation communicated back; either by mail or call-back | |
| 145 function. This way, *all* error codes can be returned and caller knows when | |
| 146 data has actually been written/committed to the actual device memory. | |
| 147 | |
| 148 | |
| 149 Revision 1.12: | |
| 150 | |
| 151 - Replaced old crash recovery code with true journalling system. The old | |
| 152 crash recovery code had in a few rare scenarios the risk of rendering FFS | |
| 153 useless upon a power-fail. | |
| 154 | |
| 155 | |
| 156 Revision 1.9: | |
| 157 | |
| 158 - ffs_preformat() now calls the user defined function ffs_is_modifiable() | |
| 159 with empty string (not a NULL string). This means that permission to | |
| 160 re-formatting ffs can be controlled. | |
| 161 | |
| 162 | |
| 163 Revision 1.3: | |
| 164 | |
| 165 - Implemented device wear-levelling. | |
| 166 | |
| 167 | |
| 168 Revision 0.517: | |
| 169 | |
| 170 - Added HISTORY file. | |
| 171 - Flash driver updated to take flash base address into account when doing | |
| 172 writes and erasures (not when auto-detecting device). | |
| 173 - Moved task.[hc] from ffs.mak to ffsdrv.mak. These files are now included | |
| 174 in object releases. | |
| 175 | |
| 176 | |
| 177 Revision 0.516: | |
| 178 | |
| 179 - Renamed ffs_config.mak to ffsdrv.mak. | |
| 180 - Splitted pcm.c into pcmcode.c and pcmdata.c. pcmcode.c contains only pcm | |
| 181 function code. pcmdata.c contains only pcm data tables. | |
| 182 - Corrected bug in pcm_WriteRecord(). | |
| 183 | |
| 184 | |
| 185 Revision 0.515: | |
| 186 | |
| 187 - Corrected possible bug in erase suspend; it did not check for | |
| 188 completion. Bug has never been observed in practice. | |
| 189 | |
| 190 | |
| 191 Revision 0.514: | |
| 192 | |
| 193 - Added support of flash devices: AMD Am29DL161T and Fujitsu MBM29DL16xT. | |
| 194 | |
| 195 | |
| 196 Revision 0.512: | |
| 197 | |
| 198 - Added flash device auto-detection. This *only* works for flash devices | |
| 199 mapped to address zero! Remember that both ffs_flash_manufact and | |
| 200 ffs_flash_device (in cfgffs.c) must be zero in order for auto-detection to | |
| 201 be enabled. | |
| 202 | |
| 203 | |
| 204 Revision 0.510: | |
| 205 | |
| 206 - Added low-level driver for SST flash devices. | |
| 207 - Added support of flash device: SST SST36VF1601. | |
| 208 - Added ffs_query(Q_FFS_FORMAT_WRITE) and renamed Q_FFS_FORMAT to | |
| 209 Q_FFS_FORMAT_READ. With this, we can both query the ffs format read from | |
| 210 ffs as well as the format version written on a fresh format. This can be | |
| 211 used to determine compatibilty between ffs formats. | |
| 212 - Corrected non-critical bug in ffs_remove(). | 
