mirror of https://github.com/xqemu/xqemu.git
hw/xtensa: xtfpga: fix bootloader placement in SMP
Use BSP reset PC as a place for the mini-bootloader because in SMP configurations APs and BSP may have different boot addresses. This fixes SMP linux uImage boot on xtfpga boards. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
parent
6230dac89b
commit
288a3f2ed7
|
@ -234,10 +234,15 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
for (n = 0; n < smp_cpus; n++) {
|
for (n = 0; n < smp_cpus; n++) {
|
||||||
cpu = XTENSA_CPU(cpu_create(machine->cpu_type));
|
CPUXtensaState *cenv = NULL;
|
||||||
env = &cpu->env;
|
|
||||||
|
|
||||||
env->sregs[PRID] = n;
|
cpu = XTENSA_CPU(cpu_create(machine->cpu_type));
|
||||||
|
cenv = &cpu->env;
|
||||||
|
if (!env) {
|
||||||
|
env = cenv;
|
||||||
|
}
|
||||||
|
|
||||||
|
cenv->sregs[PRID] = n;
|
||||||
qemu_register_reset(xtfpga_reset, cpu);
|
qemu_register_reset(xtfpga_reset, cpu);
|
||||||
/* Need MMU initialized prior to ELF loading,
|
/* Need MMU initialized prior to ELF loading,
|
||||||
* so that ELF gets loaded into virtual addresses
|
* so that ELF gets loaded into virtual addresses
|
||||||
|
|
Loading…
Reference in New Issue