Success. I now have a u-boot built on Arm64 that works. Along the way I learnt various things:
[1] Raspberry Pi's first stage loader generates the device tree. Overlays are used to turn various things on (for example sound) at boot time.
[2] There's a big difference between fdt_addr and fdt_addr_r, depending on whether you're running mainstream u-boot or rpi u-boot.
[3] RPI3 is not really fully upstream, various bits always need to be added. In other words, RPi, like a lot of Arm boards has its own mediated kernel tree, u-boot tree etc
[4] There's not yet a standard 64 bit aarch64 release of Debian buster (9). That's terrible progress. I managed to build my own but not without a lot of faffing about.
[5] Yocto / OE does not build natively arm on arm (as well as taking a very long time on a RPi 3)
I should take my notes and write this 'folklore' up, but it is a mess compared to pretty much any Intel board. The shame is that the Raspberry Pi is probably the best supported aarch64 device that there is...
David
On Thu, 26 Jul 2018 at 17:56 David Rusling david.rusling@linaro.org wrote:
Tom, thanks, I appreciate all of your hard work, the code base looks good.. David
On Thu, 26 Jul 2018 at 16:11 Tom Rini trini@konsulko.com wrote:
On Thu, Jul 26, 2018 at 01:55:51PM +0100, Peter Robinson wrote:
On Thu, Jul 26, 2018 at 1:46 PM, David Rusling <
david.rusling@linaro.org> wrote:
Peter, thanks, that was one explanation that I hadn't thought of (32b = 32 bits). Really helpful, onwards and upwards...
FYI they work fine 32 and 64 bits on both the 3B and 3B+ for me, only currently tested 64 bit with uefi but they work fine for me, plus a bunch of other 96boards.
A Pi 3B is also in my CI loop (32bit then 64bit) so our (U-Boot's) test.py bits run on it reliably or I start yelling at people :)
-- Tom
-- David A Rusling CTO, Linaro https://linaro.org