Changeset b80d132 in mainline for boot/arch/arm32/src/main.c


Ignore:
Timestamp:
2013-01-23T20:48:23Z (11 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/main.c

    rbfb6576 rb80d132  
    6969}
    7070
    71 static inline void clean_dcache_pou(void *address, size_t size)
     71static inline void clean_dcache_poc(void *address, size_t size)
    7272{
    7373        const uintptr_t addr = (uintptr_t)address;
    74         /* DCCMVAU - clean by address to the point of unification */
     74        /* DCCMVAC - clean by address to the point of coherence */
    7575        for (uintptr_t a = addr; a < addr + size; a += 4) {
    76                 asm volatile ("mcr p15, 0, %[a], c7, c11, 1\n" :: [a]"r"(a) : );
     76                asm volatile ("mcr p15, 0, %[a], c7, c10, 1\n" :: [a]"r"(a) : );
    7777        }
    7878}
     
    148148                        halt();
    149149                }
    150                 clean_dcache_pou(dest[i - 1], components[i - 1].inflated);
     150                clean_dcache_poc(dest[i - 1], components[i - 1].inflated);
    151151        }
    152152       
Note: See TracChangeset for help on using the changeset viewer.