Akihiko Odaki and Alex Bennée
ecd6f6a882
gdbstub: Infer number of core registers from XML
...
GDBFeature has the num_regs member so use it where applicable to
remove magic numbers.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com >
Message-Id: <20231213-gdb-v17-8-777047380591@daynix.com >
[AJB: remove core reg check from microblaze read reg]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20240227144335.1196131-13-alex.bennee@linaro.org >
2024-02-28 09:09:58 +00:00
Richard Henderson
4ef80b271f
target/s390x: Populate CPUClass.mmu_index
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
Richard Henderson
1764ad70ce
include/qemu: Add TCGCPUOps typedef to typedefs.h
...
QEMU coding style recommends using structure typedefs.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-01-29 21:04:10 +10:00
Pierre Morel and Thomas Huth
ad2d1afc1d
machine: adding s390 topology to query-cpu-fast
...
S390x provides two more topology attributes, entitlement and dedication.
Let's add these CPU attributes to the QAPI command query-cpu-fast.
Signed-off-by: Pierre Morel <pmorel@linux.ibm.com >
Reviewed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com >
Co-developed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Acked-by: Markus Armbruster <armbru@redhat.com >
Signed-off-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com >
Message-ID: <20231016183925.2384704-11-nsg@linux.ibm.com >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2023-10-20 07:16:53 +02:00
Pierre Morel and Thomas Huth
5de1aff255
CPU topology: extend with s390 specifics
...
S390 adds two new SMP levels, drawers and books to the CPU
topology.
S390 CPUs have specific topology features like dedication and
entitlement. These indicate to the guest information on host
vCPU scheduling and help the guest make better scheduling decisions.
Add the new levels to the relevant QAPI structs.
Add all the supported topology levels, dedication and entitlement
as properties to S390 CPUs.
Create machine-common.json so we can later include it in
machine-target.json also.
Signed-off-by: Pierre Morel <pmorel@linux.ibm.com >
Reviewed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com >
Co-developed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Signed-off-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com >
Message-ID: <20231016183925.2384704-3-nsg@linux.ibm.com >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2023-10-20 07:16:53 +02:00
Akihiko Odaki and Alex Bennée
a650683871
hw/core/cpu: Return static value with gdb_arch_name()
...
All implementations of gdb_arch_name() returns dynamic duplicates of
static strings. It's also unlikely that there will be an implementation
of gdb_arch_name() that returns a truly dynamic value due to the nature
of the function returning a well-known identifiers. Qualify the value
gdb_arch_name() with const and make all of its implementations return
static strings.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20230912224107.29669-8-akihiko.odaki@daynix.com >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20231009164104.369749-15-alex.bennee@linaro.org >
2023-10-11 08:46:33 +01:00
Richard Henderson
8fa08d7ec7
accel/tcg: Remove cpu_set_cpustate_pointers
...
This function is now empty, so remove it. In the case of
m68k and tricore, this empties the class instance initfn,
so remove those as well.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-10-04 11:03:54 -07:00
Thomas Huth
5503da4a0c
hw/core: Use a callback for target specific query-cpus-fast information
...
For being able to create a universal QEMU binary one day, core
files like machine-qmp-cmds.c must not contain any "#ifdef TARGET_..."
parts. Thus let's provide the target specific function via a
function pointer in CPUClass instead, as a first step towards
making this file target independent.
Message-Id: <20230424160434.331175-2-thuth@redhat.com >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2023-05-16 09:14:18 +02:00
Ilya Leoshkevich and Thomas Huth
199c42a6a1
target/s390x: Implement Early Exception Recognition
...
Generate a specification exception if a reserved bit is set in the PSW
mask or if the PSW address is out of bounds dictated by the addressing
mode.
Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com >
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com >
Reviewed-by: David Hildenbrand <david@redhat.com >
Message-Id: <20230315020408.384766-3-iii@linux.ibm.com >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2023-03-20 09:32:50 +01:00
Philippe Mathieu-Daudé and Thomas Huth
057733f2e5
target/s390x: Restrict sysemu/reset.h to system emulation
...
In user emulation, threads -- implemented as CPU -- are
created/destroyed, but never reset. There is no point in
allowing the user emulation access the sysemu/reset API.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20221220145625.26392-5-philmd@linaro.org >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2023-01-09 13:50:13 +01:00
Richard Henderson
3479783b39
target/s390x: Convert to tcg_ops restore_state_to_opc
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-10-26 11:11:28 +10:00
Richard Henderson
e4fdf9df5b
hw/core: Add CPUClass.get_pc
...
Populate this new method for all targets. Always match
the result that would be given by cpu_get_tb_cpu_state,
as we will want these values to correspond in the logs.
Reviewed-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk > (target/sparc)
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
---
Cc: Eduardo Habkost <eduardo@habkost.net > (supporter:Machine core)
Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com > (supporter:Machine core)
Cc: "Philippe Mathieu-Daudé" <f4bug@amsat.org > (reviewer:Machine core)
Cc: Yanan Wang <wangyanan55@huawei.com > (reviewer:Machine core)
Cc: Michael Rolnik <mrolnik@gmail.com > (maintainer:AVR TCG CPUs)
Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com > (maintainer:CRIS TCG CPUs)
Cc: Taylor Simpson <tsimpson@quicinc.com > (supporter:Hexagon TCG CPUs)
Cc: Song Gao <gaosong@loongson.cn > (maintainer:LoongArch TCG CPUs)
Cc: Xiaojuan Yang <yangxiaojuan@loongson.cn > (maintainer:LoongArch TCG CPUs)
Cc: Laurent Vivier <laurent@vivier.eu > (maintainer:M68K TCG CPUs)
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com > (reviewer:MIPS TCG CPUs)
Cc: Aleksandar Rikalo <aleksandar.rikalo@syrmia.com > (reviewer:MIPS TCG CPUs)
Cc: Chris Wulff <crwulff@gmail.com > (maintainer:NiosII TCG CPUs)
Cc: Marek Vasut <marex@denx.de > (maintainer:NiosII TCG CPUs)
Cc: Stafford Horne <shorne@gmail.com > (odd fixer:OpenRISC TCG CPUs)
Cc: Yoshinori Sato <ysato@users.sourceforge.jp > (reviewer:RENESAS RX CPUs)
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk > (maintainer:SPARC TCG CPUs)
Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de > (maintainer:TriCore TCG CPUs)
Cc: Max Filippov <jcmvbkbc@gmail.com > (maintainer:Xtensa TCG CPUs)
Cc: qemu-arm@nongnu.org (open list:ARM TCG CPUs)
Cc: qemu-ppc@nongnu.org (open list:PowerPC TCG CPUs)
Cc: qemu-riscv@nongnu.org (open list:RISC-V TCG CPUs)
Cc: qemu-s390x@nongnu.org (open list:S390 TCG CPUs)
2022-10-04 12:13:12 -07:00
Thomas Huth
9992f57978
disas: Remove old libopcode s390 disassembler
...
Capstone should be superior to the old libopcode disassembler,
so we can drop the old file nowadays.
Message-Id: <20220412165836.355850-2-thuth@redhat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2022-05-04 08:47:19 +02:00
Richard Henderson
5bcbf3561f
target/s390x: Implement s390x_cpu_record_sigbus
...
For s390x, the only unaligned accesses that are signaled are atomic,
and we don't actually want to raise SIGBUS for those, but instead
raise a SPECIFICATION error, which the kernel will report as SIGILL.
Split out a do_unaligned_access function to share between the user-only
s390x_cpu_record_sigbus and the sysemu s390x_do_unaligned_access.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-11-02 07:00:52 -04:00
Richard Henderson
c8e7fef102
target/s390x: Implement s390_cpu_record_sigsegv
...
Move the masking of the address from cpu_loop into
s390_cpu_record_sigsegv -- this is governed by hw, not linux.
This does mean we have to raise our own exception, rather
than return to the fallback.
Use maperr to choose between PGM_PROTECTION and PGM_ADDRESSING.
Use the appropriate si_code for each in cpu_loop.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-11-02 07:00:52 -04:00
Cho, Yu-Chen and Cornelia Huck
67043607d1
target/s390x: move kvm files into kvm/
...
move kvm files into kvm/
After the reshuffling, update MAINTAINERS accordingly.
Make use of the new directory:
target/s390x/kvm/
Signed-off-by: Claudio Fontana <cfontana@suse.de >
Signed-off-by: Cho, Yu-Chen <acho@suse.com >
Reviewed-by: Cornelia Huck <cohuck@redhat.com >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20210707105324.23400-14-acho@suse.com >
Signed-off-by: Cornelia Huck <cohuck@redhat.com >
2021-07-07 14:01:59 +02:00
Cho, Yu-Chen and Cornelia Huck
98be64d2f4
target/s390x: split cpu-dump from helper.c
...
Splitting this functionality also allows us to make helper.c sysemu-only.
Signed-off-by: Claudio Fontana <cfontana@suse.de >
Signed-off-by: Cho, Yu-Chen <acho@suse.com >
Acked-by: Cornelia Huck <cohuck@redhat.com >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20210707105324.23400-10-acho@suse.com >
Signed-off-by: Cornelia Huck <cohuck@redhat.com >
2021-07-07 14:01:58 +02:00
Cho, Yu-Chen and Cornelia Huck
72ffb6310b
target/s390x: move sysemu-only code out to cpu-sysemu.c
...
move sysemu-only code out to cpu-sysemu.c
Signed-off-by: Claudio Fontana <cfontana@suse.de >
Signed-off-by: Cho, Yu-Chen <acho@suse.com >
Acked-by: Cornelia Huck <cohuck@redhat.com >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20210707105324.23400-9-acho@suse.com >
Signed-off-by: Cornelia Huck <cohuck@redhat.com >
2021-07-07 14:01:57 +02:00
Cho, Yu-Chen and Cornelia Huck
b6b4722307
target/s390x: rename internal.h to s390x-internal.h
...
The internal.h file is renamed to s390x-internal.h, because of the
risk of collision with other files with the same name.
Signed-off-by: Claudio Fontana <cfontana@suse.de >
Signed-off-by: Cho, Yu-Chen <acho@suse.com >
Acked-by: David Hildenbrand <david@redhat.com >
Acked-by: Cornelia Huck <cohuck@redhat.com >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20210707105324.23400-7-acho@suse.com >
Signed-off-by: Cornelia Huck <cohuck@redhat.com >
2021-07-07 14:01:56 +02:00
Richard Henderson
119065574d
hw/core: Constify TCGCPUOps
...
We no longer have any runtime modifications to this struct,
so declare them all const.
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20210227232519.222663-3-richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00
Philippe Mathieu-Daudé and Richard Henderson
08928c6d0d
cpu: Move CPUClass::get_phys_page_debug to SysemuCPUOps
...
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210517105140.1062037-21-f4bug@amsat.org >
[rth: Drop declaration movement from target/*/cpu.h]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00
Philippe Mathieu-Daudé and Richard Henderson
715e3c1afb
cpu: Move CPUClass::write_elf* to SysemuCPUOps
...
The write_elf*() handlers are used to dump vmcore images.
This feature is only meaningful for system emulation.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210517105140.1062037-19-f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00
Philippe Mathieu-Daudé and Richard Henderson
83ec01b675
cpu: Move CPUClass::get_crash_info to SysemuCPUOps
...
cpu_get_crash_info() is called on GUEST_PANICKED events,
which only occur in system emulation.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210517105140.1062037-18-f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00
Philippe Mathieu-Daudé and Richard Henderson
feece4d070
cpu: Move CPUClass::vmsd to SysemuCPUOps
...
Migration is specific to system emulation.
- Move the CPUClass::vmsd field to SysemuCPUOps,
- restrict VMSTATE_CPU() macro to sysemu,
- vmstate_dummy is now unused, remove it.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210517105140.1062037-16-f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00
Philippe Mathieu-Daudé and Richard Henderson
8b80bd28a5
cpu: Introduce SysemuCPUOps structure
...
Introduce a structure to hold handler specific to sysemu.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210517105140.1062037-15-f4bug@amsat.org >
[rth: Squash "restrict hw/core/sysemu-cpu-ops.h" patch]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00