Arm Processor Functions
struct proc_info_list {
    unsigned int        cpu_val;
    unsigned int        cpu_mask;
    unsigned long        __cpu_mm_mmu_flags;    /* used by head.S */
    unsigned long        __cpu_io_mmu_flags;    /* used by head.S */
    unsigned long        __cpu_flush;        /* used by head.S */
    const char        *arch_name;
    const char        *elf_name;
    unsigned int        elf_hwcap;
    const char        *cpu_name;
    struct processor    *proc;
    struct cpu_tlb_fns    *tlb;
    struct cpu_user_fns    *user;
    struct cpu_cache_fns    *cache;
};
  • __cpu_flush
    • Initialise TLB, Caches, and MMU state ready to switch the MMU on.
    • Return in r0 the new CP15 C1 control register setting.
__cpu_flush --> __enable_mmu --> __mmap_switched

./arch/arm/kernel/asm-offsets.c
DEFINE(PROCINFO_INITFUNC,      offsetof(struct proc_info_list, __cpu_flush));

./arch/arm./kernel/head.S
 ARM(    add    pc, r10, #PROCINFO_INITFUNC    )
  • struct processor
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License