From: "Eric Bénard" <eric@eukrea.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: "barebox@lists.infradead.org" <barebox@lists.infradead.org>
Subject: Re: magicvar breaks tftp (or ramfs)
Date: Tue, 29 May 2012 10:48:44 +0200 [thread overview]
Message-ID: <20120529104844.4df2752d@eb-e6520> (raw)
In-Reply-To: <20111213192606.GA27267@pengutronix.de>
[-- Attachment #1: Type: text/plain, Size: 1945 bytes --]
Hi Sascha,
Le Tue, 13 Dec 2011 20:26:06 +0100,
Sascha Hauer <s.hauer@pengutronix.de> a écrit :
> On Tue, Dec 13, 2011 at 04:09:53PM +0100, Eric Bénard wrote:
> > Hi Sascha,
> >
> > Le 13/12/2011 10:48, Sascha Hauer a écrit :
> > >Sometimes it helps to enable
> > >
> > >CONFIG_KALLSYMS
> > >CONFIG_ARM_UNWIND
> > >
> > >to get a proper stack trace
> > >
> > Thanks for the hint I was not aware barebox also had these options.
> >
> > The culprit is show_progress :
> > [<87f1c340>] (show_progress+0x14/0xf0) from [<87f1e590>] (tftp_send+0x194/0x1e4)
> > [<87f1e590>] (tftp_send+0x194/0x1e4) from [<87f1e784>] (do_tftpb+0x1a4/0x2d0)
> > [<87f1e784>] (do_tftpb+0x1a4/0x2d0) from [<87f065e0>] (execute_command+0x30/0x60)
> > [<87f065e0>] (execute_command+0x30/0x60) from [<87f03d4c>]
> > (run_list_real+0x7b4/0x894)
> > [<87f03d4c>] (run_list_real+0x7b4/0x894) from [<87f03350>]
> > (parse_stream_outer+0x104/0x1e4)
> > [<87f03350>] (parse_stream_outer+0x104/0x1e4) from [<87f03ed8>]
> > (run_shell+0x3c/0x5c)
> > [<87f03ed8>] (run_shell+0x3c/0x5c) from [<87f07870>] (start_barebox+0xe0/0x11c)
> > [<87f07870>] (start_barebox+0xe0/0x11c) from [<800011d8>] (0x800011d8)
> >
> > And I get the problem with
> > arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2011.03-41) 4.5.2
> > it works with :
> > arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2010q1-202) 4.4.1
> >
> > So that seems to be a toolchain issue (adding some printf in
> > show_progress make the problem disappear ...).
>
> I really want to believe this, but I wouldn't be so sure. I think
> it's more likely that you found a bug in barebox that your new
> toolchain happens to trigger. Could you provide the objdump of
> show_progress along with a complete stack trace including register
> contents?
>
here is the full trace.
There is something strange as it seems a wrong value gets loaded into R3
leading to the error.
Eric
[-- Attachment #2: log_barebox.txt --]
[-- Type: text/plain, Size: 5723 bytes --]
TFTP from server 192.168.1.15 ('eukrea-cpuimx35/uImage-eukrea-cpuimx35.bin' -> '/dev/nand0.kernel.bb')
unable to handle paging request at address 0x87f2eee6
pc : [<87f1b204>] lr : [<87f1f8b4>]
sp : 876ff9c0 ip : 87f3a7c8 fp : 00000000
r10: 00000000 r9 : 876ffbdc r8 : 87f3d7b8
r7 : 87f3d7dc r6 : 87f3d7d0 r5 : 877d4887 r4 : 00000000
r3 : 87f2eee6 r2 : ef46ff12 r1 : 00000002 r0 : 00000000
Flags: nZCv IRQs off FIQs off Mode SVC_32
[<87f1b204>] (show_progress+0x18/0x11c) from [<87f1f8b4>] (tftp_send+0x19c/0x1f0)
[<87f1f8b4>] (tftp_send+0x19c/0x1f0) from [<87f1fda8>] (do_tftpb+0x1ac/0x300)
[<87f1fda8>] (do_tftpb+0x1ac/0x300) from [<87f068d8>] (execute_command+0x38/0x7c)
[<87f068d8>] (execute_command+0x38/0x7c) from [<87f039c4>] (run_list_real+0x840/0x92c)
[<87f039c4>] (run_list_real+0x840/0x92c) from [<87f03bf4>] (parse_stream_outer+0x144/0x240)
[<87f03bf4>] (parse_stream_outer+0x144/0x240) from [<87f030fc>] (parse_string_outer+0xe0/0x104)
[<87f030fc>] (parse_string_outer+0xe0/0x104) from [<87f037e0>] (run_list_real+0x65c/0x92c)
[<87f037e0>] (run_list_real+0x65c/0x92c) from [<87f03bf4>] (parse_stream_outer+0x144/0x240)
[<87f03bf4>] (parse_stream_outer+0x144/0x240) from [<87f030b8>] (parse_string_outer+0x9c/0x104)
[<87f030b8>] (parse_string_outer+0x9c/0x104) from [<87f03160>] (source_script+0x40/0x64)
[<87f03160>] (source_script+0x40/0x64) from [<87f03d4c>] (do_source+0x5c/0x70)
[<87f03d4c>] (do_source+0x5c/0x70) from [<87f068d8>] (execute_command+0x38/0x7c)
[<87f068d8>] (execute_command+0x38/0x7c) from [<87f039c4>] (run_list_real+0x840/0x92c)
[<87f039c4>] (run_list_real+0x840/0x92c) from [<87f03bf4>] (parse_stream_outer+0x144/0x240)
[<87f03bf4>] (parse_stream_outer+0x144/0x240) from [<87f030b8>] (parse_string_outer+0x9c/0x104)
[<87f030b8>] (parse_string_outer+0x9c/0x104) from [<87f03160>] (source_script+0x40/0x64)
[<87f03160>] (source_script+0x40/0x64) from [<87f039a4>] (run_list_real+0x820/0x92c)
[<87f039a4>] (run_list_real+0x820/0x92c) from [<87f03bf4>] (parse_stream_outer+0x144/0x240)
[<87f03bf4>] (parse_stream_outer+0x144/0x240) from [<87f03fb8>] (run_shell+0x3c/0x5c)
[<87f03fb8>] (run_shell+0x3c/0x5c) from [<87f08038>] (start_barebox+0xd4/0x110)
[<87f08038>] (start_barebox+0xd4/0x110) from [<8000106c>] (0x8000106c)
[<87f27ff0>] (unwind_backtrace+0x0/0x90) from [<87f18404>] (panic+0x28/0x48)
[<87f18404>] (panic+0x28/0x48) from [<87f284bc>] (do_exception+0x10/0x14)
[<87f284bc>] (do_exception+0x10/0x14) from [<87f28548>] (do_data_abort+0x2c/0x38)
[<87f28548>] (do_data_abort+0x2c/0x38) from [<87f28210>] (data_abort+0x50/0x60)
87f1b1ec <show_progress>:
87f1b1ec: e92d407f push {r0, r1, r2, r3, r4, r5, r6, lr}
87f1b1f0: e1a04000 mov r4, r0
87f1b1f4: e59f30f0 ldr r3, [pc, #240] ; 87f1b2ec <show_progress+0x100>
87f1b1f8: e3540000 cmp r4, #0
87f1b1fc: e5930000 ldr r0, [r3]
87f1b200: e58d0008 str r0, [sp, #8]
87f1b204: e5d33004 ldrb r3, [r3, #4]
87f1b208: e5cd300c strb r3, [sp, #12]
87f1b20c: aa00000a bge 87f1b23c <show_progress+0x50>
87f1b210: e59f30d8 ldr r3, [pc, #216] ; 87f1b2f0 <show_progress+0x104>
87f1b214: e28d0010 add r0, sp, #16
87f1b218: e5932000 ldr r2, [r3]
87f1b21c: e2021003 and r1, r2, #3
87f1b220: e0801001 add r1, r0, r1
87f1b224: e2822001 add r2, r2, #1
87f1b228: e5511008 ldrb r1, [r1, #-8]
87f1b22c: e5832000 str r2, [r3]
87f1b230: e59f00bc ldr r0, [pc, #188] ; 87f1b2f4 <show_progress+0x108>
87f1b234: ebffaf5a bl 87f06fa4 <printf>
87f1b238: ea00002a b 87f1b2e8 <show_progress+0xfc>
87f1b23c: e59f30b4 ldr r3, [pc, #180] ; 87f1b2f8 <show_progress+0x10c>
87f1b240: e593c000 ldr ip, [r3]
87f1b244: e35c0000 cmp ip, #0
87f1b248: 0a000022 beq 87f1b2d8 <show_progress+0xec>
87f1b24c: e1a03fc4 asr r3, r4, #31
87f1b250: e1a00304 lsl r0, r4, #6
87f1b254: e1a01303 lsl r1, r3, #6
87f1b258: e0900004 adds r0, r0, r4
87f1b25c: e1811d24 orr r1, r1, r4, lsr #26
87f1b260: e0a11003 adc r1, r1, r3
87f1b264: e1a04001 mov r4, r1
87f1b268: e3a05000 mov r5, #0
87f1b26c: e1943005 orrs r3, r4, r5
87f1b270: e88d0003 stm sp, {r0, r1}
87f1b274: 1a000003 bne 87f1b288 <show_progress+0x9c>
87f1b278: e1a0100c mov r1, ip
87f1b27c: eb002e30 bl 87f26b44 <__aeabi_uidiv>
87f1b280: e88d0021 stm sp, {r0, r5}
87f1b284: ea000002 b 87f1b294 <show_progress+0xa8>
87f1b288: e1a0000d mov r0, sp
87f1b28c: e1a0100c mov r1, ip
87f1b290: ebfff463 bl 87f18424 <__div64_32>
87f1b294: e59d4000 ldr r4, [sp]
87f1b298: ea00000e b 87f1b2d8 <show_progress+0xec>
87f1b29c: e1a00006 mov r0, r6
87f1b2a0: e3a01041 mov r1, #65 ; 0x41
87f1b2a4: eb002edc bl 87f26e1c <__aeabi_idivmod>
87f1b2a8: e3510000 cmp r1, #0
87f1b2ac: 1a000003 bne 87f1b2c0 <show_progress+0xd4>
87f1b2b0: e3560000 cmp r6, #0
87f1b2b4: 0a000001 beq 87f1b2c0 <show_progress+0xd4>
87f1b2b8: e59f003c ldr r0, [pc, #60] ; 87f1b2fc <show_progress+0x110>
87f1b2bc: ebffaf38 bl 87f06fa4 <printf>
87f1b2c0: e59f0038 ldr r0, [pc, #56] ; 87f1b300 <show_progress+0x114>
87f1b2c4: ebffaf36 bl 87f06fa4 <printf>
87f1b2c8: e5953000 ldr r3, [r5]
87f1b2cc: e2833001 add r3, r3, #1
87f1b2d0: e5853000 str r3, [r5]
87f1b2d4: ea000000 b 87f1b2dc <show_progress+0xf0>
87f1b2d8: e59f5024 ldr r5, [pc, #36] ; 87f1b304 <show_progress+0x118>
87f1b2dc: e5956000 ldr r6, [r5]
87f1b2e0: e1560004 cmp r6, r4
87f1b2e4: baffffec blt 87f1b29c <show_progress+0xb0>
87f1b2e8: e8bd807f pop {r0, r1, r2, r3, r4, r5, r6, pc}
87f1b2ec: 87f30e2e ldrbhi r0, [r3, lr, lsr #28]!
87f1b2f0: 87f3e90c ldrbhi lr, [r3, ip, lsl #18]!
87f1b2f4: 87f30e27 ldrbhi r0, [r3, r7, lsr #28]!
87f1b2f8: 87f3e908 ldrbhi lr, [r3, r8, lsl #18]!
87f1b2fc: 87f30e2b ldrbhi r0, [r3, fp, lsr #28]!
87f1b300: 87f28f2e ldrbhi r8, [r2, lr, lsr #30]!
87f1b304: 87f3e910 ; <UNDEFINED> instruction: 0x87f3e910
[-- Attachment #3: Type: text/plain, Size: 149 bytes --]
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2012-05-29 8:48 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-12 16:34 magicvar breaks tftp (or ramfs) Eric Bénard
2011-12-12 16:51 ` Eric Bénard
2011-12-12 21:16 ` Eric Bénard
2011-12-13 9:48 ` Sascha Hauer
2011-12-13 15:09 ` Eric Bénard
2011-12-13 19:26 ` Sascha Hauer
2012-05-29 8:48 ` Eric Bénard [this message]
2012-05-29 10:48 ` Eric Bénard
2012-05-29 16:23 ` Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120529104844.4df2752d@eb-e6520 \
--to=eric@eukrea.com \
--cc=barebox@lists.infradead.org \
--cc=s.hauer@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.