I am facing a strange problem when loading a small file (less thaqn 512 bytes) from a SATA disk using U-Boot:
The transfer times out but the load will succeed eventually. The same problem happens when loading files of any size that have the last block non-contiguous.
When stepping through the U-Boot sources that behavior is easy to explain:
The FAT FS will first load any number of blocks of a cluster (including no blocks!) and than load the last 512 bytes for the remaining data. The fsl_sata.c does not care about sata_read() with blkcnt==0 and will therefor timeout (the disk will not send a complete when there is no data to transfer).
While this problem is easy to fix I wonder why this issue I haven't been reported anywhere yet...
...or is there any mistake on my side??