第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 概述

Camera SMMU Buffer Map过程

qcom smmu map流程

qcom smmu map流程

dma_buf_attach()接口流程

dma_buf_attach接口流程

dma_buf_map_attachment()接口流程

dma_buf_map_attachment接口流程

iommu_map接口

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过程

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

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

Level2 PTE entry

Level2 pte entry

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

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

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

Level1 PTE entry

Level1 PTE entry

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

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

完成map之后整个SMMU stecd页表

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

Map之后iova与物理地址关系

Map之后iova与物理地址关系

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程