mirror of https://github.com/xemu-project/xemu.git
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:
parent
9543b0cdd6
commit
5d309320e3
|
@ -52,7 +52,7 @@ struct arm_boot_info {
|
||||||
*/
|
*/
|
||||||
void (*write_secondary_boot)(ARMCPU *cpu,
|
void (*write_secondary_boot)(ARMCPU *cpu,
|
||||||
const struct arm_boot_info *info);
|
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);
|
const struct arm_boot_info *info);
|
||||||
/* Used internally by arm_boot.c */
|
/* Used internally by arm_boot.c */
|
||||||
int is_linux;
|
int is_linux;
|
||||||
|
|
|
@ -72,9 +72,11 @@ static void default_write_secondary(ARMCPU *cpu,
|
||||||
info->smp_loader_start);
|
info->smp_loader_start);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void default_reset_secondary(CPUARMState *env,
|
static void default_reset_secondary(ARMCPU *cpu,
|
||||||
const struct arm_boot_info *info)
|
const struct arm_boot_info *info)
|
||||||
{
|
{
|
||||||
|
CPUARMState *env = &cpu->env;
|
||||||
|
|
||||||
stl_phys_notdirty(info->smp_bootreg_addr, 0);
|
stl_phys_notdirty(info->smp_bootreg_addr, 0);
|
||||||
env->regs[15] = info->smp_loader_start;
|
env->regs[15] = info->smp_loader_start;
|
||||||
}
|
}
|
||||||
|
@ -295,7 +297,7 @@ static void do_cpu_reset(void *opaque)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
info->secondary_cpu_reset_hook(env, info);
|
info->secondary_cpu_reset_hook(cpu, info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
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) {
|
switch (info->nb_cpus) {
|
||||||
case 4:
|
case 4:
|
||||||
stl_phys_notdirty(SMP_BOOT_REG + 0x30, 0);
|
stl_phys_notdirty(SMP_BOOT_REG + 0x30, 0);
|
||||||
|
|
Loading…
Reference in New Issue