From 608f493e503720ffae10d4325705ab5d77cb98fe Mon Sep 17 00:00:00 2001
From: Gopi Kumar Bulusu <gopi@sankhya.com>
Date: Tue, 7 Jan 2025 17:38:03 +0530
Subject: [PATCH] gdb: MicroBlaze: Add features/microblaze-linux.xml
This is a preparatory patch to support native linux port
of gdbserver for MicroBlaze
* gdb/features/Makefile : Add microblaze-expedite
* gdb/features/microblaze-linux.xml : New
* gdb/features/microblaze-linux.c : New (generated)
* gdb/regformats/microblaze-linux.dat : New (generated)
Signed-off-by: David Holsgrove <david.holsgrove@petalogix.com>
Signed-off-by: Nathan Rossi <nathan.rossi@petalogix.com>
Signed-off-by: Mahesh Bodapati <mbodapat@xilinx.com>
Signed-off-by: Gopi Kumar Bulusu <gopi@sankhya.com>
---
gdb/features/Makefile | 2 +
gdb/features/microblaze-linux.c | 79 +++++++++++++++++++++++++++++++++++++
gdb/features/microblaze-linux.xml | 13 ++++++
gdb/regformats/microblaze-linux.dat | 63 +++++++++++++++++++++++++++++
4 files changed, 157 insertions(+)
create mode 100644 gdb/features/microblaze-linux.c
create mode 100644 gdb/features/microblaze-linux.xml
create mode 100644 gdb/regformats/microblaze-linux.dat
@@ -46,6 +46,7 @@
# List of .dat files to create in ../regformats/
WHICH = mips-linux mips-dsp-linux \
mips64-linux mips64-dsp-linux \
+ microblaze-linux \
or1k-linux \
rs6000/powerpc-32 \
rs6000/powerpc-32l rs6000/powerpc-altivec32l rs6000/powerpc-e500l \
@@ -68,6 +69,7 @@ WHICH = mips-linux mips-dsp-linux \
tic6x-c64xp-linux tic6x-c64x-linux tic6x-c62x-linux
# Record which registers should be sent to GDB by default after stop.
+microblaze-expedite = r1,rpc
mips-expedite = r29,pc
mips-dsp-expedite = r29,pc
mips64-expedite = r29,pc
new file mode 100644
@@ -0,0 +1,79 @@
+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
+ Original: microblaze-linux.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+const struct target_desc *tdesc_microblaze_linux;
+static void
+initialize_tdesc_microblaze_linux (void)
+{
+ target_desc_up result = allocate_target_description ();
+ set_tdesc_architecture (result.get (), bfd_scan_arch ("MicroBlaze"));
+
+ set_tdesc_osabi (result.get (), osabi_from_tdesc_string ("GNU/Linux"));
+
+ struct tdesc_feature *feature;
+
+ feature = tdesc_create_feature (result.get (), "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_linux = result.release ();
+}
new file mode 100644
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. -->
+
+<!DOCTYPE target SYSTEM "gdb-target.dtd">
+<target>
+ <architecture>microblaze</architecture>
+ <osabi>GNU/Linux</osabi>
+ <xi:include href="microblaze-core.xml"/>
+</target>
new file mode 100644
@@ -0,0 +1,63 @@
+# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
+# Generated from: microblaze-linux.xml
+name:microblaze_linux
+xmltarget:microblaze-linux.xml
+expedite:r1,rpc
+osabi:GNU/Linux
+32:r0
+32:r1
+32:r2
+32:r3
+32:r4
+32:r5
+32:r6
+32:r7
+32:r8
+32:r9
+32:r10
+32:r11
+32:r12
+32:r13
+32:r14
+32:r15
+32:r16
+32:r17
+32:r18
+32:r19
+32:r20
+32:r21
+32:r22
+32:r23
+32:r24
+32:r25
+32:r26
+32:r27
+32:r28
+32:r29
+32:r30
+32:r31
+32:rpc
+32:rmsr
+32:rear
+32:resr
+32:rfsr
+32:rbtr
+32:rpvr0
+32:rpvr1
+32:rpvr2
+32:rpvr3
+32:rpvr4
+32:rpvr5
+32:rpvr6
+32:rpvr7
+32:rpvr8
+32:rpvr9
+32:rpvr10
+32:rpvr11
+32:redr
+32:rpid
+32:rzpr
+32:rtlbx
+32:rtlbsx
+32:rtlblo
+32:rtlbhi
--
1.8.3.1