cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
shukerta_pana
Visitor
Visitor
3,214 Views
Registered: ‎10-19-2016

intermittent error with system ACE booting on FAT16

Jump to solution

We are seeing a fairly frequent error where a compact flash card with system ACE is failing to start (getting a solid red light) after the filesystem is subjected to a lot of write and rename operations.  If we remove the compact flash card from the product and read it in Windows, it reads fine as a FAT16 filesystem, and there are no errors when chkdsk is run.  All the files are a perfect match to a newly formatted CF card that boots fine.  In fact, we can reformat the same card and it works fine.

 

This is happening intermittently after a software update.  The software update tool does quite a bit of file copying and renaming via FTP, so we think that is probably related.  In browsing the FAT and the directory entries at a low level, they all seem fine, but one difference between the failing CF cards and a newly formatted CF card is that there are a lot of deleted directory entries due to all of the renaming and moving operations.

 

We are using 2GB CF cards that are formatted and then have mkdosfs run on them.

 

We are trying a workaround where the software update tool does things in a different order, and we have not seen a failure yet, but we would like to know if there is a root cause we can avoid.

 

Are there some known limitations of the system ACE chip with regard to accessing a FAT16 file system?  Perhaps some maximum number of directory entries or some other normal artifact of a FAT16 filesystem that has had a lot of operations that it just doesn't handle?

 

0 Kudos
1 Solution

Accepted Solutions
shukerta_pana
Visitor
Visitor
5,845 Views
Registered: ‎10-19-2016

Update:

 

After a fair amount of messing around with the FAT16 root directory with HxD, I believe there is a pattern.  It's a pretty unlikely situation, but maybe someone else has come across it and will find it useful.

 

It looks like it's related to the collection directory in xilinx.sys (dir = ...;) where the configurations are stored.  Whenever the entry for this directory is beyond the 32nd entry in the FAT16 root directory, it fails.  If it is moved up in the root directory to somewhere in the first 32 entries, it boots fine.  I don't see this shown as a limitation in the System ACE datasheet, but perhaps it's in another document or forum I haven't found.

 

I have not probed exhaustively to confirm that this is the only cause, but I have reproduced this behavior on 3 compact flash cards.  It looks like manually rearranging the root directory structure after a complex set of update operations should be a viable fix for our situation.

 

View solution in original post

0 Kudos
1 Reply
shukerta_pana
Visitor
Visitor
5,846 Views
Registered: ‎10-19-2016

Update:

 

After a fair amount of messing around with the FAT16 root directory with HxD, I believe there is a pattern.  It's a pretty unlikely situation, but maybe someone else has come across it and will find it useful.

 

It looks like it's related to the collection directory in xilinx.sys (dir = ...;) where the configurations are stored.  Whenever the entry for this directory is beyond the 32nd entry in the FAT16 root directory, it fails.  If it is moved up in the root directory to somewhere in the first 32 entries, it boots fine.  I don't see this shown as a limitation in the System ACE datasheet, but perhaps it's in another document or forum I haven't found.

 

I have not probed exhaustively to confirm that this is the only cause, but I have reproduced this behavior on 3 compact flash cards.  It looks like manually rearranging the root directory structure after a complex set of update operations should be a viable fix for our situation.

 

View solution in original post

0 Kudos