Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 May 2015 10:33:30 +0200
From:      Svatopluk Kraus <onwahe@gmail.com>
To:        Keith White <kwhite@site.uottawa.ca>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
Subject:   Re: Translation Fault panic when trying to use an mfs_root on BBB
Message-ID:  <CAFHCsPXfj0Q9gYn-auK_7zQiA_HaijhzFddm1r2TJ1K7ftAebA@mail.gmail.com>
In-Reply-To: <alpine.BSF.2.20.1505131848310.98564@localhost.my.domain>
References:  <alpine.BSF.2.20.1505131848310.98564@localhost.my.domain>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, May 14, 2015 at 2:03 AM, Keith White <kwhite@site.uottawa.ca> wrote:
> I get the following panic when trying to load an mfs_root on a
> reasonably current BBB image:
>
> Fatal kernel mode data abort: 'Translation Fault (L1)' on read
> trapframe: 0xdd43fd50
> FSR=00000005, FAR=01211ef0, spsr=20000113
> r0 =c35f4200, r1 =01211f00, r2 =000001e0, r3 =3dc1dd00
> r4 =c3638930, r5 =c362d838, r6 =c362d810, r7 =c06037b8
> r8 =0000002d, r9 =00000000, r10=c3638930, r11=dd43fdf0
> r12=00000000, ssp=dd43fde0, slr=c0249918, pc =c05c6a68
>
> [ thread pid 4 tid 100054 ]
> Stopped at      memmove+0x29c:  ldmdb   r1!, {r3-r4, r12, r14}
> db>
>
> Hints, suggestions?
>
> ...keith
>
> ---------------------------------
> More (trimmed) details from boot:
>
> ...
> U-Boot 2014.10 (Mar 19 2015 - 18:29:51)
> ...
> FreeBSD/armv6hf U-Boot loader, Revision 1.2
> (kwhite@freebsd11, Tue Mar 17 22:23:25 EDT 2015)
> ...
> Found U-Boot device: disk
>   Checking unit=1 slice=<auto> partition=<auto>... good.
> /boot/kernel/kernel data=0x505c2c+0x923d4 syms=[0x4+0x606a0+0x4+0x65ed4]
> /boot/kernel/snd_uaudio.ko text=0xed3c data=0x620+0x10
> syms=[0x4+0x1ec0+0x4+0x1a2f]
> ...
> Type '?' for a list of commands, 'help' for more detailed help.
> loader> load -t mfs_root /rootfs
> /rootfs size=0x858000
> loader> boot -asv
> Booting...
> /boot/dtb/beaglebone-black.dtb size=0x24b4
> Loaded DTB from file 'beaglebone-black.dtb'.
> Kernel entry at 0x80200100...
> Kernel args: -asv
> KDB: debugger backends: ddb
> KDB: current backend: ddb
> Copyright (c) 1992-2015 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 11.0-CURRENT #1 r282672M: Tue May 12 06:57:24 EDT 2015
>     kwhite@freebsd11:/usr/obj/arm.armv6hf/tank/RPI/head/sys/BEAGLEBONE-LOCAL
> arm
> FreeBSD clang version 3.6.0 (tags/RELEASE_360/final 230434) 20150225
> WARNING: WITNESS option enabled, expect reduced performance.
> Preloaded elf kernel "/boot/kernel/kernel" at 0xc1219000.
> ...
> mmc0: Probing bus
> usbus0: 480Mbps High Speed USB v2.0
> usbus1: 480Mbps High Speed USB v2.0
> md0: Preloaded image </rootfs> 8749056 bytes at 0x9b9f00
> ugen1.1: <Mentor Graphics> at usbus1
> uhub0: <Mentor Graphics OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on
> usbus1
> ugen0.1: <Mentor Graphics> at usbus0
> uhub1: <Mentor Graphics OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on
> usbus0
> Fatal kernel mode data abort: 'Translation Fault (L1)' on read
> trapframe: 0xdd43fd50
> FSR=00000005, FAR=01211ef0, spsr=20000113
> r0 =c35f4200, r1 =01211f00, r2 =000001e0, r3 =3dc1dd00
> r4 =c3638930, r5 =c362d838, r6 =c362d810, r7 =c06037b8
> r8 =0000002d, r9 =00000000, r10=c3638930, r11=dd43fdf0
> r12=00000000, ssp=dd43fde0, slr=c0249918, pc =c05c6a68
>
> [ thread pid 4 tid 100054 ]
> Stopped at      memmove+0x29c:  ldmdb   r1!, {r3-r4, r12, r14}


Well, FAR (fault address) points to user address space. System is
still in boot process and no user address should be used. The first
thing is to find out if arguments pushed to bcopy() in
mdstart_preload() are correct. Can you print them out?


> ...
> db> where
> Tracing pid 4 tid 100054 td 0xc362b990
> db_trace_self() at db_trace_self
>          pc = 0xc05b31b8  lr = 0xc0238364 (db_stack_trace+0x108)
>          sp = 0xdd43fa58  fp = 0xdd43fa70
>         r10 = 0xc0788d34
> db_stack_trace() at db_stack_trace+0x108
>          pc = 0xc0238364  lr = 0xc0237db0 (db_command+0x380)
>          sp = 0xdd43fa78  fp = 0xdd43fb18
>          r4 = 0x00000000  r5 = 0x00000000
>          r6 = 0x00000072 r10 = 0xc0788d34
> db_command() at db_command+0x380
>          pc = 0xc0237db0  lr = 0xc0237a20 (db_command_loop+0x74)
>          sp = 0xdd43fb20  fp = 0xdd43fb30
>          r4 = 0xc0601fde  r5 = 0xc061e763
>          r6 = 0xc0788d20  r7 = 0xc06cad34
>          r8 = 0xc07261d0  r9 = 0xc07261d4
>         r10 = 0x00000013
> db_command_loop() at db_command_loop+0x74
>          pc = 0xc0237a20  lr = 0xc023a520 (db_trap+0x108)
>          sp = 0xdd43fb38  fp = 0xdd43fc50
>          r4 = 0x00000000  r5 = 0xc0788d2c
>          r6 = 0xc07261f8 r10 = 0x00000013
> db_trap() at db_trap+0x108
>          pc = 0xc023a520  lr = 0xc03b80f8 (kdb_trap+0xd4)
>          sp = 0xdd43fc58  fp = 0xdd43fc78
>          r4 = 0x00000000  r5 = 0x00000005
>          r6 = 0xc07261f8  r7 = 0xc06cad34
> kdb_trap() at kdb_trap+0xd4
>          pc = 0xc03b80f8  lr = 0xc05c9748 (abort_fatal+0x1d4)
>          sp = 0xdd43fc80  fp = 0xdd43fca0
>          r4 = 0xdd43fd50  r5 = 0x00000013
>          r6 = 0x01211ef0  r7 = 0x00000005
>          r8 = 0x00000005  r9 = 0x01211ef0
>         r10 = 0x00000013
> abort_fatal() at abort_fatal+0x1d4
>          pc = 0xc05c9748  lr = 0xc05c9574 (abort_fatal)
>          sp = 0xdd43fca8  fp = 0xdd43fd48
>          r4 = 0xdd43fd50  r5 = 0x00000000
>          r6 = 0x00000005  r7 = 0x00000005
>          r8 = 0xc362b990 r10 = 0x00000013
> abort_fatal() at abort_fatal
>          pc = 0xc05c9574  lr = 0xc05b4840 (exception_exit)
>          sp = 0xdd43fd50  fp = 0xdd43fdf0
>          r4 = 0xc362d838  r5 = 0xc362d810
>          r6 = 0xc06037b8  r7 = 0x0000002d
>          r8 = 0x00000000 r10 = 0xc3638930
> exception_exit() at exception_exit
>          pc = 0xc05b4840  lr = 0xc0249918 (mdstart_preload+0x58)
>          sp = 0xdd43fde0  fp = 0xdd43fdf0
>          r0 = 0xc35f4200  r1 = 0x01211f00
>          r2 = 0x000001e0  r3 = 0x3dc1dd00
>          r4 = 0xc3638930  r5 = 0xc362d838
>          r6 = 0xc362d810  r7 = 0xc06037b8
>          r8 = 0x0000002d  r9 = 0x00000000
>         r10 = 0xc3638930 r12 = 0x00000000
> memmove() at memmove+0x29c
>          pc = 0xc05c6a68  lr = 0xc0249918 (mdstart_preload+0x58)
>          sp = 0xdd43fde0  fp = 0xdd43fdf0
> mdstart_preload() at mdstart_preload+0x58
>          pc = 0xc0249918  lr = 0xc0249834 (md_kthread+0x194)
>          sp = 0xdd43fdf8  fp = 0xdd43fe30
>          r4 = 0xc362d800 r10 = 0xc3638930
> md_kthread() at md_kthread+0x194
>          pc = 0xc0249834  lr = 0xc034b0d0 (fork_exit+0x84)
>          sp = 0xdd43fe38  fp = 0xdd43fe50
>          r4 = 0xc362b990  r5 = 0xc3379000
>          r6 = 0xc02496a0  r7 = 0xc362d800
>          r8 = 0xdd43fe58  r9 = 0xc0725d70
>         r10 = 0x00000104
> fork_exit() at fork_exit+0x84
>          pc = 0xc034b0d0  lr = 0xc05b47d0 (swi_exit)
>          sp = 0xdd43fe58  fp = 0x00000000
>          r4 = 0xc02496a0  r5 = 0xc362d800
>          r6 = 0xc072762c  r7 = 0x00000000
>          r8 = 0xc0725d74 r10 = 0x00000104
> swi_exit() at swi_exit
>          pc = 0xc05b47d0  lr = 0xc05b47d0 (swi_exit)
>          sp = 0xdd43fe58  fp = 0x00000000
> db> reboot
> _______________________________________________
> freebsd-arm@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFHCsPXfj0Q9gYn-auK_7zQiA_HaijhzFddm1r2TJ1K7ftAebA>