
19.09.2019 11:56, Simon South пишет:
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?
Hi,
I have no idea what is going on. But are you sure that you tested the same u-boot binaries with or without binary TPL? u-boot-tpl.bin and rk3328_ddr_333MHz_v1.16.bin should be fully interchangeable while deploying the bootloader.
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 rksdmmc@ff500000.blk... Card did not respond to voltage select! Scanning disk rksdmmc@ff520000.blk... Disk rksdmmc@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}>