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.
export CROSS_COMPILE=/XXX/aarch64-linux-gnu-
"make"
"make clean"
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
signed-off-by:Arthur Simchaev ([email protected]) signed-off-by:Avri Altman ([email protected])
This project is licensed under the GPL-2.0-only
See COPYING to see the full text.