vm_fault during BBB-boot
Ian Lepore
ian at freebsd.org
Sun Dec 28 19:36:29 UTC 2014
On Sun, 2014-12-28 at 19:46 +0100, Manuel Stühn wrote:
> Am 28.12.2014 um 18:57 schrieb Ian Lepore:
> > I can't reproduce this on my BBB. I sync'd to the exact rev you used
> > and rebuilt, installed it all on an sdcard and booted, and I boot all
> > the way to the login prompt. I even diff'd my boot messages against the
> > ones you posted and there are no significant differences other than
> > pathnames and compile times.
> >
> > Maybe a stack backtrace would help... enter 'bt' at that db> prompt and
> > post the output (everything from the vm_fault(...)-> 1 to the end of the
> > backtrace).
>
> [...]
> mmcsd0: 8GB <SDHC SD08G 3.8 SN C240108F MFG 06/2009 by 2 TM> at mmc0
> 48.0MHz/4bit/65535-block
>
> vm_fault(0xc0788e48, 0, 1, 0) -> 1
> Fatal kernel mode data abort: 'Translation Fault (S)'
> trapframe: 0xdd0cbc60
> FSR=00000005, FAR=00000010, spsr=00000113
> r0 =00000000, r1 =00000004, r2 =00003d2e, r3 =00000137
> r4 =c2be4180, r5 =c2be4180, r6 =c078876c, r7 =c0869a24
> r8 =028f5c28, r9 =c0713d48, r10=00000000, r11=dd0cbcb0
> r12=00000001, ssp=dd0cbcb0, slr=00101010, pc =c0377d64
>
> [ thread pid 12 tid 100006 ]
> Stopped at _sx_assert+0x48: ldr r14, [r0, #0x010]
> db> bt
> Tracing pid 12 tid 100006 td 0xc2a7d660
> db_trace_self() at db_trace_self
> pc = 0xc05c43d4 lr = 0xc02324d0 (db_stack_trace+0x108)
> sp = 0xdd0cb960 fp = 0xdd0cb978
> r10 = 0xc0787b70
> db_stack_trace() at db_stack_trace+0x108
> pc = 0xc02324d0 lr = 0xc0231e28 (db_command+0x294)
> sp = 0xdd0cb980 fp = 0xdd0cba20
> r4 = 0x00000000 r5 = 0x00000000
> r6 = 0x00000000
> db_command() at db_command+0x294
> pc = 0xc0231e28 lr = 0xc0231b80 (db_command_loop+0x78)
> sp = 0xdd0cba28 fp = 0xdd0cba38
> r4 = 0xc060cef5 r5 = 0xc062832d
> r6 = 0xc0787b5c r7 = 0xc06cfce8
> r8 = 0xc07235e4 r9 = 0xc07235e0
> r10 = 0x00000001
> db_command_loop() at db_command_loop+0x78
> pc = 0xc0231b80 lr = 0xc0234698 (db_trap+0x108)
> sp = 0xdd0cba40 fp = 0xdd0cbb60
> r4 = 0x00000000 r5 = 0xc0787b68
> r6 = 0xc0723608
> db_trap() at db_trap+0x108
> pc = 0xc0234698 lr = 0xc03a8c38 (kdb_trap+0xd4)
> sp = 0xdd0cbb68 fp = 0xdd0cbb88
> r4 = 0x00000000 r5 = 0x00000005
> r6 = 0xc0723608 r7 = 0xc06cfce8
> kdb_trap() at kdb_trap+0xd4
> pc = 0xc03a8c38 lr = 0xc05d9464 (dab_fatal+0x1c0)
> sp = 0xdd0cbb90 fp = 0xdd0cbba8
> r4 = 0xdd0cbc60 r5 = 0x00000005
> r6 = 0x600001d3 r7 = 0x00000010
> r8 = 0xc2a7d660 r9 = 0xdd0cbc60
> r10 = 0x00000001
> dab_fatal() at dab_fatal+0x1c0
> pc = 0xc05d9464 lr = 0xc05d91a4 (abort_handler+0x66c)
> sp = 0xdd0cbbb0 fp = 0xdd0cbc58
> r4 = 0x00000005 r5 = 0x00000001
> r6 = 0xc0788e48 r7 = 0xdd0cbea0
> abort_handler() at abort_handler+0x66c
> pc = 0xc05d91a4 lr = 0xc05c61e0 (exception_exit)
> sp = 0xdd0cbc60 fp = 0xdd0cbcb0
> r4 = 0xc2be4180 r5 = 0xc2be4180
> r6 = 0xc078876c r7 = 0xc0869a24
> r8 = 0x028f5c28 r9 = 0xc0713d48
> r10 = 0x00000000
> exception_exit() at exception_exit
> pc = 0xc05c61e0 lr = 0x00101010 (0x101010)
> sp = 0xdd0cbcb0 fp = 0xdd0cbcb0
> r0 = 0x00000000 r1 = 0x00000004
> r2 = 0x00003d2e r3 = 0x00000137
> r4 = 0xc2be4180 r5 = 0xc2be4180
> r6 = 0xc078876c r7 = 0xc0869a24
> r8 = 0x028f5c28 r9 = 0xc0713d48
> r10 = 0x00000000 r12 = 0x00000001
> _sx_assert() at _sx_assert+0x48
> pc = 0xc0377d64 lr = 0xc085e4d0 ($a+0x54)
> sp = 0xdd0cbcb8 fp = 0xdd0cbdb8
> Unknown entry: 0
> $a() at $a+0x54
> pc = 0xc085e4d0 lr = 0xc085e4d0 ($a+0x54)
> sp = 0xdd0cbcb8 fp = 0xdd0cbdb8
> Unable to unwind into user mode
> db>
Well that didn't really help at all, because that output is crazy. It
says it can't unwind into user mode, but the PC in the last frame isn't
from usermode, it's an address beyond the end of the kernel code. I
have a feeling that "unknown entry" is why the backtrace is broken.
So all in all, I'm out of ideas. We should have nearly identical
setups, except I didn't build with crochet, and thus I'm probably using
a slightly different u-boot (a bit newer probably). I don't see how
that could lead to working vs. failing at this point.
-- Ian
More information about the freebsd-arm
mailing list