aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2019-02-25 14:02:30 -0800
committerMatthias Welwarsky <matthias@welwarsky.de>2019-03-08 14:05:19 +0000
commit57e30102ea440d77aa001e26eb901d0cbb305a30 (patch)
treeed63b282decaa8a1fdbe04c2f4c213e56e493eae /src/server
parent85ba2dc4c6ab4c91f4461c2853660cc2cb9e2623 (diff)
gdb_server, target: Add target_address_bits()
Targets can use this to expose how many address bits there are. gdb_server uses this to send gdb the appropriate upper limit in the memory-map. (Before this change the upper limit would only be correct for 32-bit targets.) Change-Id: Idb0933255ed53951fcfb05e040674bcdf19441e1 Signed-off-by: Tim Newsome <tim@sifive.com> Reviewed-on: http://openocd.zylin.com/4947 Tested-by: jenkins Reviewed-by: Peter Mamonov <pmamonov@gmail.com> Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/server')
-rw-r--r--src/server/gdb_server.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index 54cf9aff..3ade195c 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -1921,11 +1921,10 @@ static int gdb_memory_map(struct connection *connection,
if (ram_start != 0)
xml_printf(&retval, &xml, &pos, &size,
"<memory type=\"ram\" start=\"" TARGET_ADDR_FMT "\" "
- "length=\"0x%x\"/>\n",
- ram_start, 0-ram_start);
- /* ELSE a flash chip could be at the very end of the 32 bit address
- * space, in which case ram_start will be precisely 0
- */
+ "length=\"" TARGET_ADDR_FMT "\"/>\n",
+ ram_start, target_address_max(target) - ram_start + 1);
+ /* ELSE a flash chip could be at the very end of the address space, in
+ * which case ram_start will be precisely 0 */
free(banks);