From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:40657) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tvbc9-00046U-Qx for qemu-devel@nongnu.org; Wed, 16 Jan 2013 17:37:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tvbc8-0002Gv-RM for qemu-devel@nongnu.org; Wed, 16 Jan 2013 17:37:45 -0500 Received: from cantor2.suse.de ([195.135.220.15]:48139 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tvbc8-0002GX-Hx for qemu-devel@nongnu.org; Wed, 16 Jan 2013 17:37:44 -0500 Message-ID: <50F72BB2.5020502@suse.de> Date: Wed, 16 Jan 2013 23:37:38 +0100 From: =?ISO-8859-1?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1358314380-9400-1-git-send-email-afaerber@suse.de> <1358314380-9400-3-git-send-email-afaerber@suse.de> <20130116155248.GG20133@otherpad.lan.raisama.net> In-Reply-To: <20130116155248.GG20133@otherpad.lan.raisama.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC qom-cpu 02/15] target-arm: Update CPU to QOM realizefn List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost Cc: Peter Maydell , qemu-devel@nongnu.org, Paul Brook Am 16.01.2013 16:52, schrieb Eduardo Habkost: > On Wed, Jan 16, 2013 at 06:32:47AM +0100, Andreas F=E4rber wrote: > [...] >> diff --git a/target-arm/helper.c b/target-arm/helper.c >> index 37c34a1..f4553de 100644 >> --- a/target-arm/helper.c >> +++ b/target-arm/helper.c >> @@ -1270,14 +1270,12 @@ ARMCPU *cpu_arm_init(const char *cpu_model) >> cpu =3D ARM_CPU(object_new(cpu_model)); >> env =3D &cpu->env; >> env->cpu_model_str =3D cpu_model; >> - arm_cpu_realize(cpu); >> =20 >> if (tcg_enabled() && !inited) { >> inited =3D 1; >> arm_translate_init(); >> } >> =20 >> - cpu_reset(CPU(cpu)); >> if (arm_feature(env, ARM_FEATURE_NEON)) { >> gdb_register_coprocessor(env, vfp_gdb_get_reg, vfp_gdb_set_re= g, >> 51, "arm-neon.xml", 0); >=20 > Some arm_feature() checks here (e.g. ARM_FEATURE_VFP3) depend on > set_feature() calls done by arm_cpu_realize[fn](). Ouch! > On the other hand, I won't be surprised if gdb_register_coprocessor() > needs to be called before qemu_init_vcpu(). I also don't know if it is > safe to call gdb_register_coprocessor() before cpu_reset(). >=20 > Why not move all the code between the "arm_cpu_realize(cpu)" and "retur= n > cpu" lines to the realize function as-is, instead of moving only part o= f > the code? If arm requires these steps to be run after creating a CPU, I > consider all of them part of the CPU realization process. That was not directly possible because the helper functions registered are here in helper.c. What I'll do is to put these into a separate function that I can call from realizefn. Thanks, Andreas --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg