|
From: John R. <joh...@gm...> - 2008-02-20 12:57:19
|
I realise this gets brought up often, but I'm thinking of having a decent go at getting at least ARMv4 support into Valgrind. I know that there are possibly some legal issues but: * I have never clicked through or signed an agreement not to develop cores or models for ARM. * The ARM reference manual (2nd ed) I have on my desk here doesn't have that agreement. * No datasheet I've downloaded in the past had that agreement. * It seems to have only appeared recently and only on ARMv6/7 data. So I think I'll basically just go ahead regardless and just stay away from anything ARMv6 and up (which the ARM book doesn't cover anyway). I just wanted to check if anyone out there had a serious go at it already. John Ripley. |
|
From: Tom H. <to...@co...> - 2008-02-20 13:28:09
|
In message <996...@ma...>
John Ripley <joh...@gm...> wrote:
> I realise this gets brought up often, but I'm thinking of having a
> decent go at getting at least ARMv4 support into Valgrind. I know that
> there are possibly some legal issues but:
>
> * I have never clicked through or signed an agreement not to develop
> cores or models for ARM.
> * The ARM reference manual (2nd ed) I have on my desk here doesn't
> have that agreement.
> * No datasheet I've downloaded in the past had that agreement.
> * It seems to have only appeared recently and only on ARMv6/7 data.
>
> So I think I'll basically just go ahead regardless and just stay away
> from anything ARMv6 and up (which the ARM book doesn't cover anyway).
That is the situation as I understand it, yes. I too have an ARMv4
data book at home that I purchased from a book shop without entering
into any kind of restrictive agreement.
I think the real question is how useful ARM support will be if we
can only support relatively old instruction sets.
> I just wanted to check if anyone out there had a serious go at it
> already.
I think the answer to that is yes:
dellow [~/src/valgrind-3] % ls -d VEX/*/*arm*
VEX/orig_arm/nanoarm VEX/priv/guest-arm/ VEX/pub/libvex_guest_arm.h
VEX/orig_arm/nanoarm.orig VEX/priv/host-arm/
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: John R. <joh...@gm...> - 2008-02-20 13:45:26
|
On 20/02/2008, Tom Hughes <to...@co...> wrote: > In message <996...@ma...> > John Ripley <joh...@gm...> wrote: > > > I realise this gets brought up often, but I'm thinking of having a > > decent go at getting at least ARMv4 support into Valgrind. I know that > > there are possibly some legal issues but: > > > > * I have never clicked through or signed an agreement not to develop > > cores or models for ARM. > > * The ARM reference manual (2nd ed) I have on my desk here doesn't > > have that agreement. > > * No datasheet I've downloaded in the past had that agreement. > > * It seems to have only appeared recently and only on ARMv6/7 data. > > > > So I think I'll basically just go ahead regardless and just stay away > > from anything ARMv6 and up (which the ARM book doesn't cover anyway). > > That is the situation as I understand it, yes. I too have an ARMv4 > data book at home that I purchased from a book shop without entering > into any kind of restrictive agreement. > > I think the real question is how useful ARM support will be if we > can only support relatively old instruction sets. Very. The vast majority of shipping products with ARM cores in them are ARMv6 or below, and sadly even the ARMv6 cores are usually running at most ARMv5 code. It is also very easy to recompile most applications with -march=armv5, compared to re-targeting everything for x86-Linux and wrapping everything in a faked-up environment (e.g missing drivers, etc). Valgrind for even just ARMv4 would have been incredibly useful to me for years and even if it was still just ARMv4 would be useful for years from now :) I've had plenty of bugs disappear when compiled for x86 and it would have saved a lot of debug time. > > I just wanted to check if anyone out there had a serious go at it > > already. > > I think the answer to that is yes: > > dellow [~/src/valgrind-3] % ls -d VEX/*/*arm* > VEX/orig_arm/nanoarm VEX/priv/guest-arm/ VEX/pub/libvex_guest_arm.h > VEX/orig_arm/nanoarm.orig VEX/priv/host-arm/ That's a decent start :) I saw the document saying that there was an old effort to port for ARM, but it's so out of date that it doesn't compile any more. If the instruction decode/encode is already there, then that's a HUGE amount of work I won't need to do. John. |
> I think the real question is how useful ARM support will be if we > can only support relatively old instruction sets. Supporting only ARMv5 (including Thumb mode) would be just as useful as current x86 and x86_64 support, where the reports of unsupported opcodes still dribble in, even 7 years after workable valgrind. ARMv5 and ARMv4 cover the vast majority of installed chips today. The Microsoft operating system products (WinCE, Windows Mobile) for mobile devices that use ARM, compile for ARMv4. The NSLU2 (200MHz CPU, 32MB RAM, 64MB flash ROM, 2xUSB2.0, 10/100 ethernet; $100; http://www.nslu2-linux.org/ ) and similar consumer devices use ARMv5 (ARMv5TE on mine.) -- John Reiser, jreiser@BitWagon.com |
|
From: Nicholas N. <nj...@cs...> - 2008-02-20 21:19:52
|
On Wed, 20 Feb 2008, Tom Hughes wrote: >> I just wanted to check if anyone out there had a serious go at it >> already. > > I think the answer to that is yes: > > dellow [~/src/valgrind-3] % ls -d VEX/*/*arm* > VEX/orig_arm/nanoarm VEX/priv/guest-arm/ VEX/pub/libvex_guest_arm.h > VEX/orig_arm/nanoarm.orig VEX/priv/host-arm/ See also docs/internals/porting-to-ARM.txt. Nick |