Niek Linnenbank <nieklinnenb...@gmail.com> writes:
> Various Allwinner System on Chip designs contain multiple processors > that can be configured and reset using the generic CPU Configuration > module interface. This commit adds support for the Allwinner CPU > configuration interface which emulates the following features: > > * CPU reset > * CPU status > > Signed-off-by: Niek Linnenbank <nieklinnenb...@gmail.com> <snip> > + > +/* CPUCFG constants */ > +enum { > + CPU_EXCEPTION_LEVEL_ON_RESET = 3, /* EL3 */ > +}; > + > +static void allwinner_cpucfg_cpu_reset(AwCpuCfgState *s, uint8_t cpu_id) > +{ > + int ret; > + > + trace_allwinner_cpucfg_cpu_reset(cpu_id, s->entry_addr); > + > + ret = arm_set_cpu_on(cpu_id, s->entry_addr, 0, > + CPU_EXCEPTION_LEVEL_ON_RESET, false); According to the arm_set_cpu_on code: if (!target_aa64 && arm_feature(&target_cpu->env, ARM_FEATURE_AARCH64)) { /* * For now we don't support booting an AArch64 CPU in AArch32 mode * TODO: We should add this support later */ qemu_log_mask(LOG_UNIMP, "[ARM]%s: Starting AArch64 CPU %" PRId64 " in AArch32 mode is not supported yet\n", __func__, cpuid); return QEMU_ARM_POWERCTL_INVALID_PARAM; } Do you really want to reboot in aarch32 mode on a reset? If so we should fix the TODO. -- Alex Bennée