Changes in boot/arch/arm32/src/main.c [f288d85:0e63d34] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/arm32/src/main.c
rf288d85 r0e63d34 63 63 { 64 64 const uintptr_t addr = (uintptr_t)address; 65 /* DCIMVAC - invalidate by address to the point of coherence */ 65 66 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 */ 74 75 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 we run in memory code when caches are enabled,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 */108 107 invalidate_dcache(components[i].start, components[i].size); 109 108 } … … 149 148 halt(); 150 149 } 151 /* Make sure data are in the memory, ICache will need them */152 150 clean_dcache_poc(dest[i - 1], components[i - 1].inflated); 153 151 }
Note:
See TracChangeset
for help on using the changeset viewer.