2024年11月06日 第28讲 ISP SMMU Buffer Map流程详解 极客笔记
本讲是Camera KMD ISP子系统专题的第28讲,我们讲解Camera KMD ISP子系统SMMU之Buffer Map流程详解。
更多资源:
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
buffer map/unmap 概述
递归调用__arm_lpae_map函数根据 映射物理内存size创建各级pte之后,填充pgd及pte页表内容,建立好映射关系
1. 第一次进来__arm_lpae_map lvl为1, block_size为1G,这个函数会递归调用直到map size与某一级页表能表示block size相等为止
2. 如果传入size不等于block_size,就会再次递归进入__arm_lpae_map lvl为2, block_size为2M
3. 如果传入size不等于block_size,就会再次递归进入__arm_lpae_map lvl为3, block_size为4K
每个level2 pte能标识4K的空间, level2 pte指向的是物理内存
每个level1 pte能标识2M的空间,level1 pte可以指向2M物理内存,或者储存level2 pte的物理页
完成map之后整个SMMU ste,cd, 页表可能的样子(每级页表项是8个字节,所以每级页表有512个页表项 )
本文链接:http://so.lmcjl.com/news/17180/