From: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
To: luoyonggang@gmail.com,
"Philippe Mathieu-Daudé" <philmd@oss.qualcomm.com>
Cc: qemu-devel@nongnu.org, Anton Johansson <anjo@rev.ng>,
Richard Henderson <richard.henderson@linaro.org>
Subject: Re: [PATCH 00/14] target-info: remove machine_typename
Date: Thu, 3 Sep 2026 09:28:40 -0700 [thread overview]
Message-ID: <44d0f561-e713-420a-a648-c7199b20425a@oss.qualcomm.com> (raw)
In-Reply-To: <CAE2XoE_zkdFEFLp_eaKbX0ftROPJXxGQvv81z6CQrdjx2k5Y8g@mail.gmail.com>
On 9/3/2026 3:33 AM, Yonggang Luo wrote:
>
>
>>
>> > Pierrick Bouvier (14):
>> > qom/object: add is_available callback to TypeInfo
>>
>
> Patches for is_available callback to TypeInfo, it's can be merged latter
>
It's needed because files in patch 2 already depend on existing
filtering mechanism to distinguish between arm and aarch64.
We found other places where such filter could be used to specify target
related types within a single C file, thus allowing to remove #ifdef
TARGET_X easily.
> The reason is for the following command to execute:
>
> we need add target_info_select and pass TargetInfo to is_available
>
> - Move target_info() into qom/object.c. Default to SYS_EMU_TARGET_NONE
> until a real target is selected.
> - Add target_info_select(); it may be called only once with a non-NULL
> TargetInfo that is not SYS_EMU_TARGET_NONE.
> - Invoke TypeInfo.is_available after select, passing target_info().
> - Change target_* helpers to take const TargetInfo *.
We can wait to have a need for this. As long as there is no
heterogeneous support, it's safe to assume there is a single target
active globally.
> - Select the sole TargetInfo in user-mode MODULE_INIT_TARGET_INFO.
>
> With these changes, when `qemu-system` does not select TargetInfo, we
> can still list all machines and devices for each target properly.
> ```
> $ ./qemu-system.exe -machine ?
> Supported machines are:
> none:
> amd-microblaze-v-generic AMD Microblaze-V generic platform
> xlnx-versal-virt AMD Versal Virtual development board (alias of amd-
> versal-virt)
> amd-versal-virt AMD Versal Virtual development board
> amd-versal2-virt AMD Versal Gen 2 Virtual development board
> anacapa-bmc Facebook Anacapa BMC (Cortex-A7)
> ast1030-evb Aspeed AST1030 MiniBMC (Cortex-M4)
> ast1040-evb Aspeed AST1040 BIC EVB (Cortex-M4F)
> ast1060-evb Aspeed AST1060 Platform Root of Trust (Cortex-M4)
> ast2500-evb Aspeed AST2500 EVB (ARM1176)
> ast2600-evb Aspeed AST2600 EVB (Cortex-A7)
> axiado-scm3003 Axiado SCM3003 EVK Board
> b-l475e-iot01a B-L475E-IOT01A Discovery Kit (Cortex-M4)
> bletchley-bmc Facebook Bletchley BMC (Cortex-A7)
> boston-aia MIPS Boston-aia
> bpim2u Bananapi M2U (Cortex-A7)
> canon-a1100 Canon PowerShot A1100 IS (ARM946)
> catalina-bmc Facebook Catalina BMC (Cortex-A7)
> collie Sharp SL-5500 (Collie) PDA (SA-1110)
> cubieboard cubietech cubieboard (Cortex-A8)
> emcraft-sf2 SmartFusion2 SOM kit from Emcraft (M2S010)
> fby35-bmc Facebook fby35 BMC (Cortex-A7)
> fuji-bmc Facebook Fuji BMC (Cortex-A7)
> g220a-bmc Bytedance G220A BMC (ARM1176)
> gb200nvl-bmc Nvidia GB200NVL BMC (Cortex-A7)
> imx25-pdk ARM i.MX25 PDK board (ARM926)
> imx8mm-evk NXP i.MX 8MM EVK Board
> imx8mp-evk NXP i.MX 8M Plus EVK Board
> integratorcp ARM Integrator/CP (ARM926EJ-S)
> kudo-bmc Kudo BMC (Cortex-A9)
> kzm ARM KZM Emulation Baseboard (ARM1136)
> lm3s6965evb Stellaris LM3S6965EVB (Cortex-M3)
> lm3s811evb Stellaris LM3S811EVB (Cortex-M3)
> max78000fthr MAX78000FTHR Board (Cortex-M4 / (Unimplemented) RISC-V)
> mcimx6ul-evk Freescale i.MX6UL Evaluation Kit (Cortex-A7)
> mcimx7d-sabre Freescale i.MX7 DUAL SABRE (Cortex-A7)
> microbit BBC micro:bit (Cortex-M0)
> mori-bmc Mori BMC (Cortex-A9)
> mps2-an385 ARM MPS2 with AN385 FPGA image for Cortex-M3
> mps2-an386 ARM MPS2 with AN386 FPGA image for Cortex-M4
> mps2-an500 ARM MPS2 with AN500 FPGA image for Cortex-M7
> mps2-an505 ARM MPS2 with AN505 FPGA image for Cortex-M33
> mps2-an511 ARM MPS2 with AN511 DesignStart FPGA image for
> Cortex-M3
> mps2-an521 ARM MPS2 with AN521 FPGA image for dual Cortex-M33
> mps3-an524 ARM MPS3 with AN524 FPGA image for dual Cortex-M33
> mps3-an536 ARM MPS3 with AN536 FPGA image for Cortex-R52
> mps3-an547 ARM MPS3 with AN547 FPGA image for Cortex-M55
> mps3-an555 ARM MPS3 with AN555 FPGA image for Cortex-M85
> musca-a ARM Musca-A board (dual Cortex-M33)
> musca-b1 ARM Musca-B1 board (dual Cortex-M33)
> netduino2 Netduino 2 Machine (Cortex-M3)
> netduinoplus2 Netduino Plus 2 Machine (Cortex-M4)
> none empty machine
> npcm750-evb Nuvoton NPCM750 Evaluation Board (Cortex-A9)
> npcm845-evb Nuvoton NPCM845 Evaluation Board (Cortex-A35)
> nuri Samsung NURI board (Exynos4210)
> olimex-stm32-h405 Olimex STM32-H405 (Cortex-M4)
> orangepi-pc Orange Pi PC (Cortex-A7)
> palmetto-bmc OpenPOWER Palmetto BMC (ARM926EJ-S)
> quanta-gbs-bmc Quanta GBS (Cortex-A9)
> quanta-gsj Quanta GSJ (Cortex-A9)
> quanta-q71l-bmc Quanta-Q71l BMC (ARM926EJ-S)
> rainier-bmc IBM Rainier BMC (Cortex-A7)
> raspi0 Raspberry Pi Zero (revision 1.2)
> raspi1ap Raspberry Pi A+ (revision 1.1)
> raspi2b Raspberry Pi 2B (revision 1.1)
> realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
> realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)
> realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8
> realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9
> romulus-bmc OpenPOWER Romulus BMC (ARM1176)
> sabrelite Freescale i.MX6 Quad SABRE Lite Board (Cortex-A9)
> sbsa-ref QEMU 'SBSA Reference' ARM Virtual Machine
> smdkc210 Samsung SMDKC210 board (Exynos4210)
> stm32vldiscovery ST STM32VLDISCOVERY (Cortex-M3)
> supermicro-x11spi-bmc Supermicro X11 SPI BMC (ARM1176)
> supermicrox11-bmc Supermicro X11 BMC (ARM926EJ-S)
> sx1 Siemens SX1 (OMAP310) V2
> sx1-v1 Siemens SX1 (OMAP310) V1
> tiogapass-bmc Facebook Tiogapass BMC (ARM1176)
> versatileab ARM Versatile/AB (ARM926EJ-S)
> versatilepb ARM Versatile/PB (ARM926EJ-S)
> vexpress-a15 ARM Versatile Express for Cortex-A15
> vexpress-a9 ARM Versatile Express for Cortex-A9
> virt-10.0 QEMU 10.0 ARM Virtual Machine
> virt-10.1 QEMU 10.1 ARM Virtual Machine
> virt-10.2 QEMU 10.2 ARM Virtual Machine
> virt-11.0 QEMU 11.0 ARM Virtual Machine
> virt-11.1 QEMU 11.1 ARM Virtual Machine
> virt QEMU 11.2 ARM Virtual Machine (alias of virt-11.2)
> virt-11.2 QEMU 11.2 ARM Virtual Machine
> virt-6.0 QEMU 6.0 ARM Virtual Machine (deprecated)
> virt-6.1 QEMU 6.1 ARM Virtual Machine (deprecated)
> virt-6.2 QEMU 6.2 ARM Virtual Machine (deprecated)
> virt-7.0 QEMU 7.0 ARM Virtual Machine (deprecated)
> virt-7.1 QEMU 7.1 ARM Virtual Machine (deprecated)
> virt-7.2 QEMU 7.2 ARM Virtual Machine (deprecated)
> virt-8.0 QEMU 8.0 ARM Virtual Machine (deprecated)
> virt-8.1 QEMU 8.1 ARM Virtual Machine (deprecated)
> virt-8.2 QEMU 8.2 ARM Virtual Machine (deprecated)
> virt-9.0 QEMU 9.0 ARM Virtual Machine
> virt-9.1 QEMU 9.1 ARM Virtual Machine
> virt-9.2 QEMU 9.2 ARM Virtual Machine
> witherspoon-bmc OpenPOWER Witherspoon BMC (ARM1176)
> xilinx-zynq-a9 Xilinx Zynq 7000 Platform Baseboard for Cortex-A9
> xlnx-zcu102 Xilinx ZynqMP ZCU102 board with 4xA53s and 2xR5Fs
> based on the value of smp
> yosemitev2-bmc Facebook YosemiteV2 BMC (ARM1176)
>
> aarch64:
> ast2700a1-evb Aspeed AST2700 A1 EVB (Cortex-A35)
> ast2700-evb Aspeed AST2700 A2 EVB (Cortex-A35) (alias of
> ast2700a2-evb)
> ast2700a2-evb Aspeed AST2700 A2 EVB (Cortex-A35)
> ast2700fc ast2700 full core support
> raspi3ap Raspberry Pi 3A+ (revision 1.0)
> raspi3b Raspberry Pi 3B (revision 1.2)
> raspi4b Raspberry Pi 4B (revision 1.5)
>
>
> riscv32:
> k230 RISC-V Board compatible with Kendryte K230 SDK
> microchip-icicle-kit Microchip PolarFire SoC Icicle Kit
> opentitan RISC-V Board compatible with OpenTitan
> shakti_c RISC-V Board compatible with Shakti SDK (deprecated)
> sifive_e RISC-V Board compatible with SiFive E SDK
> sifive_u RISC-V Board compatible with SiFive U SDK
> spike RISC-V Spike board
> tt-atlantis Tenstorrent Atlantis RISC-V SoC (Experimental)
> virt RISC-V VirtIO board
> xiangshan-kunminghu RISC-V Board compatible with the Xiangshan
> Kunminghu FPGA prototype platform
>
> riscv64:
> k230 RISC-V Board compatible with Kendryte K230 SDK
> microchip-icicle-kit Microchip PolarFire SoC Icicle Kit
> opentitan RISC-V Board compatible with OpenTitan
> shakti_c RISC-V Board compatible with Shakti SDK (deprecated)
> sifive_e RISC-V Board compatible with SiFive E SDK
> sifive_u RISC-V Board compatible with SiFive U SDK
> spike RISC-V Spike board
> tt-atlantis Tenstorrent Atlantis RISC-V SoC (Experimental)
> virt RISC-V VirtIO board
> xiangshan-kunminghu RISC-V Board compatible with the Xiangshan
> Kunminghu FPGA prototype platform
> ```
>
> --
> 此致
> 礼
> 罗勇刚
> Yours
> sincerely,
> Yonggang Luo
next prev parent reply other threads:[~2026-09-03 16:29 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-01 20:20 [PATCH 00/14] target-info: remove machine_typename Pierrick Bouvier
2026-09-01 20:20 ` [PATCH 01/14] qom/object: add is_available callback to TypeInfo Pierrick Bouvier
2026-09-02 15:53 ` Philippe Mathieu-Daudé
2026-09-02 17:40 ` Philippe Mathieu-Daudé
2026-09-01 20:20 ` [PATCH 02/14] hw/arm: filter minimal set of machines Pierrick Bouvier
2026-09-02 14:30 ` Philippe Mathieu-Daudé
2026-09-01 20:20 ` [PATCH 03/14] system: query machines using TYPE_MACHINE Pierrick Bouvier
2026-09-02 4:39 ` Philippe Mathieu-Daudé
2026-09-01 20:20 ` [PATCH 04/14] target-info: remove machine_typename Pierrick Bouvier
2026-09-02 4:36 ` Philippe Mathieu-Daudé
2026-09-01 20:20 ` [PATCH 05/14] configs/targets: remove target info definitions Pierrick Bouvier
2026-09-02 15:55 ` Philippe Mathieu-Daudé
2026-09-02 16:24 ` Pierrick Bouvier
2026-09-02 17:41 ` Pierrick Bouvier
2026-09-01 20:20 ` [PATCH 06/14] target-info: rename target-info-stub.c in target-info-def.c Pierrick Bouvier
2026-09-01 20:20 ` [PATCH 07/14] hw/arm: remove TYPE_TARGET_{AARCH64,ARM}_MACHINE Pierrick Bouvier
2026-09-02 4:37 ` Philippe Mathieu-Daudé
2026-09-01 20:20 ` [PATCH 08/14] hw/arm: remove {arm, arm_aarch64, aarch64}_machine_interfaces Pierrick Bouvier via qemu development
2026-09-02 4:37 ` Philippe Mathieu-Daudé
2026-09-03 4:06 ` Yonggang Luo
2026-09-01 20:20 ` [PATCH 09/14] hw/arm: remove DEFINE_MACHINE_{AARCH64,ARM} Pierrick Bouvier
2026-09-02 4:38 ` Philippe Mathieu-Daudé
2026-09-01 20:20 ` [PATCH 10/14] hw/arm: remove machines-qom.h Pierrick Bouvier
2026-09-02 4:38 ` Philippe Mathieu-Daudé
2026-09-01 20:20 ` [PATCH 11/14] hw/riscv: remove TYPE_TARGET_{RISCV32,RISCV64}_MACHINE Pierrick Bouvier
2026-09-02 4:38 ` Philippe Mathieu-Daudé
2026-09-01 20:20 ` [PATCH 12/14] hw/riscv: remove {riscv32, riscv32_64, riscv64}_machine_interfaces Pierrick Bouvier via qemu development
2026-09-02 4:39 ` Philippe Mathieu-Daudé
2026-09-01 20:20 ` [PATCH 13/14] hw/riscv: remove DEFINE_MACHINE_{RISCV32,RISCV64} Pierrick Bouvier
2026-09-02 4:39 ` Philippe Mathieu-Daudé
2026-09-01 20:20 ` [PATCH 14/14] hw/riscv: remove machines-qom.h Pierrick Bouvier
2026-09-02 4:39 ` Philippe Mathieu-Daudé
2026-09-02 17:54 ` [PATCH 00/14] target-info: remove machine_typename Philippe Mathieu-Daudé
2026-09-03 10:33 ` Yonggang Luo
2026-09-03 16:28 ` Pierrick Bouvier [this message]
2026-09-03 16:42 ` Yonggang Luo
2026-09-03 16:53 ` Pierrick Bouvier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44d0f561-e713-420a-a648-c7199b20425a@oss.qualcomm.com \
--to=pierrick.bouvier@oss.qualcomm.com \
--cc=anjo@rev.ng \
--cc=luoyonggang@gmail.com \
--cc=philmd@oss.qualcomm.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.