第28讲 ISP SMMU Buffer Map流程详解

2024年11月06日 第28讲 ISP SMMU Buffer Map流程详解 极客笔记

本讲是Camera KMD ISP子系统专题的第28讲,我们讲解Camera KMD ISP子系统SMMU之Buffer Map流程详解。

更多资源:

资源 描述
在线课程 极客笔记在线课程
知识星球 星球名称:深入浅出Android Camera
星球ID: 17296815
Wechat 极客笔记圈

Camera SMMU Buffer Map详解

buffer map/unmap 概述

qcom smmu map流程

dma_buf_attach()接口流程

dma_buf_map_attachment()接口流程

iommu_map接口

递归调用__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

图解map过程

39位[38:0]虚拟地址解释

如何map一块4K的物理内存

Level2 PTE entry

每个level2 pte能标识4K的空间, level2 pte指向的是物理内存

如何map一块2M的物理内存

Level1 PTE entry

每个level1 pte能标识2M的空间,level1 pte可以指向2M物理内存,或者储存level2 pte的物理页

完成map之后整个SMMU ste,cd, 页表

完成map之后整个SMMU ste,cd, 页表可能的样子(每级页表项是8个字节,所以每级页表有512个页表项 )

Map之后iova与物理地址关系

本文链接:http://so.lmcjl.com/news/17180/

展开阅读全文