Orange Pi Zero support
aggaz
aggaz at paranoici.org
Sat Jun 24 12:47:26 UTC 2017
Hello,
try something like this:
http://freebsd.1045724.x6.nabble.com/Re-FreeBSD-12-CURRENT-on-OrangePi-One-td6185280.html
Regards
> Hi all!
>
> I am trying to run FreeBSD on Orange Pi Zero board (Allwinner H2+ SoC).
>
> I have few questions:
> 1) How to build vanilla u-boot which will be capable booting FreeBSD
> kernel? I have managed to load ubldr, but not the kernel.
> 2) How to use newer Linux dts/dtb files?
>
> 1) u-boot
> This is how I built u-boot:
> git clone git://git.denx.de/u-boot.git
> cd u-boot
> git checkout v2017.05
> # apply patch so it can be built on FreeBSD (tested on FreeBSD 11.1-BETA1)
> (in the attachment)
> gmake ARCH=arm CROSS_COMPILE=arm-none-eabi- orangepi_zero_defconfig
> gmake -j4 ARCH=arm CROSS_COMPILE=arm-none-eabi-
> dd if=u-boot-sunxi-with-spl.bin conv=notrunc,sync of=/dev/mmcsd0 bs=1024
> seek=8
>
> In the u-boot prompt:
> fatload mmc 0 0x42000000 ubldr.bin
> setenv fdtfile sun8i-h3-orangepi-one.dtb
> go 0x4200000
> ubldr will work as expected, but kernel will hang at the start.
> If I use
> /usr/local/share/u-boot/u-boot-orangepi-one/u-boot-sunxi-with-spl.bin then
> the kernel and userland will boot normally.
> This is tested booting -CURRENT from Jul 22 (git: 57e30b47aab)
>
> 2) newer DTS/DTB
> If I use sun8i-h3-orangepi-one.dtb from FreeBSD source tree then the board
> will boot fine, but I don't have network.
> I can also boot normally if the dtb file is rebuilt manually:
> cd /usr/src/sys/gnu/dts/arm
> cpp -P -x assembler-with-cpp -I /usr/src/sys/gnu/dts/include -include
> sun8i-h3-orangepi-plus.dts /dev/null | dtc -O dtb -o ./sun8i-h3-rebuilt.dtb
> ls -lh sun8i-h3-rebuilt.dtb
> -rw-r--r-- 1 root wheel 15K Jun 24 13:02 sun8i-h3-rebuilt.dtb
> But, if dtb files from Armbian (Linux 4.11) are used, kernel will hang:
> Using DTB from loaded file
> 'boot/dtb-4.11.3-sun8i/sun8i-h2-plus-orangepi-zero.dtb'.
> Kernel entry at 0x42200100...
> Kernel args: -v
> The same file boots Linux without problems.
>
> I don't know why newer dtb files won't work because there is no output on
> serial console.
> Any ideas how to make it work?
> -------------- next part --------------
> diff --git a/lib/bch.c b/lib/bch.c
> index ec53483774..b45c507c51 100644
> --- a/lib/bch.c
> +++ b/lib/bch.c
> @@ -61,7 +61,11 @@
> #include <linux/bitops.h>
> #else
> #include <errno.h>
> +#ifdef __FreeBSD__
> +#include <machine/endian.h>
> +#else
> #include <endian.h>
> +#endif
> #include <stdint.h>
> #include <stdlib.h>
> #include <string.h>
> @@ -112,7 +116,7 @@ struct gf_poly_deg1 {
> unsigned int c[2];
> };
>
> -#ifdef USE_HOSTCC
> +#if defined USE_HOSTCC && !defined __FreeBSD__
> static int fls(int x)
> {
> int r = 32;
More information about the freebsd-arm
mailing list