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/.


Reply via email to