SMMU简介
SMMU是MMU的一个子设备,基本原理与MMU一致。所以这里先介绍MMU的作用。
MMU机制
MMU为内存分段管理机制,由于内存在申请释放期间必然造成物理内存的碎片化,进而导致一个进程在申请大段连续内存时会耗费很长时间,并且加重内存碎片化。所以虚拟内存机制应运而生。而MMU就是实现虚拟内存到物理内存映射的机制。
正常应用程序使用的地址为线性地址,转换到物理地址流程如下:

SMMU的差异
两者主要的差异在于,MMU为CPU访问主内存机制,SMMU为外设通过DMA直接访问主内存的机制

相较而言,wifi芯片就是一个非cpu的外设,有些操作可以直接通过DMA转送到主内存进而降低cpu的使用和唤醒。
Dtsi文件
将描述板级硬件信息的内容从Linux分离出来,用一个专属的文件来描述,这个专属文件叫做设备树,文件扩展名.dts。而一个SOC可以做出很多不同的板子,这些板子都有共同的信息,将这些共同的信息提取出来作为一个通用的文件,其他.dts文件直接引用这个通用文件即可,这个通用文件就是.dtsi文件。
以18115为例,采用的配置文件就是”sm8150-v2.dtsi”。
文件语法简介
文件引用:
可以像C语言那样包含其他文件,如下:
#include "sm8150.dtsi"
#include "sm8150-v2-camera.dtsi"
文件格式:
cpus { ------->节点名称
#address-cells = <2>; ------->属性值
#size-cells = <0>;
CPU0: cpu@0 { ------->子节点
device_type = "cpu";
compatible = "arm,armv8";

最低0.47元/天 解锁文章
2548

被折叠的 条评论
为什么被折叠?



