On 6/2/25 14:20, Daniel P. Berrangé wrote:
On Thu, Feb 06, 2025 at 02:10:47PM +0100, Philippe Mathieu-Daudé wrote:
Introduce an abstract machine parent class which defines
the 'little_endian' property. Duplicate the current machine,
which endian is tied to the binary endianness, to one big
endian and a little endian machine; updating the machine
description. Keep the current default machine for each binary.
'petalogix-s3adsp1800' machine is aliased as:
- 'petalogix-s3adsp1800-be' on big-endian binary,
- 'petalogix-s3adsp1800-le' on little-endian one.
Does it makes sense to expose these as different machine types ?
If all the HW is identical in both cases, it feels like the
endianness could just be a bool property of the machine type,
rather than a new machine type.
To clarify what we are trying to achieve here:
1/ Current situation:
$ qemu-system-microblaze -M help
Supported machines are:
none empty machine
petalogix-ml605 PetaLogix linux refdesign for xilinx ml605 (big
endian) (deprecated)
petalogix-s3adsp1800 PetaLogix linux refdesign for xilinx Spartan
3ADSP1800 (default)
xlnx-zynqmp-pmu Xilinx ZynqMP PMU machine (big endian) (deprecated)
$ qemu-system-microblazeel -M help
Supported machines are:
none empty machine
petalogix-ml605 PetaLogix linux refdesign for xilinx ml605 (little
endian)
petalogix-s3adsp1800 PetaLogix linux refdesign for xilinx Spartan
3ADSP1800 (default)
xlnx-zynqmp-pmu Xilinx ZynqMP PMU machine (little endian)
1 architecture declined in 2 binaries, total of 6 machines
2/ With this series:
qemu-system-microblaze -M help
Supported machines are:
none empty machine
petalogix-ml605 PetaLogix linux refdesign for xilinx ml605 (big
endian) (deprecated)
petalogix-s3adsp1800 PetaLogix linux refdesign for xilinx Spartan
3ADSP1800 (big endian) (alias of petalogix-s3adsp1800-be)
petalogix-s3adsp1800-be PetaLogix linux refdesign for xilinx Spartan
3ADSP1800 (big endian) (default)
petalogix-s3adsp1800-le PetaLogix linux refdesign for xilinx Spartan
3ADSP1800 (little endian)
xlnx-zynqmp-pmu Xilinx ZynqMP PMU machine (big endian) (deprecated)
qemu-system-microblazeel -M help
Supported machines are:
none empty machine
petalogix-ml605 PetaLogix linux refdesign for xilinx ml605 (little
endian)
petalogix-s3adsp1800-be PetaLogix linux refdesign for xilinx Spartan
3ADSP1800 (big endian)
petalogix-s3adsp1800 PetaLogix linux refdesign for xilinx Spartan
3ADSP1800 (little endian) (alias of petalogix-s3adsp1800-le)
petalogix-s3adsp1800-le PetaLogix linux refdesign for xilinx Spartan
3ADSP1800 (little endian) (default)
xlnx-zynqmp-pmu Xilinx ZynqMP PMU machine (little endian)
1 architecture declined in 2 binaries, total of 10 machines
3/ Once the deprecation period passed and we can merge the 2 binaries:
$ qemu-system-microblaze -M help
Supported machines are:
none empty machine
petalogix-ml605 PetaLogix linux refdesign for xilinx ml605 (little
endian)
petalogix-s3adsp1800-be PetaLogix linux refdesign for xilinx Spartan
3ADSP1800 (big endian)
petalogix-s3adsp1800-le PetaLogix linux refdesign for xilinx Spartan
3ADSP1800 (little endian)
xlnx-zynqmp-pmu Xilinx ZynqMP PMU machine (little endian)
1 architecture, 1 binary, 4 machines (which could be reduced to 3 if
we want a default endianness for the s3adsp1800).
Due to the deprecation policy, step 2/ is necessary to reach 3/.