xilffs
This page gives an overview of the XILFFS library.
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, UFS and RAMFS interface presently.
- Application should make use of APIs provided in ff.h. These file system APIs access the driver functions through the glue layer.
Library Sources
The source code for the driver is included with the Vitis Unified Software Platform installation, as well as being available in the Xilinx Github repository.
Library Name | Path in Vitis | Path in Github |
---|---|---|
Xilffs | <Vitis Install Directory>/data/embedded/lib/sw_services/xilffs | https://github.com/Xilinx/embeddedsw/tree/master/lib/sw_services/xilffs |
The driver source code is organized into different folders. The table below shows the xilffs library source organization.
Directory | Description |
---|---|
Doc | Provides the API and data structure details |
data | Driver .tcl, .yaml and .mld file |
examples | Example applications that show how to use the driver features |
src | Library source files, make and cmakelists file |
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 Implementation
Features
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
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.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 and Limitations
- None
Example Applications
Refer to the xillfs library examples directory for various example applications that exercise the different features of the xillfs.
Each application is linked in the table below. The following sections describe the usage and expected output of the various applications.
These example applications can be imported into the Vitis IDE from the Board Support Package settings tab.
Links to Examples
Examples Path: https://github.com/Xilinx/embeddedsw/tree/master/lib/sw_services/xilffs/examples
Test Name | Example Source | Description |
---|---|---|
SD xilffs example | xilffs_polled_example.c | This examples does basic file system read and write test from SD/eMMC device in Polled mode. |
UFS xilffs example | xilffs_polled_ufs_example.c | This example uses file system with UFS to write to and read from an UFS device in polled mode. |
Example Application Usage
SD Xilffs examples
Read and write test from SD/eMMC device in Polled mode.
Expected Output
SD Polled File System Example Test Successfully ran SD Polled File System Example Test |
UFS Xilffs examples
Write to and read from an UFS device in polled mode.
Expected Output
UFS Polled File System Example Test Successfully ran UFS Polled File System Example Test |
changelog
2024.2
https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2024.2/doc/ChangeLog#L167
2024.1
https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2024.1/doc/ChangeLog#L962
2023.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
Related Links
Related content
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy