FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Embedded

 
 
LinkBack Thread Tools
 
Old 07-31-2008, 08:16 AM
Ahmed Ammar
 
Default maverick-crunch queries

Hello,

I am currently working on some QEMU patches to add support for the
EP93xx (and the ts-7200 board) I have had some general success but this
is far from complete. My main issue is the Maverick-Crunch FPU and some
question to see if anyone has had the same experience.

Which patch-set are people generally using, there seem to be two sets:
1) futaris ones which seem to be the openembedded.org ones and 2) the
cirrus linux ones which are up to version 1.4.3. I have been using the
openembedded ones with gcc-4.2.4 but compiling the arm kernel (which by
default compiles with -msoft-float) will cause a kernel panic on boot.
If on the other hand I use a *-softfloat-* toolchain the kernel boots
fine. Anyone else find the openembedded patches break softfloat
implementation?

Best Regards,

--
Ahmed Ammar (b33fc0d3 [at] gentoo.org)
 
Old 07-31-2008, 11:41 PM
Christopher Friedt
 
Default maverick-crunch queries

On the contrary, I found that the kernel worked for both softfloat and
maverick-enabled userspace binaries. The results I had support the
theory too, because of the speed of encoding mp3's. It jumped from
several minutes to a matter of seconds I believe.


Although my problem was userspace related - I didn't compile the glibc
with the -D _MAVERICK_ use flag the first time I ran the 'lame' binary.
Then I had to recompile glibc and lame, and it worked like a charm.


At the time, there were still floating point paranoia tests that weren't
passed, but I've heard that some patches exist which fix many of those
problems - I've heard but I haven't seen the patches myself.


If you want step-by-step instructions to build your own maverick
toolchain, kernel, & userland, then follow these:


http://gentoo-wiki.com/HARDWARE_TS72xx_Single_Board_Computer

Cheers,

Chris

Ahmed Ammar wrote:

Hello,

I am currently working on some QEMU patches to add support for the
EP93xx (and the ts-7200 board) I have had some general success but this
is far from complete. My main issue is the Maverick-Crunch FPU and some
question to see if anyone has had the same experience.

Which patch-set are people generally using, there seem to be two sets:
1) futaris ones which seem to be the openembedded.org ones and 2) the
cirrus linux ones which are up to version 1.4.3. I have been using the
openembedded ones with gcc-4.2.4 but compiling the arm kernel (which by
default compiles with -msoft-float) will cause a kernel panic on boot.
If on the other hand I use a *-softfloat-* toolchain the kernel boots
fine. Anyone else find the openembedded patches break softfloat
implementation?

Best Regards,
 
Old 08-03-2008, 06:45 AM
Ahmed Ammar
 
Default maverick-crunch queries

On Thu, 2008-07-31 at 19:41 -0400, Christopher Friedt wrote:
> On the contrary, I found that the kernel worked for both softfloat and
> maverick-enabled userspace binaries. The results I had support the
> theory too, because of the speed of encoding mp3's. It jumped from
> several minutes to a matter of seconds I believe.

You mis-understand me I am not asking about user-space I was asking
specifically about the kernel.

You also didn't answer about which patch-set you use?

Best Regards,

--
Ahmed Ammar (b33fc0d3 [at] gentoo.org)
 
Old 11-17-2008, 12:44 PM
Ahmed Ammar
 
Default maverick-crunch queries

On Mon, 2008-10-13 at 13:37 +0100, Martin Guy wrote:
> On 7/31/08, Ahmed Ammar <b33fc0d3@gentoo.org> wrote:
> > I am currently working on some QEMU patches to add support for the
> > EP93xx (and the ts-7200 board) I have had some general success but this
> > is far from complete. My main issue is the Maverick-Crunch FPU and some
> > question to see if anyone has had the same experience.
> >
> > Which patch-set are people generally using, there seem to be two sets:
> > 1) futaris ones which seem to be the openembedded.org ones
>
> Where do you find "the openembedded ones"? I have looked for them but not found.
> Do you know how to find them without setting up a whole OE build environment?

They used to have their repository available for online viewing but as
far as i can see it's been removed. Maybe too many people grabbing what
they wanted via http.

> I know there is the tarball under files.futaris.org/gcc for 4.1.2 and 4.2.0
> > 2) the cirrus linux ones which are up to version 1.4.3.
>
> I dunno about "people" but the only set ever to pass the gcc
> testsuite are the ones under files.futaris.org/gcc for 4.1.2 and
> 4.2.0. To achieve this they get round one of the problems by disabling
> all conditional instruction execution. In theory this disables some
> optimisation but in practice, if you are doing FP and can enable the
> FPU, the loss is negligable.
> Of the two, 4.1.2 requires less memory to build it and to compile
> things, compiles things faster and seems to produce smaller faster
> code.

I have moved back to 4.1.2 now as that seems to provide the best working
tool-chain, although there are the known issues that you have also
posted about (Hasjim's April ideas).

> > I have been using the
> > openembedded ones with gcc-4.2.4 but compiling the arm kernel (which by
> > default compiles with -msoft-float) will cause a kernel panic on boot.
>
> The kernel does not use any floating point by design, so you should
> not be worrying about this. I would guess that the breakage you are
> seeing by adding -mhard-float or whatever changes the function call
> ABI and breaks something in the kernel that knows about that, like the
> assembly routines. Compiling with floating point instructions is only
> an issue in userland.

The 4.2.4 patches that i was using as i said probably produced a broken
tool-chain so i moved back to 4.1.2 as you recommended.

I am pleased to hear that you are now being financed to continue where
others have left off as getting around certain bugs is very annoying
(broken unwind support)

I can help with any testing you may require as I am currently using this
arch in a product we are developing.

Best Regards,
Ahmed Ammar
 
Old 11-17-2008, 04:21 PM
"Martin Guy"
 
Default maverick-crunch queries

On 11/17/08, Ahmed Ammar <b33fc0d3@gentoo.org> wrote:
> On Mon, 2008-10-13 at 13:37 +0100, Martin Guy wrote:
> > Where do you find "the openembedded ones"? I have looked for them but not found.
> > Do you know how to find them without setting up a whole OE build environment?
>
> They used to have their repository available for online viewing but as
> far as i can see it's been removed. Maybe too many people grabbing what
> they wanted via http.

> > Of the two, 4.1.2 requires less memory to build it and to compile
> > things, compiles things faster and seems to produce smaller faster
> > code.
oops, smaller, but not faster, though the difference is just a few %

> The 4.2.4 patches that i was using as i said probably produced a broken
> tool-chain so i moved back to 4.1.2 as you recommended.
Yes, none of the others produced working executables as is.

> I am pleased to hear that you are now being financed to continue where
> others have left off as getting around certain bugs is very annoying
> (broken unwind support)

There is support called arm-crunch-unwind.patch in the later tarballs
that is independent of the other patches and it should apply OK to the
earlier GCC versions too.
You can see it my most recent complete set under
http://martinwguy.co.uk/martin/crunch/gcc-4.3.2-patches
though this isn't prodution quality (sometimes Internal Compiler Errors)
If you'd like to try adding that patch and running some tests with
unwinds, I'd be glad to hear of your results .

M
 
Old 12-22-2008, 02:39 PM
Ahmed Ammar
 
Default maverick-crunch queries

On Mon, 2008-11-17 at 17:21 +0000, Martin Guy wrote:
> There is support called arm-crunch-unwind.patch in the later tarballs
> that is independent of the other patches and it should apply OK to the
> earlier GCC versions too.
> You can see it my most recent complete set under
> http://martinwguy.co.uk/martin/crunch/gcc-4.3.2-patches
> though this isn't prodution quality (sometimes Internal Compiler
> Errors)
> If you'd like to try adding that patch and running some tests with
> unwinds, I'd be glad to hear of your results .

Sorry I've been very busy lately and didn't have a chance to try the
patches before you released them publicly. Although, I have tried the
above link and i get a 403 'Forbidden' error. I was trying to find the
arm-crunch-unwind.patch in an attempt to try to understand/debug/solve
the following problem:

I have compiled a brand new tool-chain using your 4.3.2 patch series but
I am hitting a certain bug (that also existed with the older 4.1.2
patches); an assembler error when trying to compiler certain c++ files.

The assembly generated is:
.LCFI141:
.save {mv8} <-- Error: register expected
cfstrd mvd8, [sp, #-8]!


I don't know if the arm-crunch-unwind.patch was supposed to solve this,
as it's not included in the public patches. I could give you the source
code that is causing this bug too but it's part of a large library and
therefore didn't want to clutter this message with it's details (and
patches which are needed to get it to cross-compile).


Best Regards,
--
Ahmed Ammar (b33fc0d3 [at] gentoo.org)
 
Old 12-22-2008, 02:50 PM
Ahmed Ammar
 
Default maverick-crunch queries

On Mon, 2008-12-22 at 17:39 +0200, Ahmed Ammar wrote:
> The assembly generated is:
> .LCFI141:
> .save {mv8} <-- Error: register expected
> cfstrd mvd8, [sp, #-8]!

If i disable optimization (-O0) the same code compiles, I searched for
the same identifier as above and found the following;

.LCFI141:
@(insn/f 29 28
30 /usr/lib/gcc/armv4tl-maverick-linux-gnueabi/4.3.2/include/g
++-v4/bits/stl_vector.h:562 (set (reg/f:SI 11 fp)
@ (plus:SI (reg:SI 12 ip)
@ (const_int -4 [0xfffffffffffffffc]))) 4 {*arm_addsi3}
(nil))
.setfp fp, ip, #-4
sub fp, ip, #4 @ 29 *arm_addsi3/2 [length = 4]

Hope this helps,

--
Ahmed Ammar (b33fc0d3 [at] gentoo.org)
 
Old 12-23-2008, 12:11 PM
"Martin Guy"
 
Default maverick-crunch queries

On 12/22/08, Ahmed Ammar <b33fc0d3@gentoo.org> wrote:
> On Mon, 2008-11-17 at 17:21 +0000, Martin Guy wrote:
> > http://martinwguy.co.uk/martin/crunch/gcc-4.3.2-patches
> above link and i get a 403 'Forbidden' error.

Yes. I published the working set under simplemachines.it/tools and
closed that dir since its contents are the same.

> .save {mv8} <-- Error: register expected
> I don't know if the arm-crunch-unwind.patch was supposed to solve this,

No. This needs a modification to binutils, not gcc.
The "crunch unwind patch" for gcc-4.3.0 is attached, though I don't
know if it makes any sense.

I assume your optimization issue is because it changes the code to use
one of the callee-saved registers 8-15

M
 
Old 12-23-2008, 12:38 PM
"Martin Guy"
 
Default maverick-crunch queries

On 12/23/08, Martin Guy <martinwguy@yahoo.it> wrote:
> On 12/22/08, Ahmed Ammar <b33fc0d3@gentoo.org> wrote:
> > .save {mv8} <-- Error: register expected
>
> No. This needs a modification to binutils, not gcc.

Oops. And gcc, since it should spit out the register as mvf0 mvd0 or
mvdx0 according to the mode it's being used in

Good luck!

M
 
Old 12-24-2008, 09:01 AM
Ahmed Ammar
 
Default maverick-crunch queries

On Tue, 2008-12-23 at 13:38 +0000, Martin Guy wrote:
> On 12/23/08, Martin Guy <martinwguy@yahoo.it> wrote:
> > On 12/22/08, Ahmed Ammar <b33fc0d3@gentoo.org> wrote:
> > > .save {mv8} <-- Error: register expected
> >
> > No. This needs a modification to binutils, not gcc.
>
> Oops. And gcc, since it should spit out the register as mvf0 mvd0 or
> mvdx0 according to the mode it's being used in
>

Not sure where to look for this stuff in both binutils and gcc, any
help/pointers would be greatly appreciated.

AA
 

Thread Tools




All times are GMT. The time now is 09:30 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org