hw/microblaze: Remove the big-endian variants of ml605 and xlnx-zynqmp-pmu

Both machines were added with little-endian in mind only (the
"endianness" CPU property was hard-wired to "true", see commits
133d23b3ad and a88bbb006a), so the variants that showed up
on the big endian target likely never worked. We deprecated these
non-working machine variants two releases ago, and so far nobody
complained, so it should be fine now to disable them. Hard-wire
the machines to little endian now.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250515132019.569365-4-thuth@redhat.com>
This commit is contained in:
Thomas Huth 2025-05-15 15:20:18 +02:00
parent 6c54775584
commit 0e259fa5a1
4 changed files with 14 additions and 23 deletions

View file

@ -315,12 +315,6 @@ deprecated; use the new name ``dtb-randomness`` instead. The new name
better reflects the way this property affects all random data within better reflects the way this property affects all random data within
the device tree blob, not just the ``kaslr-seed`` node. the device tree blob, not just the ``kaslr-seed`` node.
Big-Endian variants of MicroBlaze ``petalogix-ml605`` and ``xlnx-zynqmp-pmu`` machines (since 9.2)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Both ``petalogix-ml605`` and ``xlnx-zynqmp-pmu`` were added for little endian
CPUs. Big endian support is not tested.
Mips ``mipssim`` machine (since 10.0) Mips ``mipssim`` machine (since 10.0)
''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''

View file

@ -1091,6 +1091,15 @@ This machine was removed because PPC 405 CPU have no known users,
firmware images are not available, OpenWRT dropped support in 2019, firmware images are not available, OpenWRT dropped support in 2019,
U-Boot in 2017, and Linux in 2024. U-Boot in 2017, and Linux in 2024.
Big-Endian variants of ``petalogix-ml605`` and ``xlnx-zynqmp-pmu`` machines (removed in 10.1)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Both the MicroBlaze ``petalogix-ml605`` and ``xlnx-zynqmp-pmu`` machines
were added for little endian CPUs. Big endian support was never tested
and likely never worked. Starting with QEMU v10.1, the machines are now
only available as little-endian machines.
linux-user mode CPUs linux-user mode CPUs
-------------------- --------------------

View file

@ -80,8 +80,6 @@ petalogix_ml605_init(MachineState *machine)
MemoryRegion *phys_lmb_bram = g_new(MemoryRegion, 1); MemoryRegion *phys_lmb_bram = g_new(MemoryRegion, 1);
MemoryRegion *phys_ram = g_new(MemoryRegion, 1); MemoryRegion *phys_ram = g_new(MemoryRegion, 1);
qemu_irq irq[32]; qemu_irq irq[32];
EndianMode endianness = TARGET_BIG_ENDIAN ? ENDIAN_MODE_BIG
: ENDIAN_MODE_LITTLE;
/* init CPUs */ /* init CPUs */
cpu = MICROBLAZE_CPU(object_new(TYPE_MICROBLAZE_CPU)); cpu = MICROBLAZE_CPU(object_new(TYPE_MICROBLAZE_CPU));
@ -113,7 +111,7 @@ petalogix_ml605_init(MachineState *machine)
dev = qdev_new("xlnx.xps-intc"); dev = qdev_new("xlnx.xps-intc");
qdev_prop_set_enum(dev, "endianness", endianness); qdev_prop_set_enum(dev, "endianness", ENDIAN_MODE_LITTLE);
qdev_prop_set_uint32(dev, "kind-of-intr", 1 << TIMER_IRQ); qdev_prop_set_uint32(dev, "kind-of-intr", 1 << TIMER_IRQ);
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR); sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
@ -129,7 +127,7 @@ petalogix_ml605_init(MachineState *machine)
/* 2 timers at irq 2 @ 100 Mhz. */ /* 2 timers at irq 2 @ 100 Mhz. */
dev = qdev_new("xlnx.xps-timer"); dev = qdev_new("xlnx.xps-timer");
qdev_prop_set_enum(dev, "endianness", endianness); qdev_prop_set_enum(dev, "endianness", ENDIAN_MODE_LITTLE);
qdev_prop_set_uint32(dev, "one-timer-only", 0); qdev_prop_set_uint32(dev, "one-timer-only", 0);
qdev_prop_set_uint32(dev, "clock-frequency", 100 * 1000000); qdev_prop_set_uint32(dev, "clock-frequency", 100 * 1000000);
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
@ -177,7 +175,7 @@ petalogix_ml605_init(MachineState *machine)
SSIBus *spi; SSIBus *spi;
dev = qdev_new("xlnx.xps-spi"); dev = qdev_new("xlnx.xps-spi");
qdev_prop_set_enum(dev, "endianness", endianness); qdev_prop_set_enum(dev, "endianness", ENDIAN_MODE_LITTLE);
qdev_prop_set_uint8(dev, "num-ss-bits", NUM_SPI_FLASHES); qdev_prop_set_uint8(dev, "num-ss-bits", NUM_SPI_FLASHES);
busdev = SYS_BUS_DEVICE(dev); busdev = SYS_BUS_DEVICE(dev);
sysbus_realize_and_unref(busdev, &error_fatal); sysbus_realize_and_unref(busdev, &error_fatal);
@ -218,12 +216,7 @@ petalogix_ml605_init(MachineState *machine)
static void petalogix_ml605_machine_init(MachineClass *mc) static void petalogix_ml605_machine_init(MachineClass *mc)
{ {
if (TARGET_BIG_ENDIAN) {
mc->desc = "PetaLogix linux refdesign for xilinx ml605 (big endian)";
mc->deprecation_reason = "big endian support is not tested";
} else {
mc->desc = "PetaLogix linux refdesign for xilinx ml605 (little endian)"; mc->desc = "PetaLogix linux refdesign for xilinx ml605 (little endian)";
}
mc->init = petalogix_ml605_init; mc->init = petalogix_ml605_init;
} }

View file

@ -181,12 +181,7 @@ static void xlnx_zynqmp_pmu_init(MachineState *machine)
static void xlnx_zynqmp_pmu_machine_init(MachineClass *mc) static void xlnx_zynqmp_pmu_machine_init(MachineClass *mc)
{ {
if (TARGET_BIG_ENDIAN) {
mc->desc = "Xilinx ZynqMP PMU machine (big endian)";
mc->deprecation_reason = "big endian support is not tested";
} else {
mc->desc = "Xilinx ZynqMP PMU machine (little endian)"; mc->desc = "Xilinx ZynqMP PMU machine (little endian)";
}
mc->init = xlnx_zynqmp_pmu_init; mc->init = xlnx_zynqmp_pmu_init;
} }