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@ff500000: 1, rksdmmc@ff520000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial@ff130000
Out:   serial@ff130000
Err:   serial@ff130000
Model: Pine64 Rock64
Net:
Warning: ethernet@ff540000 (eth0) using random MAC address - da:e0:78:b1:50:d2
eth0: ethernet@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 rksd...@ff500000.blk...
Card did not respond to voltage select!
Scanning disk rksd...@ff520000.blk...
Disk rksd...@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@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
si...@simonsouth.net
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to