comparison src/cs/drivers/drv_app/ffs/board/HISTORY @ 0:b6a5e36de839

src/cs: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:39:26 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:b6a5e36de839
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().