[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] ff8f06: hw/intc: Implement GIC-500 base class
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] ff8f06: hw/intc: Implement GIC-500 base class |
Date: |
Thu, 24 Sep 2015 09:00:04 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: ff8f06ee7680fb505079d33caaf8f5ebff0853bc
https://github.com/qemu/qemu/commit/ff8f06ee7680fb505079d33caaf8f5ebff0853bc
Author: Shlomo Pongratz <address@hidden>
Date: 2015-09-24 (Thu, 24 Sep 2015)
Changed paths:
M hw/intc/Makefile.objs
A hw/intc/arm_gicv3_common.c
A include/hw/intc/arm_gicv3_common.h
Log Message:
-----------
hw/intc: Implement GIC-500 base class
This class is to be used by both software and KVM implementations of GICv3
Currently it is mostly a placeholder, but in future it is supposed to hold
qemu's representation of GICv3 state, which is necessary for migration.
The interface of this class is fully compatible with GICv2 one. This is
done in order to simplify integration with existing code.
Signed-off-by: Shlomo Pongratz <address@hidden>
Signed-off-by: Pavel Fedin <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Tested-by: Ashok kumar <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
Commit: 4b3cfe72d9b9c53be31a88e7eebdda14f1757d3e
https://github.com/qemu/qemu/commit/4b3cfe72d9b9c53be31a88e7eebdda14f1757d3e
Author: Pavel Fedin <address@hidden>
Date: 2015-09-24 (Thu, 24 Sep 2015)
Changed paths:
M hw/intc/arm_gic_kvm.c
A hw/intc/vgic_common.h
M include/sysemu/kvm.h
M kvm-all.c
Log Message:
-----------
intc/gic: Extract some reusable vGIC code
Some functions previously used only by vGICv2 are useful also for vGICv3
implementation. Untie them from GICState and make accessible from within
other modules:
- kvm_arm_gic_set_irq()
- kvm_gic_supports_attr() - moved to common code and renamed to
kvm_device_check_attr()
- kvm_gic_access() - turned into GIC-independent kvm_device_access().
Data pointer changed to void * because some GICv3 registers are
64-bit wide
Some of these changes are not used right now, but they will be helpful for
implementing live migration.
Actually kvm_dist_get() and kvm_dist_put() could also be made reusable, but
they would require two extra parameters (s->dev_fd and s->num_cpu) as well as
lots of typecasts of 's' to DeviceState * and back to GICState *. This makes
the code very ugly so i decided to stop at this point. I tried also an
approach with making a base class for all possible GICs, but it would contain
only three variables (dev_fd, cpu_num and irq_num), and accessing them through
the rest of the code would be again tedious (either ugly casts or qemu-style
separate object pointer). So i disliked it too.
Signed-off-by: Pavel Fedin <address@hidden>
Tested-by: Ashok kumar <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
Commit: 34e85cd9173816cd48f5578c7838c26afbe592c4
https://github.com/qemu/qemu/commit/34e85cd9173816cd48f5578c7838c26afbe592c4
Author: Pavel Fedin <address@hidden>
Date: 2015-09-24 (Thu, 24 Sep 2015)
Changed paths:
M target-arm/kvm.c
M target-arm/kvm_arm.h
Log Message:
-----------
arm_kvm: Do not assume particular GIC type in kvm_arch_irqchip_create()
This allows us to use different GIC types from v2. There are no kernels
which could advertise KVM_CAP_DEVICE_CTRL without the actual ability to
create GIC with it.
GIC version probe code moved to kvm_arm_vgic_probe() which will be used
later.
Signed-off-by: Pavel Fedin <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Tested-by: Ashok kumar <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
Commit: a7bf30342e6a7924132a5c70047928261d3c7e42
https://github.com/qemu/qemu/commit/a7bf30342e6a7924132a5c70047928261d3c7e42
Author: Pavel Fedin <address@hidden>
Date: 2015-09-24 (Thu, 24 Sep 2015)
Changed paths:
M hw/intc/Makefile.objs
A hw/intc/arm_gicv3_kvm.c
M target-arm/kvm_arm.h
M target-arm/machine.c
Log Message:
-----------
hw/intc: Initial implementation of vGICv3
This is the initial version of KVM-accelerated GICv3 support.
State load and save are not yet supported, live migration is
not possible.
In order to get correct class name in a simpler way, gicv3_class_name()
function is implemented, similar to gic_class_name().
Signed-off-by: Pavel Fedin <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Tested-by: Ashok kumar <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
Commit: b92ad3949bc9cacd1652b4e07e7f6003b9e512af
https://github.com/qemu/qemu/commit/b92ad3949bc9cacd1652b4e07e7f6003b9e512af
Author: Pavel Fedin <address@hidden>
Date: 2015-09-24 (Thu, 24 Sep 2015)
Changed paths:
M hw/arm/virt-acpi-build.c
M hw/arm/virt.c
M include/hw/acpi/acpi-defs.h
M include/hw/arm/virt-acpi-build.h
M include/hw/arm/virt.h
Log Message:
-----------
hw/arm/virt: Add gic-version option to virt machine
Add gic_version to VirtMachineState, set it to value of the option
and pass it around where necessary. Instantiate devices and fdt
nodes according to the choice.
max_cpus for virt machine increased to 123 (calculated from redistributor
space available in the memory map). GICv2 compatibility check happens
inside arm_gic_common_realize().
ITS region is added to the memory map too, however currently it not used,
just reserved.
Signed-off-by: Pavel Fedin <address@hidden>
Tested-by: Ashok kumar <address@hidden>
[PMM: Added missing cpu_to_le* calls, thanks to Shannon Zhao]
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Commit: cd37aaf876717a75d7af3a7465e8706cc4e13661
https://github.com/qemu/qemu/commit/cd37aaf876717a75d7af3a7465e8706cc4e13661
Author: Shannon Zhao <address@hidden>
Date: 2015-09-24 (Thu, 24 Sep 2015)
Changed paths:
M hw/arm/virt-acpi-build.c
Log Message:
-----------
hw/arm/virt-acpi-build: Fix wrong size of flash in ACPI table
While virt machine creates two flash devices with total size 0x08000000,
the ACPI table generation code was wrongly using this total size as the
size of each flash device, so it would overlap other MMIO spaces.
Make each device entry in the table half the total; this brings the
ACPI table into line with the code which generates the device tree
and which creates the flash devices themselves.
Signed-off-by: Shannon Zhao <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>
Reviewed-by: Wei Huang <address@hidden>
Tested-by: Graeme Gregory <address@hidden>
Message-id: address@hidden
[PMM: edited commit message]
Signed-off-by: Peter Maydell <address@hidden>
Commit: 85b4d5dae12580ecdd446c0f71afa04a95641c91
https://github.com/qemu/qemu/commit/85b4d5dae12580ecdd446c0f71afa04a95641c91
Author: Beniamino Galvani <address@hidden>
Date: 2015-09-24 (Thu, 24 Sep 2015)
Changed paths:
M MAINTAINERS
Log Message:
-----------
MAINTAINERS: update Allwinner A10 maintainer
Change the maintainer for Allwinner A10 to myself as Li Guang's mail
address bounces. While at it, extend the file pattern for the entry to
include allwinner_emac.[ch].
Signed-off-by: Beniamino Galvani <address@hidden>
Reviewed-by: Peter Crosthwaite <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
Commit: eb9d0ea063fc7bdfab76b84085602a9e48d13ec7
https://github.com/qemu/qemu/commit/eb9d0ea063fc7bdfab76b84085602a9e48d13ec7
Author: Peter Maydell <address@hidden>
Date: 2015-09-24 (Thu, 24 Sep 2015)
Changed paths:
M MAINTAINERS
M hw/arm/virt-acpi-build.c
M hw/arm/virt.c
M hw/intc/Makefile.objs
M hw/intc/arm_gic_kvm.c
A hw/intc/arm_gicv3_common.c
A hw/intc/arm_gicv3_kvm.c
A hw/intc/vgic_common.h
M include/hw/acpi/acpi-defs.h
M include/hw/arm/virt-acpi-build.h
M include/hw/arm/virt.h
A include/hw/intc/arm_gicv3_common.h
M include/sysemu/kvm.h
M kvm-all.c
M target-arm/kvm.c
M target-arm/kvm_arm.h
M target-arm/machine.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20150924'
into staging
target-arm queue:
* support VGICv3 in KVM
* fix bug in ACPI table entries for flash devices in virt board
* update Allwinner entry in MAINTAINERS
# gpg: Signature made Thu 24 Sep 2015 01:29:55 BST using RSA key ID 14360CDE
# gpg: Good signature from "Peter Maydell <address@hidden>"
# gpg: aka "Peter Maydell <address@hidden>"
# gpg: aka "Peter Maydell <address@hidden>"
* remotes/pmaydell/tags/pull-target-arm-20150924:
MAINTAINERS: update Allwinner A10 maintainer
hw/arm/virt-acpi-build: Fix wrong size of flash in ACPI table
hw/arm/virt: Add gic-version option to virt machine
hw/intc: Initial implementation of vGICv3
arm_kvm: Do not assume particular GIC type in kvm_arch_irqchip_create()
intc/gic: Extract some reusable vGIC code
hw/intc: Implement GIC-500 base class
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/fefa4b128de0...eb9d0ea063fc
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] ff8f06: hw/intc: Implement GIC-500 base class,
GitHub <=