Changes in boot/arch/arm32/src/asm.S [cfeb368:b5a3b50] in mainline
- File:
-
- 1 edited
-
boot/arch/arm32/src/asm.S (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/arm32/src/asm.S
rcfeb368 rb5a3b50 61 61 # 62 62 63 # 64 # r0 is kernel entry point 65 # r1 is pointer to the bootinfo structure 63 #if defined(MACHINE_gta02) 66 64 67 65 #define CP15_C1_IC 12 68 #define CP15_C1_BP 1169 66 #define CP15_C1_DC 2 67 #define CP15_C7_SEG_SHIFT 5 68 #define CP15_C7_SEG_SIZE 3 69 #define CP15_C7_IDX_SHIFT 26 70 70 71 # Disable I-cache and D-cache before the kernel is started. 71 72 mrc p15, 0, r4, c1, c0, 0 72 73 bic r4, r4, #(1 << CP15_C1_DC) 73 74 bic r4, r4, #(1 << CP15_C1_IC) 74 bic r4, r4, #(1 << CP15_C1_BP)75 75 mcr p15, 0, r4, c1, c0, 0 76 77 78 #Wait for the operations to complete79 #ifdef PROCESSOR_ARCH_armv7_a80 dsb81 #else82 #cp15 dsb, r4 is ignored (should be zero)83 mcr p15, 0, r4, c7, c10, 484 #endif85 86 # Clean ICache and BPredictors, r4 ignored (SBZ)87 mcr p15, 0, r4, c7, c5, 088 nop89 90 #Wait for the operations to complete91 #ifdef PROCESSOR_ARCH_armv7_a92 isb93 nop94 #else95 # cp15 isb96 mcr p15, 0, r4, c7, c5, 497 nop98 #endif99 100 #TODO:This should not be necessary101 102 #if defined(MACHINE_gta02)103 104 #define CP15_C7_SEG_SHIFT 5105 #define CP15_C7_SEG_SIZE 3106 #define CP15_C7_IDX_SHIFT 26107 76 108 77 # Now clean D-cache to guarantee coherency between I-cache and D-cache.
Note:
See TracChangeset
for help on using the changeset viewer.
