arm_boot: Pass ARMCPU to arm_boot_info::secondary_cpu_reset_hook()

Adapt highbank accordingly.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Andreas Färber 2012-05-14 01:05:40 +02:00
parent 9543b0cdd6
commit 5d309320e3
3 changed files with 8 additions and 4 deletions

View File

@ -52,7 +52,7 @@ struct arm_boot_info {
*/
void (*write_secondary_boot)(ARMCPU *cpu,
const struct arm_boot_info *info);
void (*secondary_cpu_reset_hook)(CPUARMState *env,
void (*secondary_cpu_reset_hook)(ARMCPU *cpu,
const struct arm_boot_info *info);
/* Used internally by arm_boot.c */
int is_linux;

View File

@ -72,9 +72,11 @@ static void default_write_secondary(ARMCPU *cpu,
info->smp_loader_start);
}
static void default_reset_secondary(CPUARMState *env,
static void default_reset_secondary(ARMCPU *cpu,
const struct arm_boot_info *info)
{
CPUARMState *env = &cpu->env;
stl_phys_notdirty(info->smp_bootreg_addr, 0);
env->regs[15] = info->smp_loader_start;
}
@ -295,7 +297,7 @@ static void do_cpu_reset(void *opaque)
}
}
} else {
info->secondary_cpu_reset_hook(env, info);
info->secondary_cpu_reset_hook(cpu, info);
}
}
}

View File

@ -60,8 +60,10 @@ static void hb_write_secondary(ARMCPU *cpu, const struct arm_boot_info *info)
rom_add_blob_fixed("smpboot", smpboot, sizeof(smpboot), SMP_BOOT_ADDR);
}
static void hb_reset_secondary(CPUARMState *env, const struct arm_boot_info *info)
static void hb_reset_secondary(ARMCPU *cpu, const struct arm_boot_info *info)
{
CPUARMState *env = &cpu->env;
switch (info->nb_cpus) {
case 4:
stl_phys_notdirty(SMP_BOOT_REG + 0x30, 0);