Hi,

This series adds support for SMMUv3. Stream IDs have been added to the
cell config and they need to be specified in the config before a cell
can use a stream.

The SMMU driver exposes an emulated SMMU to the guests cells by trapping
access to the MMIO registers. This is not emulation in the sense that we
fully emulate the device top to bottom. The emulation is used to provide an
interface to the SMMU that the hypervisor can control to make sure the
inmates are not doing anything they should not. The actual translations
are done by hardware.

The IOMMU definition has been generalised. The AMD and Intel IOMMU
drivers have been updated to use this definition. I am not very familiar
with these drivers, so please do take a look to make sure the changes
are correct and don't create any unwanted problems.

Limitations and work left are mentioned in the 6th patch.

Lokesh Vutla (1):
  arm64: iommu: smmu-v3: Add support for smmu v3 configuration from
    config files

Nikhil Devshatwar (3):
  iommu: x86: Generalize iommu definition
  arm-common: Introduce iommu functionality
  core: Add stream id list in the cell config

Pratyush Yadav (2):
  core: Move unit initialization after memory initialization
  arm64: iommu: smmu-v3: Add support for stage 1 and 2 translations

 configs/x86/f2a88xm-hd3.c                     |   13 +-
 configs/x86/qemu-x86.c                        |    5 +-
 hypervisor/arch/arm-common/Kbuild             |    2 +-
 hypervisor/arch/arm-common/control.c          |    6 +
 hypervisor/arch/arm-common/include/asm/cell.h |    2 +
 .../arch/arm-common/include/asm/iommu.h       |   26 +
 hypervisor/arch/arm-common/iommu.c            |   32 +
 hypervisor/arch/arm-common/mmu_cell.c         |   12 +
 hypervisor/arch/arm64/Kbuild                  |    2 +-
 hypervisor/arch/arm64/smmu-v3.c               | 1988 +++++++++++++++++
 hypervisor/arch/x86/amd_iommu.c               |   52 +-
 hypervisor/arch/x86/include/asm/iommu.h       |    2 -
 hypervisor/arch/x86/iommu.c                   |   10 -
 hypervisor/arch/x86/vtd.c                     |   17 +-
 hypervisor/include/jailhouse/entry.h          |    1 +
 hypervisor/setup.c                            |   14 +-
 include/jailhouse/cell-config.h               |   43 +-
 tools/jailhouse-cell-linux                    |    4 +-
 tools/jailhouse-hardware-check                |    2 +-
 19 files changed, 2163 insertions(+), 70 deletions(-)
 create mode 100644 hypervisor/arch/arm-common/include/asm/iommu.h
 create mode 100644 hypervisor/arch/arm-common/iommu.c
 create mode 100644 hypervisor/arch/arm64/smmu-v3.c

-- 
2.17.1

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/20190702143607.16525-1-p-yadav1%40ti.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to