* [Qemu-devel] [PATCH 0/2] target/xtensa fixes for 3.1
@ 2018-11-20 2:39 Max Filippov
2018-11-20 2:39 ` [Qemu-devel] [PATCH 1/2] target/xtensa: gdbstub fix register counting Max Filippov
2018-11-20 2:39 ` [Qemu-devel] [PATCH 2/2] target/xtensa: drop num_[core_]regs from dc232b/dc233c configs Max Filippov
0 siblings, 2 replies; 3+ messages in thread
From: Max Filippov @ 2018-11-20 2:39 UTC (permalink / raw)
To: qemu-devel; +Cc: Max Filippov
Hello,
the following two patches fix gdbserver register counting for xtensa-softmmu
and xtensa-linux and drops explicit register counters from DC232B and DC233C
core configurations.
Max Filippov (2):
target/xtensa: gdbstub fix register counting
target/xtensa: drop num_[core_]regs from dc232b/dc233c configs
target/xtensa/core-dc232b.c | 2 --
target/xtensa/core-dc232b/gdb-config.inc.c | 1 +
target/xtensa/core-dc233c.c | 2 --
target/xtensa/core-dc233c/gdb-config.inc.c | 1 +
target/xtensa/gdbstub.c | 11 ++++++++---
5 files changed, 10 insertions(+), 7 deletions(-)
--
2.11.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Qemu-devel] [PATCH 1/2] target/xtensa: gdbstub fix register counting
2018-11-20 2:39 [Qemu-devel] [PATCH 0/2] target/xtensa fixes for 3.1 Max Filippov
@ 2018-11-20 2:39 ` Max Filippov
2018-11-20 2:39 ` [Qemu-devel] [PATCH 2/2] target/xtensa: drop num_[core_]regs from dc232b/dc233c configs Max Filippov
1 sibling, 0 replies; 3+ messages in thread
From: Max Filippov @ 2018-11-20 2:39 UTC (permalink / raw)
To: qemu-devel; +Cc: Max Filippov
In order to communicate correctly with gdb xtensa gdbstub must provide
expected number of registers in 'g' packet response. xtensa-elf-gdb
expects both nonprivileged and privileged registers. xtensa-linux-gdb
only expects nonprivileged registers. gdb only counts one contiguous
stretch of registers, do the same for the core registers in the
xtensa_count_regs.
With this change qemu-system-xtensa is able to communicate with all
xtensa-elf-gdb versions (versions prior to 8.2 require overlay fixup),
and qemu-xtensa is able to communicate with all xtensa-linux-gdb
versions, except 8.2.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---
target/xtensa/gdbstub.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/target/xtensa/gdbstub.c b/target/xtensa/gdbstub.c
index c9450914c72d..d43bb190c614 100644
--- a/target/xtensa/gdbstub.c
+++ b/target/xtensa/gdbstub.c
@@ -45,15 +45,20 @@ void xtensa_count_regs(const XtensaConfig *config,
unsigned *n_regs, unsigned *n_core_regs)
{
unsigned i;
+ bool count_core_regs = true;
for (i = 0; config->gdb_regmap.reg[i].targno >= 0; ++i) {
if (config->gdb_regmap.reg[i].type != xtRegisterTypeTieState &&
config->gdb_regmap.reg[i].type != xtRegisterTypeMapped &&
config->gdb_regmap.reg[i].type != xtRegisterTypeUnmapped) {
++*n_regs;
- if ((config->gdb_regmap.reg[i].flags &
- XTENSA_REGISTER_FLAGS_PRIVILEGED) == 0) {
- ++*n_core_regs;
+ if (count_core_regs) {
+ if ((config->gdb_regmap.reg[i].flags &
+ XTENSA_REGISTER_FLAGS_PRIVILEGED) == 0) {
+ ++*n_core_regs;
+ } else {
+ count_core_regs = false;
+ }
}
}
}
--
2.11.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Qemu-devel] [PATCH 2/2] target/xtensa: drop num_[core_]regs from dc232b/dc233c configs
2018-11-20 2:39 [Qemu-devel] [PATCH 0/2] target/xtensa fixes for 3.1 Max Filippov
2018-11-20 2:39 ` [Qemu-devel] [PATCH 1/2] target/xtensa: gdbstub fix register counting Max Filippov
@ 2018-11-20 2:39 ` Max Filippov
1 sibling, 0 replies; 3+ messages in thread
From: Max Filippov @ 2018-11-20 2:39 UTC (permalink / raw)
To: qemu-devel; +Cc: Max Filippov
Now that xtensa_count_regs does the right thing, remove manual
initialization of these fields from the affected configurations and let
xtensa_finalize_config initialize them. Add XTREG_END to terminate
register lists.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---
target/xtensa/core-dc232b.c | 2 --
target/xtensa/core-dc232b/gdb-config.inc.c | 1 +
target/xtensa/core-dc233c.c | 2 --
target/xtensa/core-dc233c/gdb-config.inc.c | 1 +
4 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/target/xtensa/core-dc232b.c b/target/xtensa/core-dc232b.c
index 71313378409e..7851bcb63687 100644
--- a/target/xtensa/core-dc232b.c
+++ b/target/xtensa/core-dc232b.c
@@ -40,8 +40,6 @@
static XtensaConfig dc232b __attribute__((unused)) = {
.name = "dc232b",
.gdb_regmap = {
- .num_regs = 120,
- .num_core_regs = 52,
.reg = {
#include "core-dc232b/gdb-config.inc.c"
}
diff --git a/target/xtensa/core-dc232b/gdb-config.inc.c b/target/xtensa/core-dc232b/gdb-config.inc.c
index 13aba5edecd6..d87168628be8 100644
--- a/target/xtensa/core-dc232b/gdb-config.inc.c
+++ b/target/xtensa/core-dc232b/gdb-config.inc.c
@@ -259,3 +259,4 @@
0, 0, 0, 0, 0, 0)
XTREG(119, 476, 32, 4, 4, 0x000f, 0x0006, -2, 8, 0x0100, a15,
0, 0, 0, 0, 0, 0)
+ XTREG_END
diff --git a/target/xtensa/core-dc233c.c b/target/xtensa/core-dc233c.c
index d701e3f5de07..8853bfd4d08f 100644
--- a/target/xtensa/core-dc233c.c
+++ b/target/xtensa/core-dc233c.c
@@ -40,8 +40,6 @@
static XtensaConfig dc233c __attribute__((unused)) = {
.name = "dc233c",
.gdb_regmap = {
- .num_regs = 121,
- .num_core_regs = 52,
.reg = {
#include "core-dc233c/gdb-config.inc.c"
}
diff --git a/target/xtensa/core-dc233c/gdb-config.inc.c b/target/xtensa/core-dc233c/gdb-config.inc.c
index b632341b28ec..7e8963227fc0 100644
--- a/target/xtensa/core-dc233c/gdb-config.inc.c
+++ b/target/xtensa/core-dc233c/gdb-config.inc.c
@@ -143,3 +143,4 @@ XTREG(117, 468, 32, 4, 4, 0x000c, 0x0006, -2, 8, 0x0100, a12, 0, 0, 0, 0
XTREG(118, 472, 32, 4, 4, 0x000d, 0x0006, -2, 8, 0x0100, a13, 0, 0, 0, 0, 0, 0)
XTREG(119, 476, 32, 4, 4, 0x000e, 0x0006, -2, 8, 0x0100, a14, 0, 0, 0, 0, 0, 0)
XTREG(120, 480, 32, 4, 4, 0x000f, 0x0006, -2, 8, 0x0100, a15, 0, 0, 0, 0, 0, 0)
+XTREG_END
--
2.11.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-11-20 2:39 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-20 2:39 [Qemu-devel] [PATCH 0/2] target/xtensa fixes for 3.1 Max Filippov
2018-11-20 2:39 ` [Qemu-devel] [PATCH 1/2] target/xtensa: gdbstub fix register counting Max Filippov
2018-11-20 2:39 ` [Qemu-devel] [PATCH 2/2] target/xtensa: drop num_[core_]regs from dc232b/dc233c configs Max Filippov
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.