[roll] Roll fuchsia [kernel][smmu] Introduce an ARM SMMU Iommu type.

Define a type, and a parameter structure for ARM SMMUs which can be
used with the `zx_iommu_create` syscall.

Currently, systems with SMMUs are simply creating a single DummyIommu
instance, and then creating BTIs with fake StreamIDs.  This is fine
for operating with the system's SMMUs disabled, or when it is
preconfigured to put all of the required initiators into bypass mode,
but more needs to be done in the long run.

Eventually, user-mode is going to need to obtain handles to all of the
actual SMMU instances in the system, and then create BTIs using the
actual stream IDs (as reported in the device tree) under the correct
SMMU instances.

This small patch should allow for a graceful transition to that mode.
Users can now explicitly request a handle to an SMMU instance with the
desired instance uniquely identified by the physical base address of
the specific SMMU instance.  Under the hood, we are simply going to
return an instance of a DummyIommu, meaning that the system should
continue to operate exactly as it does today, allowing the plumbing to
create the proper SMMU and BTI instances to be developed in parallel
with developing support for the SMMU hardware itself.

Original-Bug: 42108551
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1408247
Original-Revision: e621cb36f3ed9ce46e1508fde0355a4df4418448
GitOrigin-RevId: a8b8ae608b73f62c5b873d0c90ccb9b26ace74bf
Change-Id: Ibf40e06ba0d654878f8d592eb8dc5fa0fc92172d
1 file changed
tree: c5d9d7016172c55b8c6fa36b4e1e1c0e10ae603f
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. flower
  6. jiri.lock
  7. MILESTONE
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.