FreeBSD and BeagleBone

Tim Kientzle tim at kientzle.com
Sat Jan 21 07:34:06 UTC 2012


On Jan 20, 2012, at 7:26 AM, Mark Murray wrote:

>> For the moment, I'm more curious about just how far I can push this
>> using FreeBSD tools only.
> 
> I've locally updated cross-(binutils|gcc|gdb) to the latest stable
> versions, and they seem to work really well for u-boot, OpenPilot and a
> couple of other things.

Warner's pointer about "make xdev" helped a lot.

$ cd /usr/src && make xdev XDEV=arm XDEV_ARCH=arm

Then U-boot almost builds with

$ cd ~/u-boot
$ gmake CROSS_COMPILE=arm-freebsd-  am335x_evm_config
$ gmake CROSS_COMPILE=arm-freebsd-

To actually get it to build, I've had to make two changes to U-Boot sources:
   * In config.mk, remove "-nostdinc" from CPPFLAGS
   * In Makefile, add /usr/arm-freebsd/usr/lib/libc.a to PLATFORM_LIBS

The first fixes missing stddef.h, stdarg.h headers.  (I'm not
sure why the -nostdinc works on Linux.)

The second is needed to resolve __umodsi3, __udivsi3, etc,
functions.  (These might be defined in libgcc on Linux, and
there's some logic here to try to locate libgcc.)

With these, I've been able to rebuild u-boot for
the BeagleBone from TI's sources to add the "bootelf"
command.  (The same changes seem to allow the current source
from denx.de to build on FreeBSD.)

But ubldr still won't run:

U-Boot# fatload mmc 0 0x80008000 ubldr
reading ubldr
232591 bytes read
U-Boot# bootelf 0x80008000
<hang>

Anyone else used U-Boot to run ubldr on Arm?

Tim



More information about the freebsd-arm mailing list