target-arm queue:
* fix handling of KVM reset for 32-bit ARM CPUs * implement NOR flash alias for vexpress-a9 * make sure libvixl gets its own utils.h rather than somebody else's -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABCAAGBQJTu+AVAAoJEDwlJe0UNgzebnYP/j70i5fMIKvCykZHKKgPrshx wuMy/G4ORcVBefItwW3Y8AAb0wKDb7skk7dhvU3eS6sQ0W5BzLIo0hkttULg310/ hEOo44peBLS14NS6V5Jz+VevKz6fmCladG7Q0bH1QVRJtszLbok0zSR3V1dZ63oe Vz60w4uybBbETziPUm3GXXfDPJrfxNM4OCu6Jx6EiHYulI8IBqk8/b2k3MvQ6kM9 nTmqdeN5YrV+nv9OzlL3DDp4DxMpVWnVnLVItIEO/RphxJUjFwr7fJ7t5TP7qWSk E395Ur87/kTZq3W3TqgEg2lboNa+2wOHIfOYhH774L45JquTZPDNtJ33L73UKcoS 78s7QAAbKykwlXKaqKrfmelcvBDPamHlQ2xjgU43B0+R5sjINAERkuAi0C1ma/2G eRa1bxnCwHa2VfnqXORkhSshRKzJl6LqWEiukLbOX1csBOQzQOQ9H/n/OYT6Dlij MwaWcbC1qNknHksZHt9Hw15q00z2fawMpW8ChcN5yjL6tx8eW9JAermTAxRqJg2a 7KclCgs6xPmSixCEDCWpjZxP/sRDZZ3dHBuaY3B8AGJed/swgsfXgjEXtiqW4eC2 n3GH4jkY1uDzhwflIUlQxUM1cRwAIx+CuKlSldd5R2tw/bKlcYFfi/HdFvdwjuHM 6b08uihH1azoud9sAmiP =Rek4 -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140708' into staging target-arm queue: * fix handling of KVM reset for 32-bit ARM CPUs * implement NOR flash alias for vexpress-a9 * make sure libvixl gets its own utils.h rather than somebody else's # gpg: Signature made Tue 08 Jul 2014 13:12:05 BST using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" * remotes/pmaydell/tags/pull-target-arm-20140708: target-arm: Implement vCPU reset via KVM_ARM_VCPU_INIT for 32-bit CPUs hw/arm/vexpress: Alias NOR flash at 0 for vexpress-a9 disas/libvixl: prepend the include path of libvixl header files Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
67d01fb806
@ -3,6 +3,6 @@ libvixl_OBJS = utils.o \
|
||||
a64/decoder-a64.o \
|
||||
a64/disasm-a64.o
|
||||
|
||||
$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS += -I$(SRC_PATH)/disas/libvixl
|
||||
$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS := -I$(SRC_PATH)/disas/libvixl $(QEMU_CFLAGS)
|
||||
|
||||
common-obj-$(CONFIG_ARM_A64_DIS) += $(libvixl_OBJS)
|
||||
|
@ -84,6 +84,7 @@ enum {
|
||||
};
|
||||
|
||||
static hwaddr motherboard_legacy_map[] = {
|
||||
[VE_NORFLASHALIAS] = 0,
|
||||
/* CS7: 0x10000000 .. 0x10020000 */
|
||||
[VE_SYSREGS] = 0x10000000,
|
||||
[VE_SP810] = 0x10001000,
|
||||
@ -114,7 +115,6 @@ static hwaddr motherboard_legacy_map[] = {
|
||||
[VE_VIDEORAM] = 0x4c000000,
|
||||
[VE_ETHERNET] = 0x4e000000,
|
||||
[VE_USB] = 0x4f000000,
|
||||
[VE_NORFLASHALIAS] = -1, /* not present */
|
||||
};
|
||||
|
||||
static hwaddr motherboard_aseries_map[] = {
|
||||
|
@ -72,10 +72,6 @@ typedef struct ARMCPU {
|
||||
uint64_t *cpreg_indexes;
|
||||
/* Values of the registers (cpreg_indexes[i]'s value is cpreg_values[i]) */
|
||||
uint64_t *cpreg_values;
|
||||
/* When using KVM, keeps a copy of the initial state of the VCPU,
|
||||
* so that on reset we can feed the reset values back into the kernel.
|
||||
*/
|
||||
uint64_t *cpreg_reset_values;
|
||||
/* Length of the indexes, values, reset_values arrays */
|
||||
int32_t cpreg_array_len;
|
||||
/* These are used only for migration: incoming data arrives in
|
||||
|
@ -270,13 +270,6 @@ int kvm_arch_init_vcpu(CPUState *cs)
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Save a copy of the initial register values so that we can
|
||||
* feed it back to the kernel on VCPU reset.
|
||||
*/
|
||||
cpu->cpreg_reset_values = g_memdup(cpu->cpreg_values,
|
||||
cpu->cpreg_array_len *
|
||||
sizeof(cpu->cpreg_values[0]));
|
||||
|
||||
out:
|
||||
g_free(rlp);
|
||||
return ret;
|
||||
@ -518,11 +511,9 @@ int kvm_arch_get_registers(CPUState *cs)
|
||||
|
||||
void kvm_arm_reset_vcpu(ARMCPU *cpu)
|
||||
{
|
||||
/* Feed the kernel back its initial register state */
|
||||
memmove(cpu->cpreg_values, cpu->cpreg_reset_values,
|
||||
cpu->cpreg_array_len * sizeof(cpu->cpreg_values[0]));
|
||||
|
||||
if (!write_list_to_kvmstate(cpu)) {
|
||||
abort();
|
||||
}
|
||||
/* Re-init VCPU so that all registers are set to
|
||||
* their respective reset values.
|
||||
*/
|
||||
kvm_arm_vcpu_init(CPU(cpu));
|
||||
write_kvmstate_to_list(cpu);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user