> U-boot seems fine -- it's once I start the kernel that things start to go
> wrong. Just tried a mainline 4.16-rc5, and I get the same kernel BUG fairly
> early during boot (though no immediate panic).
Sometimes the bootloader can put the hardware in a state in which the
Linux kernel panics.
> Once thing I'm not clear on -- should I be using the dtb that came with the
> kernel (arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dtb) or just use
> the one provided by U-boot via $fdtcontroladdr?
For u-boot use the u-boot dtb (it is included in
u-boot-sunxi-with-spl.bin so don't worry about this), and for kernel use
the kernel dtb.