arm-vgic-its.txt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. ARM Virtual Interrupt Translation Service (ITS)
  2. ===============================================
  3. Device types supported:
  4. KVM_DEV_TYPE_ARM_VGIC_ITS ARM Interrupt Translation Service Controller
  5. The ITS allows MSI(-X) interrupts to be injected into guests. This extension is
  6. optional. Creating a virtual ITS controller also requires a host GICv3 (see
  7. arm-vgic-v3.txt), but does not depend on having physical ITS controllers.
  8. There can be multiple ITS controllers per guest, each of them has to have
  9. a separate, non-overlapping MMIO region.
  10. Groups:
  11. KVM_DEV_ARM_VGIC_GRP_ADDR
  12. Attributes:
  13. KVM_VGIC_ITS_ADDR_TYPE (rw, 64-bit)
  14. Base address in the guest physical address space of the GICv3 ITS
  15. control register frame.
  16. This address needs to be 64K aligned and the region covers 128K.
  17. Errors:
  18. -E2BIG: Address outside of addressable IPA range
  19. -EINVAL: Incorrectly aligned address
  20. -EEXIST: Address already configured
  21. -EFAULT: Invalid user pointer for attr->addr.
  22. -ENODEV: Incorrect attribute or the ITS is not supported.
  23. KVM_DEV_ARM_VGIC_GRP_CTRL
  24. Attributes:
  25. KVM_DEV_ARM_VGIC_CTRL_INIT
  26. request the initialization of the ITS, no additional parameter in
  27. kvm_device_attr.addr.
  28. Errors:
  29. -ENXIO: ITS not properly configured as required prior to setting
  30. this attribute
  31. -ENOMEM: Memory shortage when allocating ITS internal data