mbox series

[RFC,00/18] hw/microblaze: Quick single binary proof of concept

Message ID 20250305153929.43687-1-philmd@linaro.org
Headers show
Series hw/microblaze: Quick single binary proof of concept | expand

Message

Philippe Mathieu-Daudé March 5, 2025, 3:39 p.m. UTC
Introduce an API to get target-specific information
from our current binary names (considered legacy as
of today).

At this point, get endianness and target_long_bits,
just enough to build qemu-system-microblaze (default
to big endian) and its little-endian symlink:

 $ make qemu-system-microblaze{,el}

 $ ./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) (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 (big endian) (deprecated)
 petalogix-s3adsp1800 PetaLogix linux refdesign for xilinx Spartan 3ADSP1800 (little endian) (default)
 xlnx-zynqmp-pmu      Xilinx ZynqMP PMU machine (big endian) (deprecated)

Based-on: <20250305005225.95051-1-philmd@linaro.org>

Philippe Mathieu-Daudé (18):
  hw/xen/hvm: Fix Aarch64 typo
  hw/vfio/common: Get target page size using runtime helpers
  include: Poison TARGET_PHYS_ADDR_SPACE_BITS definition
  qemu: Introduce 'qemu/legacy_binary_info.h'
  qemu: Introduce legacy_binary_is_64bit() helper
  hw/mips/mipssim: Replace TARGET_MIPS64 by legacy_binary_is_64bit()
  hw/mips/malta: Replace TARGET_MIPS64 by legacy_binary_is_64bit()
  hw/i386: Inline TARGET_DEFAULT_CPU_TYPE definition
  hw/ppc/mac: Replace TARGET_PPC64 by legacy_binary_is_64bit()
  qemu: Introduce legacy_binary_is_big_endian() helper
  hw/mips/jazz: Replace TARGET_BIG_ENDIAN by legacy_binary_is_big_endian
  hw/mips/mipssim: Use legacy_binary_is_big_endian()
  hw/xtensa/sim: Replace TARGET_BIG_ENDIAN by
    legacy_binary_is_big_endian
  hw/xtensa/xtfpga: Check endianness via legacy_binary_is_big_endian()
  hw/microblaze/petalogix_ml605_mmu: Use legacy_binary_is_big_endian()
  hw/microblaze/petalogix_s3adsp1800_mmu: Use
    legacy_binary_is_big_endian
  meson: Allow symlinking system emulation binaries
  configs/targets: Merge qemu-system-microblaze{el} binaries

 configs/targets/microblazeel-softmmu.mak |   8 -
 meson.build                              |  18 +-
 include/exec/poison.h                    |   1 +
 include/hw/xen/arch_hvm.h                |   2 +-
 include/qemu/legacy_binary_info.h        |  25 +++
 target/i386/cpu.h                        |   6 -
 hw/i386/microvm.c                        |   5 +-
 hw/i386/pc.c                             |   5 +-
 hw/i386/xen/xen-pvh.c                    |   5 +-
 hw/microblaze/petalogix_ml605_mmu.c      |   4 +-
 hw/microblaze/petalogix_s3adsp1800_mmu.c |  13 +-
 hw/mips/jazz.c                           |  23 ++-
 hw/mips/malta.c                          |   8 +-
 hw/mips/mipssim.c                        |  36 ++--
 hw/ppc/mac_newworld.c                    |   9 +-
 hw/ppc/mac_oldworld.c                    |   5 +-
 hw/vfio/common.c                         |   9 +-
 hw/xtensa/sim.c                          |   4 +-
 hw/xtensa/xtfpga.c                       |  12 +-
 legacy_binary_info.c                     | 240 +++++++++++++++++++++++
 system/vl.c                              |   2 +
 21 files changed, 358 insertions(+), 82 deletions(-)
 delete mode 100644 configs/targets/microblazeel-softmmu.mak
 create mode 100644 include/qemu/legacy_binary_info.h
 create mode 100644 legacy_binary_info.c