Date: Mon, 6 Mar 2023 08:59:03 -0800 From: Mark Millard <marklmi@yahoo.com> To: bob prohaska <fbsd@www.zefox.net> Cc: freebsd-arm@freebsd.org Subject: Re: panic: Called fill_fpregs while the kernel is using the VFP Message-ID: <003859D4-9CAB-492A-B433-915A0675CD44@yahoo.com> In-Reply-To: <20230306151928.GA51161@www.zefox.net> References: <20230306151928.GA51161@www.zefox.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mar 6, 2023, at 07:19, bob prohaska <fbsd@www.zefox.net> wrote: > This is new to me. Pi2 running armv7 at=20 > main-4b0552d5f4: Thu Feb 16 16:12:46 PST 2023 >=20 > panic: Called fill_fpregs while the kernel is using the VFP > cpuid =3D 3 > time =3D 1678112700 > KDB: stack backtrace: > db_trace_self() at db_trace_self > pc =3D 0xc05e5aec lr =3D 0xc007a684 (db_trace_self_wrapper+0x30) > sp =3D 0xdd2de790 fp =3D 0xdd2de8a8 > db_trace_self_wrapper() at db_trace_self_wrapper+0x30 > pc =3D 0xc007a684 lr =3D 0xc02e9184 (vpanic+0x140) > sp =3D 0xdd2de8b0 fp =3D 0xdd2de8d0 > r4 =3D 0x00000100 r5 =3D 0x00000000 > r6 =3D 0xc07875a1 r7 =3D 0xc0b12f08 > vpanic() at vpanic+0x140 > pc =3D 0xc02e9184 lr =3D 0xc02e8f64 (dump_savectx) > sp =3D 0xdd2de8d8 fp =3D 0xdd2de8dc > r4 =3D 0xe05bc900 r5 =3D 0xc4c19e90 > r6 =3D 0xdffb6e50 r7 =3D 0xd70afa40 > r8 =3D 0xdffb6e40 r9 =3D 0xe05bc900 > r10 =3D 0xdd2de960 > dump_savectx() at dump_savectx > pc =3D 0xc02e8f64 lr =3D 0xc05f2ea8 (set_regs) > sp =3D 0xdd2de8e4 fp =3D 0xdd2de8f8 > set_regs() at set_regs > pc =3D 0xc05f2ea8 lr =3D 0xc026ee34 (elf32_get_fpregset+0x2c) > sp =3D 0xdd2de900 fp =3D 0xdd2de908 > r4 =3D 0xdffb6e50 r5 =3D 0xc026ee08 > elf32_get_fpregset() at elf32_get_fpregset+0x2c > pc =3D 0xc026ee34 lr =3D 0xc026cd9c (elf32_coredump+0x308) > sp =3D 0xdd2de910 fp =3D 0xdd2de988 > r4 =3D 0xc09033d4 r10 =3D 0xdd2de960 > elf32_coredump() at elf32_coredump+0x308 > pc =3D 0xc026cd9c lr =3D 0xc02edfac (sigexit+0xce0) > sp =3D 0xdd2de990 fp =3D 0xdd2decf8 > r4 =3D 0x0000004e r5 =3D 0xddb6883c > r6 =3D 0xddb68754 r7 =3D 0xc026ca94 > r8 =3D 0xde22e2bc r9 =3D 0xddb687b0 > r10 =3D 0x00000000 > sigexit() at sigexit+0xce0 > pc =3D 0xc02edfac lr =3D 0xc02ee8ac (postsig+0x128) > sp =3D 0xdd2ded00 fp =3D 0xdd2ded88 > r4 =3D 0x00000006 r5 =3D 0xde2f5000 > r6 =3D 0xdd2ded20 r7 =3D 0xdd2ded18 > r8 =3D 0xde22e1f8 r9 =3D 0xd710cab8 > r10 =3D 0x00000005 > postsig() at postsig+0x128 > pc =3D 0xc02ee8ac lr =3D 0xc02f26dc (ast_sig+0x11c) > sp =3D 0xdd2ded90 fp =3D 0xdd2dee08 > r4 =3D 0xde2f5000 r5 =3D 0xde22e2bc > r6 =3D 0xc0753a8d r7 =3D 0x00000000 > r8 =3D 0xde22e1f8 r9 =3D 0x00000ab8 > r10 =3D 0x23adf040 > ast_sig() at ast_sig+0x11c > pc =3D 0xc02f26dc lr =3D 0xc0352fb0 (ast_handler+0xe0) > sp =3D 0xdd2dee10 fp =3D 0xdd2dee28 > r4 =3D 0xdd2dee40 r5 =3D 0x0000000e > r6 =3D 0x00004000 r7 =3D 0xc096bf9c > r8 =3D 0xde2f5000 r9 =3D 0x00000001 > ast_handler() at ast_handler+0xe0 > pc =3D 0xc0352fb0 lr =3D 0xc0352ec0 (ast+0x20) > sp =3D 0xdd2dee30 fp =3D 0xdd2dee38 > r4 =3D 0xdd2dee40 r5 =3D 0xde2f5000 > r6 =3D 0x00000000 r7 =3D 0x000001b1 > r8 =3D 0x24006570 r9 =3D 0x23adf040 > ast() at ast+0x20 > pc =3D 0xc0352ec0 lr =3D 0xc05e8410 (swi_exit+0x3c) > sp =3D 0xdd2dee40 fp =3D 0xbfbfcaf0 > r4 =3D 0x60000013 r5 =3D 0xde2f5000 > swi_exit() at swi_exit+0x3c > pc =3D 0xc05e8410 lr =3D 0xc05e8410 (swi_exit+0x3c) > sp =3D 0xdd2dee40 fp =3D 0xbfbfcaf0 > KDB: enter: panic > [ thread pid 8505 tid 100176 ] > Stopped at kdb_enter+0x54: ldrb r15, [r15, r15, ror r15]! > db>=20 >=20 See . . . For the fixes to this armv7/armv6 specific problem: Mon, 20 Feb 2023 =E2=80=A2 git: 24abb6b82102 - main - When saving a context on arm = call the vfp handler Andrew Turner Thu, 23 Feb 2023 =E2=80=A2 git: 4d2427f2c445 - main - arm: Unbreak debugging programs = that use FP instructions Kornel Dul=C4=99ba=20 =E2=80=A2 git: 98c666cf8758 - main - arm: Fix initialization of VFP = context Kornel Dul=C4=99ba=20 So you need 98c666cf8758 or later. For where it was broken: Sat, 04 Feb 2023 =E2=80=A2 git: 6926e2699ae5 - main - arm: Add support for using VFP in = kernel Kornel Dul=C4=99ba=20 =E2=80=A2 git: e5d7c5c857f8 - main - arm: mv: Add missing function = prototype Kornel Dul=C4=99ba=20 It can be nasty to try to build the kernel via a system running a broken kernel. Getting an appropriate vintage kernel via a snapshot can work around such issues. Another way is using an appropriate kernel.txz from what is available via looking around in: https://artifact.ci.freebsd.org/snapshot/main/?C=3DM&O=3DD After renaming/deleting /boot/kernel , that compressed tar file can be expanded with -C / involved to create a /boot/kernel/ on the armv7 media. With that kernel booted, then a normal build/install update can be done. (The wording does not deal with if you happen to end up with a temporary kernel that is broken in some other way: pick a different one in that case.) =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?003859D4-9CAB-492A-B433-915A0675CD44>