January 23, 2015

Replace Carambola 2 U-Boot with custom bootloader

Carambola 2 is nice embedded development board running Linux, to be exact it is running OpenWrt.

Carambola 2 is based on AR9331 SoC. Default U-Boot bootloader has known issue with USB 1.0 devices.

One solution is to use Pepe2k's custom U-Boot mod.

If you don't want to build your own bootloader feel free to download one from here, but confirm that MD5 hash has not changed, it should be 8c893a316e6ce7f3ac523b22a8ca00a2. Any change in MD5 hash means that downloaded file is corrupted and using it would brick your device.

This fimware has changed config file to supress boot messages on serial console. Here is how custom config file looks like:


export MAKECMD=make --silent ARCH=mips CROSS_COMPILE=mips-openwrt-linux-uclibc-
export PATH:=$(BUILD_TOPDIR)/toolchain/bin/:$(PATH)

# boot delay (time to autostart boot command)

# uncomment following line, to disable output in U-Boot console

Flashing custom u-boot

First you need to have tftp server running on your PC. There are different tftp servers for Linux/OSW/Windows so take your pick.

Connect USB to serial (3.3V) adapter to TX, RX and GND pins of your Carambola 2 board.

Durning boot press Escape during first 2 seconds to stop boot process and you will go into recovery bootloaded mode from where you need to issue these commands:

setenv ipaddr
setenv serverip
tftpboot 0x80800000 uboot_for_8devices_carambola2.bin
erase 0x9F000000 +0x40000
cp.b 0x80800000 0x9F000000 0x40000

Revert back to original Carambola u-boot

Original Carambola uboot (Caraboot) is located on official github, so just download it and flash it with same procedure.

And you can also follow official Carambola u-boot update instructions.