The bootloader supplied with Balloon is 'Bootldr' from handhelds.org. This is quite a full-featured loader and thus is relatively fat (200K for a full build, although you can build much smaller versions by configuring out things you don't need).

The bootloader lives in the NOR flash.

It is configured with 3 partitions as standard:

To install a new bootloader image you can use bflash/jflash to upload it over JTAG (very slow) or you can also do it from the boot> prompt: Bootldr can download a new copy of itself by xmodem and replace itself. Be aware that if you do this and the new version doesn't work then your balloon is useless and you need a JTAG dongle to upload a new bootloader.

The command is
boot>  load bootldr 

Then start your xmodem download.

Versions

Balloons have been shipped with various versions on bootldr. You can find the current version with the ver command:
boot>  ver 

Balloon BootLoader, Rev 3-0-0-aleph1 for Balloon [BIG_KERNEL] [MD5] [NAND] [YAFFS] [MONO]
Last link date: Tue Jul 18 17:16:41 BST 2006
Contact: balloon@balloonboard.org

The items in square brackets show which functions have been built in to this version. So the above version suporrts nand access, the yaffs filesystem, mono audio, md5sums and big kernels.

boot>  help 

Will show you bootloader commands although for some subcommands you just need to know, so here are the the nand and yaffs subcommands

Initialisation

If things are working you should see this first:

U3
@00000344
F04000000 

U3 indicates that UART 3 (console serial port) is enabled
@00000344 shows the current address that is being executed: 0x344
F04000000 shows that the bootloader is running from Flash ('D' would indicate DRAM) and that the Flash size is 0x4000000 (64MB)

Then there is a memory test, indicated by

*MTST
00000001
...
80000000 

(it counts up through each bit from 00000001 to 80000000). Then the 2nd memory bank

MBK2
00000001
...
80000000
ENDM

Next we get

STKP
C19F3FF0

which shows the stack pointer address at the point the bootloader moves from assembler to C code. Followed by details of the Flash memory and the bootloader version and CPU/machine type.

Bootloader problems

If you see something like this:

DABT
0001F634
FFFFFFF7

Then your bootloader is broken. This is how it shows a Data Abort (DABT). The first line is the address of the instruction that was executing when it blew up and the second line is the address that was being accessed.

Balloonboard: BootLoaderInfo (last edited 2009-03-19 17:51:19 by JRayner)