[U-Boot] Disabling/Enabling the Data Cache

Fabio Estevam festevam at gmail.com
Tue Nov 24 12:40:55 CET 2015


Hi Gary,

On Tue, Nov 24, 2015 at 9:38 AM, Gary Bisson
<gary.bisson at boundarydevices.com> wrote:

>> Does anyone have an update on this issue? I just experienced the same
>> problem with an i.MX6SX:
>> Hit any key to stop autoboot:  0
>> => dcache off
>> => dcache on
>> data abort
>> pc : [<bff4a564>]          lr : [<bff4a5f4>]
>> reloc pc : [<87800564>]    lr : [<878005f4>]
>> sp : bf347d70  ip : 00000000     fp : bf34bb48
>> r10: bffa3c58  r9 : bf347ed8     r8 : 00000002
>> r7 : bf349c28  r6 : 00000000     r5 : 00000000  r4 : 00000000
>> r3 : 00a02000  r2 : 32430000     r1 : bff99a70  r0 : 00000001
>> Flags: nZCv  IRQs off  FIQs off  Mode SVC_32
>> Resetting CPU ...
>>
>> Looking at the reloc pc:
>> 87800550 <v7_outer_cache_enable>:
>> 87800550:       e59f304c        ldr     r3, [pc, #76]   ; 878005a4
>> <v7_outer_cache_enable+0x54>
>> 87800554:       e5932104        ldr     r2, [r3, #260]  ; 0x104
>> 87800558:       e3822501        orr     r2, r2, #4194304        ;
>> 0x400000
>> 8780055c:       e5832104        str     r2, [r3, #260]  ; 0x104
>> 87800560:       e5932100        ldr     r2, [r3, #256]  ; 0x100
>> 87800564:       e3c22001        bic     r2, r2, #1
>>
>> Then looking at arch/arm/cpu/armv7/mx6/soc.c, it looks like the cause
>> is:
>> http://git.denx.de/?p=u-boot.git;a=commit;h=b4ed9f8
>>
>> When commenting out "setbits_le32(&pl310->pl310_aux_ctrl,
>> L310_SHARED_ATT_OVERRIDE_ENABLE)", the problem disappears.
>>
>> Should we unset the bit22 when disabling cache?

Thanks for looking into this.

Catalin,

Do you know if we should unset L310_SHARED_ATT_OVERRIDE_ENABLE bit
when disabling cache?

Any suggestions?

Thanks,

Fabio Estevam


More information about the U-Boot mailing list