Chris Abbott(deleted)
10/07/2008 7:49 AM
post14568
|
We have also seen the truncation of files as well as IO errors.
Are testing is so far showing the interface to the NAND chips is stable.
Here are my comments so far:
a) The examples for the chip/device IO layer do not use ECC protection of the data in the spare area, as such all the
filing system information can be corrupted (this we have fixed ourselves)
b) Many ETFS options are not implemented (for example the read after write, look in the code a variable get set, but is
never used)
c) The wake up read does not seem to properly handle factory marked bad blocks, they are detected but (from initial
look) do not seem to be remembered anywhere.
d) Prior to code release we tested and found that the format was not checking for factory bad blocks and was just
erasing this important information, the released code seems to have this check in place which is why I started this
thread (still no answer from QNX I see)
e) The system uses a delayed erase (using the second thread), this brings issues into my head about what happens if a
block is re-located and power is removed prior to the old block being erased, how does the wake up read hand two blocks
both with the same file data. I would have expected to see some find of sequencing/aging number in the file information
so the system can detect which is the older and which is the newer in this case (perhaps it does, I have not finished
evaluating the code).
f) Internally we use many "good" coding practices (including MISRA-C/C++ and style guides) so far looking through the
code, nothing was used when this was written (it looks like "hacker" code), the is not even any consistency in
formatting, we ran it though "uncrustify" first to make it readable before starting the evaluation.
g) Previously we had an issue about starting multiple instances on a single system (e.g. we have two devices in our
hardware each as a different drive), the old version could not handle this and gave both devices the same device name,
we had a "temporary fixed version" from QNX which seemed to work, although we had some issues later (source not known
yet), I have not yet looked at this aspect of the released code.
A simple answer from the "Project Team" as to the status of this version in relationship to the previous released TDK
(no source code) version would be VERY welcome; is it different Yes/No ?
|
|
|