[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC qom-cpu 02/15] target-arm: Update CPU to QOM reali
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [RFC qom-cpu 02/15] target-arm: Update CPU to QOM realizefn |
Date: |
Wed, 16 Jan 2013 23:37:38 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130105 Thunderbird/17.0.2 |
Am 16.01.2013 16:52, schrieb Eduardo Habkost:
> On Wed, Jan 16, 2013 at 06:32:47AM +0100, Andreas Färber 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 = ARM_CPU(object_new(cpu_model));
>> env = &cpu->env;
>> env->cpu_model_str = cpu_model;
>> - arm_cpu_realize(cpu);
>>
>> if (tcg_enabled() && !inited) {
>> inited = 1;
>> arm_translate_init();
>> }
>>
>> - cpu_reset(CPU(cpu));
>> if (arm_feature(env, ARM_FEATURE_NEON)) {
>> gdb_register_coprocessor(env, vfp_gdb_get_reg, vfp_gdb_set_reg,
>> 51, "arm-neon.xml", 0);
>
> 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().
>
> Why not move all the code between the "arm_cpu_realize(cpu)" and "return
> cpu" lines to the realize function as-is, instead of moving only part of
> 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
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
- [Qemu-devel] [RFC qom-cpu 00/15] CPUState QOM realizefn support, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 01/15] target-alpha: Update CPU to QOM realizefn, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 03/15] target-i386: Update CPU to QOM realizefn, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 02/15] target-arm: Update CPU to QOM realizefn, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 05/15] target-ppc: Update CPU to QOM realizefn, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 04/15] target-openrisc: Update CPU to QOM realizefn, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 07/15] target-lm32: Introduce QOM realizefn for LM32CPU, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 08/15] target-m68k: Introduce QOM realizefn for M68kCPU, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 10/15] target-mips: Introduce QOM realizefn for MIPSCPU, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 06/15] target-cris: Introduce QOM realizefn for CRISCPU, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 09/15] target-microblaze: Introduce QOM realizefn for MicroBlazeCPU, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 13/15] target-sparc: Introduce QOM realizefn for SPARCCPU, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 11/15] target-s390x: Introduce QOM realizefn for S390CPU, Andreas Färber, 2013/01/16
- [Qemu-devel] [RFC qom-cpu 15/15] target-xtensa: Introduce QOM realizefn for XtensaCPU, Andreas Färber, 2013/01/16