[Bug 273752] 6926e26: arm: Add support for using VFP in kernel broke my kernel

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 13 Sep 2023 06:24:09 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273752

            Bug ID: 273752
           Summary: 6926e26: arm: Add support for using VFP in kernel
                    broke my kernel
           Product: Base System
           Version: 14.0-CURRENT
          Hardware: arm
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: arm
          Assignee: freebsd-arm@FreeBSD.org
          Reporter: crb@ChrisBowman.com

It looks to me like commit 6926e26 broke my kernel with the log at the bottom.

I am trying to migrate to 14.0 in perpetration for the release.  I've been
running a 13.0 kernel for a long time now that's been very stable for me.

I'm running on a Diligent ARTYZ7 board which is a AMD/Xilinx Zynq based board
(ARMv7) very similar to the zibo or zedboard.

Happy to help debug this if someone can give some direction.


=======

Using DTB provided by EFI at 0x7ef8000.


Kernel entry at 0x17a00200...


Kernel args: (null)


WARNING: Cannot find freebsd,dts-version property, cannot check DTB compliance
---<<BOOT>>---
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 14.0-CURRENT #28 n260570-6926e2699ae5-dirty: Tue Sep 12 23:04:05 PDT
2023
    crb@eclipse.ChrisBowman.com:/usr/obj/tmp/src/arm.armv7/sys/ARTYZ7 arm
FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git
llvmorg-14.0.5-0-gc12386ae247c)
WARNING: WITNESS option enabled, expect reduced performance.
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 = 511766528 (488 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
cpu1: <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: 02:1d:18:e6:2c:2d
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
[nl_generic] genl_register_family: Registered family nlctrl id 16
[nl_generic] genl_register_cmds: Adding cmd GETFAMILY(3) to family nlctrl
panic: Storing an invalid VFP state
cpuid = 0
time = 1
KDB: stack backtrace:
db_trace_self() at db_trace_self
         pc = 0xc04f4a10  lr = 0xc00720b4 (db_trace_self_wrapper+0x30)
         sp = 0xc0a14af8  fp = 0xc0a14c10
db_trace_self_wrapper() at db_trace_self_wrapper+0x30
         pc = 0xc00720b4  lr = 0xc0202080 (vpanic+0x140)
         sp = 0xc0a14c18  fp = 0xc0a14c38
         r4 = 0x00000100  r5 = 0x00000000
         r6 = 0xc054a726  r7 = 0xc07202a8
vpanic() at vpanic+0x140
         pc = 0xc0202080  lr = 0xc0201e60 (dump_savectx)
         sp = 0xc0a14c40  fp = 0xc0a14c44
         r4 = 0x2015f010  r5 = 0xc06e8639
         r6 = 0xcfc1e000  r7 = 0xcf0b7e90
         r8 = 0xc0793880  r9 = 0xc0a050c0
        r10 = 0xc070fd00
dump_savectx() at dump_savectx
         pc = 0xc0201e60  lr = 0xc051890c (fpu_kern_enter)
         sp = 0xc0a14c4c  fp = 0xc0a14c58
fpu_kern_enter() at fpu_kern_enter
         pc = 0xc051890c  lr = 0xc0515cc8 (cpu_switch+0x5c)
         sp = 0xc0a14c60  fp = 0xcfc1e000
         r4 = 0xc051890c  r5 = 0xc0a14e90
         r6 = 0x00000000 r10 = 0xc0793880
cpu_switch() at cpu_switch+0x5c
         pc = 0xc0515cc8  lr = 0xc0515cc8 (cpu_switch+0x5c)
         sp = 0xc0a14c60  fp = 0xcfc1e000
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>

-- 
You are receiving this mail because:
You are the assignee for the bug.