All of lore.kernel.org
 help / color / mirror / Atom feed
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



  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.