Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Jun 2017 13:13:40 +0200
From:      Johnny Sorocil <jsorocil@gmail.com>
To:        freebsd-arm@freebsd.org
Subject:   Orange Pi Zero support
Message-ID:  <CADxA8SoTM2WWUhGZ=B-7Y7QthyaWRU2Si94Cw41ccCyQHA846w@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--001a113b06da6926fa0552b2cfc0
Content-Type: text/plain; charset="UTF-8"

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?

--001a113b06da6926fa0552b2cfc0
Content-Type: text/plain; charset="US-ASCII"; name="uboot_v2017.05.diff"
Content-Disposition: attachment; filename="uboot_v2017.05.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_j4b37e9x0

ZGlmZiAtLWdpdCBhL2xpYi9iY2guYyBiL2xpYi9iY2guYwppbmRleCBlYzUzNDgzNzc0Li5iNDVj
NTA3YzUxIDEwMDY0NAotLS0gYS9saWIvYmNoLmMKKysrIGIvbGliL2JjaC5jCkBAIC02MSw3ICs2
MSwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgogI2Vsc2UKICNpbmNsdWRlIDxlcnJu
by5oPgorI2lmZGVmIF9fRnJlZUJTRF9fCisjaW5jbHVkZSA8bWFjaGluZS9lbmRpYW4uaD4KKyNl
bHNlCiAjaW5jbHVkZSA8ZW5kaWFuLmg+CisjZW5kaWYKICNpbmNsdWRlIDxzdGRpbnQuaD4KICNp
bmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KQEAgLTExMiw3ICsxMTYsNyBA
QCBzdHJ1Y3QgZ2ZfcG9seV9kZWcxIHsKIAl1bnNpZ25lZCBpbnQgICBjWzJdOwogfTsKIAotI2lm
ZGVmIFVTRV9IT1NUQ0MKKyNpZiBkZWZpbmVkIFVTRV9IT1NUQ0MgJiYgIWRlZmluZWQgX19GcmVl
QlNEX18KIHN0YXRpYyBpbnQgZmxzKGludCB4KQogewogCWludCByID0gMzI7Cg==
--001a113b06da6926fa0552b2cfc0--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADxA8SoTM2WWUhGZ=B-7Y7QthyaWRU2Si94Cw41ccCyQHA846w>