qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v7 0/2] QOM'ify ARM CPU
@ 2012-03-29 14:50 Andreas Färber
  2012-03-29 14:50 ` [Qemu-devel] [PATCH v7 1/2] target-arm: Drop cpu_arm_close() Andreas Färber
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Andreas Färber @ 2012-03-29 14:50 UTC (permalink / raw)
  To: qemu-devel; +Cc: Max Filippov, Peter Maydell, Andreas Färber, Paul Brook

Hello Peter,

Here's an improved mini-conversion. Please apply to target-arm.next tree.

Available at:
https://github.com/afaerber/qemu-cpu/commits/qom-cpu-arm.v7

Regards,
Andreas

Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Paul Brook <paul@codesourcery.com>
Cc: Andrzej Zaborowski <balrogg@gmail.com>
Cc: Max Filippov <jcmvbkbc@gmail.com>

v6 -> v7:
* Fix TODO comment and add a corresponding TODO in helper.c.
* Avoid klass/class by using oc for ObjectClass, cc for CPUClass, acc for ARMCPUClass.

v5 -> v6:
* By dropping some of the patches in the series, cpu_reset() would no longer
  reset the CPUARMState. Fix this by re-adding a reset handler and calling
  cpu_state_reset() for now.

v4 -> v5:
* Use only one non-abstract CPU type for now, leave everything else as is.
* Drop cpu_arm_close() instead of converting it.
* Still make available cpu-qom.h through cpu.h for convenience.

v3 -> v4:
* Rebased on top of type_init() v2, object_class_get_list() v2, qom-cpu v4.

* Rename cpu-core.h to cpu-qom.h. While the term "ARM core" is quite common,
  it is less so for other architectures like s390x so use a neutral term.
* Use container_of() for CPUState -> CPU macros (suggested by Anthony).
* Rework arm_env_get_object() -> arm_env_get_cpu(), avoids some casts
  (suggested by Anthony). Also rename ENV_GET_OBJECT() -> ENV_GET_CPU().
* Sort -cpu ? list.
* Use object_class_get_list() and sort ourselves rather than using
  object_class_foreach_ordered() with callbacks (suggested by Anthony).
* Drop ARMCPUClass jtag_id since it turned out unneeded in QEMU (Peter+Andrzej).

* Drop experimental "halted" property since that should be in common code.
* Introduce "cpuid-variant" and "cpuid-revision" properties.
* Use CPU properties to drop unneeded pxa270-* classes.
* Move "/cpu" child property to integratorcp machine.

v2 -> v3:
* Rebased against qom-upstream.14 branch (and that against master).

* Rename target-arm/cpu-core.c to cpu.c now that we no longer need VPATH.
* Leave cpu-core.h as is to separate from legacy cpu.h.
* Fix -cpu alias "pxa270": handled in cpu_arm_init().
* Use proper GPL headers.

* Start removing CPUID uses in cpu_reset_model_id() and cpu.h.
* Fully convert cpu_reset_model_id() to ARMCPUInfo or per-model code.

* Experiment with adding properties ("halted").
* For testing, add a "/cpu" child property (HACK).

v1 -> v2:

* Cherry-pick Anthony's object_class_foreach() patch.

* Fix ARMCPUClass type name (arm-cpu-core -> arm-cpu).
* Add documentation.
* Rename ARMCPUDef to ARMCPUInfo.
* Use a C99-style table for initializing the classes through class_data
  instead of individual class_init functions (suggested by Anthony).
* Prepare reset callback.

* Make ENV_GET_OBJECT() use an inline function for readability.
* Invoke the CPU's reset method from cpu_reset().

* Do feature initialization via table where sensible.
* Add feature flags to ARMCPU as well (suggested by PMM for future tweaking,
  also simplifies load/save a bit) and initialize them from ARMCPUClass.
* Make feature inference work for ARMCPU as well by not passing the ARMCPUClass.
  Use function-local macros to avoid the ugliness of deferencing the features pointer.

Andreas Färber (2):
  target-arm: Drop cpu_arm_close()
  target-arm: Minimalistic CPU QOM'ification

 Makefile.target      |    1 +
 target-arm/cpu-qom.h |   70 ++++++++++++++++++++++++++++++++++++++++++++++++++
 target-arm/cpu.c     |   60 ++++++++++++++++++++++++++++++++++++++++++
 target-arm/cpu.h     |    2 +-
 target-arm/helper.c  |   13 +++++----
 5 files changed, 139 insertions(+), 7 deletions(-)
 create mode 100644 target-arm/cpu-qom.h
 create mode 100644 target-arm/cpu.c

-- 
1.7.7

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-03-30 10:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-29 14:50 [Qemu-devel] [PATCH v7 0/2] QOM'ify ARM CPU Andreas Färber
2012-03-29 14:50 ` [Qemu-devel] [PATCH v7 1/2] target-arm: Drop cpu_arm_close() Andreas Färber
2012-03-29 14:50 ` [Qemu-devel] [PATCH v7 2/2] target-arm: Minimalistic CPU QOM'ification Andreas Färber
2012-03-30 10:07   ` [Qemu-devel] [PATCH] target-arm: Document ARMCPUClass::parent_reset() Andreas Färber
2012-03-30 10:11     ` Peter Maydell
2012-03-29 15:00 ` [Qemu-devel] [PATCH v7 0/2] QOM'ify ARM CPU Peter Maydell

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).