Changes in / [6db5d4b:dff90fa7] in mainline
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/arm32/src/asm.S
r6db5d4b rdff90fa7 71 71 mrc p15, 0, r4, c1, c0, 0 72 72 bic r4, r4, #(1 << CP15_C1_DC) 73 #ifndef PROCESSOR_ARCH_armv7_a 73 74 bic r4, r4, #(1 << CP15_C1_IC) 74 75 bic r4, r4, #(1 << CP15_C1_BP) 76 #endif 75 77 mcr p15, 0, r4, c1, c0, 0 76 78 -
boot/arch/arm32/src/main.c
r6db5d4b rdff90fa7 63 63 { 64 64 const uintptr_t addr = (uintptr_t)address; 65 /* DCIMVAC - invalidate by address to the point of coherence */66 65 for (uintptr_t a = addr; a < addr + size; a += 4) { 66 /* DCIMVAC - invalidate by address to the point of coherence */ 67 67 asm volatile ("mcr p15, 0, %[a], c7, c6, 1\n" :: [a]"r"(a) : ); 68 68 } … … 72 72 { 73 73 const uintptr_t addr = (uintptr_t)address; 74 /* DCCMVAC - clean by address to the point of coherence */75 74 for (uintptr_t a = addr; a < addr + size; a += 4) { 75 /* DCCMVAC - clean by address to the point of coherence */ 76 76 asm volatile ("mcr p15, 0, %[a], c7, c10, 1\n" :: [a]"r"(a) : ); 77 77 } … … 82 82 void bootstrap(void) 83 83 { 84 /* Make sure 84 /* Make sure we run in memory code when caches are enabled, 85 85 * make sure we read memory data too. This part is ARMv7 specific as 86 86 * ARMv7 no longer invalidates caches on restart. … … 105 105 components[i].start, components[i].name, components[i].inflated, 106 106 components[i].size); 107 /* Make sure there is no cache garbage in read locations */ 107 108 invalidate_dcache(components[i].start, components[i].size); 108 109 } … … 148 149 halt(); 149 150 } 151 /* Make sure data are in the memory, ICache will need them */ 150 152 clean_dcache_poc(dest[i - 1], components[i - 1].inflated); 151 153 }
Note:
See TracChangeset
for help on using the changeset viewer.