ARM VFP support

View: New views
10 Messages — Rating Filter:   Alert me  

ARM VFP support

by Matt Fischer-2 :: Rate this Message:

| View Threaded | Show Only this Message

I'm working on an embedded Linux project, and recently had to debug
some floating-point code.  It would seem that ARM's VFP co-processor
isn't currently supported in GDB on Linux, due to a lack of support in
both GDB proper as well as a lack of kernel facilities to retrieve the
appropriate register data.  I did find that a patch has recently been
accepted upstream in the kernel to add the necessary ptrace()
infrastructure for it
(http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3d1228ead618b88e8606015cbabc49019981805d),
but this is obviously quite new.

Has anyone yet attempted to add VFP support to GDB, now that the
kernel support for it exists?  I'm considering trying to hack in at
least some basic register viewing support to assist in my debugging
here, but if somebody happens to already have a work-in-progress of
this I'd be interested in seeing it.

Thanks,
Matt

Re: ARM VFP support

by Daniel Jacobowitz-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Wed, Apr 01, 2009 at 03:25:46PM -0500, Matt Fischer wrote:
> Has anyone yet attempted to add VFP support to GDB, now that the
> kernel support for it exists?  I'm considering trying to hack in at
> least some basic register viewing support to assist in my debugging
> here, but if somebody happens to already have a work-in-progress of
> this I'd be interested in seeing it.

CodeSourcery was working with ARM on this (way too long-standing)
limitation; that led to the ptrace patch and to GDB support.

The GDB work is in the latest Sourcery G++ releases, which does not
necessarily do you any good... it will be in Lite in a couple of weeks
too.  We're not sitting on it intentionally; I just haven't had time
to separate out the patch for submission yet.  Hassle me about it if
you don't hear about this again in the next couple weeks.

--
Daniel Jacobowitz
CodeSourcery

Re: ARM VFP support

by Matt Fischer-2 :: Rate this Message:

| View Threaded | Show Only this Message

Ah, fantastic.  Thanks for the information.

--Matt

On Wed, Apr 1, 2009 at 3:38 PM, Daniel Jacobowitz <drow@...> wrote:

> On Wed, Apr 01, 2009 at 03:25:46PM -0500, Matt Fischer wrote:
>> Has anyone yet attempted to add VFP support to GDB, now that the
>> kernel support for it exists?  I'm considering trying to hack in at
>> least some basic register viewing support to assist in my debugging
>> here, but if somebody happens to already have a work-in-progress of
>> this I'd be interested in seeing it.
>
> CodeSourcery was working with ARM on this (way too long-standing)
> limitation; that led to the ptrace patch and to GDB support.
>
> The GDB work is in the latest Sourcery G++ releases, which does not
> necessarily do you any good... it will be in Lite in a couple of weeks
> too.  We're not sitting on it intentionally; I just haven't had time
> to separate out the patch for submission yet.  Hassle me about it if
> you don't hear about this again in the next couple weeks.
>
> --
> Daniel Jacobowitz
> CodeSourcery
>

Re: ARM VFP support

by Peter Nordstrom :: Rate this Message:

| View Threaded | Show Only this Message

Daniel,

Did this make it into the arm-2009q1 lite release?

-Peter

Daniel Jacobowitz-2 wrote:
On Wed, Apr 01, 2009 at 03:25:46PM -0500, Matt Fischer wrote:
> Has anyone yet attempted to add VFP support to GDB, now that the
> kernel support for it exists?  I'm considering trying to hack in at
> least some basic register viewing support to assist in my debugging
> here, but if somebody happens to already have a work-in-progress of
> this I'd be interested in seeing it.

CodeSourcery was working with ARM on this (way too long-standing)
limitation; that led to the ptrace patch and to GDB support.

The GDB work is in the latest Sourcery G++ releases, which does not
necessarily do you any good... it will be in Lite in a couple of weeks
too.  We're not sitting on it intentionally; I just haven't had time
to separate out the patch for submission yet.  Hassle me about it if
you don't hear about this again in the next couple weeks.

--
Daniel Jacobowitz
CodeSourcery

Re: ARM VFP support

by Daniel Jacobowitz-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Tue, May 19, 2009 at 04:25:17PM -0700, Peter Nordstrom wrote:
>
> Daniel,
>
> Did this make it into the arm-2009q1 lite release?

Yes.  And I'm still planning to post it for GDB as soon as I get a
chance :-(

--
Daniel Jacobowitz
CodeSourcery

Re: ARM VFP support

by Peter Nordstrom :: Rate this Message:

| View Threaded | Show Only this Message

I'm still getting:

/scratch/maxim/arm-lite/obj-4.3-arm-none-linux-gnueabi-lite/gdb-src-2009q1-176-arm-none-linux-gnueabi-i686-mingw32/gdb/regcache.c:178: internal-error: register_size: Assertion `regnum >= 0 && regnum < (gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch))' failed.

any ideas?

Daniel Jacobowitz-2 wrote:
> Did this make it into the arm-2009q1 lite release?

Yes.  And I'm still planning to post it for GDB as soon as I get a
chance :-(

--
Daniel Jacobowitz
CodeSourcery

Re: ARM VFP support

by Daniel Jacobowitz-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Tue, May 19, 2009 at 05:31:48PM -0700, Peter Nordstrom wrote:
>
> I'm still getting:
>
> /scratch/maxim/arm-lite/obj-4.3-arm-none-linux-gnueabi-lite/gdb-src-2009q1-176-arm-none-linux-gnueabi-i686-mingw32/gdb/regcache.c:178:
> internal-error: register_size: Assertion `regnum >= 0 && regnum <
> (gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch))' failed.
>
> any ideas?

Do you need a target to reproduce this bug?  If not, can you send me
the binary?

--
Daniel Jacobowitz
CodeSourcery

Re: ARM VFP support

by Peter Nordstrom :: Rate this Message:

| View Threaded | Show Only this Message

Yes, target is needed. I'm running on a Marvell Feroceon.

The problem seems to be that mach gets set to bfd_mach_arm_unknown instead of bfd_mach_arm_5TE.

Daniel Jacobowitz-2 wrote:
On Tue, May 19, 2009 at 05:31:48PM -0700, Peter Nordstrom wrote:
>
> I'm still getting:
>
> /scratch/maxim/arm-lite/obj-4.3-arm-none-linux-gnueabi-lite/gdb-src-2009q1-176-arm-none-linux-gnueabi-i686-mingw32/gdb/regcache.c:178:
> internal-error: register_size: Assertion `regnum >= 0 && regnum <
> (gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch))' failed.
>
> any ideas?

Do you need a target to reproduce this bug?  If not, can you send me
the binary?

--
Daniel Jacobowitz
CodeSourcery

Re: ARM VFP support

by Peter Nordstrom :: Rate this Message:

| View Threaded | Show Only this Message

Playing around with the target description files make the assertion go away, but not able to read anything useful.


Yes, target is needed. I'm running on a Marvell Feroceon.

The problem seems to be that mach gets set to bfd_mach_arm_unknown instead of bfd_mach_arm_5TE.

Daniel Jacobowitz-2 wrote:
On Tue, May 19, 2009 at 05:31:48PM -0700, Peter Nordstrom wrote:
>
> I'm still getting:
>
> /scratch/maxim/arm-lite/obj-4.3-arm-none-linux-gnueabi-lite/gdb-src-2009q1-176-arm-none-linux-gnueabi-i686-mingw32/gdb/regcache.c:178:
> internal-error: register_size: Assertion `regnum >= 0 && regnum <
> (gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch))' failed.
>
> any ideas?

Do you need a target to reproduce this bug?  If not, can you send me
the binary?

--
Daniel Jacobowitz
CodeSourcery


Re: ARM VFP support

by Peter Nordstrom :: Rate this Message:

| View Threaded | Show Only this Message

Ignore all my previous posts. It's a kernel problem.