When generating an MFS image using MFSGen on the PC, and then downloading the image to the Embedded System, the image content returned by mfs_ls() is empty.
This issue is related to the following:
- You must still use the "s" option for MFSGen on a PC to generate the image.
- When you invoke mfs_init_fs(), the base address should be offset by 4.
If you load your image at 0xff000000, the base address for mfs_init_fs() should be specified as 0xff000004. The reason for this address specification is because MFSGen added a 4-bit header to the image file to identify the type of image (big or little endian). The library was supposed to be enhanced to recognize this change and fix the image in memory, but this feature has not been implemented.
You can load the MFS image without any problems as follows:
1. Run the following to generate the "mfsimage.mfs" image file (note the use of the "s" parameter for the byte swapping on the PC):
mfsgen -cvfsb mfsimage.mfs 3 testimg.txt
2. Load the image to the HW at 0x8600 0000 using XMD and specify 0x8600 0004 as the base address in mfs_init_fs().
3. Call mfs_ls() to verify the image at run time.
This Problem is resolved in EDK 7.1. For details on how to initialize the XilMFS from the C Code, refer to the EDK User Manual.