|
| 1 | +.. SPDX-License-Identifier: GPL-2.0 |
| 2 | +
|
| 3 | +========================= |
1 | 4 | XICS interrupt controller
|
| 5 | +========================= |
2 | 6 |
|
3 | 7 | Device type supported: KVM_DEV_TYPE_XICS
|
4 | 8 |
|
5 | 9 | Groups:
|
6 | 10 | 1. KVM_DEV_XICS_GRP_SOURCES
|
7 |
| - Attributes: One per interrupt source, indexed by the source number. |
| 11 | + Attributes: |
8 | 12 |
|
| 13 | + One per interrupt source, indexed by the source number. |
9 | 14 | 2. KVM_DEV_XICS_GRP_CTRL
|
10 |
| - Attributes: |
11 |
| - 2.1 KVM_DEV_XICS_NR_SERVERS (write only) |
| 15 | + Attributes: |
| 16 | + |
| 17 | + 2.1 KVM_DEV_XICS_NR_SERVERS (write only) |
| 18 | + |
12 | 19 | The kvm_device_attr.addr points to a __u32 value which is the number of
|
13 | 20 | interrupt server numbers (ie, highest possible vcpu id plus one).
|
| 21 | + |
14 | 22 | Errors:
|
15 |
| - -EINVAL: Value greater than KVM_MAX_VCPU_ID. |
16 |
| - -EFAULT: Invalid user pointer for attr->addr. |
17 |
| - -EBUSY: A vcpu is already connected to the device. |
| 23 | + |
| 24 | + ======= ========================================== |
| 25 | + -EINVAL Value greater than KVM_MAX_VCPU_ID. |
| 26 | + -EFAULT Invalid user pointer for attr->addr. |
| 27 | + -EBUSY A vcpu is already connected to the device. |
| 28 | + ======= ========================================== |
18 | 29 |
|
19 | 30 | This device emulates the XICS (eXternal Interrupt Controller
|
20 | 31 | Specification) defined in PAPR. The XICS has a set of interrupt
|
@@ -53,24 +64,29 @@ the interrupt source number. The 64 bit state word has the following
|
53 | 64 | bitfields, starting from the least-significant end of the word:
|
54 | 65 |
|
55 | 66 | * Destination (server number), 32 bits
|
| 67 | + |
56 | 68 | This specifies where the interrupt should be sent, and is the
|
57 | 69 | interrupt server number specified for the destination vcpu.
|
58 | 70 |
|
59 | 71 | * Priority, 8 bits
|
| 72 | + |
60 | 73 | This is the priority specified for this interrupt source, where 0 is
|
61 | 74 | the highest priority and 255 is the lowest. An interrupt with a
|
62 | 75 | priority of 255 will never be delivered.
|
63 | 76 |
|
64 | 77 | * Level sensitive flag, 1 bit
|
| 78 | + |
65 | 79 | This bit is 1 for a level-sensitive interrupt source, or 0 for
|
66 | 80 | edge-sensitive (or MSI).
|
67 | 81 |
|
68 | 82 | * Masked flag, 1 bit
|
| 83 | + |
69 | 84 | This bit is set to 1 if the interrupt is masked (cannot be delivered
|
70 | 85 | regardless of its priority), for example by the ibm,int-off RTAS
|
71 | 86 | call, or 0 if it is not masked.
|
72 | 87 |
|
73 | 88 | * Pending flag, 1 bit
|
| 89 | + |
74 | 90 | This bit is 1 if the source has a pending interrupt, otherwise 0.
|
75 | 91 |
|
76 | 92 | Only one XICS instance may be created per VM.
|
0 commit comments