[U-Boot] ROCK64 fails to boot using U-Boot TPL

Mark Kettenis mark.kettenis at xs4all.nl
Fri Sep 20 10:03:28 UTC 2019

> From: Simon South <simon at simonsouth.net>
> Date: Thu, 19 Sep 2019 04:56:57 -0400
> I've been unable so far to boot NetBSD on my PINE64 ROCK64 (v2.0, 
> Rockchip RK3328) using U-Boot built with its own TPL, the default since 
> commit ff3dd0a474.
> The same NetBSD image boots fine using the binary TPL supplied by Rockchip.
> The exact failure varies but it always seems memory-related. Typically 
> the NetBSD kernel fails right after starting with a panic in its 
> virtual-memory system, uvm.
> Also significant may be these messages sometimes output by U-Boot at 
> startup, which I haven't seen when the Rockchip TPL is used:
>      libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> I've pasted the output from a typical failed boot below and have 
> submitted a problem report (with a bit more detail) to the NetBSD project:
> https://gnats.netbsd.org/54557
> Does anyone know why this might be happening? Is there perhaps some 
> additional setup the U-Boot TPL expects from the OS to finish 
> configuring the RK3328's memory controller that's currently missing from 
> NetBSD?

Hi Simon,

One thing to look at is whether (voltage) regulators and/or clocks are
set up right.  I've seen the OpenBSD kernel crash because one of the
voltages supplied to the SoC was too low.  I beieve that was on the
rockpro64.  The regulator in question was a "boot-on" regulator so the
OpenBSD kernel assumed the regulator was already properly configured.
But I believe the Linux kernel doesn't trust the bootloader and will
configure such a regulator anyway.

In my rockpro64 case the regulator was skipped because of some
DM-conversion fall-out.  Using the U=boot "dm" commands you can check
whether drivers for various regulators are enabled.  If a "boot-on"
regulator doesn't have a "*" next to it, that is a clear indication of
a problem.  Worth looking at "always-on" regulators as well.



More information about the U-Boot mailing list