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

Simon South simon at simonsouth.net
Thu Sep 19 08:56:57 UTC 2019


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?

How I can diagnose this further?

----------

U-Boot TPL 2019.10-rc3-00361-ga9fa70b7b7 (Sep 19 2019 - 03:11:29)
LPDDR3
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2019.10-rc3-00361-ga9fa70b7b7 (Sep 19 2019 - 03:11:29 -0400)
Trying to boot from MMC2
Card did not respond to voltage select!
spl: mmc init failed with error: -95
Trying to boot from MMC1
NOTICE:  BL31: v2.1(release):v2.1-678-g2fc6ffc4-dirty
NOTICE:  BL31: Built : 12:10:07, Sep 12 2019
ERROR:   over or zero region, nr=4187432, max=10
NOTICE:  BL31:Rockchip release version: v1.2


U-Boot 2019.10-rc3-00361-ga9fa70b7b7 (Sep 19 2019 - 03:12:31 -0400)

Model: Pine64 Rock64
DRAM:  4 GiB
MMC:   rksdmmc at ff500000: 1, rksdmmc at ff520000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default 
environment

In:    serial at ff130000
Out:   serial at ff130000
Err:   serial at ff130000
Model: Pine64 Rock64
Net:
Warning: ethernet at ff540000 (eth0) using random MAC address - 
da:e0:78:b1:50:d2
eth0: ethernet at ff540000
Hit any key to stop autoboot:  0
Card did not respond to voltage select!
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
53513 bytes read in 9 ms (5.7 MiB/s)
Found EFI removable media binary efi/boot/bootaa64.efi
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk rksdmmc at ff500000.blk...
Card did not respond to voltage select!
Scanning disk rksdmmc at ff520000.blk...
Disk rksdmmc at ff520000.blk not ready
Found 3 disks
BootOrder not defined
EFI boot manager: Cannot load any image
205136 bytes read in 16 ms (12.2 MiB/s)
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
-

 >> NetBSD/evbarm EFI Boot (aarch64), Revision 1.11 (Wed Sep 18 15:50:45 
UTC 2019) (from NetBSD 9.99.12)
Press return to boot now, any other key for boot prompt
booting netbsd - starting in 0 seconds.
6100056+2730512+1985652+1823764+490622=0xec5b00
[   1.0000000] NetBSD/evbarm (fdt) booting ...
[   1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 
2003, 2004, 2005,
[   1.0000000]     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 
2015, 2016, 2017,
[   1.0000000]     2018, 2019 The NetBSD Foundation, Inc.  All rights 
reserved.
[   1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
[   1.0000000]     The Regents of the University of California.  All 
rights reserved.

[   1.0000000] NetBSD 9.99.12 (GENERIC64) #16: Wed Sep 18 12:30:03 EDT 2019
[   1.0000000]  ssouth at laptop:/usr/src/sys/arch/evbarm/compile/obj/GENERIC64
[   1.0000000] total memory = 4064 MB
[   1.0000000] avail memory = 3918 MB
[   1.0000000] panic: kernel diagnostic assertion "ucpu == 
VM_FREE_PAGE_TO_CPU(pg)" failed: file "/usr/src/sys/uvm/uvm_page.c", line
852
[   1.0000000] cpu0: Begin traceback...
[   1.0000000] trace fp ffffffc000bec8d0
[   1.0000000] fp ffffffc000bec8f0 vpanic() at ffffffc0004924c0 
netbsd:vpanic+0x198
[   1.0000000] fp ffffffc000bec950 kern_assert() at ffffffc0005cdf24 
netbsd:kern_assert+0x5c
[   1.0000000] fp ffffffc000bec9e0 uvm_pagealloc_pgfl() at 
ffffffc00040f388 netbsd:uvm_pagealloc_pgfl+0x5c8
[   1.0000000] fp ffffffc000beca40 uvm_pagealloc_strat() at 
ffffffc000410034 netbsd:uvm_pagealloc_strat+0x18c
[   1.0000000] fp ffffffc000becad0 uvm_km_kmem_alloc() at 
ffffffc000403b30 netbsd:uvm_km_kmem_alloc+0x60
[   1.0000000] fp ffffffc000becb40 pool_page_alloc() at ffffffc00048b0c0 
netbsd:pool_page_alloc+0x28
[   1.0000000] fp ffffffc000becb60 pool_grow() at ffffffc00048d294 
netbsd:pool_grow+0x35c
[   1.0000000] fp ffffffc000becbd0 pool_get() at ffffffc00048c5e8 
netbsd:pool_get+0xa0
[   1.0000000] fp ffffffc000becc30 pool_cache_get_slow() at 
ffffffc00048e8a4 netbsd:pool_cache_get_slow+0x1dc
[   1.0000000] fp ffffffc000becc80 pool_cache_get_paddr() at 
ffffffc0004901e8 netbsd:pool_cache_get_paddr+0x258
[   1.0000000] fp ffffffc000becce0 kmem_intr_alloc() at ffffffc0004859f0 
netbsd:kmem_intr_alloc+0x60
[   1.0000000] fp ffffffc000becd10 kmem_intr_zalloc() at 
ffffffc000485b20 netbsd:kmem_intr_zalloc+0x10
[   1.0000000] fp ffffffc000becd30 kmem_zalloc() at ffffffc000485dc4 
netbsd:kmem_zalloc+0x84
[   1.0000000] fp ffffffc000becd50 module_builtin_add() at 
ffffffc0004432a0 netbsd:module_builtin_add+0x98
[   1.0000000] fp ffffffc000becdf0 module_init() at ffffffc0004437f8 
netbsd:module_init+0xf0
[   1.0000000] fp ffffffc000bece50 main() at ffffffc0005d0b08 
netbsd:main+0x108
[   1.0000000] fp 0000000000000000 aarch64_start() at ffffffc00000183c 
netbsd:aarch64_start+0x103c
[   1.0000000] cpu0: End traceback...
Stopped in pid 0.1 (system) at  netbsd:cpu_Debugger+0x4:        ret
db{0}>

-- 
Simon South
simon at simonsouth.net


More information about the U-Boot mailing list