首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
smmu专题
【ARM Hypervisor And SMMU 系列 5 -- SMMU 和 IOMMU技术】
文章目录 SMMU 和 IOMMU技术ARM 的 SMMUTranslation process overview TBU 和 TCU 的关系TBUTCU TLB SMMU 和 IOMMU技术 文章 讲到了为支持I/O透传机制中的DMA设备传输而引入的IOMMU/SMMU技术,同时留了一个问题:IOMMU/SMMU是否可以同时支持GVA->GPA和GPA->HPA的转换? 答
阅读更多...
【ARM Hypervisor And SMMU 系列 2 -- VT-d DMA Remapping 】
文章目录 Device PassthoughDevice Passthough 实现 VT-d DMA RemappingDMA Remapping 简介DMA隔离实现DMA隔离和地址翻译 Device Passthough 设备直通(Device Passthrough)是一种虚拟化技术,允许虚拟机(VM)直接访问物理硬件设备,而不需要通过虚拟化层的中介。这种技术提供了接近
阅读更多...
Linux内存从0到1学习笔记(8.16 SMMU详解)---更新中
写在前面 前面博客已经了解过。SMMU是IOMMU在ARM架构上的实现。主要为了解决虚拟化环境中,GuestOS无法直接将连续的物理地址分配给硬件的问题。对于Hypervisor/GuestOS的虚拟化系统来说,所有的VM都运行在Hypervisor上,每一个VM独立运行一个OS(GuestOS),Hypervisor完成硬件的共享,隔离和切换。那么由于虚拟化系统中,GuestOS看到的内存并非
阅读更多...
Linux内存从0到1学习笔记(8.15 MMU/IOMMU/SMMU概览)
一, 什么是MMU? MMU(Memory Management Unit 内存管理单元),即内存管理单元,是计算机硬件中的一个重要组件,主要负责处理中央处理器(CPU)的内存访问请求。 其工作原理如下: 当程序发出内存访问请求,包括读取或写入操作以及逻辑地址(虚拟地址)。然后,MMU根据页表等数据结构将逻辑地址转换为物理地址。接着,MMU将物理地址发送给内存控制器进行实际的内存读写操作
阅读更多...
ARM SMMU的原理与IOMMU[转载]
ARM SMMU的原理与IOMMU 首先放一个社区iommu patch的网址:https://lore.kernel.org/linux-iommu/ arm smmu的原理 smmu 基本知识 如上图所示,smmu 的作用和mmu 类似,mmu作用是替cpu翻译页表将进程的虚拟地址转换成cpu可以识别的物理地址。同理,smmu的作用就是替设备将dma请求的地址,翻译成设备真正能用的
阅读更多...
SMMU学习这一篇就够了
快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 引流关键词: SMMU,mmu500,mmu600,mmu700,system mmu,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MM
阅读更多...
音频smmu问题之smmu学习
一、音频smmu 内存访问问题 在工作中,遇到一个smmu问题,主要log信息如下: arm-smmu 15000000.apps-smmu: Unhandled arm-smmu context fault from soc:spf_core_platform:qcom,msm-audio-ion!arm-smmu 15000000.apps-smmu: FAR = 0x000000001
阅读更多...
SMMU介绍
SMMU(System Memory Management Unit)是一种硬件设备,其作用是在虚拟地址空间和物理地址空间之间提供地址转换的功能。它通常用于处理虚拟化环境中的 I/O 设备,例如虚拟机中的设备访问或者容器环境中的设备隔离。 SMMU 的主要作用包括: 虚拟地址转换: SMMU 可以将虚拟地址转换为物理地址,以便设备能够正确地访问系统内存。在虚拟化环境中,每个虚拟机都有自己的虚
阅读更多...
【ARM CoreLink 系列 8 -- SMMU 详细介绍-上半部】
请阅读【ARM CoreLink 文章专栏导读】 文章目录 SMMU 的基本使用场景SMMU 名词缩写SMMU StreamID 详细介绍SMMU STE 详细介绍SMMU CD 详细介绍 SMMU 的基本使用场景 扩大设备DMA寻址范围,一些legacy设备DMA寻址是32bit,无法访问高32bit地址,通过SMMU的转换可以解决这个问题。同样的,当系统无法提供大块连续物
阅读更多...
【ARM CoreLink 系列 8.2 -- SMMU 详细介绍-STE Entry 详细介绍 2】
请阅读【ARM CoreLink 文章专栏导读】 上篇文章:【ARM CoreLink 系列 8.1 – SMMU 详细介绍-STE Entry 详细介绍 1】 文章目录 ARM SMMU STE ENTRY1.1 STE Entry WORD[3]1.1.1 MemAttr1.1.2 MTCFG1.1.3 ALLOCCFG1.1.4 SHCFG1.1.5 NSCFG1.1.6 PR
阅读更多...
【ARM CoreLink 系列 8.1 -- SMMU 详细介绍-STE Entry 详细介绍 1】
请阅读【ARM CoreLink 文章专栏导读】 上篇文章:【ARM CoreLink 系列 8 – SMMU 详细介绍-上半部】 文章目录 ARM SMMU STE ENTRY1.1 STE ENTRYWORD[0]1.1.1 S1ContexPtr1.1.2 S1Fmt1.1.3 Config1.1.4 V(Valid) 1.2 STE ENTRY WORD[1]1.2.1 S1
阅读更多...
深入浅出 Linux 中的 ARM IOMMU SMMU II
SMMU 驱动中的系统 I/O 设备探测 要使系统 I/O 设备的 DMA 内存访问能通过 IOMMU,需要将系统 I/O 设备和 IOMMU 设备绑定起来,也就是执行 SMMU 驱动中的系统 I/O 设备探测。总线发现系统 I/O 设备并和对应的驱动程序绑定,与 IOMMU 设备驱动程序注册并为 IOMMU 设备执行探测初始化的相对顺序不固定,可能系统 I/O 设备先被发现并和对应的驱动程序绑
阅读更多...
深入浅出 Linux 中的 ARM IOMMU SMMU I
Linux 系统下的 SMMU 介绍 在计算机系统架构中,与传统的用于 CPU 访问内存的管理的 MMU 类似,IOMMU (Input Output Memory Management Unit) 将来自系统 I/O 设备的 DMA 请求传递到系统互连之前,它会先转换请求的地址,并对系统 I/O 设备的内存访问事务进行管理和限制。IOMMU 将设备可见的虚拟地址 (IOVA) 映射到物理内存地
阅读更多...
ARM SMMU原理与IOMMU技术(“VT-d” DMA、I/O虚拟化、内存虚拟化)
名词缩写 ASID:Address Space ID 地址空间标识符CD:Context Descriptor; 上下文描述符;CTP:Context-table pointer 上下文表指针EPT:Extended Page Table 扩展页表GPA:Guest Phyical Address 客人的实际地址GVA:Guest Virtual Address 访客虚拟地址H
阅读更多...