Skip to content

The UFS Tool project have been created to allow access UFS device from user space, and perform basic set of UFS operations: Read and write UFS device configuration (flags, attributes, descriptors), FFU, etc... The set of UFS Tool features is co-existing and updated beside BSG and SG infrastructure in Linux Kernel. The source code of ufs-tool is …

License

Notifications You must be signed in to change notification settings

r-vignesh/ufs-tool

 
 

Repository files navigation

UFS Tool ver 1.1

Description:

a) Read/Write device flags, attributes & descriptors by using the BSG infrastructure in linux kernel (applied to 5.1 rc1)
Due to the issues in UFS BSG driver, the following patch have to be applied:
https://lore.kernel.org/patchwork/patch/1076796/
https://patchwork.kernel.org/patch/11011891/
b) Error History
The tool is aligned to the UFS 3.0 spec.

Build:

Set CROSS_COMPILE variable(e.g.):

export CROSS_COMPILE=/XXX/aarch64-linux-gnu-

Build:

"make"

Clean:

"make clean"

Usage

Copy the tool into a directory on the device (e.g. /data/local/tmp).
Run the tool without arguments or with -h/--help options in order to list the supported features:
E.g. Run:
./ufs-tool --help
Output: ufs-tool help|--help|-h Show the help.

    ufs-tool -v
            Show the version.

    ufs-tool <desc | attr | fl | err_hist> --help|-h
            Show detailed help for a command

Run the tool's help for the ufs configuration features in order to
get full information related to the feature, all options and the
examples. E.g.: getting help for ufs flags Run: ./ufs-tool fl --help
Output: Flags command usage:

    ufs-tool fl [-t] <flag idn> [-a|-r|-o|-e] [-p] <device_path> 

    -t       Flags type idn
             Available flags and its access, based on UFS ver 3.0 :
                     0  : Reserved
                     1  : fDeviceInit                | Read | SetOnly
                     2  : fPermanentWPEn             | Read | WriteOnce
                     3  : fPowerOnWPEn               | Read | ResetOnPower
                     4  : fBackgroundOpsEn           | Read | Volatile
                     5  : fDeviceLifeSpanModeEn      | Read | Volatile
                     6  : fPurgeEnable               | WriteOnly | Volatile
                     7  : fRefreshEnable             | WriteOnly | Volatile
                     8  : fPhyResourceRemoval        | Read | Persistent
                     9  : fBusyRTC                   | ReadOnly
                     10 : Reserved
                     11 : fPermanentlyDisableFw      | Read | WriteOnce

    -a       read and print all readable flags for the device

    -r       read operation (default), for readable flag(s)

    -e       set flag operation

    -c       clear/reset flag operation

    -o       toggle flag operation

    -p       path to ufs bsg device

    Example - Read the bkops operation flag
            ufs-tool fl -t 4 -p /dev/block/ufs-bsg

Authors

signed-off-by:Arthur Simchaev ([email protected]) signed-off-by:Avri Altman ([email protected])

License

This project is licensed under the GPL-2.0-only
See COPYING to see the full text.

About

The UFS Tool project have been created to allow access UFS device from user space, and perform basic set of UFS operations: Read and write UFS device configuration (flags, attributes, descriptors), FFU, etc... The set of UFS Tool features is co-existing and updated beside BSG and SG infrastructure in Linux Kernel. The source code of ufs-tool is …

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 94.4%
  • C++ 4.0%
  • Makefile 1.6%