public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
* "A word-aligned memory transfer mechanism is needed"
@ 2005-11-15  2:59 Jim Blandy
  2005-11-15  4:09 ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Jim Blandy @ 2005-11-15  2:59 UTC (permalink / raw)
  To: gdb

The description of the 'm' packet in (gdb)Remote Serial Protocol says:

Neither gdb nor the stub assume that sized memory transfers are
assumed using word aligned accesses. FIXME: A word aligned memory
transfer mechanism is needed.

This mysterious admonition is repeated in the description of the
reply.  The text seems to date back to the original check-in of the
docs.

At first I assumed that this was trying to say that ADDR isn't
necessarily word-aligned.  I think that's worth stating clearly.

But then I realized that it might be trying to say that a read or
write of a word-sized value to a word-aligned memory location may not
be carried out by the stub using a word-sized access; it is free to
use the appropriate number of byte accesses.  In other words, this
packet doesn't provide the kind of control needed to access some
memory-mapped I/O devices.

Do folks agree that this is what that meant to say?  If we're not sure
what it means, we should take it out.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: "A word-aligned memory transfer mechanism is needed"
  2005-11-15  2:59 "A word-aligned memory transfer mechanism is needed" Jim Blandy
@ 2005-11-15  4:09 ` Eli Zaretskii
  2005-11-15  4:34   ` Daniel Jacobowitz
  0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2005-11-15  4:09 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb

> Date: Mon, 14 Nov 2005 18:58:56 -0800
> From: Jim Blandy <jimb@red-bean.com>
> 
> Do folks agree that this is what that meant to say?  If we're not sure
> what it means, we should take it out.

I'm not familiar with history, but your conclusions sound plausible.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: "A word-aligned memory transfer mechanism is needed"
  2005-11-15  4:09 ` Eli Zaretskii
@ 2005-11-15  4:34   ` Daniel Jacobowitz
  2005-11-15 14:53     ` Paul Koning
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Jacobowitz @ 2005-11-15  4:34 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Jim Blandy, gdb

On Tue, Nov 15, 2005 at 06:09:16AM +0200, Eli Zaretskii wrote:
> > Date: Mon, 14 Nov 2005 18:58:56 -0800
> > From: Jim Blandy <jimb@red-bean.com>
> > 
> > Do folks agree that this is what that meant to say?  If we're not sure
> > what it means, we should take it out.
> 
> I'm not familiar with history, but your conclusions sound plausible.

Same from me, also.

I agree that the argument to m/M does not need to be word aligned, and
that this is worth writing down; I'm not sure whether we need a
word-sized I/O interface, but I agree that if we grow one, it should
not use the same m/M packets.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: "A word-aligned memory transfer mechanism is needed"
  2005-11-15  4:34   ` Daniel Jacobowitz
@ 2005-11-15 14:53     ` Paul Koning
  0 siblings, 0 replies; 4+ messages in thread
From: Paul Koning @ 2005-11-15 14:53 UTC (permalink / raw)
  To: drow; +Cc: eliz, jimb, gdb

>>>>> "Daniel" == Daniel Jacobowitz <drow@false.org> writes:

 Daniel> On Tue, Nov 15, 2005 at 06:09:16AM +0200, Eli Zaretskii
 Daniel> wrote:
 >> > Date: Mon, 14 Nov 2005 18:58:56 -0800 > From: Jim Blandy
 >> <jimb@red-bean.com>
 >> > 
 >> > Do folks agree that this is what that meant to say?  If we're
 >> not sure > what it means, we should take it out.
 >> 
 >> I'm not familiar with history, but your conclusions sound
 >> plausible.

 Daniel> Same from me, also.

 Daniel> I agree that the argument to m/M does not need to be word
 Daniel> aligned, and that this is worth writing down; I'm not sure
 Daniel> whether we need a word-sized I/O interface, but I agree that
 Daniel> if we grow one, it should not use the same m/M packets.

In debugging embedded systems, from time to time you find yourself
wanting to touch CSRs.  If you trust GDB and the remote stub to "do
what I want" you can use regular memory access mechanisms, at least
some of the time.  The access sizes *should* be what the commands
imply -- if you can trust that.  (Can you?)

This may or may not work for 8-byte accesses, and I've run into CSRs
that must be accessed with long long loads/stores.

Another issue is that CSRs may be write-only, so a store operation
that does a load along the way will break.

Bottom line: the m/M mechanisms are defined to act on memory;
essentially they are remote memcpy() operations with arbitrary
starting alignment and arbitrary byte count.  It would be useful to
have a set of GDB commands that have rigorously defined semantics that
make them work for CSR accesses, with corresponding remote protocol
commands.   At first approximation, that would be loads and stores of
naturally aligned 1, 2, 4, and 8 byte objects, where each is defined
to be a single action.  For example, a store must be *only* a store,
not a load then store.  And either access must be a single operation;
if the target doesn't have native 8-byte operations, the 8 byte
accesses must be rejected, not synthesized out of two 4-byte ops.

	 paul

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-11-15 14:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-15  2:59 "A word-aligned memory transfer mechanism is needed" Jim Blandy
2005-11-15  4:09 ` Eli Zaretskii
2005-11-15  4:34   ` Daniel Jacobowitz
2005-11-15 14:53     ` Paul Koning

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).