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 01-31-2008, 03:01 PM
wireless
 
Default cirrus ep93xx chips / maverick crunch

Christopher Friedt wrote:


> Wow, I was just thinking of building a capable compiler, kernel & a
> basic userland. I'd be happy to just finish that before trying to make
> any big plans.

I like to write and I usually write a guide for myself when I do
things, so the second time around, I look at the guide, and
after a few trips through the doc (myself or other) it just might
become useful. Not really a big deal, it's something I enjoy.

The things you mention (compiler setup, working kernel (including the
details of the boot process) and basic userland tools would be a
wonderful start. Send me some simple notes on what you do their
(is this the board you have:
http://www.embeddedarm.com/epc/ts7200-spec-h.html) ???

(did you get the optional RS485 and A/D features) ?

I've had this EMAC-9302 board a while and finally I'm getting some
time to work on it.... I chose this board to experiment around with
Eclipse Europa (3.3) and now that is finally available in portage....




James



--
gentoo-embedded@lists.gentoo.org mailing list
 
Old 02-10-2008, 03:16 PM
wireless
 
Default cirrus ep93xx chips / maverick crunch

Christopher Friedt wrote:
> Interesting... I'm using the 'crunch.tar.gz' package that has several
> bitbake scripts (.bb files) from the cirrus list as well.

> http://martinwguy.co.uk/martin/FPU/futaris

> My plan is to just create my own portage overlay, and root through all
> of the patches (one by Mike Frysinger, I might add) to get eabi and
> maverick crunch working.

> Binutils-2.17 was quite simple to patch (there was only 1 patch file),
> but gcc seems to have _lots_ ...

> Aside from that, I think that ECONF_EXTRA needs to be set in order to
> get crunch support by default on the C compiler. For that, what I'm
> using is:

> ECONF_EXTRA="--without-x --enable-languages=c,c++
> --with-cpu=ep9312 --with-float-abi=softfp --with-fpu=maverick"
> crossdev -S armv4t-maverick-linux-gnueabi
>

OK, I gave this a shot, literally; here are the results I get:


# ECONF_EXTRA="--without-x --enable-languages=c,c++
> --with-cpu=ep9312 --with-float-abi=softfp --with-fpu=maverick"
> crossdev -S armv4t-maverick-linux-gnueabi
------------------------------------------------------------------------------------
* Host Portage ARCH: amd64
* Target Portage ARCH: arm
* Target System: armv4t-maverick-linux-gnueabi
* Stage: 4 (C/C++ compiler)

* binutils: binutils-[stable]
* gcc: gcc-[stable]
* headers: linux-headers-[stable]
* libc: glibc-[stable]

* PORTDIR_OVERLAY: /usr/local/portage
* PORT_LOGDIR: /var/log/elog/
* PKGDIR:
/usr/portage/packages/cross/armv4t-maverick-linux-gnueabi
* PORTAGE_TMPDIR: /var/tmp/cross/armv4t-maverick-linux-gnueabi
_ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~
- _ - ~ -
* Forcing the latest versions of {binutils,gcc}-config/gnuconfig ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-binutils.log
* Emerging cross-binutils ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-gcc-stage1.log
* Emerging cross-gcc-stage1 ...
[ ok ]
* Log:
/var/log/elog//cross-armv4t-maverick-linux-gnueabi-linux-headers.log
* Emerging cross-linux-headers ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-glibc.log
* Emerging cross-glibc ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-gcc-stage2.log
* Emerging cross-gcc-stage2 ...

* gcc failed
* If you file a bug, please attach the following logfiles:
* /var/log/elog//cross-armv4t-maverick-linux-gnueabi-info.log
* /var/log/elog//cross-armv4t-maverick-linux-gnueabi-gcc-stage2.log




> (these options can be passed to the gcc configure script, see
> gcc*/INSTALL/index.html -> configure)

I'm not sure where exactly how to pass these options.

> Sorry, are you having problems creating an i686 ->
Same trouble by my workstation is a AMD64 (x86_64-pc-linux-gnu).

> arm-softfloat-linux-gnu cross-compiler or cross-compiling gcc for
> softfloat? Softfloat should compile cleanly, but I've had to apply two
> patches (1 of which should definitely be upstream)
>
> 1) externalize jar and 2) @progbits patch for arm/sysv.S
>
> The externalize jar patch is only necessary for libjava / gcj ... and
> from what I've seen, it's pretty damn slow on the arm anyway, so I'll
> probably forget about it.

Can you explain in a little bit more detail how these patches are applied?

> I'll let you know if I have any success with my overlay, but sorting
> through all of the patches for gcc might take quite a bit of time.
>
> ~/Chris


James

--
gentoo-embedded@lists.gentoo.org mailing list
 
Old 02-10-2008, 03:43 PM
wireless
 
Default cirrus ep93xx chips / maverick crunch

Christopher Friedt wrote:

> Interesting... I'm using the 'crunch.tar.gz' package that has several
> bitbake scripts (.bb files) from the cirrus list as well.
>
> http://martinwguy.co.uk/martin/FPU/futaris
>
> My plan is to just create my own portage overlay, and root through all
> of the patches (one by Mike Frysinger, I might add) to get eabi and
> maverick crunch working.
>
> Binutils-2.17 was quite simple to patch (there was only 1 patch file),
> but gcc seems to have _lots_ ...
>
> Aside from that, I think that ECONF_EXTRA needs to be set in order to
> get crunch support by default on the C compiler. For that, what I'm
> using is:
>
> ECONF_EXTRA="--without-x --enable-languages=c,c++
> --with-cpu=ep9312 --with-float-abi=softfp --with-fpu=maverick"
> crossdev -S armv4t-maverick-linux-gnueabi


Hello Christopher,

Trying to duplicate your cross compiler, here is what I get:
# ECONF_EXTRA="--without-x --enable-languages=c,c++
--with-cpu=ep9312 --with-float-abi=softfp --with-fpu=maverick"
crossdev -S armv4t-maverick-linux-gnueabi


* Host Portage ARCH: amd64
* Target Portage ARCH: arm
* Target System: armv4t-maverick-linux-gnueabi
* Stage: 4 (C/C++ compiler)

* binutils: binutils-[stable]
* gcc: gcc-[stable]
* headers: linux-headers-[stable]
* libc: glibc-[stable]

* PORTDIR_OVERLAY: /usr/local/portage
* PORT_LOGDIR: /var/log/elog/
* PKGDIR:
/usr/portage/packages/cross/armv4t-maverick-linux-gnueabi
* PORTAGE_TMPDIR: /var/tmp/cross/armv4t-maverick-linux-gnueabi
_ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~
- _ - ~ -
* Forcing the latest versions of {binutils,gcc}-config/gnuconfig ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-binutils.log
* Emerging cross-binutils ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-gcc-stage1.log
* Emerging cross-gcc-stage1 ...
[ ok ]
* Log:
/var/log/elog//cross-armv4t-maverick-linux-gnueabi-linux-headers.log
* Emerging cross-linux-headers ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-glibc.log
* Emerging cross-glibc ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-gcc-stage2.log
* Emerging cross-gcc-stage2 ...

* gcc failed
* If you file a bug, please attach the following logfiles:
* /var/log/elog//cross-armv4t-maverick-linux-gnueabi-info.log
* /var/log/elog//cross-armv4t-maverick-linux-gnueabi-gcc-stage2.log


>
> (these options can be passed to the gcc configure script, see
> gcc*/INSTALL/index.html -> configure)
>
> (I assume that when you say gnueabi, then it will set --with-abi=aapcs
> or whatever that option is... all of the options are in
> gcc*/gcc/config/arm)
>

I'm not sure what I missed?



> Sorry, are you having problems creating an i686 ->
> arm-softfloat-linux-gnu cross-compiler or cross-compiling gcc for
> softfloat? Softfloat should compile cleanly, but I've had to apply two
> patches (1 of which should definitely be upstream)
>
> 1) externalize jar and 2) @progbits patch for arm/sysv.S
>
> The externalize jar patch is only necessary for libjava / gcj ... and
> from what I've seen, it's pretty damn slow on the arm anyway, so I'll
> probably forget about it.
>

NO doubt I did not add these patches. Could you explain in a little
bit more detail, just how to perform any additional patches?


> I'll let you know if I have any success with my overlay, but sorting
> through all of the patches for gcc might take quite a bit of time.
>
> ~/Chris


James



--
gentoo-embedded@lists.gentoo.org mailing list
 
Old 02-10-2008, 04:39 PM
Christopher Friedt
 
Default cirrus ep93xx chips / maverick crunch

wireless wrote:

* /var/log/elog//cross-armv4t-maverick-linux-gnueabi-gcc-stage2.log


The output from the log above would be useful... I have a feeling that
they might be due to your USE flags.


The failure is most likely occurring when trying to create the fortran
compiler in stage2.



I'm not sure what I missed?


http://perpetual-notion.blogspot.com/2008/02/maverick-crunch-eabi-support-for.html

mkdir -p /usr/local/portage/maverick_overlay &&
SRV="http://vaiprime.visibleassets.com"
LOC="~cfriedt/overlays/maverick.tar.bz2"
wget -O - ${SRV}/${LOC} |
tar xpjf - -C /usr/local/portage/maverick_overlay &&
PORTDIR_OVERLAY="/usr/local/portage/crossdev_overlay
/usr/local/portage/maverick_overlay"
ECONF_EXTRA="--disable-nls --enable-shared
--with-system-zlib --without-included-gettext
--enable-threads=posix --enable-clocale=gnu
--with-fpu=maverick --with-float-abi=softfp
--with-cpu=ep9312 --enable-languages=c,c++"
USE="-gcj -gtk -fortran -mudflap"
crossdev -S
--l 2.5-r4 --g 4.1.2 --b 2.17-r1
armv4t-maverick-linux-gnueabi


NO doubt I did not add these patches. Could you explain in a little
bit more detail, just how to perform any additional patches?


The patches are included already in my ebuild & overlay.

Chris
--
gentoo-embedded@lists.gentoo.org mailing list
 
Old 02-11-2008, 01:24 AM
wireless
 
Default cirrus ep93xx chips / maverick crunch

Christopher Friedt wrote:
> wireless wrote:
>> * /var/log/elog//cross-armv4t-maverick-linux-gnueabi-gcc-stage2.log

Hello Christopher,

requested file attached
>
> The output from the log above would be useful... I have a feeling that
> they might be due to your USE flags.
>
> The failure is most likely occurring when trying to create the fortran
> compiler in stage2.
>
>> I'm not sure what I missed?
>
> http://perpetual-notion.blogspot.com/2008/02/maverick-crunch-eabi-support-for.html
>

OK, I'm looking at your web site and will try crossdev again.

>
> mkdir -p /usr/local/portage/maverick_overlay &&
> SRV="http://vaiprime.visibleassets.com"
> LOC="~cfriedt/overlays/maverick.tar.bz2"
> wget -O - ${SRV}/${LOC} |
> tar xpjf - -C /usr/local/portage/maverick_overlay &&
> PORTDIR_OVERLAY="/usr/local/portage/crossdev_overlay
> /usr/local/portage/maverick_overlay"
> ECONF_EXTRA="--disable-nls --enable-shared
> --with-system-zlib --without-included-gettext
> --enable-threads=posix --enable-clocale=gnu
> --with-fpu=maverick --with-float-abi=softfp
> --with-cpu=ep9312 --enable-languages=c,c++"
> USE="-gcj -gtk -fortran -mudflap"
> crossdev -S
> --l 2.5-r4 --g 4.1.2 --b 2.17-r1
> armv4t-maverick-linux-gnueabi
>
>> NO doubt I did not add these patches. Could you explain in a little
>> bit more detail, just how to perform any additional patches?
>
> The patches are included already in my ebuild & overlay.
>
> Chris


I'll give these a shot and let you know.


James
 
Old 02-11-2008, 02:25 PM
wireless
 
Default cirrus ep93xx chips / maverick crunch

Christopher Friedt wrote:

>> I'm not sure what I missed?

> http://perpetual-notion.blogspot.com/2008/02/maverick-crunch-eabi-support-for.html
>
>
> mkdir -p /usr/local/portage/maverick_overlay &&
> SRV="http://vaiprime.visibleassets.com"
> LOC="~cfriedt/overlays/maverick.tar.bz2"
> wget -O - ${SRV}/${LOC} |
> tar xpjf - -C /usr/local/portage/maverick_overlay &&
> PORTDIR_OVERLAY="/usr/local/portage/crossdev_overlay
> /usr/local/portage/maverick_overlay"
> ECONF_EXTRA="--disable-nls --enable-shared
> --with-system-zlib --without-included-gettext
> --enable-threads=posix --enable-clocale=gnu
> --with-fpu=maverick --with-float-abi=softfp
> --with-cpu=ep9312 --enable-languages=c,c++"
> USE="-gcj -gtk -fortran -mudflap"
> crossdev -S
> --l 2.5-r4 --g 4.1.2 --b 2.17-r1
> armv4t-maverick-linux-gnueabi


SUCCESS!


* Host Portage ARCH: amd64
* Target Portage ARCH: arm
* Target System: armv4t-maverick-linux-gnueabi
* Stage: 4 (C/C++ compiler)

* binutils: binutils-2.17-r1
* gcc: gcc-4.1.2
* headers: linux-headers-[stable]
* libc: glibc-2.5-r4

* PORTDIR_OVERLAY: /usr/local/portage/maverick_overlay
* PORT_LOGDIR: /var/log/elog/
* PKGDIR:
/usr/portage/packages/cross/armv4t-maverick-linux-gnueabi
* PORTAGE_TMPDIR: /var/tmp/cross/armv4t-maverick-linux-gnueabi
--------------------------------------------------------------------
* Using sys-devel/binutils from /usr/local/portage/maverick_overlay
instead of /usr/portage
* Using sys-devel/gcc from /usr/local/portage/maverick_overlay
instead of /usr/portage
* Forcing the latest versions of {binutils,gcc}-config/gnuconfig ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-binutils.log
* Emerging cross-binutils ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-gcc-stage1.log
* Emerging cross-gcc-stage1 ...
[ ok ]
* Log:
/var/log/elog//cross-armv4t-maverick-linux-gnueabi-linux-headers.log
* Emerging cross-linux-headers ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-glibc.log
* Emerging cross-glibc ...
[ ok ]
* Log: /var/log/elog//cross-armv4t-maverick-linux-gnueabi-gcc-stage2.log
* Emerging cross-gcc-stage2 ...
[ ok ]



I then manually downloaded your bz file : maverick.tar.bz2

uppacked it with: tar xpjf ./maverick.tar.bz2
into this dir: /usr/local/portage/maverick_overlay

and this used this command string:
PORTDIR_OVERLAY="/usr/local/portage/crossdev_overlay
/usr/local/portage/maverick_overlay" ECONF_EXTRA="--disable-nls
--enable-shared --with-system-zlib --without-included-gettext
--enable-threads=posix --enable-clocale=gnu --with-fpu=maverick
--with-float-abi=softfp --with-cpu=ep9312 --enable-languages=c,c++"
USE="-gcj -gtk -fortran -mudflap" crossdev -S --l 2.5-r4 --g 4.1.2 --b
2.17-r1 armv4t-maverick-linux-gnueabi


Now I'm going to build a kernel, locate it per the EMAC support
suggestion and see if I can reboot off of the SD card. From EMAC :

" The only thing I would add is that you can boot filesystems from the
SD card. This will allow you to have your 2 bootable images.
The kernel must be stored in the flash but this takes up much less
room and you could easily store more than one.

Example redboot command for booting from an SD card:

load -v -r -b 0x80000 zImage-IPAC-9302-e1.2
exec -c "console=ttyAM0,57600 root=/dev/mmca1 rootfstype=ext3"

This will load a kernel from flash into memory (SDRAM), and execute it
with the boot args in quotes. The boot args here will tell it which
tty port to use for console input/output, and specify the location of
the root filesystem as being in the mmca device on partition 1 with
and ext3 filesystem."


Thanks for all of the help!

James

--
gentoo-embedded@lists.gentoo.org mailing list
 
Old 02-11-2008, 06:06 PM
Christopher Friedt
 
Default cirrus ep93xx chips / maverick crunch

Hi James,

It is as I suspected according to your log file -

--disable-libgcj
--enable-languages=c,c++,fortran


Fortran has been a bit problematic with crossdev - I usually have to
build my toolchains without fortran support, and that requires:


USE="-fortran"
ECONF_EXTRA="--with-languages=c,c++"

When compiling GCC, the fortran component of gcc looks for libgmp and
also libmfpr (or one of them at least), both in the "rpath".


The "rpath" is usually /lib or /usr/lib (not ${SYSROOT}/lib or any other
default compiler search path).


Obviously, when cross-compiling, the libgmp / libmfpr that it finds is a
.so file for i686 or whatever your build architecture is, and they are
definitely not compatible with arm object code.


I would only suggest trying to add a fortran compiler when you're
compiling gcc _natively_ on your board, although that can be quite a
tedious process and you'll likely need some swap in the form of an SD
card or USB memory stick.


By the way, I still haven't done any hardware floating point
acceleration testing because I haven't had all that much spare time
lately. So if you are up for it, try it out.


Martin Guy has a few benchmarks and the average speedups with LAME are

OABI -> EABI: ~11
EABI/softfp -> EABI/hardfp: 2

That means OABI -> EABI/hardfp: ~22.


~/Chris
--
gentoo-embedded@lists.gentoo.org mailing list
 
Old 02-11-2008, 06:14 PM
Christopher Friedt
 
Default cirrus ep93xx chips / maverick crunch

wireless wrote:
> SUCCESS!

Great ;-)

I'm glad I could help you out! If you run into any interesting findings
with ep93xx and maverick hardware floating point, please let me know
because I haven't had a chance to test it out yet.


There are a lot of people who would be quite interested in that on the
TS-7000 mailing list.


One of the next two things that I'm going to be looking into as well are
userspace versions of the fconfig and fis RedBoot commands, which can
dynamically alter kernel images / boot parameters through the MTD
interface.


I guess these two tools are relatively new, because they're not yet in
portage. Also, the fis userspace util doesn't even have a home. I just
randomly ran into them on the nslu2 package list. The guy who wrote
fconfig was quite helpful as well. I still haven't gotten it to read out
my config yet because I believe my kernel doesn't properly display
redboot partitions. I'll find out sooner or later though.



Cheers,

~/Chris

--
gentoo-embedded@lists.gentoo.org mailing list
 
Old 02-11-2008, 06:16 PM
Christopher Friedt
 
Default cirrus ep93xx chips / maverick crunch

James - one last thing:

DO NOT under any circumstances xmerge glibc / gcc / binutils / linux
headers, etc


If you do so, it could potentially overwrite your toolchain.

Always use

xmerge -B in the case where you want to build a native gcc for the arm.

~/Chris
--
gentoo-embedded@lists.gentoo.org mailing list
 
Old 02-12-2008, 09:32 PM
Christopher Friedt
 
Default cirrus ep93xx chips / maverick crunch

Sorry, I made a mistake there,

instead of ECONF_EXTRA, the variable should be called EXTRA_ECONF,
according to 'man 5 ebuild'


~/Chris

Christopher Friedt wrote:

mkdir -p /usr/local/portage/maverick_overlay &&
SRV="http://vaiprime.visibleassets.com"
LOC="~cfriedt/overlays/maverick.tar.bz2"
wget -O - ${SRV}/${LOC} |
tar xpjf - -C /usr/local/portage/maverick_overlay &&
PORTDIR_OVERLAY="/usr/local/portage/crossdev_overlay
/usr/local/portage/maverick_overlay"
ECONF_EXTRA="--disable-nls --enable-shared
--with-system-zlib --without-included-gettext
--enable-threads=posix --enable-clocale=gnu
--with-fpu=maverick --with-float-abi=softfp
--with-cpu=ep9312 --enable-languages=c,c++"
USE="-gcj -gtk -fortran -mudflap"
crossdev -S
--l 2.5-r4 --g 4.1.2 --b 2.17-r1
armv4t-maverick-linux-gnueabi

--
gentoo-embedded@lists.gentoo.org mailing list
 

Thread Tools




All times are GMT. The time now is 10:24 PM.

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