BBB U-Boot to run standalone example application using tftp

Hi Forum

I am trying to use U-Boot and TFTP on my BBB to run a U-Boot standalone program (examples/standalone/hello_world.bin).

I download the lastest u-boot and cross compiled it on a ubuntu x86 PC.
wget ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz2
cd u-boot-2015.04/
tar -xjf u-boot-latest.tar.bz2
cd u-boot-2015.04/
make sandbox_defconfig tools-only
sudo install tools/mkimage /usr/local/bin
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- am335x_boneblack_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

I copied the produced MLO and u-boot.img to SDCARD and booted my BBB black and wrote them to the eMMC using.
export DISK=/dev/mmcblk1
sudo dd if=/dev/zero of=${DISK} bs=1M count=16
sudo dd if=./MLO of=${DISK} count=1 seek=1 bs=128k
sudo dd if=./u-boot.img of=${DISK} count=2 seek=1 bs=384k

I copied the cross compiled helloworld.bin to a TFTP server (tftpd-hpa).

After booting the BBB I enter the following commands
U-Boot# setenv autoload no
U-Boot# dhcp
DHCP client bound to address 192.168.0.62 (1005 ms)

U-Boot# setenv serverip 192.168.0.86
U-Boot# setenv bootfile hello_world.bin

U-Boot# bootp
link up on port 0, speed 100, full duplex
BOOTP broadcast 1
DHCP client bound to address 192.168.0.62 (1005 ms)

U-Boot# tftp 0x80200000
link up on port 0, speed 100, full duplex
Using cpsw device
TFTP from server 192.168.0.86; our IP address is 192.168.0.62
Filename ‘hello_world.bin’.
Load address: 0x80200000
Loading: #
119.1 KiB/s
done
Bytes transferred = 610 (262 hex)
U-Boot# setenv bootargs console=ttyO0,115200n8

U-Boot# go 0x80200000

Starting application at 0x80200000 …

Then I just get garbage on my screen. Not the text that I expect from the standalone program.

Could some one point me to towards what I have done worng.

Cheers

Joshua

Heya,

I have no hands on, and the last I read on the subject was well over a year ago. However, I did a search, and found a pdf document on the subject, and notice some inconsistencies between the steps you’ve taken, and the step the person who wrote the PDF. http://www.cs.sfu.ca/CourseCentral/433/bfraser/other/BareMetalGuide.pdf

Seems that you’re using a different compiler, and not using starterware ? Have a look at the pdf.

Seems that you’re using a different compiler, and not using starterware ? Have a look at the pdf.

Just to clarify a little. The gcc-arm-none-eab compiler is meant for bare metal development. Where the arm-linux-gnueabi compiler is meant for linux development, using the soft float ABI.

As an added note. The arm-linux-gnueabihf compiler is typically what is used to cross compile for the latest debian images. hard foat . . .