WARNING: Support for Amlogic is old and never really evolved since the commit, using this platform isn't advised

John Wehle did incredible amount of work to make FreeBSD run on Amlogic SoC based boards such as Odroid-C1 and Visson ATV-102.

Currently FreeBSD successfully boots to the login prompt on an aml8726-m6 board (the box seems to be some type of Visson ATV-102) as well as on an aml8726-m8b board (a Hardkernel ODROID-C1) using a SD card and a serial console.

The following are supported:

The u-boot sequence to use for the Visson ATV-102 is:

  video dev open 480p
  mmc rescan 0
  fatload mmc 0 0x80100000 kernel.bin
  go 0x80100000

The u-boot sequence to use for the Hardkernel ODROID-C1 is:

  video dev open 480p
  fatload mmc 0 0x100000 kernel.bin
  go 0x100000

The current FreeBSD driver doesn't program the video clocks so the u-boot video commands are necessary in order for the frame buffer to be useful (otherwise they can be skipped).

The SD card for the Visson ATV-102 doesn't need anything special beyond creating a FAT16 and a UFS filesystem.

The SD card for the ODROID-C1 also needs to contain the Hardkernel bootloader as well as u-boot ...

https://people.freebsd.org/~ganbold/FreeBSD-amlogic-20150311/build/sd_freebsd_odroidc1.sh can be used to prepare the card. Also https://people.freebsd.org/~ganbold/FreeBSD-amlogic-20150311/build/make_sd.sh can make fully working SD card with rootfs image if it was prepared before.

https://people.freebsd.org/~ganbold/FreeBSD-amlogic-20150311/build/ contains some necessary files.

https://people.freebsd.org/~sanpei/ODROID-C1/boot.ini is for u-boot and msdos partition.

Steps to prepare SD card (it assumes head src tree exists in /usr/src locally):

The bootloader and u-boot can be obtained from the boot subdirectory of ArchLinuxARM-odroid-c1-latest.tar.gz which is available at:

The u-boot source code is available at:

which also contains a prebuilt bootloader in the sd_fuse subdirectory ... however currently there's no prebuilt u-boot present.

The frame buffer driver is very rudimentary.

The Pinctrl driver contains just a basic set of entries ... additional pins can be added as necessary.

The RTC on the ODROID-C1 requires the battery to be installed.

The SDXC driver works fine when controlling a SD card, it also seems talk to the eMMC on the ODROID-C1, however more work is necessary (some possibly at the MMC driver level) in order to support eMMC.

FreeBSD/arm/Odroid-C1 (last edited 2019-03-18 23:03:38 by EmmanuelVadot)