* [Qemu-devel] [PULL 0/4] target-arm queue
@ 2012-10-24 13:02 Peter Maydell
2012-10-27 16:52 ` Blue Swirl
0 siblings, 1 reply; 19+ messages in thread
From: Peter Maydell @ 2012-10-24 13:02 UTC (permalink / raw)
To: Aurelien Jarno, Blue Swirl; +Cc: qemu-devel, Paul Brook
Hi; this is a pullreq for the current target-arm queue. Some
minor tweaks and the patch which handles get/put_user() failure
in the semihosting code. Please pull.
thanks
-- PMM
The following changes since commit a8170e5e97ad17ca169c64ba87ae2f53850dab4c:
Rename target_phys_addr_t to hwaddr (2012-10-23 08:58:25 -0500)
are available in the git repository at:
git://git.linaro.org/people/pmaydell/qemu-arm.git target-arm.for-upstream
for you to fetch changes up to 8b279a60dc3ca53923701dfec6e54bea9d13cfb7:
target-arm: Remove out of date FIXME regarding saturating arithmetic (2012-10-24 13:33:29 +0100)
----------------------------------------------------------------
Peter Maydell (4):
arm-semi.c: Handle get/put_user() failure accessing arguments
target-arm: Use TCG operation for Neon 64 bit negation
target-arm: Implement abs_i32 inline rather than as a helper
target-arm: Remove out of date FIXME regarding saturating arithmetic
target-arm/arm-semi.c | 167 +++++++++++++++++++++++++++++-----------------
target-arm/helper.c | 5 --
target-arm/helper.h | 2 -
target-arm/neon_helper.c | 6 --
target-arm/op_helper.c | 2 -
target-arm/translate.c | 15 ++++-
6 files changed, 118 insertions(+), 79 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PULL 0/4] target-arm queue
2012-10-24 13:02 Peter Maydell
@ 2012-10-27 16:52 ` Blue Swirl
0 siblings, 0 replies; 19+ messages in thread
From: Blue Swirl @ 2012-10-27 16:52 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-devel, Aurelien Jarno, Paul Brook
On Wed, Oct 24, 2012 at 1:02 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
> Hi; this is a pullreq for the current target-arm queue. Some
> minor tweaks and the patch which handles get/put_user() failure
> in the semihosting code. Please pull.
Thanks, pulled.
>
> thanks
> -- PMM
>
> The following changes since commit a8170e5e97ad17ca169c64ba87ae2f53850dab4c:
>
> Rename target_phys_addr_t to hwaddr (2012-10-23 08:58:25 -0500)
>
> are available in the git repository at:
>
> git://git.linaro.org/people/pmaydell/qemu-arm.git target-arm.for-upstream
>
> for you to fetch changes up to 8b279a60dc3ca53923701dfec6e54bea9d13cfb7:
>
> target-arm: Remove out of date FIXME regarding saturating arithmetic (2012-10-24 13:33:29 +0100)
>
> ----------------------------------------------------------------
> Peter Maydell (4):
> arm-semi.c: Handle get/put_user() failure accessing arguments
> target-arm: Use TCG operation for Neon 64 bit negation
> target-arm: Implement abs_i32 inline rather than as a helper
> target-arm: Remove out of date FIXME regarding saturating arithmetic
>
> target-arm/arm-semi.c | 167 +++++++++++++++++++++++++++++-----------------
> target-arm/helper.c | 5 --
> target-arm/helper.h | 2 -
> target-arm/neon_helper.c | 6 --
> target-arm/op_helper.c | 2 -
> target-arm/translate.c | 15 ++++-
> 6 files changed, 118 insertions(+), 79 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PULL 0/4] target-arm queue
@ 2013-04-19 15:06 Peter Maydell
2013-04-19 15:06 ` [Qemu-devel] [PATCH 1/4] target-arm: Reinsert missing return statement in ARM mode SRS decode Peter Maydell
` (4 more replies)
0 siblings, 5 replies; 19+ messages in thread
From: Peter Maydell @ 2013-04-19 15:06 UTC (permalink / raw)
To: Aurelien Jarno, Blue Swirl; +Cc: Anthony Liguori, qemu-devel, Paul Brook
target-arm pullreq, containing a fix for a dumb SRS bug I
introduced, and the update to migration to use vmstate
(both of which have been on the list since before freeze).
Please pull.
thanks
-- PMM
The following changes since commit 09dada400328d75daf79e3eca1e48e024fec148d:
configure: remove duplicate test (2013-04-18 14:12:31 +0200)
are available in the git repository at:
git://git.linaro.org/people/pmaydell/qemu-arm.git target-arm.next
for you to fetch changes up to e91f229a253f489f6d12b946ad7bdcdc158c5b67:
target-arm: Correctly restore FPSCR (2013-04-19 12:24:19 +0100)
----------------------------------------------------------------
Juan Quintela (1):
target-arm: port ARM CPU save/load to use VMState
Peter Chubb (1):
target-arm: Reinsert missing return statement in ARM mode SRS decode
Peter Maydell (2):
target-arm: Add some missing CPU state fields to VMState
target-arm: Correctly restore FPSCR
target-arm/cpu-qom.h | 4 +
target-arm/cpu.c | 1 +
target-arm/cpu.h | 2 -
target-arm/machine.c | 430 ++++++++++++++++++++++++------------------------
target-arm/translate.c | 1 +
5 files changed, 222 insertions(+), 216 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH 1/4] target-arm: Reinsert missing return statement in ARM mode SRS decode
2013-04-19 15:06 [Qemu-devel] [PULL 0/4] target-arm queue Peter Maydell
@ 2013-04-19 15:06 ` Peter Maydell
2013-04-19 15:06 ` [Qemu-devel] [PATCH 2/4] target-arm: port ARM CPU save/load to use VMState Peter Maydell
` (3 subsequent siblings)
4 siblings, 0 replies; 19+ messages in thread
From: Peter Maydell @ 2013-04-19 15:06 UTC (permalink / raw)
To: Aurelien Jarno, Blue Swirl; +Cc: Anthony Liguori, qemu-devel, Paul Brook
From: Peter Chubb <peter.chubb@nicta.com.au>
Since patch
81465888c5306cd94abb9847e560796fd13d3c2f
target-arm: factor out handling of SRS instruction
the ARM mode SRS instruction has not worked in QEMU.
The problem is a missing return directive that was removed in the
refactoring, so after decoding the instruction, qemu would fall through
to generate an UNDEF exception for an illegal instruction.
Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
target-arm/translate.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/target-arm/translate.c b/target-arm/translate.c
index 35a21be..a1b7b8c 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -6762,6 +6762,7 @@ static void disas_arm_insn(CPUARMState * env, DisasContext *s)
}
ARCH(6);
gen_srs(s, (insn & 0x1f), (insn >> 23) & 3, insn & (1 << 21));
+ return;
} else if ((insn & 0x0e50ffe0) == 0x08100a00) {
/* rfe */
int32_t offset;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH 2/4] target-arm: port ARM CPU save/load to use VMState
2013-04-19 15:06 [Qemu-devel] [PULL 0/4] target-arm queue Peter Maydell
2013-04-19 15:06 ` [Qemu-devel] [PATCH 1/4] target-arm: Reinsert missing return statement in ARM mode SRS decode Peter Maydell
@ 2013-04-19 15:06 ` Peter Maydell
2013-04-19 15:06 ` [Qemu-devel] [PATCH 3/4] target-arm: Add some missing CPU state fields to VMState Peter Maydell
` (2 subsequent siblings)
4 siblings, 0 replies; 19+ messages in thread
From: Peter Maydell @ 2013-04-19 15:06 UTC (permalink / raw)
To: Aurelien Jarno, Blue Swirl; +Cc: Anthony Liguori, qemu-devel, Paul Brook
From: Juan Quintela <quintela@redhat.com>
Port the ARM CPU save/load code to use VMState. Some state is
saved in a slightly different order to simplify things -- for
example arrays are saved one after the other rather than 'striped',
and we always save all 32 VFP registers even if the CPU happens
to only have 16.
Use one subsection for each feature. This means that we don't need to
bump the version field each time that a new feature gets introduced.
Signed-off-by: Juan Quintela <quintela@redhat.com>
[PMM: fixed conflicts, updated to use cpu_class_set_vmsd(), updated
with new/removed fields since original patch, changed to use custom
VMStateInfo for cpsr rather than presave/postload hooks, corrected
subsection names so vmload doesn't fail]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
target-arm/cpu-qom.h | 4 +
target-arm/cpu.c | 1 +
target-arm/cpu.h | 2 -
target-arm/machine.c | 387 +++++++++++++++++++++++---------------------------
4 files changed, 179 insertions(+), 215 deletions(-)
diff --git a/target-arm/cpu-qom.h b/target-arm/cpu-qom.h
index 2589550..12fcefe 100644
--- a/target-arm/cpu-qom.h
+++ b/target-arm/cpu-qom.h
@@ -111,6 +111,10 @@ static inline ARMCPU *arm_env_get_cpu(CPUARMState *env)
#define ENV_OFFSET offsetof(ARMCPU, env)
+#ifndef CONFIG_USER_ONLY
+extern const struct VMStateDescription vmstate_arm_cpu;
+#endif
+
void register_cp_regs_for_features(ARMCPU *cpu);
void arm_cpu_do_interrupt(CPUState *cpu);
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index a1e9093..496a59f 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -814,6 +814,7 @@ static void arm_cpu_class_init(ObjectClass *oc, void *data)
cc->class_by_name = arm_cpu_class_by_name;
cc->do_interrupt = arm_cpu_do_interrupt;
+ cpu_class_set_vmsd(cc, &vmstate_arm_cpu);
}
static void cpu_register(const ARMCPUInfo *info)
diff --git a/target-arm/cpu.h b/target-arm/cpu.h
index 2b97221..5438444 100644
--- a/target-arm/cpu.h
+++ b/target-arm/cpu.h
@@ -640,8 +640,6 @@ static inline CPUARMState *cpu_init(const char *cpu_model)
#define cpu_signal_handler cpu_arm_signal_handler
#define cpu_list arm_cpu_list
-#define CPU_SAVE_VERSION 9
-
/* MMU modes definitions */
#define MMU_MODE0_SUFFIX _kernel
#define MMU_MODE1_SUFFIX _user
diff --git a/target-arm/machine.c b/target-arm/machine.c
index 68dca7f..3c41f06 100644
--- a/target-arm/machine.c
+++ b/target-arm/machine.c
@@ -1,237 +1,198 @@
#include "hw/hw.h"
#include "hw/boards.h"
-void cpu_save(QEMUFile *f, void *opaque)
+static bool vfp_needed(void *opaque)
{
- int i;
- CPUARMState *env = (CPUARMState *)opaque;
+ ARMCPU *cpu = opaque;
+ CPUARMState *env = &cpu->env;
- for (i = 0; i < 16; i++) {
- qemu_put_be32(f, env->regs[i]);
- }
- qemu_put_be32(f, cpsr_read(env));
- qemu_put_be32(f, env->spsr);
- for (i = 0; i < 6; i++) {
- qemu_put_be32(f, env->banked_spsr[i]);
- qemu_put_be32(f, env->banked_r13[i]);
- qemu_put_be32(f, env->banked_r14[i]);
- }
- for (i = 0; i < 5; i++) {
- qemu_put_be32(f, env->usr_regs[i]);
- qemu_put_be32(f, env->fiq_regs[i]);
- }
- qemu_put_be32(f, env->cp15.c0_cpuid);
- qemu_put_be32(f, env->cp15.c0_cssel);
- qemu_put_be32(f, env->cp15.c1_sys);
- qemu_put_be32(f, env->cp15.c1_coproc);
- qemu_put_be32(f, env->cp15.c1_xscaleauxcr);
- qemu_put_be32(f, env->cp15.c1_scr);
- qemu_put_be32(f, env->cp15.c2_base0);
- qemu_put_be32(f, env->cp15.c2_base0_hi);
- qemu_put_be32(f, env->cp15.c2_base1);
- qemu_put_be32(f, env->cp15.c2_base1_hi);
- qemu_put_be32(f, env->cp15.c2_control);
- qemu_put_be32(f, env->cp15.c2_mask);
- qemu_put_be32(f, env->cp15.c2_base_mask);
- qemu_put_be32(f, env->cp15.c2_data);
- qemu_put_be32(f, env->cp15.c2_insn);
- qemu_put_be32(f, env->cp15.c3);
- qemu_put_be32(f, env->cp15.c5_insn);
- qemu_put_be32(f, env->cp15.c5_data);
- for (i = 0; i < 8; i++) {
- qemu_put_be32(f, env->cp15.c6_region[i]);
- }
- qemu_put_be32(f, env->cp15.c6_insn);
- qemu_put_be32(f, env->cp15.c6_data);
- qemu_put_be32(f, env->cp15.c7_par);
- qemu_put_be32(f, env->cp15.c7_par_hi);
- qemu_put_be32(f, env->cp15.c9_insn);
- qemu_put_be32(f, env->cp15.c9_data);
- qemu_put_be32(f, env->cp15.c9_pmcr);
- qemu_put_be32(f, env->cp15.c9_pmcnten);
- qemu_put_be32(f, env->cp15.c9_pmovsr);
- qemu_put_be32(f, env->cp15.c9_pmxevtyper);
- qemu_put_be32(f, env->cp15.c9_pmuserenr);
- qemu_put_be32(f, env->cp15.c9_pminten);
- qemu_put_be32(f, env->cp15.c13_fcse);
- qemu_put_be32(f, env->cp15.c13_context);
- qemu_put_be32(f, env->cp15.c13_tls1);
- qemu_put_be32(f, env->cp15.c13_tls2);
- qemu_put_be32(f, env->cp15.c13_tls3);
- qemu_put_be32(f, env->cp15.c15_cpar);
- qemu_put_be32(f, env->cp15.c15_power_control);
- qemu_put_be32(f, env->cp15.c15_diagnostic);
- qemu_put_be32(f, env->cp15.c15_power_diagnostic);
-
- qemu_put_be64(f, env->features);
-
- if (arm_feature(env, ARM_FEATURE_VFP)) {
- for (i = 0; i < 16; i++) {
- CPU_DoubleU u;
- u.d = env->vfp.regs[i];
- qemu_put_be32(f, u.l.upper);
- qemu_put_be32(f, u.l.lower);
- }
- for (i = 0; i < 16; i++) {
- qemu_put_be32(f, env->vfp.xregs[i]);
- }
+ return arm_feature(env, ARM_FEATURE_VFP);
+}
+static const VMStateDescription vmstate_vfp = {
+ .name = "cpu/vfp",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .minimum_version_id_old = 1,
+ .fields = (VMStateField[]) {
+ VMSTATE_FLOAT64_ARRAY(env.vfp.regs, ARMCPU, 32),
+ VMSTATE_UINT32_ARRAY(env.vfp.xregs, ARMCPU, 16),
/* TODO: Should use proper FPSCR access functions. */
- qemu_put_be32(f, env->vfp.vec_len);
- qemu_put_be32(f, env->vfp.vec_stride);
-
- if (arm_feature(env, ARM_FEATURE_VFP3)) {
- for (i = 16; i < 32; i++) {
- CPU_DoubleU u;
- u.d = env->vfp.regs[i];
- qemu_put_be32(f, u.l.upper);
- qemu_put_be32(f, u.l.lower);
- }
- }
+ VMSTATE_INT32(env.vfp.vec_len, ARMCPU),
+ VMSTATE_INT32(env.vfp.vec_stride, ARMCPU),
+ VMSTATE_END_OF_LIST()
}
+};
- if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
- for (i = 0; i < 16; i++) {
- qemu_put_be64(f, env->iwmmxt.regs[i]);
- }
- for (i = 0; i < 16; i++) {
- qemu_put_be32(f, env->iwmmxt.cregs[i]);
- }
- }
+static bool iwmmxt_needed(void *opaque)
+{
+ ARMCPU *cpu = opaque;
+ CPUARMState *env = &cpu->env;
- if (arm_feature(env, ARM_FEATURE_M)) {
- qemu_put_be32(f, env->v7m.other_sp);
- qemu_put_be32(f, env->v7m.vecbase);
- qemu_put_be32(f, env->v7m.basepri);
- qemu_put_be32(f, env->v7m.control);
- qemu_put_be32(f, env->v7m.current_sp);
- qemu_put_be32(f, env->v7m.exception);
- }
+ return arm_feature(env, ARM_FEATURE_IWMMXT);
+}
- if (arm_feature(env, ARM_FEATURE_THUMB2EE)) {
- qemu_put_be32(f, env->teecr);
- qemu_put_be32(f, env->teehbr);
+static const VMStateDescription vmstate_iwmmxt = {
+ .name = "cpu/iwmmxt",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .minimum_version_id_old = 1,
+ .fields = (VMStateField[]) {
+ VMSTATE_UINT64_ARRAY(env.iwmmxt.regs, ARMCPU, 16),
+ VMSTATE_UINT32_ARRAY(env.iwmmxt.cregs, ARMCPU, 16),
+ VMSTATE_END_OF_LIST()
}
+};
+
+static bool m_needed(void *opaque)
+{
+ ARMCPU *cpu = opaque;
+ CPUARMState *env = &cpu->env;
+
+ return arm_feature(env, ARM_FEATURE_M);
}
-int cpu_load(QEMUFile *f, void *opaque, int version_id)
+const VMStateDescription vmstate_m = {
+ .name = "cpu/m",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .minimum_version_id_old = 1,
+ .fields = (VMStateField[]) {
+ VMSTATE_UINT32(env.v7m.other_sp, ARMCPU),
+ VMSTATE_UINT32(env.v7m.vecbase, ARMCPU),
+ VMSTATE_UINT32(env.v7m.basepri, ARMCPU),
+ VMSTATE_UINT32(env.v7m.control, ARMCPU),
+ VMSTATE_INT32(env.v7m.current_sp, ARMCPU),
+ VMSTATE_INT32(env.v7m.exception, ARMCPU),
+ VMSTATE_END_OF_LIST()
+ }
+};
+
+static bool thumb2ee_needed(void *opaque)
{
- CPUARMState *env = (CPUARMState *)opaque;
- int i;
- uint32_t val;
+ ARMCPU *cpu = opaque;
+ CPUARMState *env = &cpu->env;
- if (version_id != CPU_SAVE_VERSION)
- return -EINVAL;
+ return arm_feature(env, ARM_FEATURE_THUMB2EE);
+}
- for (i = 0; i < 16; i++) {
- env->regs[i] = qemu_get_be32(f);
+static const VMStateDescription vmstate_thumb2ee = {
+ .name = "cpu/thumb2ee",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .minimum_version_id_old = 1,
+ .fields = (VMStateField[]) {
+ VMSTATE_UINT32(env.teecr, ARMCPU),
+ VMSTATE_UINT32(env.teehbr, ARMCPU),
+ VMSTATE_END_OF_LIST()
}
- val = qemu_get_be32(f);
- /* Avoid mode switch when restoring CPSR. */
+};
+
+static int get_cpsr(QEMUFile *f, void *opaque, size_t size)
+{
+ ARMCPU *cpu = opaque;
+ CPUARMState *env = &cpu->env;
+ uint32_t val = qemu_get_be32(f);
+
+ /* Avoid mode switch when restoring CPSR */
env->uncached_cpsr = val & CPSR_M;
cpsr_write(env, val, 0xffffffff);
- env->spsr = qemu_get_be32(f);
- for (i = 0; i < 6; i++) {
- env->banked_spsr[i] = qemu_get_be32(f);
- env->banked_r13[i] = qemu_get_be32(f);
- env->banked_r14[i] = qemu_get_be32(f);
- }
- for (i = 0; i < 5; i++) {
- env->usr_regs[i] = qemu_get_be32(f);
- env->fiq_regs[i] = qemu_get_be32(f);
- }
- env->cp15.c0_cpuid = qemu_get_be32(f);
- env->cp15.c0_cssel = qemu_get_be32(f);
- env->cp15.c1_sys = qemu_get_be32(f);
- env->cp15.c1_coproc = qemu_get_be32(f);
- env->cp15.c1_xscaleauxcr = qemu_get_be32(f);
- env->cp15.c1_scr = qemu_get_be32(f);
- env->cp15.c2_base0 = qemu_get_be32(f);
- env->cp15.c2_base0_hi = qemu_get_be32(f);
- env->cp15.c2_base1 = qemu_get_be32(f);
- env->cp15.c2_base1_hi = qemu_get_be32(f);
- env->cp15.c2_control = qemu_get_be32(f);
- env->cp15.c2_mask = qemu_get_be32(f);
- env->cp15.c2_base_mask = qemu_get_be32(f);
- env->cp15.c2_data = qemu_get_be32(f);
- env->cp15.c2_insn = qemu_get_be32(f);
- env->cp15.c3 = qemu_get_be32(f);
- env->cp15.c5_insn = qemu_get_be32(f);
- env->cp15.c5_data = qemu_get_be32(f);
- for (i = 0; i < 8; i++) {
- env->cp15.c6_region[i] = qemu_get_be32(f);
- }
- env->cp15.c6_insn = qemu_get_be32(f);
- env->cp15.c6_data = qemu_get_be32(f);
- env->cp15.c7_par = qemu_get_be32(f);
- env->cp15.c7_par_hi = qemu_get_be32(f);
- env->cp15.c9_insn = qemu_get_be32(f);
- env->cp15.c9_data = qemu_get_be32(f);
- env->cp15.c9_pmcr = qemu_get_be32(f);
- env->cp15.c9_pmcnten = qemu_get_be32(f);
- env->cp15.c9_pmovsr = qemu_get_be32(f);
- env->cp15.c9_pmxevtyper = qemu_get_be32(f);
- env->cp15.c9_pmuserenr = qemu_get_be32(f);
- env->cp15.c9_pminten = qemu_get_be32(f);
- env->cp15.c13_fcse = qemu_get_be32(f);
- env->cp15.c13_context = qemu_get_be32(f);
- env->cp15.c13_tls1 = qemu_get_be32(f);
- env->cp15.c13_tls2 = qemu_get_be32(f);
- env->cp15.c13_tls3 = qemu_get_be32(f);
- env->cp15.c15_cpar = qemu_get_be32(f);
- env->cp15.c15_power_control = qemu_get_be32(f);
- env->cp15.c15_diagnostic = qemu_get_be32(f);
- env->cp15.c15_power_diagnostic = qemu_get_be32(f);
-
- env->features = qemu_get_be64(f);
-
- if (arm_feature(env, ARM_FEATURE_VFP)) {
- for (i = 0; i < 16; i++) {
- CPU_DoubleU u;
- u.l.upper = qemu_get_be32(f);
- u.l.lower = qemu_get_be32(f);
- env->vfp.regs[i] = u.d;
- }
- for (i = 0; i < 16; i++) {
- env->vfp.xregs[i] = qemu_get_be32(f);
- }
-
- /* TODO: Should use proper FPSCR access functions. */
- env->vfp.vec_len = qemu_get_be32(f);
- env->vfp.vec_stride = qemu_get_be32(f);
-
- if (arm_feature(env, ARM_FEATURE_VFP3)) {
- for (i = 16; i < 32; i++) {
- CPU_DoubleU u;
- u.l.upper = qemu_get_be32(f);
- u.l.lower = qemu_get_be32(f);
- env->vfp.regs[i] = u.d;
- }
- }
- }
+ return 0;
+}
- if (arm_feature(env, ARM_FEATURE_IWMMXT)) {
- for (i = 0; i < 16; i++) {
- env->iwmmxt.regs[i] = qemu_get_be64(f);
- }
- for (i = 0; i < 16; i++) {
- env->iwmmxt.cregs[i] = qemu_get_be32(f);
- }
- }
+static void put_cpsr(QEMUFile *f, void *opaque, size_t size)
+{
+ ARMCPU *cpu = opaque;
+ CPUARMState *env = &cpu->env;
- if (arm_feature(env, ARM_FEATURE_M)) {
- env->v7m.other_sp = qemu_get_be32(f);
- env->v7m.vecbase = qemu_get_be32(f);
- env->v7m.basepri = qemu_get_be32(f);
- env->v7m.control = qemu_get_be32(f);
- env->v7m.current_sp = qemu_get_be32(f);
- env->v7m.exception = qemu_get_be32(f);
- }
+ qemu_put_be32(f, cpsr_read(env));
+}
- if (arm_feature(env, ARM_FEATURE_THUMB2EE)) {
- env->teecr = qemu_get_be32(f);
- env->teehbr = qemu_get_be32(f);
+static const VMStateInfo vmstate_cpsr = {
+ .name = "cpsr",
+ .get = get_cpsr,
+ .put = put_cpsr,
+};
+
+const VMStateDescription vmstate_arm_cpu = {
+ .name = "cpu",
+ .version_id = 10,
+ .minimum_version_id = 10,
+ .minimum_version_id_old = 10,
+ .fields = (VMStateField[]) {
+ VMSTATE_UINT32_ARRAY(env.regs, ARMCPU, 16),
+ {
+ .name = "cpsr",
+ .version_id = 0,
+ .size = sizeof(uint32_t),
+ .info = &vmstate_cpsr,
+ .flags = VMS_SINGLE,
+ .offset = 0,
+ },
+ VMSTATE_UINT32(env.spsr, ARMCPU),
+ VMSTATE_UINT32_ARRAY(env.banked_spsr, ARMCPU, 6),
+ VMSTATE_UINT32_ARRAY(env.banked_r13, ARMCPU, 6),
+ VMSTATE_UINT32_ARRAY(env.banked_r14, ARMCPU, 6),
+ VMSTATE_UINT32_ARRAY(env.usr_regs, ARMCPU, 5),
+ VMSTATE_UINT32_ARRAY(env.fiq_regs, ARMCPU, 5),
+ VMSTATE_UINT32(env.cp15.c0_cpuid, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c0_cssel, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c1_sys, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c1_coproc, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c1_xscaleauxcr, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c1_scr, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c2_base0, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c2_base0_hi, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c2_base1, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c2_base1_hi, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c2_control, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c2_mask, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c2_base_mask, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c2_data, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c2_insn, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c3, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c5_insn, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c5_data, ARMCPU),
+ VMSTATE_UINT32_ARRAY(env.cp15.c6_region, ARMCPU, 8),
+ VMSTATE_UINT32(env.cp15.c6_insn, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c6_data, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c7_par, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c7_par_hi, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c9_insn, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c9_data, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c9_pmcr, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c9_pmcnten, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c9_pmovsr, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c9_pmxevtyper, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c9_pmuserenr, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c9_pminten, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c13_fcse, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c13_context, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c13_tls1, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c13_tls2, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c13_tls3, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c15_cpar, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c15_power_control, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c15_diagnostic, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c15_power_diagnostic, ARMCPU),
+ VMSTATE_UINT64(env.features, ARMCPU),
+ VMSTATE_END_OF_LIST()
+ },
+ .subsections = (VMStateSubsection[]) {
+ {
+ .vmsd = &vmstate_vfp,
+ .needed = vfp_needed,
+ } , {
+ .vmsd = &vmstate_iwmmxt,
+ .needed = iwmmxt_needed,
+ } , {
+ .vmsd = &vmstate_m,
+ .needed = m_needed,
+ } , {
+ .vmsd = &vmstate_thumb2ee,
+ .needed = thumb2ee_needed,
+ } , {
+ /* empty */
+ }
}
-
- return 0;
-}
+};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH 3/4] target-arm: Add some missing CPU state fields to VMState
2013-04-19 15:06 [Qemu-devel] [PULL 0/4] target-arm queue Peter Maydell
2013-04-19 15:06 ` [Qemu-devel] [PATCH 1/4] target-arm: Reinsert missing return statement in ARM mode SRS decode Peter Maydell
2013-04-19 15:06 ` [Qemu-devel] [PATCH 2/4] target-arm: port ARM CPU save/load to use VMState Peter Maydell
@ 2013-04-19 15:06 ` Peter Maydell
2013-04-19 15:07 ` [Qemu-devel] [PATCH 4/4] target-arm: Correctly restore FPSCR Peter Maydell
2013-04-20 12:38 ` [Qemu-devel] [PULL 0/4] target-arm queue Blue Swirl
4 siblings, 0 replies; 19+ messages in thread
From: Peter Maydell @ 2013-04-19 15:06 UTC (permalink / raw)
To: Aurelien Jarno, Blue Swirl; +Cc: Anthony Liguori, qemu-devel, Paul Brook
A number of CPU state fields were accidentally omitted from
our migration state: some OMAP specific cp15 registers, and
some related to state for load/store exclusive insns. Add them.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
target-arm/machine.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/target-arm/machine.c b/target-arm/machine.c
index 3c41f06..2dd48d7 100644
--- a/target-arm/machine.c
+++ b/target-arm/machine.c
@@ -116,9 +116,9 @@ static const VMStateInfo vmstate_cpsr = {
const VMStateDescription vmstate_arm_cpu = {
.name = "cpu",
- .version_id = 10,
- .minimum_version_id = 10,
- .minimum_version_id_old = 10,
+ .version_id = 11,
+ .minimum_version_id = 11,
+ .minimum_version_id_old = 11,
.fields = (VMStateField[]) {
VMSTATE_UINT32_ARRAY(env.regs, ARMCPU, 16),
{
@@ -172,9 +172,16 @@ const VMStateDescription vmstate_arm_cpu = {
VMSTATE_UINT32(env.cp15.c13_tls2, ARMCPU),
VMSTATE_UINT32(env.cp15.c13_tls3, ARMCPU),
VMSTATE_UINT32(env.cp15.c15_cpar, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c15_ticonfig, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c15_i_max, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c15_i_min, ARMCPU),
+ VMSTATE_UINT32(env.cp15.c15_threadid, ARMCPU),
VMSTATE_UINT32(env.cp15.c15_power_control, ARMCPU),
VMSTATE_UINT32(env.cp15.c15_diagnostic, ARMCPU),
VMSTATE_UINT32(env.cp15.c15_power_diagnostic, ARMCPU),
+ VMSTATE_UINT32(env.exclusive_addr, ARMCPU),
+ VMSTATE_UINT32(env.exclusive_val, ARMCPU),
+ VMSTATE_UINT32(env.exclusive_high, ARMCPU),
VMSTATE_UINT64(env.features, ARMCPU),
VMSTATE_END_OF_LIST()
},
--
1.7.9.5
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH 4/4] target-arm: Correctly restore FPSCR
2013-04-19 15:06 [Qemu-devel] [PULL 0/4] target-arm queue Peter Maydell
` (2 preceding siblings ...)
2013-04-19 15:06 ` [Qemu-devel] [PATCH 3/4] target-arm: Add some missing CPU state fields to VMState Peter Maydell
@ 2013-04-19 15:07 ` Peter Maydell
2013-04-20 12:38 ` [Qemu-devel] [PULL 0/4] target-arm queue Blue Swirl
4 siblings, 0 replies; 19+ messages in thread
From: Peter Maydell @ 2013-04-19 15:07 UTC (permalink / raw)
To: Aurelien Jarno, Blue Swirl; +Cc: Anthony Liguori, qemu-devel, Paul Brook
Use the helper functions to save and restore the FPSCR, so that
we correctly propagate rounding mode and flushing behaviour into
the float_status fields. This also allows us to stop saving the
vector length/stride fields separately.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
target-arm/machine.c | 48 +++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 41 insertions(+), 7 deletions(-)
diff --git a/target-arm/machine.c b/target-arm/machine.c
index 2dd48d7..4dd057c 100644
--- a/target-arm/machine.c
+++ b/target-arm/machine.c
@@ -9,17 +9,51 @@ static bool vfp_needed(void *opaque)
return arm_feature(env, ARM_FEATURE_VFP);
}
+static int get_fpscr(QEMUFile *f, void *opaque, size_t size)
+{
+ ARMCPU *cpu = opaque;
+ CPUARMState *env = &cpu->env;
+ uint32_t val = qemu_get_be32(f);
+
+ vfp_set_fpscr(env, val);
+ return 0;
+}
+
+static void put_fpscr(QEMUFile *f, void *opaque, size_t size)
+{
+ ARMCPU *cpu = opaque;
+ CPUARMState *env = &cpu->env;
+
+ qemu_put_be32(f, vfp_get_fpscr(env));
+}
+
+static const VMStateInfo vmstate_fpscr = {
+ .name = "fpscr",
+ .get = get_fpscr,
+ .put = put_fpscr,
+};
+
static const VMStateDescription vmstate_vfp = {
.name = "cpu/vfp",
- .version_id = 1,
- .minimum_version_id = 1,
- .minimum_version_id_old = 1,
+ .version_id = 2,
+ .minimum_version_id = 2,
+ .minimum_version_id_old = 2,
.fields = (VMStateField[]) {
VMSTATE_FLOAT64_ARRAY(env.vfp.regs, ARMCPU, 32),
- VMSTATE_UINT32_ARRAY(env.vfp.xregs, ARMCPU, 16),
- /* TODO: Should use proper FPSCR access functions. */
- VMSTATE_INT32(env.vfp.vec_len, ARMCPU),
- VMSTATE_INT32(env.vfp.vec_stride, ARMCPU),
+ /* The xregs array is a little awkward because element 1 (FPSCR)
+ * requires a specific accessor, so we have to split it up in
+ * the vmstate:
+ */
+ VMSTATE_UINT32(env.vfp.xregs[0], ARMCPU),
+ VMSTATE_UINT32_SUB_ARRAY(env.vfp.xregs, ARMCPU, 2, 14),
+ {
+ .name = "fpscr",
+ .version_id = 0,
+ .size = sizeof(uint32_t),
+ .info = &vmstate_fpscr,
+ .flags = VMS_SINGLE,
+ .offset = 0,
+ },
VMSTATE_END_OF_LIST()
}
};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PULL 0/4] target-arm queue
2013-04-19 15:06 [Qemu-devel] [PULL 0/4] target-arm queue Peter Maydell
` (3 preceding siblings ...)
2013-04-19 15:07 ` [Qemu-devel] [PATCH 4/4] target-arm: Correctly restore FPSCR Peter Maydell
@ 2013-04-20 12:38 ` Blue Swirl
4 siblings, 0 replies; 19+ messages in thread
From: Blue Swirl @ 2013-04-20 12:38 UTC (permalink / raw)
To: Peter Maydell; +Cc: Anthony Liguori, qemu-devel, Aurelien Jarno, Paul Brook
Thanks, pulled.
On Fri, Apr 19, 2013 at 3:06 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
> target-arm pullreq, containing a fix for a dumb SRS bug I
> introduced, and the update to migration to use vmstate
> (both of which have been on the list since before freeze).
> Please pull.
>
> thanks
> -- PMM
>
> The following changes since commit 09dada400328d75daf79e3eca1e48e024fec148d:
>
> configure: remove duplicate test (2013-04-18 14:12:31 +0200)
>
> are available in the git repository at:
>
> git://git.linaro.org/people/pmaydell/qemu-arm.git target-arm.next
>
> for you to fetch changes up to e91f229a253f489f6d12b946ad7bdcdc158c5b67:
>
> target-arm: Correctly restore FPSCR (2013-04-19 12:24:19 +0100)
>
> ----------------------------------------------------------------
> Juan Quintela (1):
> target-arm: port ARM CPU save/load to use VMState
>
> Peter Chubb (1):
> target-arm: Reinsert missing return statement in ARM mode SRS decode
>
> Peter Maydell (2):
> target-arm: Add some missing CPU state fields to VMState
> target-arm: Correctly restore FPSCR
>
> target-arm/cpu-qom.h | 4 +
> target-arm/cpu.c | 1 +
> target-arm/cpu.h | 2 -
> target-arm/machine.c | 430 ++++++++++++++++++++++++------------------------
> target-arm/translate.c | 1 +
> 5 files changed, 222 insertions(+), 216 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PULL 0/4] target-arm queue
@ 2015-11-24 14:18 Peter Maydell
2015-11-24 15:02 ` Peter Maydell
0 siblings, 1 reply; 19+ messages in thread
From: Peter Maydell @ 2015-11-24 14:18 UTC (permalink / raw)
To: qemu-devel
A handful of minor ARM bugfixes...
thanks
-- PMM
The following changes since commit 229c0372cf3ca201c41d2bb121627e6752e776ad:
Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2015-11-24 10:27:19 +0000)
are available in the git repository at:
git://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20151124
for you to fetch changes up to e14f0eb12f920fd96b9f79d15cedd437648e8667:
target-arm/translate-a64.c: Correct unallocated checks for ldst_excl (2015-11-24 14:12:15 +0000)
----------------------------------------------------------------
target-arm queue:
* fix minimum RAM check warning on xlnx-ep108
* remove unused define from aarch64-linux-user.mak config
* don't mask out bits [47:40] in ARMv8 LPAE descriptors
* correct unallocated instruction checks for ldst_excl
----------------------------------------------------------------
Alistair Francis (1):
xlnx-ep108: Fix minimum RAM check
Peter Maydell (3):
default-configs/aarch64-linux-user.mak: Remove unused define
target-arm: Don't mask out bits [47:40] in LPAE descriptors for v8
target-arm/translate-a64.c: Correct unallocated checks for ldst_excl
default-configs/aarch64-linux-user.mak | 2 --
hw/arm/xlnx-ep108.c | 2 +-
target-arm/helper.c | 12 +++++++++++-
target-arm/translate-a64.c | 15 ++-------------
4 files changed, 14 insertions(+), 17 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PULL 0/4] target-arm queue
2015-11-24 14:18 Peter Maydell
@ 2015-11-24 15:02 ` Peter Maydell
0 siblings, 0 replies; 19+ messages in thread
From: Peter Maydell @ 2015-11-24 15:02 UTC (permalink / raw)
To: QEMU Developers
On 24 November 2015 at 14:18, Peter Maydell <peter.maydell@linaro.org> wrote:
> A handful of minor ARM bugfixes...
>
> thanks
> -- PMM
>
> The following changes since commit 229c0372cf3ca201c41d2bb121627e6752e776ad:
>
> Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2015-11-24 10:27:19 +0000)
>
> are available in the git repository at:
>
>
> git://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20151124
>
> for you to fetch changes up to e14f0eb12f920fd96b9f79d15cedd437648e8667:
>
> target-arm/translate-a64.c: Correct unallocated checks for ldst_excl (2015-11-24 14:12:15 +0000)
>
> ----------------------------------------------------------------
> target-arm queue:
> * fix minimum RAM check warning on xlnx-ep108
> * remove unused define from aarch64-linux-user.mak config
> * don't mask out bits [47:40] in ARMv8 LPAE descriptors
> * correct unallocated instruction checks for ldst_excl
>
> ----------------------------------------------------------------
> Alistair Francis (1):
> xlnx-ep108: Fix minimum RAM check
>
> Peter Maydell (3):
> default-configs/aarch64-linux-user.mak: Remove unused define
> target-arm: Don't mask out bits [47:40] in LPAE descriptors for v8
> target-arm/translate-a64.c: Correct unallocated checks for ldst_excl
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PULL 0/4] target-arm queue
@ 2016-11-07 10:47 Peter Maydell
2016-11-07 14:55 ` Stefan Hajnoczi
0 siblings, 1 reply; 19+ messages in thread
From: Peter Maydell @ 2016-11-07 10:47 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi
Hi; here's the last target-arm pull request before I
go off on holiday -- four fairly minor bug fixes.
Hopefully it merges without problems, because I won't
be around tomorrow to do a respin :-)
thanks
-- PMM
The following changes since commit 9226682a401f34b10fd79dfe17ba334da0800747:
Merge remote-tracking branch 'sstabellini/tags/xen-20161102-tag' into staging (2016-11-04 09:26:24 +0000)
are available in the git repository at:
git://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20161107
for you to fetch changes up to 9706e0162d2405218fd7376ffdf13baed8569a4b:
hw/i2c/bitbang_i2c: Handle NACKs from devices (2016-11-07 10:01:15 +0000)
----------------------------------------------------------------
target-arm queue:
* bitbang_i2c: Handle NACKs from devices
* Fix corruption of CPSR when SCTLR.EE is set
* nvic: set pending status for not active interrupts
* char: cadence: check baud rate generator and divider values
----------------------------------------------------------------
Julian Brown (1):
Fix corruption of CPSR when SCTLR.EE is set
Marcin Krzeminski (1):
nvic: set pending status for not active interrupts
Peter Maydell (1):
hw/i2c/bitbang_i2c: Handle NACKs from devices
Prasad J Pandit (1):
char: cadence: check baud rate generator and divider values
hw/char/cadence_uart.c | 15 +++++++++++++++
hw/i2c/bitbang_i2c.c | 19 +++++++++++++++----
hw/intc/arm_gic.c | 22 ++++++++++++++++++++--
target-arm/helper.c | 2 +-
4 files changed, 51 insertions(+), 7 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PULL 0/4] target-arm queue
2016-11-07 10:47 Peter Maydell
@ 2016-11-07 14:55 ` Stefan Hajnoczi
0 siblings, 0 replies; 19+ messages in thread
From: Stefan Hajnoczi @ 2016-11-07 14:55 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 1865 bytes --]
On Mon, Nov 07, 2016 at 10:47:29AM +0000, Peter Maydell wrote:
> Hi; here's the last target-arm pull request before I
> go off on holiday -- four fairly minor bug fixes.
> Hopefully it merges without problems, because I won't
> be around tomorrow to do a respin :-)
>
> thanks
> -- PMM
>
> The following changes since commit 9226682a401f34b10fd79dfe17ba334da0800747:
>
> Merge remote-tracking branch 'sstabellini/tags/xen-20161102-tag' into staging (2016-11-04 09:26:24 +0000)
>
> are available in the git repository at:
>
> git://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20161107
>
> for you to fetch changes up to 9706e0162d2405218fd7376ffdf13baed8569a4b:
>
> hw/i2c/bitbang_i2c: Handle NACKs from devices (2016-11-07 10:01:15 +0000)
>
> ----------------------------------------------------------------
> target-arm queue:
> * bitbang_i2c: Handle NACKs from devices
> * Fix corruption of CPSR when SCTLR.EE is set
> * nvic: set pending status for not active interrupts
> * char: cadence: check baud rate generator and divider values
>
> ----------------------------------------------------------------
> Julian Brown (1):
> Fix corruption of CPSR when SCTLR.EE is set
>
> Marcin Krzeminski (1):
> nvic: set pending status for not active interrupts
>
> Peter Maydell (1):
> hw/i2c/bitbang_i2c: Handle NACKs from devices
>
> Prasad J Pandit (1):
> char: cadence: check baud rate generator and divider values
>
> hw/char/cadence_uart.c | 15 +++++++++++++++
> hw/i2c/bitbang_i2c.c | 19 +++++++++++++++----
> hw/intc/arm_gic.c | 22 ++++++++++++++++++++--
> target-arm/helper.c | 2 +-
> 4 files changed, 51 insertions(+), 7 deletions(-)
Thanks, applied to my staging tree:
https://github.com/stefanha/qemu/commits/staging
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PULL 0/4] target-arm queue
@ 2017-07-11 10:29 Peter Maydell
2017-07-13 11:48 ` Peter Maydell
0 siblings, 1 reply; 19+ messages in thread
From: Peter Maydell @ 2017-07-11 10:29 UTC (permalink / raw)
To: qemu-devel
A surprisingly short target-arm queue, but no point in holding
onto these waiting for more code to arrive :-)
thanks
-- PMM
The following changes since commit 3d0bf8dfdfebd7f2ae41b6f220444b8047d6b1ee:
Merge remote-tracking branch 'remotes/dgilbert/tags/pull-migration-20170710a' into staging (2017-07-10 18:13:03 +0100)
are available in the git repository at:
git://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20170711
for you to fetch changes up to 792dac309c8660306557ba058b8b5a6a75ab3c1f:
target-arm: v7M: ignore writes to CONTROL.SPSEL from Thread mode (2017-07-11 11:21:26 +0100)
----------------------------------------------------------------
target-arm queue:
* v7M: ignore writes to CONTROL.SPSEL from Thread mode
* KVM: Enable in-kernel timers with user space gic
* aspeed: Register all watchdogs
* hw/misc: Add Exynos4210 Pseudo Random Number Generator
----------------------------------------------------------------
Alexander Graf (1):
ARM: KVM: Enable in-kernel timers with user space gic
Joel Stanley (1):
aspeed: Register all watchdogs
Krzysztof Kozlowski (1):
hw/misc: Add Exynos4210 Pseudo Random Number Generator
Peter Maydell (1):
target-arm: v7M: ignore writes to CONTROL.SPSEL from Thread mode
hw/misc/Makefile.objs | 2 +-
include/hw/arm/aspeed_soc.h | 4 +-
include/sysemu/kvm.h | 11 ++
target/arm/cpu.h | 3 +
accel/kvm/kvm-all.c | 5 +
accel/stubs/kvm-stub.c | 5 +
hw/arm/aspeed_soc.c | 25 ++--
hw/arm/exynos4210.c | 4 +
hw/intc/arm_gic.c | 7 ++
hw/misc/exynos4210_rng.c | 277 ++++++++++++++++++++++++++++++++++++++++++++
target/arm/helper.c | 13 ++-
target/arm/kvm.c | 51 ++++++++
12 files changed, 394 insertions(+), 13 deletions(-)
create mode 100644 hw/misc/exynos4210_rng.c
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PULL 0/4] target-arm queue
2017-07-11 10:29 Peter Maydell
@ 2017-07-13 11:48 ` Peter Maydell
0 siblings, 0 replies; 19+ messages in thread
From: Peter Maydell @ 2017-07-13 11:48 UTC (permalink / raw)
To: QEMU Developers
On 11 July 2017 at 11:29, Peter Maydell <peter.maydell@linaro.org> wrote:
> A surprisingly short target-arm queue, but no point in holding
> onto these waiting for more code to arrive :-)
>
> thanks
> -- PMM
>
> The following changes since commit 3d0bf8dfdfebd7f2ae41b6f220444b8047d6b1ee:
>
> Merge remote-tracking branch 'remotes/dgilbert/tags/pull-migration-20170710a' into staging (2017-07-10 18:13:03 +0100)
>
> are available in the git repository at:
>
> git://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20170711
>
> for you to fetch changes up to 792dac309c8660306557ba058b8b5a6a75ab3c1f:
>
> target-arm: v7M: ignore writes to CONTROL.SPSEL from Thread mode (2017-07-11 11:21:26 +0100)
>
> ----------------------------------------------------------------
> target-arm queue:
> * v7M: ignore writes to CONTROL.SPSEL from Thread mode
> * KVM: Enable in-kernel timers with user space gic
> * aspeed: Register all watchdogs
> * hw/misc: Add Exynos4210 Pseudo Random Number Generator
>
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PULL 0/4] target-arm queue
@ 2017-07-24 17:06 Peter Maydell
2017-07-24 18:21 ` Peter Maydell
0 siblings, 1 reply; 19+ messages in thread
From: Peter Maydell @ 2017-07-24 17:06 UTC (permalink / raw)
To: qemu-devel
ARM queue, mostly bug fixes to go into rc0.
The integratorcp and fsl_imx* changes are migration
compat breakers but that's ok for these boards.
thanks
-- PMM
The following changes since commit ce1d20aac8533357650774c2c240e30de87dc122:
Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2017-07-24' into staging (2017-07-24 16:20:47 +0100)
are available in the git repository at:
git://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20170724
for you to fetch changes up to b2d1b0507d1b80f23da12dd8aab56944fe380a09:
integratorcp: Don't migrate flash using vmstate_register_ram_global() (2017-07-24 17:59:28 +0100)
----------------------------------------------------------------
target-arm queue:
* fix a TCG temporary leak in aarch64 rev16
* fsl_imx*: migrate the ROM contents
* integratorcp: don't use vmstate_register_ram_global for flash
* mps2: Correctly set parent bus for SCC device
----------------------------------------------------------------
Emilio G. Cota (1):
target/arm: fix TCG temp leak in aarch64 rev16
Peter Maydell (3):
fsl_imx*: Migrate ROM contents
mps2: Correctly set parent bus for SCC device
integratorcp: Don't migrate flash using vmstate_register_ram_global()
hw/arm/fsl-imx25.c | 4 ++--
hw/arm/fsl-imx31.c | 4 ++--
hw/arm/fsl-imx6.c | 4 ++--
hw/arm/integratorcp.c | 3 +--
hw/arm/mps2.c | 2 +-
target/arm/translate-a64.c | 1 +
6 files changed, 9 insertions(+), 9 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PULL 0/4] target-arm queue
2017-07-24 17:06 Peter Maydell
@ 2017-07-24 18:21 ` Peter Maydell
0 siblings, 0 replies; 19+ messages in thread
From: Peter Maydell @ 2017-07-24 18:21 UTC (permalink / raw)
To: QEMU Developers
On 24 July 2017 at 18:06, Peter Maydell <peter.maydell@linaro.org> wrote:
> ARM queue, mostly bug fixes to go into rc0.
> The integratorcp and fsl_imx* changes are migration
> compat breakers but that's ok for these boards.
>
> thanks
> -- PMM
>
>
> The following changes since commit ce1d20aac8533357650774c2c240e30de87dc122:
>
> Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2017-07-24' into staging (2017-07-24 16:20:47 +0100)
>
> are available in the git repository at:
>
> git://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20170724
>
> for you to fetch changes up to b2d1b0507d1b80f23da12dd8aab56944fe380a09:
>
> integratorcp: Don't migrate flash using vmstate_register_ram_global() (2017-07-24 17:59:28 +0100)
>
> ----------------------------------------------------------------
> target-arm queue:
> * fix a TCG temporary leak in aarch64 rev16
> * fsl_imx*: migrate the ROM contents
> * integratorcp: don't use vmstate_register_ram_global for flash
> * mps2: Correctly set parent bus for SCC device
>
> ----------------------------------------------------------------
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PULL 0/4] target-arm queue
@ 2019-07-08 13:22 Peter Maydell
2019-07-08 13:54 ` Peter Maydell
2019-07-08 14:48 ` no-reply
0 siblings, 2 replies; 19+ messages in thread
From: Peter Maydell @ 2019-07-08 13:22 UTC (permalink / raw)
To: qemu-devel
A last handful of patches before the rc0. These are all bugfixes
so they could equally well go into rc1, but since my pullreq
queue is otherwise empty I might as well push them out. The
FPSCR bugfix is definitely one I'd like in rc0; the rest are
not really user-visible I think.
thanks
-- PMM
The following changes since commit c4107e8208d0222f9b328691b519aaee4101db87:
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2019-07-08 10:26:18 +0100)
are available in the Git repository at:
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20190708
for you to fetch changes up to 85795187f416326f87177cabc39fae1911f04c50:
target/arm/vfp_helper: Call set_fpscr_to_host before updating to FPSCR (2019-07-08 14:11:31 +0100)
----------------------------------------------------------------
target-arm queue:
* tests/migration-test: Fix read off end of aarch64_kernel array
* Fix sve_zcr_len_for_el off-by-one error
* hw/arm/sbsa-ref: Silence Coverity nit
* vfp_helper: Call set_fpscr_to_host before updating to FPSCR
----------------------------------------------------------------
Peter Maydell (2):
tests/migration-test: Fix read off end of aarch64_kernel array
hw/arm/sbsa-ref: Remove unnecessary check for secure_sysmem == NULL
Philippe Mathieu-Daudé (1):
target/arm/vfp_helper: Call set_fpscr_to_host before updating to FPSCR
Richard Henderson (1):
target/arm: Fix sve_zcr_len_for_el
hw/arm/sbsa-ref.c | 8 ++------
target/arm/helper.c | 4 ++--
target/arm/vfp_helper.c | 4 ++--
tests/migration-test.c | 22 +++++++---------------
4 files changed, 13 insertions(+), 25 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PULL 0/4] target-arm queue
2019-07-08 13:22 Peter Maydell
@ 2019-07-08 13:54 ` Peter Maydell
2019-07-08 14:48 ` no-reply
1 sibling, 0 replies; 19+ messages in thread
From: Peter Maydell @ 2019-07-08 13:54 UTC (permalink / raw)
To: QEMU Developers
On Mon, 8 Jul 2019 at 14:22, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> A last handful of patches before the rc0. These are all bugfixes
> so they could equally well go into rc1, but since my pullreq
> queue is otherwise empty I might as well push them out. The
> FPSCR bugfix is definitely one I'd like in rc0; the rest are
> not really user-visible I think.
>
> thanks
> -- PMM
>
> The following changes since commit c4107e8208d0222f9b328691b519aaee4101db87:
>
> Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2019-07-08 10:26:18 +0100)
>
> are available in the Git repository at:
>
> https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20190708
>
> for you to fetch changes up to 85795187f416326f87177cabc39fae1911f04c50:
>
> target/arm/vfp_helper: Call set_fpscr_to_host before updating to FPSCR (2019-07-08 14:11:31 +0100)
>
> ----------------------------------------------------------------
> target-arm queue:
> * tests/migration-test: Fix read off end of aarch64_kernel array
> * Fix sve_zcr_len_for_el off-by-one error
> * hw/arm/sbsa-ref: Silence Coverity nit
> * vfp_helper: Call set_fpscr_to_host before updating to FPSCR
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/4.1
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PULL 0/4] target-arm queue
2019-07-08 13:22 Peter Maydell
2019-07-08 13:54 ` Peter Maydell
@ 2019-07-08 14:48 ` no-reply
1 sibling, 0 replies; 19+ messages in thread
From: no-reply @ 2019-07-08 14:48 UTC (permalink / raw)
To: peter.maydell; +Cc: qemu-devel
Patchew URL: https://patchew.org/QEMU/20190708132237.7911-1-peter.maydell@linaro.org/
Hi,
This series seems to have some coding style problems. See output below for
more information:
Message-id: 20190708132237.7911-1-peter.maydell@linaro.org
Type: series
Subject: [Qemu-devel] [PULL 0/4] target-arm queue
=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===
From https://github.com/patchew-project/qemu
t [tag update] patchew/20190708132237.7911-1-peter.maydell@linaro.org -> patchew/20190708132237.7911-1-peter.maydell@linaro.org
Switched to a new branch 'test'
=== OUTPUT BEGIN ===
checkpatch.pl: no revisions returned for revlist '1'
=== OUTPUT END ===
Test command exited with code: 255
The full log is available at
http://patchew.org/logs/20190708132237.7911-1-peter.maydell@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2019-07-08 14:50 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-19 15:06 [Qemu-devel] [PULL 0/4] target-arm queue Peter Maydell
2013-04-19 15:06 ` [Qemu-devel] [PATCH 1/4] target-arm: Reinsert missing return statement in ARM mode SRS decode Peter Maydell
2013-04-19 15:06 ` [Qemu-devel] [PATCH 2/4] target-arm: port ARM CPU save/load to use VMState Peter Maydell
2013-04-19 15:06 ` [Qemu-devel] [PATCH 3/4] target-arm: Add some missing CPU state fields to VMState Peter Maydell
2013-04-19 15:07 ` [Qemu-devel] [PATCH 4/4] target-arm: Correctly restore FPSCR Peter Maydell
2013-04-20 12:38 ` [Qemu-devel] [PULL 0/4] target-arm queue Blue Swirl
-- strict thread matches above, loose matches on Subject: below --
2019-07-08 13:22 Peter Maydell
2019-07-08 13:54 ` Peter Maydell
2019-07-08 14:48 ` no-reply
2017-07-24 17:06 Peter Maydell
2017-07-24 18:21 ` Peter Maydell
2017-07-11 10:29 Peter Maydell
2017-07-13 11:48 ` Peter Maydell
2016-11-07 10:47 Peter Maydell
2016-11-07 14:55 ` Stefan Hajnoczi
2015-11-24 14:18 Peter Maydell
2015-11-24 15:02 ` Peter Maydell
2012-10-24 13:02 Peter Maydell
2012-10-27 16:52 ` Blue Swirl
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).