* magicvar breaks tftp (or ramfs) @ 2011-12-12 16:34 Eric Bénard 2011-12-12 16:51 ` Eric Bénard 2011-12-12 21:16 ` Eric Bénard 0 siblings, 2 replies; 9+ messages in thread From: Eric Bénard @ 2011-12-12 16:34 UTC (permalink / raw) To: barebox Hi Sascha, while upgrading to lastet head, I started to get "unable to handle paging request" when transfering file using tftp (either to nand or to ram). On master it always fail. On 2011.12 : it works (both configured with make eukrea_cpuimx35_defconfig and tested on an i.MX35 board) *** HEAD at 905f3ccbd4e074d99461bd547dad63a04a9abf42 : barebox@Eukrea CPUIMX35:/ version barebox 2011.12.0-00129-g905f3cc (Dec 12 2011 - 17:33:10) barebox@Eukrea CPUIMX35:/ dhcp phy0: Link is up - 100/Full DHCP client bound to address 192.168.1.151 barebox@Eukrea CPUIMX35:/ tftp logo.bmp.lzo TFTP from server 192.168.1.15 ('logo.bmp.lzo' -> 'logo.bmp.lzo') unable to handle paging request at address 0x87f2a919 pc : [<87f1c064>] lr : [<87f1e298>] sp : 876ffdfc ip : 00000016 fp : 00000000 r10: 876fff58 r9 : 00000000 r8 : 87f2abd5 r7 : 87f30b58 r6 : 877944a8 r5 : 87794689 r4 : 00000000 r3 : 87f2a919 r2 : 87f2ec74 r1 : 00000001 r0 : 00000000 Flags: nzcv IRQs off FIQs off Mode SVC_32 *** 2011.12 : barebox@Eukrea CPUIMX35:/ version barebox 2011.12.0 (Dec 12 2011 - 17:30:49) barebox@Eukrea CPUIMX35:/ dhcp phy0: Link is up - 100/Full DHCP client bound to address 192.168.1.151 barebox@Eukrea CPUIMX35:/ tftp logo.bmp.lzo TFTP from server 192.168.1.15 ('logo.bmp.lzo' -> 'logo.bmp.lzo') # Any idea what could be wrong here ? Thanks Eric _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: magicvar breaks tftp (or ramfs) 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 1 sibling, 0 replies; 9+ messages in thread From: Eric Bénard @ 2011-12-12 16:51 UTC (permalink / raw) To: barebox Le 12/12/2011 17:34, Eric Bénard a écrit : > Any idea what could be wrong here ? > at least my message subject is wrong as the problem has nothing to see with magicvar (I was suspecting this at the begining of my tests). Eric _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: magicvar breaks tftp (or ramfs) 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 1 sibling, 1 reply; 9+ messages in thread From: Eric Bénard @ 2011-12-12 21:16 UTC (permalink / raw) To: barebox Hi, Le 12/12/2011 17:34, Eric Bénard a écrit : > while upgrading to lastet head, I started to get "unable to handle paging > request" when transfering file using tftp (either to nand or to ram). > > On master it always fail. On 2011.12 : it works (both configured with make > eukrea_cpuimx35_defconfig and tested on an i.MX35 board) > > .../... > > Any idea what could be wrong here ? > OK I fail to reproduce the problem on an i.MX51 and on an i.MX25 so the problem is not in barebox generic code. Eric _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: magicvar breaks tftp (or ramfs) 2011-12-12 21:16 ` Eric Bénard @ 2011-12-13 9:48 ` Sascha Hauer 2011-12-13 15:09 ` Eric Bénard 0 siblings, 1 reply; 9+ messages in thread From: Sascha Hauer @ 2011-12-13 9:48 UTC (permalink / raw) To: Eric Bénard; +Cc: barebox On Mon, Dec 12, 2011 at 10:16:00PM +0100, Eric Bénard wrote: > Hi, > > Le 12/12/2011 17:34, Eric Bénard a écrit : > >while upgrading to lastet head, I started to get "unable to handle paging > >request" when transfering file using tftp (either to nand or to ram). > > > >On master it always fail. On 2011.12 : it works (both configured with make > >eukrea_cpuimx35_defconfig and tested on an i.MX35 board) > > > > .../... > > > >Any idea what could be wrong here ? > > > OK I fail to reproduce the problem on an i.MX51 and on an i.MX25 so > the problem is not in barebox generic code. Those thing are hard to track down :( Sometimes it helps to enable CONFIG_KALLSYMS CONFIG_ARM_UNWIND to get a proper stack trace Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: magicvar breaks tftp (or ramfs) 2011-12-13 9:48 ` Sascha Hauer @ 2011-12-13 15:09 ` Eric Bénard 2011-12-13 19:26 ` Sascha Hauer 0 siblings, 1 reply; 9+ messages in thread From: Eric Bénard @ 2011-12-13 15:09 UTC (permalink / raw) To: Sascha Hauer; +Cc: barebox 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 ...). Eric _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: magicvar breaks tftp (or ramfs) 2011-12-13 15:09 ` Eric Bénard @ 2011-12-13 19:26 ` Sascha Hauer 2012-05-29 8:48 ` Eric Bénard 0 siblings, 1 reply; 9+ messages in thread From: Sascha Hauer @ 2011-12-13 19:26 UTC (permalink / raw) To: Eric Bénard; +Cc: barebox 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? Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: magicvar breaks tftp (or ramfs) 2011-12-13 19:26 ` Sascha Hauer @ 2012-05-29 8:48 ` Eric Bénard 2012-05-29 10:48 ` Eric Bénard 2012-05-29 16:23 ` Sascha Hauer 0 siblings, 2 replies; 9+ messages in thread From: Eric Bénard @ 2012-05-29 8:48 UTC (permalink / raw) To: Sascha Hauer; +Cc: barebox [-- 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 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: magicvar breaks tftp (or ramfs) 2012-05-29 8:48 ` Eric Bénard @ 2012-05-29 10:48 ` Eric Bénard 2012-05-29 16:23 ` Sascha Hauer 1 sibling, 0 replies; 9+ messages in thread From: Eric Bénard @ 2012-05-29 10:48 UTC (permalink / raw) To: Eric Bénard; +Cc: barebox Le Tue, 29 May 2012 10:48:44 +0200, Eric Bénard <eric@eukrea.com> a écrit : > here is the full trace. > There is something strange as it seems a wrong value gets loaded into R3 > leading to the error. > and to be complete : commenting out printf("%c\b", spinchr[spin++ % (sizeof(spinchr) - 1)]); in show_progress.c makes the problem disapear. Eric _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: magicvar breaks tftp (or ramfs) 2012-05-29 8:48 ` Eric Bénard 2012-05-29 10:48 ` Eric Bénard @ 2012-05-29 16:23 ` Sascha Hauer 1 sibling, 0 replies; 9+ messages in thread From: Sascha Hauer @ 2012-05-29 16:23 UTC (permalink / raw) To: Eric Bénard; +Cc: barebox On Tue, May 29, 2012 at 10:48:44AM +0200, Eric Bénard wrote: > Hi Sascha, > > > > > 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. I recently found a bug that could match this description. The following patch fixes this, but currently I don't now what other places might be affected. It's a matter of reviewing all places where dma_inv_range is used. Does the problem persist when you turn off the MMU? Sascha From f11b34785ba3d33854c752e81c43de0271d19d35 Mon Sep 17 00:00:00 2001 From: Sascha Hauer <s.hauer@pengutronix.de> Date: Thu, 24 May 2012 16:02:37 +0200 Subject: [PATCH] USB gadget fsl: request cacheline aligned buffer The fsl udc driver allocates a buffer for small requests. The driver then calls dma_inv_range later on it. This buffer happens to be not cacheline aligned which means that a dma_inv_range can corrupt other memory around the buffer. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> --- drivers/usb/gadget/fsl_udc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/usb/gadget/fsl_udc.c b/drivers/usb/gadget/fsl_udc.c index 5b64ec2..96cdb30 100644 --- a/drivers/usb/gadget/fsl_udc.c +++ b/drivers/usb/gadget/fsl_udc.c @@ -2109,7 +2109,8 @@ static int struct_udc_setup(struct fsl_udc *udc, udc->status_req = container_of(fsl_alloc_request(NULL), struct fsl_req, req); /* allocate a small amount of memory to get valid address */ - udc->status_req->req.buf = xmalloc(8); + udc->status_req->req.buf = xmemalign(4096, 4096); + udc->status_req->req.length = 8; udc->resume_state = USB_STATE_NOTATTACHED; udc->usb_state = USB_STATE_POWERED; udc->ep0_dir = 0; -- 1.7.10 -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-05-29 16:23 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 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 2012-05-29 10:48 ` Eric Bénard 2012-05-29 16:23 ` Sascha Hauer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox