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 BUILD_TOPDIR=$(PWD)
export STAGING_DIR=$(BUILD_TOPDIR)/tmp

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)
export CONFIG_BOOTDELAY=1

# uncomment following line, to disable output in U-Boot console
export DISABLE_CONSOLE_OUTPUT=1

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 192.168.1.1
setenv serverip 192.168.1.2
tftpboot 0x80800000 uboot_for_8devices_carambola2.bin
erase 0x9F000000 +0x40000
cp.b 0x80800000 0x9F000000 0x40000
reset

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.