Changeset b80d132 in mainline for boot/arch/arm32/src/asm.S


Ignore:
Timestamp:
2013-01-23T20:48:23Z (12 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
df334ca
Parents:
bfb6576
Message:

arm32, boot: Flush everything to PoC (memory) and disable caches before reaching kernel

This should be safe for all ARMs. Kernel will enable caches if it is supported.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • boot/arch/arm32/src/asm.S

    rbfb6576 rb80d132  
    6666        # r2 is a kernel text end
    6767
     68#define CP15_C1_IC              12
     69#define CP15_C1_BP              11
     70#define CP15_C1_DC              2
     71        # Disable I-cache and D-cache before the kernel is started.
     72        mrc     p15, 0, r4, c1, c0, 0
     73        bic     r4, r4, #(1 << CP15_C1_DC)
     74        bic     r4, r4, #(1 << CP15_C1_IC)
     75        bic     r4, r4, #(1 << CP15_C1_BP)
     76        mcr     p15, 0, r4, c1, c0, 0
     77
    6878       
    6979        #Wait for the operations to complete
     
    8999#endif
    90100       
     101#TODO:This should not be necessary
    91102
    92103#if defined(MACHINE_gta02)
    93104
    94 #define CP15_C1_IC              12
    95 #define CP15_C1_DC              2
    96105#define CP15_C7_SEG_SHIFT       5
    97106#define CP15_C7_SEG_SIZE        3
    98107#define CP15_C7_IDX_SHIFT       26
    99 
    100         # Disable I-cache and D-cache before the kernel is started.
    101         mrc     p15, 0, r4, c1, c0, 0
    102         bic     r4, r4, #(1 << CP15_C1_DC)
    103         bic     r4, r4, #(1 << CP15_C1_IC)
    104         mcr     p15, 0, r4, c1, c0, 0
    105108
    106109        # Now clean D-cache to guarantee coherency between I-cache and D-cache.
Note: See TracChangeset for help on using the changeset viewer.