[ufs] Introduce UFS driver

This CL implements the basic bind functionality of the UFS driver.
Currently, the UFS driver only supports PCI-based UFSHCI.
Also, add the reqeust_descriptor headers.

This UFS driver is based on the code below written by Martin Lindsay
(mlindsay@google.com).
http://fxrev.dev/703158

Tests will be added after the test framework is added.

Bug: 124835
Test: fx test -o ufs_bind_test
Change-Id: I2b775fb66d59863635edd12d24f1a17512c19ecf
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/830036
Reviewed-by: Christopher Anderson <cja@google.com>
Reviewed-by: HanBin Yoon <hanbinyoon@google.com>
Reviewed-by: Suraj Malhotra <surajmalhotra@google.com>
Commit-Queue: HanBin Yoon <hanbinyoon@google.com>
Reviewed-by: Aidan Wolter <awolter@google.com>
18 files changed
tree: 5d7f39c596d6a83773d0c0e308309d52dc06c540
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. products/
  7. scripts/
  8. sdk/
  9. src/
  10. third_party/
  11. tools/
  12. zircon/
  13. .clang-format
  14. .clang-tidy
  15. .editorconfig
  16. .git-blame-ignore-revs
  17. .gitattributes
  18. .gitignore
  19. .gitmodules
  20. .gn
  21. .ignore
  22. .style.yapf
  23. analysis_options.yaml
  24. AUTHORS
  25. BUILD.gn
  26. CODE_OF_CONDUCT.md
  27. CONTRIBUTING.md
  28. fuchsia.code-workspace
  29. LICENSE
  30. OWNERS
  31. PATENTS
  32. pyrightconfig.json
  33. README.md
  34. rustfmt.toml
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.