how to compile and debug uboot for beagleboard xm?

Dear all,

Its been more than a week since I got my beagleboard xm rev c. I have successfully booted with the prebuilt images available and Armstrong linux is running fine.

I am looking into developing an application on beagleboard xm.

First of all, I want to delve around with uboot, the first step itself is a bit confusing for me. how to compile uboot in eclipse or CCS v5(which i downloaded just now)?

I am basically from ARM7 and cortex m3 background, where we used to have start up files which we include in our project. And we will successfully burn the compiled hex file(with keil or gcc compilers).

But here I guess uboot plays the role of startup file, how do you compile uboot and burn it onto beagleboard xm(as flash is external sd card), I have a XDS100v2 jtag. Any IDE is ok for me either eclipse or CCSV5.

I do understand that we have XLoader which is a primary bootloader which directs to the location of u-boot.But how do you debug this. Because, you have internal RAM and the rest is in external flash.

Kindly help me on this.

use code sourcery toolchain , install this tool chain

Then you can configure the Uboot with this using the Uboot source.
configure MLO
Configure the kernel ,compile the kernel and generate uImage
Load the MLO ,Uboot and uImage ,RootFs to SD card (you need to partition the card for Ext and FAT filesystem)
Run the linux on beagle .

Lot of materials are available on-line for dloading Uboot and configuring it.

The XM uses u-boot as a 2nd stage bootloader, with x-loader (aka MLO) as
the first stage bootloader. If you're interested in modifying u-boot
then you can make changes and just copy it to the SD card for testing.

The XM (actually I think all Beagleboard's - C4, xm and BeagleBone,
though I'm not as familiar with the bone) doesn't require u-boot to be
in flash on the board. You can modify u-boot and copy to the SD card for
both testing and runtime use. It's possible to flash u-boot to the C4,
but I'm not sure if the xm has on-board flash.

As for editing, I don't use IDEs. I work from the command line under
Linux. Building u-boot is pretty straight forward:
1. make ARCH=arm CROSS_COMPILE=<cross_compiler> omap3_beagle_config
2. make ARCH=arm CROSS_COMPILE=<cross_compiler> all

where "cross_compiler" should be the prefix on your cross compiler, such
as arm-unknown-linux-gnueabi- or similar. Depends on where you got (or
made) your cross toolchain.

Also, the cross toolchain's bin directory should be in your PATH.

Note that modern U-Boot contains a replacement for X-Loader as well (a slimmed down version of U-Boot) and produces the ‘MLO’ file for you. With the latest release, v2012.07, JTAG debugging on omap3 has been fixed and has been tested with both a flyswatter2+openocd and bdi2000. XDS100v2 should also be fine, with openocd or CCSv5 (I just wouldn’t build U-Boot within CCS).