Re: RPI4 panic on boot with -current

From: Andrew Turner <andrew_at_fubar.geek.nz>
Date: Sat, 09 Apr 2022 11:46:36 UTC
Does the patch in https://reviews.freebsd.org/D34858 allow the system to boot? The EFI runtime services may not work, but it should stop the panic.

Andrew

> On 9 Apr 2022, at 02:53, bob prohaska <fbsd@www.zefox.net> wrote:
> 
> Might this be related to "RPi4B's got a PMIC replacement,..." reported 4/3 ?
> 
> A Pi4 (mechanical disk only, no microsd) trying to boot a fresh build of 
> -current reports:
> 
> Resetting system ... 
> 
> U-Boot 2020.10 (Mar 04 2021 - 04:32:31 +0000)
> 
> DRAM:  7.9 GiB
> RPI 4 Model B (0xd03114)
> MMC:   mmc@7e300000: 1, emmc2@7e340000: 0
> Loading Environment from FAT... sdhci_set_clock: Timeout to wait cmd & data inhibit
> sdhci_set_clock: Timeout to wait cmd & data inhibit
> sdhci_set_clock: Timeout to wait cmd & data inhibit
> sdhci_send_command: MMC: 1 busy timeout increasing to: 200 ms.
> sdhci_send_command: MMC: 1 busy timeout increasing to: 400 ms.
> sdhci_send_command: MMC: 1 busy timeout increasing to: 800 ms.
> sdhci_send_command: MMC: 1 busy timeout increasing to: 1600 ms.
> sdhci_send_command: MMC: 1 busy timeout increasing to: 3200 ms.
> sdhci_send_command: MMC: 1 busy timeout.
> In:    serial
> Out:   vidconsole
> Err:   vidconsole
> Net:   eth0: ethernet@7d580000
> PCIe BRCM: link up, 5.0 Gbps x1 (SSC)
> starting USB...
> Bus xhci_pci: Register 5000420 NbrPorts 5
> Starting the controller
> USB XHCI 1.00
> scanning bus xhci_pci for devices... 6 USB Device(s) found
>       scanning usb for storage devices... 1 Storage Device(s) found
> Hit any key to stop autoboot:  0 
> Card did not respond to voltage select!
> sdhci_set_clock: Timeout to wait cmd & data inhibit
> sdhci_set_clock: Timeout to wait cmd & data inhibit
> sdhci_set_clock: Timeout to wait cmd & data inhibit
> sdhci_send_command: MMC: 1 busy timeout.
> 
> Device 0: Vendor: SABRENT  Rev: 0204 Prod: 
>            Type: Hard Disk
>            Capacity: 953869.7 MB = 931.5 GB (1953525168 x 512)
> ... is now current device
> Scanning usb 0:1...
> Found EFI removable media binary efi/boot/bootaa64.efi
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> sdhci_set_clock: Timeout to wait cmd & data inhibit
> sdhci_set_clock: Timeout to wait cmd & data inhibit
> sdhci_set_clock: Timeout to wait cmd & data inhibit
> sdhci_send_command: MMC: 1 busy timeout.
> Scanning disk mmc@7e300000.blk...
> Disk mmc@7e300000.blk not ready
> Card did not respond to voltage select!
> Scanning disk emmc2@7e340000.blk...
> Disk emmc2@7e340000.blk not ready
> Scanning disk usb_mass_storage.lun0...
> ** Unrecognized filesystem type **
> Found 3 disks
> No EFI system partition
> BootOrder not defined
> EFI boot manager: Cannot load any image
> 1259292 bytes read in 5 ms (240.2 MiB/s)
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> Booting /efi\boot\bootaa64.efi
> 
> [whitespace trimmed]
> 
> Consoles: EFI console  
>    Reading loader env vars from /efi/freebsd/loader.env
> Setting currdev to disk0p1:
> FreeBSD/arm64 EFI loader, Revision 1.1
> (Thu Mar  4 07:32:03 UTC 2021 root@releng1.nyi.freebsd.org)
> 
>   Command line arguments: loader.efi
>   Image base: 0x39cfc000
>   EFI version: 2.80
>   EFI Firmware: Das U-Boot (rev 8224.4096)
>   Console: comconsole (0)
>   Load Path: /efi\boot\bootaa64.efi
>   Load Device: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/UsbClass(0x0,0x0,0x9,0x0,0x3)/UsbClass(0x152d,0x1561,0x0,0x0,0x0)/HD(1,0x01,0,0x81f,0x18fa8)
> Trying ESP: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/UsbClass(0x0,0x0,0x9,0x0,0x3)/UsbClass(0x152d,0x1561,0x0,0x0,0x0)/HD(1,0x01,0,0x81f,0x18fa8)
> Setting currdev to disk0p1:
> Trying: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/UsbClass(0x0,0x0,0x9,0x0,0x3)/UsbClass(0x152d,0x1561,0x0,0x0,0x0)/HD(2,0x01,0,0x197c7,0x746ed5e9)
> Setting currdev to disk0p2:
> /
> Loading /boot/defaults/loader.conf
> Loading /boot/defaults/loader.conf
> Loading /boot/device.hints
> Loading /boot/loader.conf
> Loading /boot/loader.conf.local
> Loading kernel...
> /boot/kernel/kernel text=0x2a8 text=0x851220 text=0x24be84 data=0x1b9ba8 data=0x0+0x34f000 syms=[0x8+0x134028+0x8+0x15b5e1]
> Loading configured modules...
> /boot/kernel/filemon.ko text=0x1867 text=0x2558 data=0x510+0x20 syms=[0x8+0xd08+0x8+0x7c9]
> /boot/kernel/umodem.ko text=0x2100 text=0x13a0 data=0x6d8+0x10 syms=[0x8+0xf18+0x8+0xb5c]
> loading required module 'ucom'
> /boot/kernel/ucom.ko text=0x2590 text=0x2f00 data=0x8e0+0x858 syms=[0x8+0x1290+0x8+0xbd5]
> /boot/entropy size=0x1000
> /etc/hostid size=0x25
> 
> Hit [Enter] to boot immediately, or any other key for command prompt.
> Booting [/boot/kernel/kernel]...               
> Using DTB provided by EFI at 0x7ef0000.
> EFI framebuffer information:
> addr, size     0x3e22c000, 0x8ca000
> dimensions     1920 x 1200
> stride         1920
> masks          0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000
> ---<<BOOT>>---
> GDB: debug ports: uart
> GDB: current port: uart
> KDB: debugger backends: ddb gdb
> KDB: current backend: ddb
> WARNING: Cannot find freebsd,dts-version property, cannot check DTB compliance
> Copyright (c) 1992-2022 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>        The Regents of the University of California. All rights reserved.
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 14.0-CURRENT #40 main-aa597d4049-dirty: Fri Apr  8 11:44:42 PDT 2022
>    bob@nemesis.zefox.com:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC arm64
> FreeBSD clang version 13.0.0 (git@github.com:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a303)
> WARNING: WITNESS option enabled, expect reduced performance.
> VT(efifb): resolution 1920x1200
> module firmware already present!
> real memory  = 8441835520 (8050 MB)
> avail memory = 8206352384 (7826 MB)
> Starting CPU 1 (1)
> Starting CPU 2 (2)
> Starting CPU 3 (3)
> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
> random: unblocking device.
> random: entropy device external interface
> Fatal data abort:
>  x0: ffffa0003b25dad0
>  x1:                8
>  x2: ffff00000088db8d (do_execve.fexecv_proc_title + 7674)
>  x3:              78a
>  x4:                0
>  x5:               69
>  x6:         40a7152f
>  x7:         f2db3c10
>  x8: ffffa0003b25dad0
>  x9:        200000000
> x10: ffffa00000000000
> x11:         3b25dad0
> x12: 725f696665006966
> x13:  100000102ff0001
> x14: ffff000000b07300 (lock_class_mtx_sleep + 0)
> x15:                0
> x16:                8
> x17:         f4b3707d
> x18: ffff000000fa79b0 (initstack + 39b0)
> x19: ffffa000008db380
> x20: ffff000000ab4810 (efirt_moddata + 0)
> x21: ffff000000911163 (console_pausestr + 13a59)
> x22: ffff000000c6d000 (db_watch_table + b88)
> x23: ffff000000ba1000 (compiler_version + 20)
> x24: ffff000000dfb000 (gdb_tx_u + aa0)
> x25:                0
> x26: ffff0000008a1723 (do_execve.fexecv_proc_title + 1b20a)
> x27:          3100000
> x28: ffff000000dfb000 (gdb_tx_u + aa0)
> x29: ffff000000fa79c0 (initstack + 39c0)
>  sp: ffff000000fa79b0
>  lr: ffff000000157ac4 (efirt_modevents + 78)
> elr: ffff000000157ad0 (efirt_modevents + 84)
> spsr:         200000c5
> far: ffffa0003b25dad0
> esr:         96000007
> panic: vm_fault failed: ffff000000157ad0 error 1
> cpuid = 0
> time = 1
> KDB: stack backtrace:
> db_trace_self() at db_trace_self
> db_trace_self_wrapper() at db_trace_self_wrapper+0x30
> vpanic() at vpanic+0x174
> panic() at panic+0x44
> data_abort() at data_abort+0x2f0
> handle_el1h_sync() at handle_el1h_sync+0x10
> --- exception, esr 0x96000007
> efirt_modevents() at efirt_modevents+0x84
> module_register_init() at module_register_init+0xc4
> mi_startup() at mi_startup+0x130
> virtdone() at virtdone+0x7c
> KDB: enter: panic
> [ thread pid 0 tid 100000 ]
> Stopped at      kdb_enter+0x44: undefined       f902011f
> db> bt
> Tracing pid 0 tid 100000 td 0xffff000000dfc0e0
> db_trace_self() at db_trace_self
> db_stack_trace() at db_stack_trace+0x11c
> db_command() at db_command+0x368
> db_command_loop() at db_command_loop+0x54
> db_trap() at db_trap+0xf8
> kdb_trap() at kdb_trap+0x1cc
> handle_el1h_sync() at handle_el1h_sync+0x10
> --- exception, esr 0xf2000000
> kdb_enter() at kdb_enter+0x44
> vpanic() at vpanic+0x1b0
> panic() at panic+0x44
> data_abort() at data_abort+0x2f0
> handle_el1h_sync() at handle_el1h_sync+0x10
> --- exception, esr 0x96000007
> efirt_modevents() at efirt_modevents+0x84
> module_register_init() at module_register_init+0xc4
> mi_startup() at mi_startup+0x130
> virtdone() at virtdone+0x7c
> db> 
> 
> followed by
> 
> db> reboot
> cpu_reset failed
> 
> After power cycle the machine rebooted to
> FreeBSD 14.0-CURRENT #34 main-79c4c4be96-dirty: Tue Apr  5 09:26:19 PDT 2022
> without obvious problems. "Dirty" is in reference to /usr/src/tests, I've
> refrained from tampering with the sources.
> 
> Thanks for reading, 
> 
> bob prohaska
> 
>