I have ported freescale linux PDK 2.6.31 to my borad with imx35. This is successful. I have 32MB RAM in my system. I am trying to transfer a large file(32MB) to the NOR flash of the board using MFGTool. An userspace application running on the board is responsible for receiving the file and flash it into NOR flash.
The strategy is like below -
i) The appliaction is waiting on read system calll on utp device node(in my case it is /dev/utp)
ii) Once it is unblocked from read() [i.e. read returns] it returns the size of data read is 64KB and I have 64KB data in my read buffer.
iii) I write this 64KB data to the NOR flash.
iv) Again it goes to read the same chunk.
It works fine when I try to transfer a small file (e.g.- 4-5MB) but when I try to tranfer a large file(e.g.- 30MB) after running the loop(step i to iv ) for 4-5 times i could see a crash from the USB gadget driver side.
The crash log is given below. Could anyone please help me on this.
CPU: 0 Not tainted (2.6.31-207-g7286c01 #74)
PC is at fsg_main_thread+0xf18/0x219c
LR is at __alloc_pages_nodemask+0x4d4/0x538
pc : [<c01a5a18>] lr : [<c0090184>] psr: 60000113
sp : c1bb5ee0 ip : 000016c3 fp : c1bfea80
r10: 00000062 r9 : 00000000 r8 : 00000000
r7 : c1bb4000 r6 : 00000000 r5 : 00000000 r4 : c1907100
r3 : 00000000 r2 : 000080d0 r1 : 00010019 r0 : 00000000
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 00c5387d Table: 81cd8008 DAC: 00000017
Process file-storage-ga (pid: 856, stack limit = 0xc1bb4268)
Stack: (0xc1bb5ee0 to 0xc1bb6000)
5ee0: c190717c c00c77f8 00000000 00000001 00000000 c1bb5f4c c1818180 c1907104
5f00: c1bb5f98 0000033a c1824000 0000000a 00000000 00000000 00000000 00000000
5f20: c02d3a18 c1c6a600 c1824000 c02d3a18 c1c6a600 c02d3a18 c1c6a630 c1907100
5f40: c02ec38c ffffffff c1826000 00000002 c1bb5fcc c0061d40 00000000 00000002
5f60: c1826000 c182601c c1c6a600 00000017 c1824000 c0061d78 c02dce50 c1c6a600
5f80: c1bb5fcc c020b3f4 c1bb5fb4 00000000 c1c6a600 c005d1b8 c1bb5f98 c1bb5f98
5fa0: c1907100 00000000 00000000 c1827f10 c1bb5fd4 c01a4b00 c1907100 00000000
5fc0: 00000000 00000000 00000000 c005cd78 00000000 00000000 c1bb5fd8 c1bb5fd8
5fe0: 00000000 00000000 00000000 00000000 00000000 c00237a0 47e247e2 47e247e2
[<c01a5a18>] (fsg_main_thread+0xf18/0x219c) from [<c005cd78>] (kthread+0x78/0x80
[<c005cd78>] (kthread+0x78/0x80) from [<c00237a0>] (kernel_thread_exit+0x0/0x8)
Code: e59400c4 ebfff6c5 e5d430c4 e3a05000 (e5c03010)
---[ end trace 6c09729ef6659065 ]-
I am not sure if it has to be with the OS version & MFGtool, I remember we had a issue flashing boards with MFGtool on Windows 7 64bits.
Can you try the same test using other Windows OS? XP or W7 32bits?