2024年11月06日 第26讲 Camera SMMU软件框架 极客笔记
本讲是Camera KMD ISP子系统专题的第26讲,我们讲解Camera KMD ISP子系统之Camear SMMU软件框架。
更多资源:
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
StreamID
STE(Stream Table Entry)
==》
物理地址转换的页表。CD(Context Descriptor)
msm_cam_smmu_ipe {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x820 0x00>;
}//ipe的streamid为0x820
//代表一组cb,是qcom camera smmu驱动的主要入口
//对应dts里compatible = "qcom,msm-cam-smmu";的设备
struct cam_iommu_cb_set {
struct cam_context_bank_info *cb_info;//存储了多个cb,每个cb对应smmu一套页表转换结构
u32 cb_num;//有多少个cb
u32 cb_init_count;//已经初始化几个cb了
}
//代表一个cb,对应arm smmu里面的一套页表转换结构。如果map一个buffer到该设备,通过这个cb到arm smmu去创建页表转换关系
//对应dts里compatible = "qcom,msm-cam-smmu-cb";的设备
struct cam_context_bank_info {
struct device *dev;// io设备句柄
struct iommu_domain *domain;// 该设备对应的domain,不同domain iommu spec不同,例如order
struct list_head smmu_buf_list;//当前cb已经map了哪些buffer
struct list_head smmu_buf_kernel_list;//当前cb已经map了哪些kernel buffer,只看到icp在用
}
本文链接:http://so.lmcjl.com/news/17175/