...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
This page gives an overview of the XILFFS library.
Table of Contents
Table of Contents exclude Table of Contents
Introduction
This page provides details related to the xilffs library.
- The LibXil fat file system (FFS) library consists of a file system and a glue layer. This FAT file system can be used with an interface supported in the glue layer.
- The file system code is open source and is used as it is. Glue layer implementation supports SD/eMMC interface presently.
- Application should make use of APIs provided in ff.h. These file system APIs access the driver functions through the glue layer.
How to enable
xilffs library can be found at
https://github.com/Xilinx/embeddedsw/tree/master/lib/sw_services/xilffs/
xilffs
|
- data - Provides the API and data structure detailslibrary .tcl, .mld and .yaml files
|
- src - Driver source files which are further organised intoLibrary source files, make, cmakelists, config.h.in files
|
- examples - Contains example applications demonstrating the use of xilffs library
Note: AMD Xilinx embeddedsw build flow has been changed from 2023.2 release to adapt to the new system device tree based flow. For further information, refer to the wiki link Porting embeddedsw components to system device tree (SDT) based flow
The .yaml(in data folder) and CMakeLists.txt(in src folder) files are needed for the System Device Tree based flow. The Driver .tcl and .mdd files are for the older build flow which will be deprecated in future.
Library Parameters
Parameters supported by this library are listed in xilffs.mld(legacy flow) and xilffs_config.h.in(Vitis NG flow). Some of the parameters listed below for reference.
- read_only: Enables the file system in Read Only mode, if true. Default is false. Zynq® UltraScale+™ MPSoC fsbl sets this option as true.
- use_lfn: Enables the long file name (LFN) support, if true. Default is false.
- enable_multi_partition: Enables the multi partition support, if true. Default is false.
- num_logical_vol: Number of volumes (logical drives, from 1 to 10) to be used. Default is 2.
- use_mkfs: Enables the mkfs support, if true. Default is true. Zynq UltraScale+ MPSoC fsbl set this option as false.
File System
File System The file system supports FAT16 and FAT32. The APIs are standard file system APIs. A detailed description can be found at http://elm-chan.org/fsw/ff/00index_e.html
Revision R0.10b 15 is used in the library
Documentation corresponding to 0.15 version (or any specific library version) is available in the doc folder if we download the 0.15 version (or corresponding version) from this link http://elm-chan.org/fsw/ff/archives.html
f_mkfs() in 0.15 version is NOT backward compatible with earlier FATFS supported version R0.13B.
AR link:
https://support.xilinx.com/s/article/000034757?language=en_US
Known Issues
2023.2
- Configuration support for TRIM is not supported in Vitis NG flow. TRIM option is disabled and cannot be enabled using Vitis NG GUI.
Test cases
Test case ran by taking examples from example folder specified above
SD Polled File System Example Test Successfully ran SD Polled File System Example |
Changelog
...
2023.
...
- Added support for mkfs.
- Added support for multi partitions.
- Added support for multiple logical drives.
- Modified the example to add mkfs functionality.
- Updated the copyright year to 2016.
- Corrected the data type of temp variable.
- Enable the _WORD_ACCESS option.
- Used usleep API instead of MB_Sleep API.
- Included sleep.h in diskio.c file
2016.4
- Removed enable_mmc option
- Added support for FreeRTOS
2017.1
- Fixed Compilation warnings
- Added configurable option for USE_STRFUNC
2017.2
- None
2017.3
- Added configurable option for _FS_RPATH
- Updated for Word Access System support
2017.4
- None
2018.1
...
2
https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2023.2/doc/ChangeLog#L622
2023.1
https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2023.1/doc/ChangeLog#L166
2022.2
https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2022.2/doc/ChangeLog#L159
2022.1
https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2022.1/doc/ChangeLog#L133
2021.2
https://github.com/Xilinx/embeddedsw/blob/xilinx_v2021.2/doc/ChangeLog#L307
2021.1
https://github.com/Xilinx/embeddedsw/blob/xilinx_v2021.1/doc/ChangeLog#L497
2020.2
https://github.com/Xilinx/embeddedsw/blob/xilinx-v2020.2/doc/ChangeLog#L721
2020.1
https://github.com/Xilinx/embeddedsw/blob/xilinx-v2020.1/doc/ChangeLog#L162
2019.2
https://github.com/Xilinx/embeddedsw/blob/xilinx-v2019.2/doc/ChangeLog#L117
2019.1
https://github.com/Xilinx/embeddedsw/blob/xilinx-v2019.1/doc/ChangeLog#L183
2018.3
https://github.com/Xilinx/embeddedsw/blob/xilinx-v2018.3/doc/ChangeLog#L146
2018.2
None
2018.
...
- Modified the code to make sector buffer cache line aligned
- Modified the SD example to use 8MB instead of 8KB Test file size
- Updated the FatFS version to v0.13b
- Added configurable option for FF_FS_EXFAT to enable exFAT support
- Added Word Access support in latest FatFS source
2019.1
- Add additional LFN options in mld.
- Add support to enable use of CHMOD functionality.
- Change the argument type to int for length of string.
- Added support for versal SD IP name
- Fix data alignment on IAR compiler
2019.2
- Initialize Status variables with failure values
2020.1
- Modified disk_status API to remove dependency on canonical parameters
2020.2
- Minor update - Added supported peripheral list to mld file.
...
1
None
2017.4
None
2017.3
https://github.com/Xilinx/embeddedsw/blob/xilinx-v2017.3/doc/ChangeLog#L348
2017.2
None
2017.1
https://github.com/Xilinx/embeddedsw/blob/xilinx-v2017.1/doc/ChangeLog#L442
2016.4
https://github.com/Xilinx/embeddedsw/blob/xilinx-v2016.4/doc/ChangeLog#L57
2016.3
https://github.com/Xilinx/embeddedsw/blob/xilinx-v2016.3/doc/ChangeLog#L239