MFG Tool Crash in updater_ivt.sb image - page allociation failure

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MFG Tool Crash in updater_ivt.sb image - page allociation failure

Jump to solution
1,752 Views
cgeks
Contributor II

I am Programming my i.mx28 board with the MFG-Tool.

Quite often the programming failes with a page allocation failure like shown below. For quite a while it works fine and it is printing the usual "g_file_storage gadget: high speed config #1". But now and then it crashes.

I am using the updater_ivt.sb image for programming that is delivered with the example i.mx profile in MFG-Tool. The result is the same in both MFGtools-Rel-1.6.2.032 and MFGtools-Rel-1.6.2.048.

As far as i understood MFG Tool is just relaying the data input from USB to Flash.

Has anyone seen this before and knows how to solve that or how to tacle that? Is there a more recent version of the MFG-Tools or the updater_ivt.sb file? Mine is from 2011-09-14

Thanks for any support.

This is a snipped from my ucl.xml file i am using

<UCL>

<CFG>

<STATE name="Recovery" dev="IMX28"/>

<STATE name="Updater"  dev="Updater" />

<DEV name="IMX28" vid="15A2" pid="004F"/>

<DEV name="Updater" vid="066F" pid="37FF" />

</CFG>

<LIST name="complete update" desc="Install hd.img to eMMC">

<CMD type="boot" body="Recovery" file="updater_ivt.sb">Booting update firmware</CMD>

<CMD type="find" body="Updater" timeout="180"/>

<CMD type="push" body="mknod block,mmcblk0,/dev/mmcblk0,block"/>

<CMD type="push" body="pipe dd of=/dev/mmcblk0 bs=16M" file="hd.img">Sending and writing image</CMD>

<CMD type="push" body="$ echo Update Complete!">Done</CMD>

</LIST>

This is the e

file-storage-ga: page allocation failure. order:5, mode:0xc0d0

Backtrace:

[<c0027674>] (dump_backtrace+0x0/0x110) from [<c0027ba8>] (dump_stack+0x18/0x1c)

r6:00000005 r5:0000c0d0 r4:c7c81140

[<c0027b90>] (dump_stack+0x0/0x1c) from [<c0078ca0>] (__alloc_pages_nodemask+0x510/0x570)

[<c0078790>] (__alloc_pages_nodemask+0x0/0x570) from [<c0078d18>] (__get_free_pages+0x18/0x44)

[<c0078d00>] (__get_free_pages+0x0/0x44) from [<c0095fc8>] (__kmalloc+0x40/0xec)

[<c0095f88>] (__kmalloc+0x0/0xec) from [<c01c2598>] (utp_user_data_alloc+0x1c/0x84)

r8:00001439 r7:c724b200 r6:00000001 r5:c724b2b0 r4:00010000

[<c01c257c>] (utp_user_data_alloc+0x0/0x84) from [<c01c3e1c>] (do_scsi_command+0x640/0x1678)

r7:c724b200 r6:00000001 r5:c724b2b0 r4:00000000

[<c01c37dc>] (do_scsi_command+0x0/0x1678) from [<c01c5d1c>] (fsg_main_thread+0x658/0x9e8)

[<c01c56c4>] (fsg_main_thread+0x0/0x9e8) from [<c0051c24>] (kthread+0x84/0x8c)

[<c0051ba0>] (kthread+0x0/0x8c) from [<c00406a8>] (do_exit+0x0/0x5c0)

r7:00000013 r6:c00406a8 r5:c0051ba0 r4:c7c27ed0

Mem-info:

DMA per-cpu:

CPU    0: hi: 0, btch:   1 usd:   0

Normal per-cpu:

CPU    0: hi: 42, btch:   7 usd:   0

active_anon:158 inactive_anon:160 isolated_anon:0

active_file:140 inactive_file:27373 isolated_file:0

unevictable:2155 dirty:4069 writeback:1510 unstable:0

free:511 slab_reclaimable:548 slab_unreclaimable:363

mapped:167 shmem:0 pagetables:13 bounce:0

DMA free:668kB min:180kB low:224kB high:268kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:11092kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:16256kB mlocked:0kB dirty:1472kB writeback:464kB mapped:0kB shmem:0kB slab_reclaimable:268kB slab_unreclaimable:44kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no

lowmem_reserve[]: 0 111 111

Normal free:1376kB min:1260kB low:1572kB high:1888kB active_anon:632kB inactive_anon:640kB active_file:560kB inactive_file:98400kB unevictable:8620kB isolated(anon):0kB isolated(file):0kB present:113792kB mlocked:0kB dirty:14804kB writeback:5576kB mapped:668kB shmem:0kB slab_reclaimable:1924kB slab_unreclaimable:1408kB kernel_stack:192kB pagetables:52kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no

lowmem_reserve[]: 0 0 0

DMA: 3*4kB 2*8kB 2*16kB 3*32kB 2*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 668kB

Normal: 0*4kB 0*8kB 0*16kB 1*32kB 1*64kB 2*128kB 0*256kB 2*512kB 0*1024kB 0*2048kB 0*4096kB = 1376kB

29668 total pagecache pages

32768 pages of RAM

547 free pages

1013 reserved pages

863 slab pages

27837 pages shared

0 pages swap cached

Unable to handle kernel NULL pointer dereference at virtual address 00000011

pgd = c0004000

[00000011] *pgd=00000000

Internal error: Oops: 817 [#1]

last sysfs file: /sys/devices/platform/mxs-mmc.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/dev

CPU: 0    Not tainted  (2.6.35.3 #1)

PC is at do_scsi_command+0x658/0x1678

LR is at release_console_sem+0x1b4/0x1ec

pc : [<c01c3e34>] lr : [<c003de64>]    psr: 60000013

sp : c7cc1e90  ip : c7cc1c88  fp : c7cc1f04

r10: c724b258  r9 : 00000000  r8 : 00001439

r7 : c724b200  r6 : 00000001  r5 : 00000000  r4 : 00000000

r3 : 00000100  r2 : 00010000  r1 : 00000001  r0 : 00000000

Flags: nZCv  IRQs on  FIQs on Mode SVC_32  ISA ARM  Segment kernel

Control: 0005317f  Table: 47308000  DAC: 00000017

Process file-storage-ga (pid: 859, stack limit = 0xc7cc0270)

Stack: (0xc7cc1e90 to 0xc7cc2000)

1e80:                                     c0039754 c006c480 c0055f90 c724b258

1ea0: c7c81140 c71bd700 c7cc1ee4 c7cc1eb8 c021a13c c0039724 c7262960 c7cc0000

1ec0: c724b200 00000001 c724b258 00000000 c7cc0000 c724b258 c7cc1f04 c7270000

1ee0: c724b200 00000001 c724b258 00000000 c7cc0000 c724b258 c7cc1fc4 c7cc1f08

1f00: c01c5d1c c01c37ec c724b25c c7cc1f18 c003afe8 c724b278 0000000a 00000000

1f20: 00000000 00000000 00000000 c7c24038 c029f820 c7c24030 c7cc1f5c c7cc1f48

1f40: c0038e48 c7c2601c c7c81140 00000017 c02a8634 c029f7f0 c7cc1f7c c7cc1f68

1f60: c02a8634 c7c24000 c7cc1f94 c7cc1f78 c0039754 c006c480 c0055f90 00000000

1f80: c7c81140 c7c24000 c7cc1fc4 c7cc1f98 c021a13c c0039724 c7cc1fc4 c7cc1fcc

1fa0: c7c27ed0 c724b200 c01c56c4 00000000 00000000 00000000 c7cc1ff4 c7cc1fc8

1fc0: c0051c24 c01c56d4 00000000 00000000 c7cc1fd0 c7cc1fd0 c7c27ed0 c0051ba0

1fe0: c00406a8 00000013 00000000 c7cc1ff8 c00406a8 c0051bb0 d53dfa7d fa9d4f6f

Backtrace:

[<c01c37dc>] (do_scsi_command+0x0/0x1678) from [<c01c5d1c>] (fsg_main_thread+0x658/0x9e8)

[<c01c56c4>] (fsg_main_thread+0x0/0x9e8) from [<c0051c24>] (kthread+0x84/0x8c)

[<c0051ba0>] (kthread+0x0/0x8c) from [<c00406a8>] (do_exit+0x0/0x5c0)

r7:00000013 r6:c00406a8 r5:c0051ba0 r4:c7c27ed0

Code: e1a03422 e3a05000 e1a00c22 e1a01822 (e5c43011)

---[ end trace c42b0f4314f9d30c ]---

Labels (2)
0 Kudos
1 Solution
1,120 Views
Yuri
NXP Employee
NXP Employee

Hi,

There is the  fimware profile, which is needed for separate mfg-related building.

Generally, You should build Your Linux (U-boot (if needed), kernel, root FS)

in usual way, as recommended. After that, it is needed to build the mfg

configuration (without kernel changing, assuming the same set of kernel options).

Note : the updater files are automatically built with kernel and root FS.

Regards,

Yuri.

View solution in original post

0 Kudos
6 Replies
1,120 Views
Yuri
NXP Employee
NXP Employee

  Perhaps the problem concerns with memory integrity.

Have You used the memory tool, linked below, to get optimal settings for Your DRAM ?


Board_bring-up_and_DDR_initialization_tools :

https://community.freescale.com/docs/DOC-1455

It is possible to check memory  ?

You may try the memory test, provided in Community.


https://community.freescale.com/message/375263#375263

https://community.freescale.com/servlet/JiveServlet/download/375692-270338/mem_test.7z.zip

Note, if (optimal) i.MX28 memory initialization is not the same as for i.MX28 EVK, the updater

should be rebuild with new (memory) settings.

Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
1,120 Views
cgeks
Contributor II

Thank you for showing up the links to track down. I will try that.

If necessary where do i find the sources for rebuilding the updater?

0 Kudos
1,121 Views
Yuri
NXP Employee
NXP Employee

Hi,

There is the  fimware profile, which is needed for separate mfg-related building.

Generally, You should build Your Linux (U-boot (if needed), kernel, root FS)

in usual way, as recommended. After that, it is needed to build the mfg

configuration (without kernel changing, assuming the same set of kernel options).

Note : the updater files are automatically built with kernel and root FS.

Regards,

Yuri.

0 Kudos
1,120 Views
cgeks
Contributor II

Hi Yuri,

as you could could probably guess from how i asked my question i am not using LTIB or Yocto but PTXdist which means that i am reusing the existing updater_sb.ivt from the default profile that comes with the MFG-TOOL and integrate this into my MFG-Profile.

I think the main problem is probably that EVK has winbond and my board has micron DDR2. So as you mentioned earlier i have to adapt the settings.

0 Kudos
1,120 Views
Yuri
NXP Employee
NXP Employee

  Memory initialization and size are configured in bootlets.
They may be separately built via LTIB.
Hope the following helps.

 

“imx28   DDR 256 MB 2.6.35.13 fsl”

https://community.freescale.com/message/381644#381644



Regards,

Yuri.

0 Kudos
1,120 Views
cgeks
Contributor II

A build with special memory setup works fine now. I have tested programming with new updater_ivt.sb now a lot of times without a crash. After haveing 2-4 crashes during 10 executions that seems to fix the problem.

0 Kudos