forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull second round of KVM changes from Paolo Bonzini: "Here are the PPC and ARM changes for KVM, which I separated because they had small conflicts (respectively within KVM documentation, and with 3.16-rc changes). Since they were all within the subsystem, I took care of them. Stephen Rothwell reported some snags in PPC builds, but they are all fixed now; the latest linux-next report was clean. New features for ARM include: - KVM VGIC v2 emulation on GICv3 hardware - Big-Endian support for arm/arm64 (guest and host) - Debug Architecture support for arm64 (arm32 is on Christoffer's todo list) And for PPC: - Book3S: Good number of LE host fixes, enable HV on LE - Book3S HV: Add in-guest debug support This release drops support for KVM on the PPC440. As a result, the PPC merge removes more lines than it adds. :) I also included an x86 change, since Davidlohr tied it to an independent bug report and the reporter quickly provided a Tested-by; there was no reason to wait for -rc2" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (122 commits) KVM: Move more code under CONFIG_HAVE_KVM_IRQFD KVM: nVMX: fix "acknowledge interrupt on exit" when APICv is in use KVM: nVMX: Fix nested vmexit ack intr before load vmcs01 KVM: PPC: Enable IRQFD support for the XICS interrupt controller KVM: Give IRQFD its own separate enabling Kconfig option KVM: Move irq notifier implementation into eventfd.c KVM: Move all accesses to kvm::irq_routing into irqchip.c KVM: irqchip: Provide and use accessors for irq routing table KVM: Don't keep reference to irq routing table in irqfd struct KVM: PPC: drop duplicate tracepoint arm64: KVM: fix 64bit CP15 VM access for 32bit guests KVM: arm64: GICv3: mandate page-aligned GICV region arm64: KVM: GICv3: move system register access to msr_s/mrs_s KVM: PPC: PR: Handle FSCR feature deselects KVM: PPC: HV: Remove generic instruction emulation KVM: PPC: BOOKEHV: rename e500hv_spr to bookehv_spr KVM: PPC: Remove DCR handling KVM: PPC: Expose helper functions for data/inst faults KVM: PPC: Separate loadstore emulation from priv emulation KVM: PPC: Handle magic page in kvmppc_ld/st ...
- Loading branch information
Showing
116 changed files
with
5,010 additions
and
2,825 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
* ARM Generic Interrupt Controller, version 3 | ||
|
||
AArch64 SMP cores are often associated with a GICv3, providing Private | ||
Peripheral Interrupts (PPI), Shared Peripheral Interrupts (SPI), | ||
Software Generated Interrupts (SGI), and Locality-specific Peripheral | ||
Interrupts (LPI). | ||
|
||
Main node required properties: | ||
|
||
- compatible : should at least contain "arm,gic-v3". | ||
- interrupt-controller : Identifies the node as an interrupt controller | ||
- #interrupt-cells : Specifies the number of cells needed to encode an | ||
interrupt source. Must be a single cell with a value of at least 3. | ||
|
||
The 1st cell is the interrupt type; 0 for SPI interrupts, 1 for PPI | ||
interrupts. Other values are reserved for future use. | ||
|
||
The 2nd cell contains the interrupt number for the interrupt type. | ||
SPI interrupts are in the range [0-987]. PPI interrupts are in the | ||
range [0-15]. | ||
|
||
The 3rd cell is the flags, encoded as follows: | ||
bits[3:0] trigger type and level flags. | ||
1 = edge triggered | ||
4 = level triggered | ||
|
||
Cells 4 and beyond are reserved for future use. When the 1st cell | ||
has a value of 0 or 1, cells 4 and beyond act as padding, and may be | ||
ignored. It is recommended that padding cells have a value of 0. | ||
|
||
- reg : Specifies base physical address(s) and size of the GIC | ||
registers, in the following order: | ||
- GIC Distributor interface (GICD) | ||
- GIC Redistributors (GICR), one range per redistributor region | ||
- GIC CPU interface (GICC) | ||
- GIC Hypervisor interface (GICH) | ||
- GIC Virtual CPU interface (GICV) | ||
|
||
GICC, GICH and GICV are optional. | ||
|
||
- interrupts : Interrupt source of the VGIC maintenance interrupt. | ||
|
||
Optional | ||
|
||
- redistributor-stride : If using padding pages, specifies the stride | ||
of consecutive redistributors. Must be a multiple of 64kB. | ||
|
||
- #redistributor-regions: The number of independent contiguous regions | ||
occupied by the redistributors. Required if more than one such | ||
region is present. | ||
|
||
Examples: | ||
|
||
gic: interrupt-controller@2cf00000 { | ||
compatible = "arm,gic-v3"; | ||
#interrupt-cells = <3>; | ||
interrupt-controller; | ||
reg = <0x0 0x2f000000 0 0x10000>, // GICD | ||
<0x0 0x2f100000 0 0x200000>, // GICR | ||
<0x0 0x2c000000 0 0x2000>, // GICC | ||
<0x0 0x2c010000 0 0x2000>, // GICH | ||
<0x0 0x2c020000 0 0x2000>; // GICV | ||
interrupts = <1 9 4>; | ||
}; | ||
|
||
gic: interrupt-controller@2c010000 { | ||
compatible = "arm,gic-v3"; | ||
#interrupt-cells = <3>; | ||
interrupt-controller; | ||
redistributor-stride = <0x0 0x40000>; // 256kB stride | ||
#redistributor-regions = <2>; | ||
reg = <0x0 0x2c010000 0 0x10000>, // GICD | ||
<0x0 0x2d000000 0 0x800000>, // GICR 1: CPUs 0-31 | ||
<0x0 0x2e000000 0 0x800000>; // GICR 2: CPUs 32-63 | ||
<0x0 0x2c040000 0 0x2000>, // GICC | ||
<0x0 0x2c060000 0 0x2000>, // GICH | ||
<0x0 0x2c080000 0 0x2000>; // GICV | ||
interrupts = <1 9 4>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.