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 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 library .tcl, .mld and .yaml files
|
- src - Library 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.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.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.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

Related Links


© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy