Hello again, This week I decided to do some further research and testing regarding this problem. With the image I had from the previous time, I could immediately reproduce it and by adding more and more debug prints, I tried to find the cause. Sofar, I have not succeeded in this yet.
However: later on I started testing with a freshly formatted drive (32 MB FAT partition) and kept repeating the fatwrite command: fatwrite mmc 0:1 42000000 test-x 200 where x runs from 1, 2,3 and further. And this way I could reproduce it quite easily. Writing always fails for the 32nd file. This is with the partition formatted with a 512 byte sector size and a cluster size of 4. If the cluster size is 1 (formatted by Windows), it already fails at the 8th file. If I create a subdirectory (from Linux) with already 24 files in it, I can still write 29 files and it fails at number 30. Also, if earlier files were deleted from the root-directory, they still count in the total number of files here. If I take out the card where u-boot fails to write new files, I can still add new files from my PC with Linux or Windows. I tested with both long and short filenames (same result), VFAT is enabled. I hope this gives you all some more information about this problem and perhaps it is even a known problem (limited number of files in the root directory?). I know it is voor FAT16, but that was 512 entries if I am correct. Regards, Ruud > -----Oorspronkelijk bericht----- > Van: Ruud Commandeur > Verzonden: woensdag 23 oktober 2013 17:18 > Aan: U-Boot list > Onderwerp: Fat write problem > > Hi Everyone, > > After about half a year without problems for fatwrite, I have > some new problem. > The fatwrites for the u-boot are used to write the uimage and > dtb file to a 32 > MB FAT16 partition on an SD-card. Since this morning, the > writing of a new file > keeps failing. I still can write files that are already present. > But if try and write some file with a name that doe not exist > yet, it fails. I guess > this just hasn't been tested for a while, since these > filenames don't change. > Meanwhile some extra files have been copied to the partition > from the Linux > platform. I did check the SD-card partition with fsck and > could not find any > problems. > > I did enable the debug for MMC and FAT to get the following output: > > fatwrite mmc 0:1 42000000 test-file 200 > writing test-file > MMC0: CMD16 > MMC0: CMD17 > MMC0: CMD16 > MMC0: CMD18 > MMC0: CMD12 > get_dentfromdir: test-file > gc - clustnum: -6, startsect: 132 > MMC0: CMD16 > MMC0: CMD18 > MMC0: CMD12 > vfatname: |uimage| > Mismatch: |uimage|uimage| > vfatname: |imx28-evk.dtb| > Mismatch: |imx28-~1.dtb|imx28-evk.dtb| > vfatname: |linux-file1.txt| > Mismatch: |linux-~1.txt|linux-file1.txt| > Mismatch: |address.ini|| > vfatname: |imx28-clb.dtb| > Mismatch: |imx28-~2.dtb|imx28-clb.dtb| > vfatname: |img-copy| > Mismatch: |img-copy|img-copy| > vfatname: |tessie| > Mismatch: |tessie|tessie| > vfatname: |img-copy2| > Mismatch: |img-co~1|img-copy2| > vfatname: |imx-28-clb-37.dtb| > Mismatch: |imx-28~1.dtb|imx-28-clb-37.dtb| > vfatname: |hello8000.wav| > Mismatch: |hello8~1.wav|hello8000.wav| > vfatname: |versions.ini| > Mismatch: |versions.ini|versions.ini| > vfatname: |mx28-310.dtb| > Mismatch: |mx28-310.dtb|mx28-310.dtb| > FAT16: entry: 0xfffffffa = -6, offset: 0x03fa = 1018 > MMC: block number 0x1000806 exceeds max(0x762c00) > FAT16: ret: 00000000, entry: fffffffa, offset: 03fa > curclust: 0x0 > Invalid FAT entry > name.ext : <NULL>. > FAT16: entry: 0x0003 = 3, offset: 0x0003 = 3 > error: overflow occurs > error: writing FAT blocks > FAT16: entry: 0x0004 = 4, offset: 0x0004 = 4 > error: overflow occurs > error: writing FAT blocks > FAT16: entry: 0x0005 = 5, offset: 0x0005 = 5 > error: overflow occurs > error: writing FAT blocks > FAT16: entry: 0x0006 = 6, offset: 0x0006 = 6 > ... and this goes on for a long long time... > > It points to get_fatent_value( ) where things go wrong. Or > perhaps the call of > this function with the value 0xfffffffa (-6). I don't know if > that is supposed > to be possible? > > At the moment I am a bit stuck here, so if anyone would have > an idea what > goes wrong here, please let me know. > > Thanks, > > Ruud > > N.B. It might be that this can be solved by clearing the FAT > partition and starting > with a clean sheet. But I prefer not to lose this error > situaion before I know > what goes wrong here. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot