FreeBSD on Cubieboard(1,2)

Cubieboard is a developer board that is based on the Allwinner A10/A20 System-On-Chip (SoC).

The full technical details for the Cubieboard are available at the sunxi wiki.

Since Cubieboard SD controller is not supported by FreeBSD yet, to boot the system on Cubieboard, you'll need some complex setup:

When Cubieboard is booted with microSD inserted, it tries to boot from it before NAND, so it'll run uboot from SD which in turn will load and run kernel. As said, lacking SD controller support, kernel has no access to microSD, so root is mounted from USB stick instead.

Build FreeBSD

1. Get FreeBSD head

2. Compile kernel and world. Install world to USB Flash (replace da0 with your usb storage device). CUBIEBOARD should be changed to CUBIEBOARD2 if you have Cubieboard2 (Please note: Change da0s2 to da0 in kernel config).

Prepare SD card

1. For Cubieboard1, get SPL file from here, for Cubieboard2, get SPL file from here

2. For Cubieboard1, get U-Boot binary from here, for Cubieboard2, get U-Boot binary from here

3. Write binaries (replace da4 with your device). CUBIEBOARD should be changed to CUBIEBOARD2 if you have Cubieboard2.

Boot

1. Put SD card and USB flash to Cubieboard.

2. Connect by using serial console cable and speed 115200

3. Power ON your board and set boot command

Automated boot

For boot to not require user interaction, proceed with the following:

1. Install devel/uboot-mkimage port

2. Write a script named boot.cmd with above mentioned loader commands:

3. Use mkimage to convert this script to boot.scr which uboot understands:

4. Place generated boot.scr onto filesystem on microSD card. Now uboot will execute commands from your script instead of bailing into prompt, so kernel will be run automatically

Details are available here

FreeBSD/arm/Cubieboard (last edited 2014-09-19 21:40:47 by DmitryMarakasov)