Allwinner H3/H2+ dts question - regression?

Milan Obuch freebsd-arm at dino.sk
Sun Nov 26 11:47:30 UTC 2017


Hi,

after some time I am playing a bit again with my Allwinner H3/H2+ based
boards. First I crossbuild world and kernel using svn rev. 324530,
after trying to upgrade older armv6 to current armv7 with no success,
put them on micro SD card and tested it. I found there are some dtb's
for this SOC, but none worked well. I tested ethernet, USB and thermal
devices. Ethernet worked only with sun8i-h3-nanopi-neo.dtb, but using
it USB did not work.

Then I upgraded sources to svn rev. 326187 and built new kernel
natively. While resulting kernel loads, none of dtb's provided have
ethernet working. Using nanopi-neo.dtb from old revision, originally
identical with sun8i-h3-nanopi-neo.dtb, provides me again with working
ethernet.

This raises a question what changed with dts sources and why we have no
stable working dts... By the way, I am using GENERIC-NOCTF-NOINET6
kernel (plain GENERIC, just with CTF and INET6 options removed),
currently on Orange Pi Zero and Orange Pi R1 boards, the later being
almost identical with the former, just there is second USB
connected ethernet port instead of usual USB port, and changed wifi
module, which does not works for us anyway.

I looked over our sources and could not find any definition of emac for
Allwinner H3/H2+ SoC. Is it just me or is it really somehow lost?

One more question, loosely related - how does one build dtb file? I
mean, I know I can just invoke 'make buildkernel -DNO_CLEAN' and all
dtb's for boards defined in makefile will be created. However, I think
it is handy to do it on board tested, because you can simply stop
u-boot, type

env set fdtfile sun8i-h2-plus-orangepi-zero.dtb;boot

and test new definition. Reboot is quick on Allwinner board I have, but
'make buildkernel -DNO_CLEAN' takes ~ 3 minutes, additionally, your dts
needs to be mentioned in Makefile. I found it is actually done with

/usr/src/sys/tools/fdt/make_dtb.sh /usr/src/sys sun8i-h2-plus-orangepi-zero.dts /usr/obj/usr/src/arm.armv7/sys/GENERIC-NOCTF-NOINET6/modules/usr/src/sys/modules/dtb/allwinner

(in one line) invoked from some make command, but this does not give me
exactly the same result, probably environment differs. dtb file created
this way is larger than one produced with 'make buildkernel' command,
there are some fixups added. No idea whether it does any harm or not.



More information about the freebsd-arm mailing list