c0177f911f
This command is used by tooling like libvirt to retrieve a list of supported CPUs. Each entry returns a CpuDefinitionInfo object that contains more information about each CPU. This initial support includes only the name of the CPU and its typename. Here's what the command produces for the riscv64 target: $ ./build/qemu-system-riscv64 -S -M virt -display none -qmp stdio {"QMP": {"version": (...)} {"execute": "qmp_capabilities", "arguments": {"enable": ["oob"]}} {"return": {}} {"execute": "query-cpu-definitions"} {"return": [ {"name": "rv64", "typename": "rv64-riscv-cpu", "static": false, "deprecated": false}, {"name": "sifive-e51", "typename": "sifive-e51-riscv-cpu", "static": false, "deprecated": false}, {"name": "any", "typename": "any-riscv-cpu", "static": false, "deprecated": false}, {"name": "x-rv128", "typename": "x-rv128-riscv-cpu", "static": false, "deprecated": false}, {"name": "shakti-c", "typename": "shakti-c-riscv-cpu", "static": false, "deprecated": false}, {"name": "thead-c906", "typename": "thead-c906-riscv-cpu", "static": false, "deprecated": false}, {"name": "sifive-u54", "typename": "sifive-u54-riscv-cpu", "static": false, "deprecated": false}] } Next patch will introduce a way to tell whether a given CPU is static or not. Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20230411183511.189632-3-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
41 lines
1.0 KiB
Meson
41 lines
1.0 KiB
Meson
# FIXME extra_args should accept files()
|
|
gen = [
|
|
decodetree.process('insn16.decode', extra_args: ['--static-decode=decode_insn16', '--insnwidth=16']),
|
|
decodetree.process('insn32.decode', extra_args: '--static-decode=decode_insn32'),
|
|
decodetree.process('xthead.decode', extra_args: '--static-decode=decode_xthead'),
|
|
decodetree.process('XVentanaCondOps.decode', extra_args: '--static-decode=decode_XVentanaCodeOps'),
|
|
]
|
|
|
|
riscv_ss = ss.source_set()
|
|
riscv_ss.add(gen)
|
|
riscv_ss.add(files(
|
|
'cpu.c',
|
|
'cpu_helper.c',
|
|
'csr.c',
|
|
'fpu_helper.c',
|
|
'gdbstub.c',
|
|
'op_helper.c',
|
|
'vector_helper.c',
|
|
'bitmanip_helper.c',
|
|
'translate.c',
|
|
'm128_helper.c',
|
|
'crypto_helper.c',
|
|
'zce_helper.c'
|
|
))
|
|
riscv_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c'))
|
|
|
|
riscv_softmmu_ss = ss.source_set()
|
|
riscv_softmmu_ss.add(files(
|
|
'arch_dump.c',
|
|
'pmp.c',
|
|
'debug.c',
|
|
'monitor.c',
|
|
'machine.c',
|
|
'pmu.c',
|
|
'time_helper.c',
|
|
'riscv-qmp-cmds.c',
|
|
))
|
|
|
|
target_arch += {'riscv': riscv_ss}
|
|
target_softmmu_arch += {'riscv': riscv_softmmu_ss}
|