Subject: Crosscompiling for evbarm
To: None <firstname.lastname@example.org>
From: Richard =?iso-8859-1?q?K=E4stner?= <email@example.com>
Date: 11/29/2006 22:36:32
since a few days, I own a Olimex CS-EP9301 board.
It comes with pre-installed NetBSD and Linux.
Unpacked, started - basically works out of the box!
Honestly, I was impressed: small board, seems to have everything for small
applications - and it took me 10 minutes to have NetBSD up and running!
Sure, to have (only) a USB-disk can't be called a fast thing, but so what -
there is NFS!
Unfortunately, there are no config files on the Olimex CD ...
(from the mail archives I understand, Olimex is busy in other products ...)
So there are 3 issues at this time:
- how do I adopt configuration files to get the drivers (epgpio, epwdg, ...)
- what is wrong with my cross compiling userland
- finally: how do I set correct memory addresses for download with RedBoot
(that's another problem I saw today, downloading one of 'my' kernels)
I tried to adopt what I found in 'Current':
- copied from TS7200 and some from Armadillo9:
created a new Kernel configuartion
copied several 'files.*' - files
and try to compile.
I must have done something stupid - cross compiling the kernel seems to work
but userland refuses!
(at least I get compiled kernels without error messages)
The files I modified:
OLIMEX_EP9301 configuration copied from TS7200 and Armadillo9
I can see the device epgpio in :
epia1(root) OLIMEX_EP9301> pwd
epia1(root) OLIMEX_EP9301> ll netbsd*
-rwxr-xr-x 1 root wheel 3485212 Nov 29 14:59 netbsd
-rwxr-xr-x 1 root wheel 3485217 Nov 29 14:59 netbsd-epe0
-rwxr-xr-x 1 root wheel 3109016 Nov 29 14:59 netbsd-epe0.bin
-rw-r--r-- 1 root wheel 1710539 Nov 29 14:59 netbsd-epe0.map
-rwxr-xr-x 1 root wheel 3485216 Nov 29 14:59 netbsd-sd0
-rwxr-xr-x 1 root wheel 3109016 Nov 29 14:59 netbsd-sd0.bin
-rw-r--r-- 1 root wheel 1710467 Nov 29 14:59 netbsd-sd0.map
-rwxr-xr-x 1 root wheel 3109016 Nov 29 14:59 netbsd.bin
-rw-r--r-- 1 root wheel 1710246 Nov 29 14:59 netbsd.map
epia1(root) OLIMEX_EP9301> ll epgpio.*
-rw-r--r-- 1 root wheel 4755 Nov 29 14:46 epgpio.d
-rw-r--r-- 1 root wheel 18 Nov 29 11:37 epgpio.h
-rw-r--r-- 1 root wheel 9344 Nov 29 14:49 epgpio.o
... so I think, the first step was not too bad !
(it was not a too big step: I copied from TS7200 and Armadillo9)
However, trying to compile userland fails - at different points.
(In the meantime, I got megabytes of logfiles)
First attempt (sources were at /usr/src that time):
./build.sh -m evbarm release
. . .
# install /usr/src/obj/destdir.evbarm/dev/MAKEDEV
cd /usr/src/etc/obj &&
ooldir.NetBSD-4.99.4-i386/bin/nbinstall -N /usr/src/etc -c -r -T etc_pkg -o
root -g wheel -m 555 MAKEDEV
nbinstall: MAKEDEV: stat: No such file or directory
*** Failed target: install-etc-files
*** Failed command: cd /usr/src/etc/obj && ...
(Hubert Feyrer pointed me in tech-embed@ to this list and mentioned to do
MAKEDEV manually - no change!)
Later attempts fail with different messages - however, much earlier in the
One looks like this:
# compile gas/tc-arm.o
-fack-protector -Wstack-protector --param
ssp-buffer-size=1 -Werror -I/usr/www/pages/ftp/pub/NetB
. . .
cc1: warnings being treated as errors
-arm.c: In function 'start_unwind_section':
-arm.c:13721: warning: not protecting local variables: variable length buffer
*** Failed target: tc-arm.o
I am absolutely new to this matter - so please bear with me.
This is my host system for cross compiling:
epia1(root) 2006-11-29> uname -a
NetBSD epia1 4.99.4 NetBSD 4.99.4 (RFK) #0: Sat Nov 25 20:27:08 CET 2006
(compiling and installing worked flawless on i386!)
Same sources (but I moved to different place) for my attempt to port to
The /etc/mk.conf I used for compiling:
(my original mk.conf has lots of comments in - I want to learn about ;=)
What I want to do:
- assuming, that TS7200 is quite similar to CS-EP9301
- finding out, that Armadillo9 uses a similar CPU (CS9315)
they have the on-chip GPIO!
- want to create a system, that allows using the CS9301 GPIO (epgpio)
- if possible, try to use SPI, I2C
(seems a possible way to start into kernel / driver programming)
- and finally, maybe, access the on-chip ADC
Since everything has to be done for the first time, I decided, this could be
the case for me ...
I have some experience with FreeBSD (and previously with VMS), with
microcontrollers - so it should be possible for me.
- what have I done wrong,
- anything more detailed required
(did not want to spam this list with unnecessary long stuff)
- could anyone guide me a bit
Hope to find helping hands here
Thanks in advance
IT-Consulting - Training - Development