mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
hw/ppc/e500: Check for compatible CPU type instead of aborting ungracefully
When using the ppce500 machine with an embedded CPU type that has the right MMU model, but is not part of the e500 CPU family, QEMU currently aborts ungracefully: $ ./qemu-system-ppc -machine ppce500 -cpu e200z5 -nographic qemu-system-ppc: ../qemu/hw/core/gpio.c:108: qdev_get_gpio_in_named: Assertion `n >= 0 && n < gpio_list->num_in' failed. Aborted (core dumped) The ppce500 machine expects a CPU with certain GPIO interrupt pins, so let's replace the coarse check for the MMU_BOOKE206 model with a more precise check that only allows CPUs from the e500 family. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3162 Signed-off-by: Thomas Huth <thuth@redhat.com> Acked-by: Bernhard Beschow <shentey@gmail.com> Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com> Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu> Message-ID: <20251015111243.1585018-1-thuth@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
committed by
Philippe Mathieu-Daudé
parent
40eed74cc9
commit
270b28681e
+3
-3
@@ -20,6 +20,7 @@
|
||||
#include "qemu/guest-random.h"
|
||||
#include "exec/target_page.h"
|
||||
#include "qapi/error.h"
|
||||
#include "cpu-models.h"
|
||||
#include "e500.h"
|
||||
#include "e500-ccsr.h"
|
||||
#include "net/net.h"
|
||||
@@ -942,9 +943,8 @@ void ppce500_init(MachineState *machine)
|
||||
env = &cpu->env;
|
||||
cs = CPU(cpu);
|
||||
|
||||
if (env->mmu_model != POWERPC_MMU_BOOKE206) {
|
||||
error_report("MMU model %i not supported by this machine",
|
||||
env->mmu_model);
|
||||
if (!(POWERPC_CPU_GET_CLASS(cpu)->svr & POWERPC_SVR_E500)) {
|
||||
error_report("This machine needs a CPU from the e500 family");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user