diff options
Diffstat (limited to 'Documentation/virtual/kvm/api.txt')
-rw-r--r-- | Documentation/virtual/kvm/api.txt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index c25439a58274..e0fa0ea2b187 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
@@ -2210,6 +2210,44 @@ This ioctl returns the guest registers that are supported for the | |||
2210 | KVM_GET_ONE_REG/KVM_SET_ONE_REG calls. | 2210 | KVM_GET_ONE_REG/KVM_SET_ONE_REG calls. |
2211 | 2211 | ||
2212 | 2212 | ||
2213 | 4.80 KVM_ARM_SET_DEVICE_ADDR | ||
2214 | |||
2215 | Capability: KVM_CAP_ARM_SET_DEVICE_ADDR | ||
2216 | Architectures: arm | ||
2217 | Type: vm ioctl | ||
2218 | Parameters: struct kvm_arm_device_address (in) | ||
2219 | Returns: 0 on success, -1 on error | ||
2220 | Errors: | ||
2221 | ENODEV: The device id is unknown | ||
2222 | ENXIO: Device not supported on current system | ||
2223 | EEXIST: Address already set | ||
2224 | E2BIG: Address outside guest physical address space | ||
2225 | EBUSY: Address overlaps with other device range | ||
2226 | |||
2227 | struct kvm_arm_device_addr { | ||
2228 | __u64 id; | ||
2229 | __u64 addr; | ||
2230 | }; | ||
2231 | |||
2232 | Specify a device address in the guest's physical address space where guests | ||
2233 | can access emulated or directly exposed devices, which the host kernel needs | ||
2234 | to know about. The id field is an architecture specific identifier for a | ||
2235 | specific device. | ||
2236 | |||
2237 | ARM divides the id field into two parts, a device id and an address type id | ||
2238 | specific to the individual device. | ||
2239 | |||
2240 | bits: | 63 ... 32 | 31 ... 16 | 15 ... 0 | | ||
2241 | field: | 0x00000000 | device id | addr type id | | ||
2242 | |||
2243 | ARM currently only require this when using the in-kernel GIC support for the | ||
2244 | hardware VGIC features, using KVM_ARM_DEVICE_VGIC_V2 as the device id. When | ||
2245 | setting the base address for the guest's mapping of the VGIC virtual CPU | ||
2246 | and distributor interface, the ioctl must be called after calling | ||
2247 | KVM_CREATE_IRQCHIP, but before calling KVM_RUN on any of the VCPUs. Calling | ||
2248 | this ioctl twice for any of the base addresses will return -EEXIST. | ||
2249 | |||
2250 | |||
2213 | 5. The kvm_run structure | 2251 | 5. The kvm_run structure |
2214 | ------------------------ | 2252 | ------------------------ |
2215 | 2253 | ||