Common SMMUv3 patches for the following patches adding nesting, shared branch with the iommu tree. * 'iommufd/arm-smmuv3-nested' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/iommu/linux: iommu/arm-smmu-v3: Expose the arm_smmu_attach interface iommu/arm-smmu-v3: Implement IOMMU_HWPT_ALLOC_NEST_PARENT iommu/arm-smmu-v3: Support IOMMU_GET_HW_INFO via struct arm_smmu_hw_info iommu/arm-smmu-v3: Report IOMMU_CAP_ENFORCE_CACHE_COHERENCY for CANWBS ACPI/IORT: Support CANWBS memory access flag ACPICA: IORT: Update for revision E.f vfio: Remove VFIO_TYPE1_NESTING_IOMMU ...
Showing the changes to include/uapi (3 of 1549 files). Show all
Unified · Split
| @@ -513,15 +513,50 @@ struct iommu_hw_info_vtd { · 512 unmodified lines | |||
| 513 | __aligned_u64 ecap_reg; | 513 | __aligned_u64 ecap_reg; |
| 514 | }; | 514 | }; |
| 515 | 515 | ||
| 516 | /** | ||
| 517 | * struct iommu_hw_info_arm_smmuv3 - ARM SMMUv3 hardware information | ||
| 518 | * (IOMMU_HW_INFO_TYPE_ARM_SMMUV3) | ||
| 519 | * | ||
| 520 | * @flags: Must be set to 0 | ||
| 521 | * @__reserved: Must be 0 | ||
| 522 | * @idr: Implemented features for ARM SMMU Non-secure programming interface | ||
| 523 | * @iidr: Information about the implementation and implementer of ARM SMMU, | ||
| 524 | * and architecture version supported | ||
| 525 | * @aidr: ARM SMMU architecture version | ||
| 526 | * | ||
| 527 | * For the details of @idr, @iidr and @aidr, please refer to the chapters | ||
| 528 | * from 6.3.1 to 6.3.6 in the SMMUv3 Spec. | ||
| 529 | * | ||
| 530 | * User space should read the underlying ARM SMMUv3 hardware information for | ||
| 531 | * the list of supported features. | ||
| 532 | * | ||
| 533 | * Note that these values reflect the raw HW capability, without any insight if | ||
| 534 | * any required kernel driver support is present. Bits may be set indicating the | ||
| 535 | * HW has functionality that is lacking kernel software support, such as BTM. If | ||
| 536 | * a VMM is using this information to construct emulated copies of these | ||
| 537 | * registers it should only forward bits that it knows it can support. | ||
| 538 | * | ||
| 539 | * In future, presence of required kernel support will be indicated in flags. | ||
| 540 | */ | ||
| 541 | struct iommu_hw_info_arm_smmuv3 { | ||
| 542 | __u32 flags; | ||
| 543 | __u32 __reserved; | ||
| 544 | __u32 idr[6]; | ||
| 545 | __u32 iidr; | ||
| 546 | __u32 aidr; | ||
| 547 | }; | ||
| 548 | |||
| 516 | /** | 549 | /** |
| 517 | * enum iommu_hw_info_type - IOMMU Hardware Info Types | 550 | * enum iommu_hw_info_type - IOMMU Hardware Info Types |
| 518 | * @IOMMU_HW_INFO_TYPE_NONE: Used by the drivers that do not report hardware | 551 | * @IOMMU_HW_INFO_TYPE_NONE: Used by the drivers that do not report hardware |
| 519 | * info | 552 | * info |
| 520 | * @IOMMU_HW_INFO_TYPE_INTEL_VTD: Intel VT-d iommu info type | 553 | * @IOMMU_HW_INFO_TYPE_INTEL_VTD: Intel VT-d iommu info type |
| 554 | * @IOMMU_HW_INFO_TYPE_ARM_SMMUV3: ARM SMMUv3 iommu info type | ||
| 521 | */ | 555 | */ |
| 522 | enum iommu_hw_info_type { | 556 | enum iommu_hw_info_type { |
| 523 | IOMMU_HW_INFO_TYPE_NONE = 0, | 557 | IOMMU_HW_INFO_TYPE_NONE = 0, |
| 524 | IOMMU_HW_INFO_TYPE_INTEL_VTD = 1, | 558 | IOMMU_HW_INFO_TYPE_INTEL_VTD = 1, |
| 559 | IOMMU_HW_INFO_TYPE_ARM_SMMUV3 = 2, | ||
| 525 | }; | 560 | }; |
| 526 | 561 | ||
| 527 | /** | 562 | /** |
| @@ -1694,7 +1694,7 @@ enum nft_flowtable_flags { · 1693 unmodified lines | |||
| 1694 | * | 1694 | * |
| 1695 | * @NFTA_FLOWTABLE_TABLE: name of the table containing the expression (NLA_STRING) | 1695 | * @NFTA_FLOWTABLE_TABLE: name of the table containing the expression (NLA_STRING) |
| 1696 | * @NFTA_FLOWTABLE_NAME: name of this flow table (NLA_STRING) | 1696 | * @NFTA_FLOWTABLE_NAME: name of this flow table (NLA_STRING) |
| 1697 | * @NFTA_FLOWTABLE_HOOK: netfilter hook configuration(NLA_U32) | 1697 | * @NFTA_FLOWTABLE_HOOK: netfilter hook configuration (NLA_NESTED) |
| 1698 | * @NFTA_FLOWTABLE_USE: number of references to this flow table (NLA_U32) | 1698 | * @NFTA_FLOWTABLE_USE: number of references to this flow table (NLA_U32) |
| 1699 | * @NFTA_FLOWTABLE_HANDLE: object handle (NLA_U64) | 1699 | * @NFTA_FLOWTABLE_HANDLE: object handle (NLA_U64) |
| 1700 | * @NFTA_FLOWTABLE_FLAGS: flags (NLA_U32) | 1700 | * @NFTA_FLOWTABLE_FLAGS: flags (NLA_U32) |
| @@ -35,7 +35,7 @@ · 34 unmodified lines | |||
| 35 | #define VFIO_EEH 5 | 35 | #define VFIO_EEH 5 |
| 36 | 36 | ||
| 37 | /* Two-stage IOMMU */ | 37 | /* Two-stage IOMMU */ |
| 38 | #define VFIO_TYPE1_NESTING_IOMMU 6 /* Implies v2 */ | 38 | #define __VFIO_RESERVED_TYPE1_NESTING_IOMMU 6 /* Implies v2 */ |
| 39 | 39 | ||
| 40 | #define VFIO_SPAPR_TCE_v2_IOMMU 7 | 40 | #define VFIO_SPAPR_TCE_v2_IOMMU 7 |
| 41 | 41 | ||