diff options
author | Michael Eager <eager@eagercon.com> | 2014-07-19 17:47:52 -0700 |
---|---|---|
committer | Michael Eager <eager@eagercon.com> | 2014-07-19 17:47:52 -0700 |
commit | 164224e96ca270d6cbb61d3e326fc1b0453b30a6 (patch) | |
tree | adbf24226a755d4d3a54cbca093af0db235cb75b /gdb/features/microblaze.c | |
parent | 57319490943d7ce425c515356f6758ff81bf6c58 (diff) | |
download | gdb-164224e96ca270d6cbb61d3e326fc1b0453b30a6.zip gdb-164224e96ca270d6cbb61d3e326fc1b0453b30a6.tar.gz gdb-164224e96ca270d6cbb61d3e326fc1b0453b30a6.tar.bz2 |
Fix for remote G Packet message too long error for baremetal.
Prior to version MicroBlaze v8.10.a,EDK 13.1, XMD's gdbserver stub returned 57
registers in response to GDB's G request. Starting with version MicroBlaze
v8.10.a, EDK 13.1, XMD added the slr and shr register, for a count of 59
registers. This patch adds these registers to the expected G response. This patch
fixes the above problem for baremetal and also supports the backward compatibility.
ChangeLog:
2014-07-02 Ajit Agarwal <ajitkum@xilinx.com>
* microblaze-tdep.c (microblaze_register_names): Add
the rshr and rslr register names.
(microblaze_gdbarch_init): Use of tdesc_has_registers.
Use of tdesc_find_feature. Use of tdesc_data_alloc.
Use of tdesc_numbered_register. Use of
microblaze_register_g_packet_guesses. Use of
tdesc_use_registers. Use of set_gdbarch_register_type.
(microblaze_register_g_packet_guesses): New.
* microblaze-tdep.h (microblaze_reg_num): Add
field MICROBLAZE_SLR_REGNUM MICROBLAZE_SHR_REGNUM
MICROBLAZE_NUM_REGS and MICROBLAZE_NUM_CORE_REGS.
(microblaze_frame_cache): Use of MICROBLAZE_NUM_REGS.
* features/microblaze-core.xml: New file.
* features/microblaze-stack-protect.xml: New file.
* features/microblaze-with-stack-protect.c: New file.
* features/microblaze-with-stack-protect.xml: New file.
* features/microblaze.xml: New file.
* features/microblaze.c: New file.
* features/Makefile (microblaze-with-stack-protect): Add
microblaze-with-stack-protect microblaze and
microblaze-expedite.
* regformats/microblaze-with-stack-protect.dat: New file.
* regformats/microblaze.dat: New file.
* doc/gdb.texinfo (MicroBlaze Features): New.
Signed-off-by:Ajit Agarwal ajitkum@xilinx.com
Diffstat (limited to 'gdb/features/microblaze.c')
-rw-r--r-- | gdb/features/microblaze.c | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/gdb/features/microblaze.c b/gdb/features/microblaze.c new file mode 100644 index 0000000..6c86fc0 --- /dev/null +++ b/gdb/features/microblaze.c @@ -0,0 +1,75 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: microblaze.xml */ + +#include "defs.h" +#include "osabi.h" +#include "target-descriptions.h" + +struct target_desc *tdesc_microblaze; +static void +initialize_tdesc_microblaze (void) +{ + struct target_desc *result = allocate_target_description (); + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.microblaze.core"); + tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpc", 32, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "rmsr", 33, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rear", 34, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "resr", 35, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rfsr", 36, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rbtr", 37, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr0", 38, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr1", 39, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr2", 40, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr3", 41, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr4", 42, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr5", 43, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr6", 44, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr7", 45, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr8", 46, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr9", 47, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr10", 48, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpvr11", 49, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "redr", 50, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rpid", 51, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rzpr", 52, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rtlbx", 53, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rtlbsx", 54, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rtlblo", 55, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "rtlbhi", 56, 1, NULL, 32, "int"); + + tdesc_microblaze = result; +} |