Trouble booting current on ARM

From: Christopher Bowman <crb_at_chrisbowman.com>
Date: Wed, 06 Sep 2023 05:53:58 UTC
Apologies if this is a duplicate but I didn’t see this come out on the list:

I’ve been using an Arty-Z7 from Diligent for several years now.  This is a AMD/Xilinx ZYNQ based board.  It’s mostly similar to a ZED board which has an in tree kernel config.  It has worked fine with 13.0.  I’m now looking to mowe my work forward and keep pace with the project.  I’d like to eventually upgrade to 14.0 when it comes out.  In preparation I built a new release using sources from after the 14.0 branch.  I’m able to cross build fine but when I boot the kernel I see the crash below,  Has anyone seen panic: Storing an invalid VFP state.  Any information or ideas about what might be happening before I try to debug?  Any information at all would be helpful.

Is anyone else running a Zynq based board of any kind with a recent 14.0 or current kernel?
Thanks for any help,
Christopher



GDB: debug ports: uart
GDB: current port: uart
KDB: debugger backends: ddb gdb
KDB: current backend: ddb
Copyright (c) 1992-2023 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 15.0-CURRENT armv7 1500000 #3 main-n265107-03d104888cae: Fri Sep  1 20:18:55 PDT 2023
    crb@eclipse.ChrisBowman.com <mailto:crb@eclipse.ChrisBowman.com>:/usr/obj/tmp/src/arm.armv7/sys/ARTYZ7 arm
FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152)
WARNING: WITNESS option enabled, expect reduced performance.
WARNING: 32-bit kernels are deprecated and may be removed in FreeBSD 15.0.
CPU: ARM Cortex-A9 r3p0 (ECO: 0x00000000)
CPU Features: 
  Multiprocessing, Thumb2, Security, VMSAv7, Coherent Walk
Optional instructions: 
  UMULL, SMULL, SIMD(ext)
LoUU:2 LoC:2 LoUIS:2 
Cache level 1:
 32KB/32B 4-way data cache WB Read-Alloc Write-Alloc
 32KB/32B 4-way instruction cache Read-Alloc
real memory  = 536866816 (511 MB)
avail memory = 511369216 (487 MB)
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
arc4random: WARNING: initial seeding bypassed the cryptographic random device because it was not yet seeded and the knob 'bypass_before_seeding' was enabled.
random: entropy device external interface
ofwbus0: <Open Firmware Device Tree>
regfix0: <Fixed Regulator> on ofwbus0
simplebus0: <Flattened device tree simple bus> on ofwbus0
simple_mfd0: <Simple MFD (Multi-Functions Device)> mem 0xf8000000-0xf8000fff on simplebus0
l2cache0: <PL310 L2 cache controller> mem 0xf8f02000-0xf8f02fff irq 8 on simplebus0
l2cache0: cannot allocate IRQ, not using interrupt
l2cache0: Part number: 0x3, release: 0x8
l2cache0: L2 Cache enabled: 512KB/32B 8 ways
gic0: <ARM Generic Interrupt Controller> mem 0xf8f01000-0xf8f01fff,0xf8f00100-0xf8f001ff on simplebus0
gic0: pn 0x39, arch 0x1, rev 0x2, implementer 0x43b irqs 96
mp_tmr0: <ARM MPCore Timers> mem 0xf8f00200-0xf8f0021f irq 29 on simplebus0
Timecounter "MPCore" frequency 50000000 Hz quality 800
mp_tmr1: <ARM MPCore Timers> mem 0xf8f00600-0xf8f0061f irq 36 on simplebus0
Event timer "MPCore" frequency 50000000 Hz quality 1000
cpulist0: <Open Firmware CPU Group> on ofwbus0
cpu0: <Open Firmware CPU> on cpulist0
uart0: <Cadence UART> mem 0xe0000000-0xe0000fff irq 9 on simplebus0
uart0: console (-1,n,8,1)
zy7_qspi0: <Zynq Quad-SPI Flash Controller> mem 0xe000d000-0xe000dfff irq 13 on simplebus0
zy7_qspi0: must have ref-clock property
device_attach: zy7_qspi0 attach returned 6
cgem0: <Cadence CGEM Gigabit Ethernet Interface> mem 0xe000b000-0xe000bfff irq 14 on simplebus0
cgem0: could not retrieve reference clock.
miibus0: <MII bus> on cgem0
rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 0 on miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
rgephy1: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 1 on miibus0
rgephy1:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
cgem0: Ethernet address: 66:da:ac:ca:9e:86
sdhci_fdt0: <Zynq-7000 generic fdt SDHCI controller> mem 0xe0100000-0xe0100fff irq 17 on simplebus0
sdhci_fdt0: 1 slot(s) allocated
mmc0: <MMC/SD bus> on sdhci_fdt0
zy7_devcfg0: <Zynq devcfg block> mem 0xf8007000-0xf80070ff irq 28 on simplebus0
Timecounters tick every 1.000 msec
usb_needs_explore_all: no devclass
panic: Storing an invalid VFP state
cpuid = 0
time = 1
KDB: stack backtrace:
db_trace_self() at db_trace_self
	 pc = 0xc04fcbf8  lr = 0xc0071424 (db_trace_self_wrapper+0x30)
	 sp = 0xc0a14930  fp = 0xc0a14a48
db_trace_self_wrapper() at db_trace_self_wrapper+0x30
	 pc = 0xc0071424  lr = 0xc02039cc (vpanic+0x140)
	 sp = 0xc0a14a50  fp = 0xc0a14a70
	 r4 = 0x00000100  r5 = 0x00000000
	 r6 = 0xc05b70fb  r7 = 0xc072f7a8
vpanic() at vpanic+0x140
	 pc = 0xc02039cc  lr = 0xc02037ac (doadump)
	 sp = 0xc0a14a78  fp = 0xc0a14a7c
	 r4 = 0x2009e010  r5 = 0xcfc96000
	 r6 = 0xc06f6da9  r7 = 0xcf0cce90
	 r8 = 0xc07a2800  r9 = 0xc07408c4
	r10 = 0xc071f1e0
doadump() at doadump
	 pc = 0xc02037ac  lr = 0xc0520eb0 (fpu_kern_enter)
	 sp = 0xc0a14a84  fp = 0xc0a14a90
	 r4 = 0xc071f1e0  r5 = 0xc0a14a7c
	 r6 = 0xc02037ac r10 = 0xc0a14a84
fpu_kern_enter() at fpu_kern_enter
	 pc = 0xc0520eb0  lr = 0xc051e0c8 (cpu_switch+0x5c)
	 sp = 0xc0a14a98  fp = 0xcfc96000
	 r4 = 0xc0520eb0  r5 = 0xc0a14e90
	 r6 = 0x00000000 r10 = 0xc07a2800
cpu_switch() at cpu_switch+0x5c
	 pc = 0xc051e0c8  lr = 0xc051e0c8 (cpu_switch+0x5c)
	 sp = 0xc0a14a98  fp = 0xcfc96000
Unwind failure (no registers changed)
KDB: enter: panic
[ thread pid 0 tid 100000 ]
Stopped at      kdb_enter+0x54: ldrb    r15, [r15, r15, ror r15]!
db>