1. Arm64 Linux 下页表 init_idmap_pg_dir的使用

    二 21 五月 2024 | tags: Linux

    u-boot或者uefi启动kernel的时候,默认MMU是关闭的,所以这个时候kernel实际运行的地址就是物理地址。 为了前期尽早打开MMU和cache,kernel需要建立MMU的页表,这个时候的页表是1:1映射,即VA = PA。

    分配

    这个页表是在Link 脚本中进行分配 …

    read more

    comments

  2. SWAPPER_BLOCK_SIZE 的作用

    二 21 五月 2024 | tags: Linux

    在Arm64的linux kernel中,有如下定义:

    /* Initial memory map size */
    #ifdef CONFIG_ARM64_4K_PAGES
    #define SWAPPER_BLOCK_SHIFT     PMD_SHIFT
    #define SWAPPER_BLOCK_SIZE      PMD_SIZE
    #define SWAPPER_TABLE_SHIFT     PUD_SHIFT
    #else
    #define SWAPPER_BLOCK_SHIFT     PAGE_SHIFT
    #define SWAPPER_BLOCK_SIZE      PAGE_SIZE
    #define SWAPPER_TABLE_SHIFT     PMD_SHIFT
    #endif
    

    在第一次建立1:1 mapping的页表的时候,Linux kernel 除了建立_text …

    read more

    comments