Peter Maydell <[email protected]> writes:

> On Fri, 27 Feb 2026 at 14:51, Markus Armbruster <[email protected]> wrote:
>>
>> Peter Maydell <[email protected]> writes:
>>
>> > On Fri, 27 Feb 2026 at 12:10, Markus Armbruster <[email protected]> wrote:
>> >> The larger problem is that we generally fail at documenting device and
>> >> machine properties.  I'm not asking you to boil that ocean :)
>> >>
>> >> The narrow problem is providing guidance on watchdog configuration.
>> >> What and where?
>> >>
>> >> Regarding where: you proposed to add a machine property of QAPI enum
>> >> type.
>> >>
>> >> The property can have a description, and you give it one.  Sadly, it's
>> >> basically invisible.  As far as I know, the only way you can get at it
>> >> is qom-list-properties and such.  I doubt anybody is going to read the
>> >> description there.
>> >
>> > I think it also will appear if you run e.g.
>> >  qemu-system-arm -M virt,help
>> >
>> > (which produces a list of all properties with their short descriptions)
>>
>> You're right!
>>
>> > For board-specific properties, we should be documenting these in
>> > the manual page for the board. For instance "virt" does that here:
>> >  
>> > https://www.qemu.org/docs/master/system/arm/virt.html#machine-specific-options
>>
>> Every board should have such a page.  Even if it's just a placeholder.
>> Placeholders would remind us where the gaps are.
>
> I agree. For Arm I believe every board should already have a docs page,
> even if a very minimal one. (Some closely related boards get
> described on a single page that covers that whole family of boards.)
> The full list of pages is here:
>  https://www.qemu.org/docs/master/system/target-arm.html
>
> We follow the same pattern (but not always with complete coverage)
> in most but not all the other target architectures.
>
> I don't think there's currently any automatic way to get a list
> of undocumented boards, because there isn't any tagging of the
> boards that are documented except in as much as the board names
> are listed in the title of the relevant pages.

Alright, here's a first and incomplete attempt at the manual way.

docs/system/targets.rst "QEMU System Emulator Targets" lists target
pages docs/system/target-ARCH:

    target-arm
    target-avr
    target-loongarch
    target-m68k
    target-mips
    target-or1k
    target-ppc
    target-riscv
    target-rx
    target-s390x
    target-sparc
    target-sparc64
    target-i386
    target-xtensa

These appear to be mostly per "arch", not per target, i.e. there's just
target-mips, not -mips, -mipsel, -mips64, mips64el.  Exception: -sparc
and -sparc64.

Checking against include/system/arch_init.h...  We're missing

    target-alpha
    target-hexagon
    target-hppa
    target-microblaze
    target-sh4
    target-tricore

Some target pages list board pages under a "Board-specific
documentation" heading:

    target-arm
        arm/max78000
        arm/integratorcp
        arm/mps2
        arm/musca
        arm/realview
        arm/sbsa
        arm/versatile
        arm/vexpress
        arm/aspeed
        arm/bananapi_m2u.rst
        arm/b-l475e-iot01a.rst
        arm/sabrelite
        arm/highbank
        arm/digic
        arm/cubieboard
        arm/emcraft-sf2
        arm/exynos
        arm/fby35
        arm/musicpal
        arm/kzm
        arm/nrf
        arm/nuvoton
        arm/imx25-pdk
        arm/mcimx6ul-evk
        arm/mcimx7d-sabre
        arm/imx8mp-evk
        arm/orangepi
        arm/raspi
        arm/collie
        arm/sx1
        arm/stellaris
        arm/stm32
        arm/virt
        arm/vmapple
        arm/xenpvh
        arm/xlnx-versal-virt
        arm/xlnx-zynq
        arm/xlnx-zcu102
    target-i386
        i386/pc
        i386/microvm
        i386/nitro-enclave
    target-loongarch
        loongarch/virt
    target-or1k
        or1k/or1k-sim
        or1k/virt
    target-ppc
        ppc/amigang
        ppc/embedded
        ppc/powermac
        ppc/powernv
        ppc/ppce500
        ppc/prep
        ppc/pseries
    target-riscv
        riscv/microblaze-v-generic
        riscv/microchip-icicle-kit
        riscv/mips
        riscv/shakti-c
        riscv/sifive_u
        riscv/virt
        riscv/xiangshan-kunminghu

Pages may cover multiple machine types (e.g. ppc/amigang covers
amigaone, pegasos1, pegasos2, sam460ex).  We might want to tweak titles
to help us find the board names more easily, so we can check for
completeness.

Target pages without a "Board-specific documentation" heading:

    target-avr
    target-m68k
    target-mips
    target-rx
    target-s390x
    target-sparc
    target-sparc64
    target-xtensa

Some of these do talk about boards, just in less greppable ways.  We
might want to adjust them to better support completeness checking.

Worth pursuing this further?


Reply via email to