Re: RPI4 panic on boot with -current

From: Mike Karels <mike_at_karels.net>
Date: Sat, 09 Apr 2022 14:00:36 UTC
On 9 Apr 2022, at 6:46, Andrew Turner wrote:

> 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.

It works on my RPi4 (original 4 GB model), which had the problem too.

		Mike

> 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
>>
>>