Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Nov 2015 20:12:54 +0100
From:      Hans Petter Selasky <hps@selasky.org>
To:        Lars Engels <lars.engels@0x20.net>
Cc:        arm@freebsd.org
Subject:   Re: [Banana Pi] Fatal kernel mode data abort: 'Alignment Fault' on read
Message-ID:  <563BAA36.60208@selasky.org>
In-Reply-To: <20151105153423.GS66179@e-new.0x20.net>
References:  <20151105104859.GQ66179@e-new.0x20.net> <563B372E.20607@selasky.org> <20151105120950.GR66179@e-new.0x20.net> <563B4813.1060403@selasky.org> <20151105153423.GS66179@e-new.0x20.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 11/05/15 16:34, Lars Engels wrote:
> On Thu, Nov 05, 2015 at 01:14:11PM +0100, Hans Petter Selasky wrote:
>> On 11/05/15 13:09, Lars Engels wrote:
>>> On Thu, Nov 05, 2015 at 12:02:06PM +0100, Hans Petter Selasky wrote:
>>>> On 11/05/15 11:48, Lars Engels wrote:
>>>>> Using FreeBSD-armv6-11.0-A20-290366.img I can reproducible crash the
>>>>> kernel by USB-tethering the Banana Pi to a mobile phone and run "
>>>>> pkg bootstrap". It looks like this:
>>>>>
>>>>> root@bananapi:/ # pkg bootstrap
>>>>> The package management tool is not yet installed on your system.
>>>>> Do you want to fetch and install it now? [y/N]: y
>>>>> Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:11:armv6/latest, please wait...
>>>>> Fatal kernel mode data abort: 'Alignment Fault' on read
>>>>> trapframe: 0xea576a90
>>>>> FSR=00000001, FAR=c43a1d6e, spsr=60000113
>>>>> r0 =00000014, r1 =0000003c, r2 =0000003c, r3 =00000903
>>>>> r4 =00000000, r5 =c43a1d6a, r6 =00000028, r7 =c43a1d56
>>>>> r8 =00000000, r9 =00000014, r10=00000028, r11=ea576bf8
>>>>> r12=00000000, ssp=ea576b20, slr=c061aba4, pc =c04f68e8
>>>>>
>>>>> [ thread pid 13 tid 100024 ]
>>>>> Stopped at      tcp_input+0x820:        ldr     r0, [r5, #0x004]
>>>>
>>>> Hi,
>>>>
>>>> Could you "objdump -Dx --source /boot/kernel/kernel" and figure out
>>>> which code line "tcp_input+0x820" corresponds to?
>>>
>>> You mean like "objdump ... | grep -C10 tcp_input+0x820"?
>>>
>>> I started that half an hour ago and it's still not finished.
>>>
>>
>> No, you need to find where tcp_input starts, by less-ing it, then add
>> 0x820 to that address and then verify that the assembly instruction
>> there matches.
>
> Ok, I have no idea what I am doing, but here's what I did:
>   # objdump -Dx --source /boot/kernel/kernel --start-address="0xc04f51c8" --stop-address="0xC04F59E8"
>
> The result is a 1,3MB text file at:
> http://bsd-geek.de/FreeBSD/objdump.txt
>
> Can you see anything there?
>

Hi,

I cannot find "ldr r0, [r5, #4]" at the given location, though if that 
is the faulting instruction, it might be related to an unaligned SACK 
option. Can you test a new kernel with a patch?

--HPS



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