
The following patches add support for the Universal Flash Storage (UFS) subsystem and its implementation on TI's J721e platform.
The UFS Application Layer (UAP) uses SCSI SAM-4 command set for communication with the device. Therefore, the first 4 patches prepare the scsi layer for compatibility with UFS. Patch 9 also adds support for initializing and configuring the device from the U-boot command line.
The UFS Transport Protocol Layer (UTP) and UFS Interconnect Layer (UIC) are implemented with patch 5. This series only adds support for detect and read/write operations to the LUNs present in the remote device. Task Management operations and configuration of LUNs will be added in a future series.
Patches 6 through 10 add platform driver, device tree and config support for TI's J721E devices.
Log: https://pastebin.ubuntu.com/p/fTPZsxNjZM/
Tested on top of Lokesh's tree: https://github.com/lokeshvutla/u-boot Branch: j721e-full-boot
References:
[1] JESD220D UFS 3.0: https://www.jedec.org/standards-documents/docs/jesd220c [2] JESD223D UFS Host Controller Interface (UFSHCI) version 3.0: https://www.jedec.org/standards-documents/docs/jesd223c
Faiz Abbas (10): scsi: Simplify scsi_read()/_write() scsi: Add max_bytes to scsi_platdata scsi: Retry inquiry 3 times to overcome Unit Attention condition scsi: Add dma direction member to command structure ufs: Add Initial Support for UFS subsystem ufs: Add Support for Cadence platform UFS driver ufs: Add glue layer driver for TI J721E devices arm: dts: k3-j721e-main: Add UFS nodes cmd: Add Support for UFS commands configs: j721e_evm_a72: Enable configs for UFS
arch/arm/dts/k3-j721e-main.dtsi | 25 + cmd/Kconfig | 7 + cmd/Makefile | 2 +- cmd/ufs.c | 28 + configs/j721e_evm_a72_defconfig | 7 +- drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/scsi/scsi.c | 83 +- drivers/ufs/Kconfig | 23 + drivers/ufs/Makefile | 8 + drivers/ufs/cdns-platform.c | 122 ++ drivers/ufs/ti-j721e-ufs.c | 75 ++ drivers/ufs/ufs-uclass.c | 16 + drivers/ufs/ufs.c | 1973 +++++++++++++++++++++++++++++++ drivers/ufs/ufs.h | 918 ++++++++++++++ drivers/ufs/unipro.h | 270 +++++ include/dm/uclass-id.h | 1 + include/scsi.h | 4 + include/ufs.h | 7 + 19 files changed, 3526 insertions(+), 46 deletions(-) create mode 100644 cmd/ufs.c create mode 100644 drivers/ufs/Kconfig create mode 100644 drivers/ufs/Makefile create mode 100644 drivers/ufs/cdns-platform.c create mode 100644 drivers/ufs/ti-j721e-ufs.c create mode 100644 drivers/ufs/ufs-uclass.c create mode 100644 drivers/ufs/ufs.c create mode 100644 drivers/ufs/ufs.h create mode 100644 drivers/ufs/unipro.h create mode 100644 include/ufs.h