AnsweredAssumed Answered

i.MX6DL hangs at when disabling CACHE

Question asked by Masamichi Miyamoto on Mar 14, 2017
Latest reply on Mar 15, 2017 by Masamichi Miyamoto

Dear team,

 

My customer is facing the issue that i.MX6DualLite can hang when executing an instruction which disables CACHE after resuming from suspend mode.

This issue can occur on the customer’s board.

They found the hang-up occurs at when the following instruction was executed.

 

1573         /*

1574          * Restore control register but don't enable Data caches here.

1575          * Caches will be enabled after restoring MMU table entry.

1576          */

1577         ldmea         r0!, {r4}

1578         mov r11, r4

1579         ldr         r2, =CACHE_DISABLE_MASK

1580         and         r4, r4, r2

1581         mcr         p15, 0, r4, c1, c0, 0

1582         isb

 

http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tree/arch/arm/mach-mx6/mx6_suspend.S?h=imx_3.0.35_4.1.0&id=imx-android-13.4.1#n1573

The above is the source code of Android which is executed when resuming from suspended mode. And it seems to handle CACHE mode.

When i.MX6DL execute the instruction of line-1581, i.MX6DL hangs.

Could you show me why i.MX6DL can hang when manipulating CACHE mode?

And could you please show me the workaround?

 

Thanks,

Miyamoto

Outcomes