
Tom,
On 15/10/19 6:24 PM, Faiz Abbas wrote:
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/65JZXGT3Z6/
Tested on top of Lokesh's tree: https://github.com/lokeshvutla/u-boot Branch: j721e-full-boot
Changes in v2:
- Added environment variables such that its easy to boot kernel from UFS.
- Introduced an API to probe UFS devices individually.
- Changed ti-j721e-ufs wrapper driver to UCLASS_MISC because its not really a UFS device driver.
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 (11): scsi: Simplify scsi_read()/_write() scsi: Add max_bytes_per_req 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 env: ti: Add environment variables to boot from UFS configs: j721e_evm_a72: Enable configs for UFS
MAINTAINERS | 5 + arch/arm/dts/k3-j721e-main.dtsi | 24 + cmd/Kconfig | 7 + cmd/Makefile | 2 +- cmd/ufs.c | 37 + configs/j721e_evm_a72_defconfig | 8 +- 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 | 71 ++ drivers/ufs/ufs-uclass.c | 16 + drivers/ufs/ufs.c | 1968 +++++++++++++++++++++++++++++++ drivers/ufs/ufs.h | 918 ++++++++++++++ drivers/ufs/unipro.h | 270 +++++ include/configs/j721e_evm.h | 4 +- include/dm/uclass-id.h | 1 + include/environment/ti/ufs.h | 33 + include/scsi.h | 5 + include/ufs.h | 29 + 22 files changed, 3590 insertions(+), 47 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/environment/ti/ufs.h create mode 100644 include/ufs.h
Were you able to pick this up for the merge window?
Thanks, Faiz