-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Add support for UFS driver #93528
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
neeliajay
wants to merge
10
commits into
zephyrproject-rtos:main
Choose a base branch
from
neeliajay:feature/ufs-support
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Add support for UFS driver #93528
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Introduce core components of the SCSI subsystem, including support for device initialization, command dispatching, and basic I/O operations. Provide foundation for future integration with UFS and other SCSI-based devices. Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
Introduce initial support for the UFS subsystem in Zephyr, providing core infrastructure to enable UFS device functionality. This lays the foundation for further enhancements to the UFS subsystem in Zephyr. Key features introduced in this patch: - UFS controller initialization support. - Handling of SCSI command transfer requests. - UFS device configuration support. - Interrupt-driven UFS operations. Limitations: - Does not support task management functionality. - Does not include RPMB (Replay Protected Memory Block) support. - Asynchronous transfers are not supported. Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
Add amd,versal2-ufs.yaml for AMD Versal Gen 2 UFS Host Controller. Add ufs-common.yaml for common properties of UFS Host Controllers. Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
Add support for the UFS Host Controller (UFSHC) driver on the AMD Versal Gen 2 platform. The implementation includes necessary configurations for M-PHY, RMMI, and Unipro, as well as programming of vendor-specific registers during controller initialization. Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
Add device tree binding for UFS disks in Zephyr, enabling interaction with UFS storage via the Zephyr disk subsystem. This binding ensures correct handling of UFS devices, including support for multiple LUNs, enabling filesystem operations in Zephyr. Key properties: - lun: Defines the Logical Unit Number (LUN) for the UFS disk, defaulting to 0. This is essential for systems with multiple LUNs. - disk-name: A required string specifying the UFS disk's name for proper registration in the disk subsystem. Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
Add UFS disk driver, enabling interaction with UFS storage devices via the filesystem interface. It recognizes Logical Unit Numbers (LUNs) as separate disks and presents UFS devices as block devices for standard filesystem operations. This driver ensures UFS devices are recognized and usable within Zephyr’s filesystem. Key features: - Initialization: Initializes the UFS disk using LUN and disk-name properties from the device tree. - Disk Operations: Registers essential operations, including read, write, and ioctl. Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
Add a test for the UFS subsystem to verify the functionality of UFS stack implementation. The test performs basic read operations on a UFS card after initialization. Test components: - Init: Verifies the UFS host controller can detect card presence and initialize the UFS subsystem. - Configuration: Ensures that the UFS stack reports a valid configuration for the UFS card after initialization. Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
Add a test to verify the SCSI subsystem's functionality with UFS devices. Test Components: - Init Test: Verifies SCSI device initialization via the UFS host controller. - IOCTL Test: Checks SCSI IOCTL operations using SG_IO. - R/W Test: Confirms data can be written to and read from the UFS device without errors. Requirements: - UFS device must be connected. - Write operations are disabled by default (can be enabled via configuration). Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
Extend disk_access test suite to support UFS disk driver. Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
Add documentation for the UFS Host Controller (UFSHC) driver, which provides a generic interface for interacting with UFS host controller devices. It is used by the UFS subsystem to manage UFS-based storage devices. The documentation covers key aspects of the UFSHC, including initialization, transfer request handling, query requests, and configuration options, helping developers understand how to integrate and work with the UFS subsystem effectively. Signed-off-by: Ajay Neeli <ajay.neeli@amd.com>
#87201 - Reopening the closed PR |
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request re-opens the PR: #87201