From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Andreas Färber" <afaerber@suse.de>,
"Anthony Liguori" <anthony@codemonkey.ws>,
"Paul Brook" <paul@codesourcery.com>
Subject: [Qemu-devel] [PATCH v6 0/2] QOM'ify ARM CPU
Date: Mon, 26 Mar 2012 19:28:26 +0200 [thread overview]
Message-ID: <1332782909-28412-1-git-send-email-afaerber@suse.de> (raw)
Hello Peter,
Here's the revised mini-conversion with CPUState::reset supported again.
Please apply to target-arm.next tree.
Available at:
https://github.com/afaerber/qemu-cpu/commits/qom-cpu-arm.v6
Regards,
Andreas
Cc: Anthony Liguori <anthony@codemonkey.ws>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Paul Brook <paul@codesourcery.com>
Cc: Andrzej Zaborowski <balrogg@gmail.com>
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 | 59 ++++++++++++++++++++++++++++++++++++++++++
target-arm/cpu.h | 2 +-
target-arm/helper.c | 9 ++----
5 files changed, 134 insertions(+), 7 deletions(-)
create mode 100644 target-arm/cpu-qom.h
create mode 100644 target-arm/cpu.c
--
1.7.7
next reply other threads:[~2012-03-26 17:28 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-26 17:28 Andreas Färber [this message]
2012-03-26 17:28 ` [Qemu-devel] [PATCH v6 1/2] target-arm: Drop cpu_arm_close() Andreas Färber
2012-03-26 17:28 ` [Qemu-devel] [PATCH v6 2/2] target-arm: Minimalistic CPU QOM'ification Andreas Färber
2012-03-28 13:40 ` Peter Maydell
2012-03-28 13:46 ` Max Filippov
2012-03-28 13:49 ` Andreas Färber
2012-03-28 14:00 ` Max Filippov
2012-03-28 14:05 ` Andreas Färber
2012-03-28 13:46 ` Andreas Färber
2012-03-28 14:31 ` Peter Maydell
2012-03-28 14:22 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1332782909-28412-1-git-send-email-afaerber@suse.de \
--to=afaerber@suse.de \
--cc=anthony@codemonkey.ws \
--cc=paul@codesourcery.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).