gdb: MicroBlaze: Add features/microblaze-linux.xml

Message ID CAL1P33zSxQxNrFDuUj5aDZBhXxHPH8N0MPcn8+6=_Mo6UpkAVQ@mail.gmail.com
State New
Headers
Series gdb: MicroBlaze: Add features/microblaze-linux.xml |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Build passed
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Build passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Test passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 success Test passed

Commit Message

Gopi Kumar Bulusu Jan. 14, 2025, 5:42 a.m. UTC
  namaskaram,

Add features/microblaze-linux.xml

This is a preparatory patch ahead of native linux port of gdbserver
for Microblaze.


Description of file changes
* 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)

Build/Test
Built gdbserver (microblazeel-linux) and ran it on
microblazeel-xilinx-linux target.
Verified that gdb (with patches for microblaze-xilinx-linux support to be
submitted) connects to the
remote target. Commands like breakpoint and single step work as expected.

dhanyavdam
gopi
  

Comments

Gopi Kumar Bulusu Jan. 27, 2025, 1:49 a.m. UTC | #1
On Tue, Jan 14, 2025, 11:12 AM Gopi Kumar Bulusu <gopi@sankhya.com> wrote:

> namaskaram,
>
> Add features/microblaze-linux.xml
>
> This is a preparatory patch ahead of native linux port of gdbserver for Microblaze.
>
>
> Description of file changes
> * 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)
>
> Build/Test
> Built gdbserver (microblazeel-linux) and ran it on
> microblazeel-xilinx-linux target.
> Verified that gdb (with patches for microblaze-xilinx-linux support to be
> submitted) connects to the
> remote target. Commands like breakpoint and single step work as expected.
>
> dhanyavdam
> gopi
>
  
Michael Eager Jan. 27, 2025, 8:05 p.m. UTC | #2
On 1/26/25 5:49 PM, Gopi Kumar Bulusu wrote:
> 
> 
> On Tue, Jan 14, 2025, 11:12 AM Gopi Kumar Bulusu <gopi@sankhya.com 
> <mailto:gopi@sankhya.com>> wrote:
> 
>     namaskaram,
> 
>     Add features/microblaze-linux.xml
> 
>     This is a preparatory patch ahead of native linux port of gdbserver
>     for Microblaze.
> 
>     Description of file changes
>     * 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)
> 
>     Build/Test
>     Built gdbserver (microblazeel-linux) and ran it on microblazeel-
>     xilinx-linux target.
>     Verified that gdb (with patches for microblaze-xilinx-linux support
>     to be submitted) connects to the
>     remote target. Commands like breakpoint and single step work as
>     expected.
> 
>     dhanyavdam
>     gopi
> 

Committed:  26b751e4...
  
Michael Eager Jan. 28, 2025, 9:38 p.m. UTC | #3
On 1/26/25 5:49 PM, Gopi Kumar Bulusu wrote:
> 
> 
> On Tue, Jan 14, 2025, 11:12 AM Gopi Kumar Bulusu <gopi@sankhya.com 
> <mailto:gopi@sankhya.com>> wrote:
> 
>     namaskaram,
> 
>     Add features/microblaze-linux.xml
> 
>     This is a preparatory patch ahead of native linux port of gdbserver
>     for Microblaze.
> 
>     Description of file changes
>     * 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)
> 
>     Build/Test
>     Built gdbserver (microblazeel-linux) and ran it on microblazeel-
>     xilinx-linux target.
>     Verified that gdb (with patches for microblaze-xilinx-linux support
>     to be submitted) connects to the
>     remote target. Commands like breakpoint and single step work as
>     expected.
> 
>     dhanyavdam
>     gopi
> 

Commit 5f51e2f2..
  

Patch

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

diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 7c10f20..344c12c 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -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
diff --git a/gdb/features/microblaze-linux.c b/gdb/features/microblaze-linux.c
new file mode 100644
index 0000000..48c6fc4
--- /dev/null
+++ b/gdb/features/microblaze-linux.c
@@ -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 ();
+}
diff --git a/gdb/features/microblaze-linux.xml b/gdb/features/microblaze-linux.xml
new file mode 100644
index 0000000..688a3f8
--- /dev/null
+++ b/gdb/features/microblaze-linux.xml
@@ -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>
diff --git a/gdb/regformats/microblaze-linux.dat b/gdb/regformats/microblaze-linux.dat
new file mode 100644
index 0000000..aca35aa
--- /dev/null
+++ b/gdb/regformats/microblaze-linux.dat
@@ -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