Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Kaushik Phatak <Kaushik.Phatak@kpitcummins.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [RFA 4/5] New port: CR16: gdbserver
Date: Wed, 23 Jan 2013 14:44:00 -0000	[thread overview]
Message-ID: <50FFF730.9050108@redhat.com> (raw)
In-Reply-To: <C6CA53A2A46BA7469348BDBD663AB65848578A02@KCHJEXMB02.kpit.com>

On 01/23/2013 02:04 PM, Kaushik Phatak wrote:
>>> Yes, I agree. Disturbing the .dat file is causing issues in the 
>>> remote protocol. 
>> What issues?  Can you be more specific?
> 
> The kernel defines only 15 registers, r0 to r11 as pairs, (total 6) then
> the other 9 32-bit registers r12, r13 and special registers ra,pc,usp,psr,
> pad,intbase, and r0r1_orig.
> If I want the .dat to match the register numbers in gdb, then my .dat would
> look like this,
> {{{
> name:cr16
> expedite:psr,pc,usp
> 16:r0
> 16:r1
> 16:r2
> 16:r3
> 16:r4
> 16:r5
> 16:r6
> 16:r7
> 16:r8
> 16:r9
> 16:r10
> 16:r11
> 32:r12
> 32:r13
> 32:ra
> 32:psr
> 32:pc
> 32:r0r1_orig
> 32:intbase
> 32:usp
> 32:cfg
> }}}
> 
> This is consistent with gdb. However, this way my register count goes 
> to 21 which is way above what my kernel can handle causing
> it to error out. 

This is not an issue with the remote protocol.  It's just an issue of
cr16 gdbserver implementation.
So you'd decouple the remote protocol register numbers from the
ptrace numbers in gdbserver.  The .dat file is about gdbserver's
register cache, which maps the RSP numbering.  IOW, nothing prevents
make gdbserver map the RSP numbering to ptrace numbering when
marshalling things to/from ptrace.  This is what cr16_regmap is about
afterall, except that you have the register pairs peculiarity, which
may need more code to support.  I was suspecting this confusion,
thus my prod.  ;-)

> I could add special to handle this at kernel, but it
> will slow it down quite a bit. 

I don't think any single ptrace call would be slowed down
by any significant amount.  It's the fact that you'd
require double the ptrace calls that could add up.  In any
case, the right fix for that is PTRACE_GETREGS.  I'd hope new
kernel ports wouldn't go upstream without that nowadays, though...

A keep-backward-compatibility-with-whats-in-the-field-already
card would be a better play here.
What style of RSP register numbering do bare metal stubs running
on cr16 use?  Do they also do the register pairing trick?

I don't really care whether the pairs end up in the RSP or
not.  If you prefer that path, it's okay with me, provided
RSP numbering ends up correctly decoupled on the GDB side.

-- 
Pedro Alves


  reply	other threads:[~2013-01-23 14:44 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-04 10:23 Kaushik Phatak
2012-12-14 18:47 ` Pedro Alves
2012-12-28  4:42   ` Kaushik Phatak
2013-01-18 16:39     ` Pedro Alves
2013-01-22 13:43       ` Kaushik Phatak
2013-01-22 15:05         ` Pedro Alves
2013-01-23 12:50           ` Kaushik Phatak
2013-01-23 13:29             ` Pedro Alves
2013-01-23 14:04               ` Kaushik Phatak
2013-01-23 14:44                 ` Pedro Alves [this message]
2013-06-19 14:10                   ` Kaushik Phatak
2013-06-25 19:10                     ` Pedro Alves
2013-06-26  8:03                       ` Kaushik Phatak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50FFF730.9050108@redhat.com \
    --to=palves@redhat.com \
    --cc=Kaushik.Phatak@kpitcummins.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox