Date: Thu, 01 Aug 2013 04:29:46 +0200 From: Mattia Rossi <mattia.rossi.mate@gmail.com> To: Ian Lepore <ian@FreeBSD.org> Cc: freebsd-arm@FreeBSD.org Subject: Re: Kernel Panic on DREAMPLUG: Alignment Fault 1 Message-ID: <51F9C81A.7000106@gmail.com> In-Reply-To: <1375309907.45247.185.camel@revolution.hippie.lan> References: <51F92F79.9010809@gmail.com> <1375309907.45247.185.camel@revolution.hippie.lan>
next in thread | previous in thread | raw e-mail | index | archive | help
On 01/08/13 00:31, Ian Lepore wrote: > On Wed, 2013-07-31 at 17:38 +0200, Mattia Rossi wrote: >> Hi all, >> >> this might be related to the WLI-UC-GNM Alignment Fault, but definitely >> has nothing to do with Wireless LAN. >> It rather seems that there's a problem with the USB subsystem. >> >> See dmesg an backtrace below. >> >> ## Starting application at 0x00900000 ... >> KDB: debugger backends: ddb >> KDB: current backend: ddb >> Copyright (c) 1992-2013 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 10.0-CURRENT #9 r253846M: Wed Jul 31 17:24:31 CEST 2013 >> root@freebsd9.1-base:/usr/obj/arm.arm/usr/devel/dreamplug/sys/DREAMPLUG-100m >> FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610 >> WARNING: DIAGNOSTIC option enabled, expect reduced performance. >> CPU: Feroceon 88FR131 rev 1 (Marvell core) >> Little-endian DC enabled IC enabled WA disabled DC streaming enabled >> BTB disabled L2 enabled L2 prefetch enabled >> WB enabled EABT branch prediction enabled >> 16KB/32B 4-way instruction cache >> 16KB/32B 4-way write-back-locking-C data cache >> real memory = 536870912 (512 MB) >> avail memory = 510828544 (487 MB) >> SOC: Marvell 88F6281 rev A1, TClock 200MHz >> Instruction cache prefetch disabled, data cache prefetch disabled >> 256KB 4-way set-associative write-through unified L2 cache >> random device not loaded; using insecure entropy >> localbus0: <Marvell device bus> on fdtbus0 >> simplebus0: <Flattened device tree simple bus> on fdtbus0 >> ic0: <Marvell Integrated Interrupt Controller> mem 0xf1020200-0xf102023b >> on sim0 >> timer0: <Marvell CPU Timer> mem 0xf1020300-0xf102032f irq 1 on simplebus0 >> Event timer "CPUTimer0" frequency 200000000 Hz quality 1000 >> Timecounter "CPUTimer1" frequency 200000000 Hz quality 1000 >> gpio0: <Marvell Integrated GPIO Controller> mem 0xf1010100-0xf101011f >> irq 35,360 >> rtc0: <Marvell Integrated RTC> mem 0xf1010300-0xf1010307 on simplebus0 >> twsi0: <Marvell Integrated I2C Bus Controller> mem 0xf1011000-0xf101101f >> irq 430 >> iicbus0: <Philips I2C bus> on twsi0 >> iic0: <I2C generic I/O> on iicbus0 >> mge0: <Marvell Gigabit Ethernet controller> mem 0xf1072000-0xf1073fff >> irq 12,130 >> mge0: Ethernet address: f0:ad:4e:00:84:c7 >> miibus0: <MII bus> on mge0 >> e1000phy0: <Marvell 88E1116R Gigabit PHY> PHY 0 on miibus0 >> e1000phy0: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, >> 1000baseT, 10o >> mge1: <Marvell Gigabit Ethernet controller> mem 0xf1076000-0xf1077fff >> irq 16,170 >> mge1: Ethernet address: f0:ad:4e:00:84:c8 >> miibus1: <MII bus> on mge1 >> e1000phy1: <Marvell 88E1116R Gigabit PHY> PHY 1 on miibus1 >> e1000phy1: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, >> 1000baseT, 10o >> uart0: <16550 or compatible> mem 0xf1012000-0xf101201f irq 33 on simplebus0 >> uart0: console (1056,n,8,1) >> uart1: <16550 or compatible> mem 0xf1012100-0xf101211f irq 34 on simplebus0 >> cesa0: <Marvell Cryptographic Engine and Security Accelerator> mem >> 0xf1030000-00 >> ehci0: <Marvell Integrated USB 2.0 controller> mem 0xf1050000-0xf1050fff >> irq 480 >> usbus0: EHCI version 1.0 >> usbus0: set host controller mode >> usbus0 on ehci0 >> mvs0: <Marvell 88F6281 SATA controller> mem 0xf1080000-0xf1085fff irq 21 >> on sim0 >> mvs0: Gen-IIe, 2 3Gbps ports, Port Multiplier supported with FBS >> mvsch0: <Marvell SATA channel> at channel 0 on mvs0 >> mvsch1: <Marvell SATA channel> at channel 1 on mvs0 >> cryptosoft0: <software crypto> >> Timecounters tick every 10.000 msec >> IPsec: Initialized Security Association Processing. >> ipfw2 (+ipv6) initialized, divert enabled, nat enabled, default to >> accept, loggd >> DUMMYNET 0 with IPv6 initialized (100409) >> load_dn_sched dn_sched FIFO loaded >> load_dn_sched dn_sched PRIO loaded >> load_dn_sched dn_sched QFQ loaded >> load_dn_sched dn_sched RR loaded >> load_dn_sched dn_sched WF2Q+ loaded >> usbus0: 480Mbps High Speed USB v2.0 >> Fatal kernel mode data abort: 'Alignment Fault 1' >> trapframe: 0xde472b48 >> FSR=00000001, FAR=de472bc4, spsr=60000093 >> r0 =001e48e5, r1 =ffffffff, r2 =0000001c, r3 =001e48e5 >> r4 =de472bbc, r5 =de472bc4, r6 =c3598c80, r7 =c0e7c830 >> r8 =798ee230, r9 =00000015, r10=00000001, r11=de472bb4 >> r12=c0d240e8, ssp=de472b94, slr=c0d44c6c, pc =c0ab8264 >> >> [ thread pid 5 tid 100036 ] >> Stopped at binuptime+0x70: und 0xe1c500d0 >> db> bt >> Tracing pid 5 tid 100036 td 0xc3598c80 >> db_trace_self() at db_trace_self >> pc = 0xc0d2807c lr = 0xc0941d84 (db_hex2dec+0x4d8) >> sp = 0xde472840 fp = 0xde472858 >> r10 = 0xc0e59e60 >> db_hex2dec() at db_hex2dec+0x4d8 >> pc = 0xc0941d84 lr = 0xc09416f4 (db_command_loop+0x2f4) >> sp = 0xde472860 fp = 0xde472900 >> r4 = 0x00000000 r5 = 0x00000000 >> r6 = 0xc0d9e9fc >> db_command_loop() at db_command_loop+0x2f4 >> pc = 0xc09416f4 lr = 0xc0941450 (db_command_loop+0x50) >> sp = 0xde472908 fp = 0xde472918 >> r4 = 0xc0d7bae3 r5 = 0xc0d98378 >> r6 = 0xc0ebbdb8 r7 = 0xde472b48 >> r8 = 0xde472b48 r9 = 0xc0eb0614 >> r10 = 0xc0e5a0d0 >> db_command_loop() at db_command_loop+0x50 >> pc = 0xc0941450 lr = 0xc0943e68 (X_db_symbol_values+0x254) >> sp = 0xde472920 fp = 0xde472a40 >> r4 = 0x00000000 r5 = 0xde472928 >> r6 = 0xc0eb0638 >> X_db_symbol_values() at X_db_symbol_values+0x254 >> pc = 0xc0943e68 lr = 0xc0adf580 (kdb_trap+0xd4) >> sp = 0xde472a48 fp = 0xde472a68 >> r4 = 0x00000000 r5 = 0x00000001 >> r6 = 0xc0eb0638 r7 = 0xde472b48 >> kdb_trap() at kdb_trap+0xd4 >> pc = 0xc0adf580 lr = 0xc0d38810 (data_abort_handler+0x640) >> sp = 0xde472a70 fp = 0xde472a88 >> r4 = 0xde472b48 r5 = 0x600000d3 >> r6 = 0xde472bc4 r7 = 0x00000001 >> r8 = 0xde472b48 r9 = 0xde472bc4 >> r10 = 0x00000001 >> data_abort_handler() at data_abort_handler+0x640 >> pc = 0xc0d38810 lr = 0xc0d39208 (swi_handler+0x548) >> sp = 0xde472a90 fp = 0xde472a98 >> r4 = 0x00000001 r5 = 0xc3598c80 >> r6 = 0xc3598c80 r7 = 0xc0d39194 >> swi_handler() at swi_handler+0x548 >> pc = 0xc0d39208 lr = 0xc0d3854c (data_abort_handler+0x37c) >> sp = 0xde472aa0 fp = 0xde472b40 >> data_abort_handler() at data_abort_handler+0x37c >> pc = 0xc0d3854c lr = 0xc0d29924 (exception_exit) >> sp = 0xde472b48 fp = 0xde472bb4 >> r4 = 0xffffffff r5 = 0xffff1004 >> r6 = 0xc3598c80 r7 = 0xc0e7c830 >> r8 = 0x798ee230 r9 = 0x00000015 >> r10 = 0x00000001 >> exception_exit() at exception_exit >> pc = 0xc0d29924 lr = 0xc0d44c6c (DELAY+0x764) >> sp = 0xde472b94 fp = 0xde472bb4 >> r0 = 0x001e48e5 r1 = 0xffffffff >> r2 = 0x0000001c r3 = 0x001e48e5 >> r4 = 0xde472bbc r5 = 0xde472bc4 >> r6 = 0xc3598c80 r7 = 0xc0e7c830 >> r8 = 0x798ee230 r9 = 0x00000015 >> r10 = 0x00000001 r12 = 0xc0d240e8 >> binuptime() at binuptime+0x74 >> pc = 0xc0ab8268 lr = 0xc0d503ec (cpu_initclocks_bsp+0x41c) >> sp = 0xde472bbc fp = 0xde472bd4 >> r4 = 0x00000003 r5 = 0x00033940 >> r6 = 0xc3598c80 r7 = 0xc0d92761 >> r8 = 0xc0d9273a r9 = 0x00000000 >> r10 = 0xc3586ac0 >> cpu_initclocks_bsp() at cpu_initclocks_bsp+0x41c >> pc = 0xc0d503ec lr = 0xc0d44af8 (DELAY+0x5f0) >> sp = 0xde472bdc fp = 0xde472be4 >> r4 = 0xc352d400 r5 = 0xde472c34 >> DELAY() at DELAY+0x5f0 >> pc = 0xc0d44af8 lr = 0xc0a82468 (intr_event_handle+0x88) >> sp = 0xde472bec fp = 0xde472c14 >> r4 = 0xc341e400 >> intr_event_handle() at intr_event_handle+0x88 >> pc = 0xc0a82468 lr = 0xc0d2acac (arm_handler_execute+0x54) >> sp = 0xde472c1c fp = 0xde472c2c >> r4 = 0xde472c34 r5 = 0x00000001 >> r6 = 0xc0e97c40 r7 = 0xc0eb90d8 >> r8 = 0xc352c200 r9 = 0xc37a1000 >> r10 = 0xc37a1000 >> arm_handler_execute() at arm_handler_execute+0x54 >> pc = 0xc0d2acac lr = 0xc0d3e2dc (irq_entry+0x94) >> sp = 0xde472c34 fp = 0xde472c90 >> r4 = 0x00000000 r5 = 0xffff1004 >> r6 = 0xc0ebbc50 r7 = 0x00004c5f >> irq_entry() at irq_entry+0x94 >> pc = 0xc0d3e2dc lr = 0xc0d3e2dc (irq_entry+0x94) >> sp = 0xde472c34 fp = 0xde472c90 >> Unwind failure (no registers changed) >> db> >> >> >> Usually this is the USB bit that follows the usbus0 line: >> >> ugen0.1: <Marvell> at usbus0 >> uhub0: <Marvell EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0 >> WARNING: DIAGNOSTIC option enabled, expect reduced performance. >> uhub0: 1 port with 1 removable, self powered >> Root mount waiting for: usbus0 >> ugen0.2: <vendor 0x1a40> at usbus0 >> uhub1: <vendor 0x1a40 USB 2.0 Hub, class 9/0, rev 2.00/1.11, addr 2> on >> usbus0 >> Root mount waiting for: usbus0 >> uhub1: 4 ports with 4 removable, self powered >> Root mount waiting for: usbus0 >> Root mount waiting for: usbus0 >> ugen0.3: <vendor 0x05e3> at usbus0 >> umass0: <vendor 0x05e3 USB Storage, class 0/0, rev 2.00/99.10, addr 3> >> on usbus0 >> da0 at umass-sim0 bus 0 scbus2 target 0 lun 0 >> da0: <Generic STORAGE DEVICE 9910> Removable Direct Access SCSI-0 device >> da0: 40.000MB/s transfers >> da0: 1876MB (3842048 512 byte sectors: 255H 63S/T 239C) >> da0: quirks=0x3<NO_SYNC_CACHE,NO_6_BYTE> >> da1 at umass-sim0 bus 0 scbus2 target 0 lun 1 >> da1: <Generic STORAGE DEVICE 9910> Removable Direct Access SCSI-0 device >> da1: 40.000MB/s transfers >> da1: 974MB (1995264 512 byte sectors: 64H 32S/T 974C) >> da1: quirks=0x3<NO_SYNC_CACHE,NO_6_BYTE> >> Root mount waiting for: usbus0 >> ugen0.4: <USBest Technology> at usbus0 >> umass1: <USBest Technology USB Mass Storage Device, class 0/0, rev >> 2.00/1.00, a0 >> da2 at umass-sim1 bus 1 scbus3 target 0 lun 0 >> da2: <USB USB2FlashStorage 0.00> Removable Direct Access SCSI-2 device >> da2: 40.000MB/s transfers >> da2: 1967MB (4030463 512 byte sectors: 255H 63S/T 250C) >> da2: quirks=0x2<NO_6_BYTE> >> ugen0.5: <vendor 0x0d8c> at usbus0 >> >> Currently trying to find where the issue could be. >> >> Mat > This is a strange abort, and if it's usb-related that's only accidental > I think. It says it's an alignment fault, but the fault address reg has > a 32-bit aligned value in it. That makes me think it must be an > ldrd/strd instruction (requires 64-bit alignment) that's faulting. > > Is this compiled with clang? I think it emits such instructions and gcc > doesn't. Except I don't think clang should use those instructions on > armv5, because of the alignment requirements. > > -- Ian Hi Ian, sorry, forgot to add that contrary to the WLI-UC-GNM problem, I'm still compiling using gcc on FreeBSD 9.1 The abort is completely reproducible each time at the same place... I've tried to recompile the kernel a few times, also changing the root device, but it gets stuck there and aborts.. I actually have no clue on what's going on here. Any hints on how to get more information about this? Cheers, Mat
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51F9C81A.7000106>