0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SMMU VA->PA的转换流程介绍

芯片验证工程师 来源:芯片验证工程师 2023-05-15 10:07 次阅读

47140728-f153-11ed-90ce-dac502259ad0.png

一笔输入的transaction会经过以下几个逻辑步骤:

1. 如果SMMU全局禁用(例如,刚结束复位SMMU_CR0.SMMUEN == 0),则transaction将通过SMMU而不进行任何地址转换。全局属性,例如 memory type或Shareability,可能从SMMU的SMMU_GBPA寄存器应用,或者SMMU_GBPA寄存器可以配置为abort所有transactions

2. 如果SMMU没有全局禁用或者全局bypass,则首先确定VA->PA转换的配置:

索引到STE。

•如果STE启用了stage2转换,则STE包含stage2 translation table base。

•如果STE启用了stage1转换,则继续索引CD。如果STE启用了stage2转换,则从IPA空间获取CD,否则从PA空间获取CD。

3. 如果配置有效(STE+CD),则执行VA->PA转换。

•如果配置了stage1转换,则CD包含一个translation table base,否则bypass stage1转换,并将输入地址直接提供给stage2。

•如果配置了stage2转换,则STE包含一个translation table base用于stage2(输入可能是VA,也可能是stage1的输出IPA)。如果没有配置stage2,则输入就会直接作为输出地址(bypass)。

4. 具有有效配置且在VA->PA转换过程中未发生fault的transaction将输出地址以及memory attributes。

上面步骤展示了Non-secure stream transaction 处理的流程,如果支持 Secure stream,则流程也是类似的。过程中使用到的寄存器有所区别:

SMMU_S_CR0.SMMUEN

SMMU_S_GBPA

实现可能会根据需要cache这些步骤中的任何数据。此外,在处理过程中的几个stage可能会发生 fault。如果transaction未能找到有效配置,则会

terminated with an abort, and an event might be recorded。

如果transaction进展到transaction(已经找到了有效的配置),则fault可能出现在transaction的任一stage。如果发生了fault,其后的行为取决于使用的CD和STE的配置,确定是否terminated或者stalled。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5304

    浏览量

    119884
  • STE
    STE
    +关注

    关注

    0

    文章

    8

    浏览量

    9192
  • cache技术
    +关注

    关注

    0

    文章

    41

    浏览量

    1043

原文标题:SMMU VA->PA的转换流程

文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    va_start和va_end使用详解

    本文主要介绍va_start和va_end的使用及原理。  在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va
    发表于 02-10 10:38

    ARM系列之SMMU总线资料合集

    SMMU的高级功能上篇我们介绍SMMU的基本结构和用法,本篇讲一下SMMU的高级功能。在ARM64体系结构中,SMMU几乎可以放在总线互
    发表于 04-11 15:58

    对硬件虚拟化及其相关逻辑进行罗列与理解

    Memory空间时,获取到其虚拟地址,同时在Memory内建立页表,也就是VA-&;gt;PA的映射关系;释放Memory空间时,则对应为删除页表关系。为加快地址转换流程,MMU
    发表于 07-04 15:48

    多个设备是否可以共用一个SMMU StreamID?

    ;__iommu_probe_device->arm_smmu_probe_device-&;gt;arm_smmu_inser
    发表于 11-07 15:36

    SMMU学习这一篇就够了

    预留连续的memory,如果Master需要很多memory,可以通过SMMU把一些非连续的PA映射到连续的VA,例如给DMA,VPU,DPU使用。32位转换成64位 现在很多系统是6
    发表于 02-23 17:11

    Arm CoreLink MMU‑700系统内存管理单元技术参考手册

    ‑700可以执行: •将输入虚拟地址(VA转换为输出物理地址(PA)或中间物理地址(IPA)的第1阶段转换•将输入IPA转换为输出
    发表于 08-08 07:44

    ARM CORELINK™MMU-600AE系统内存管理单元技术参考手册

    的阶段。MMU-600AE可以执行以下操作: ·阶段1转换,将输入虚拟地址(VA)转换为输出物理地址(PA)或中间物理地址(IPA)。 ·阶段2翻译,将输入IPA
    发表于 08-09 06:28

    ARM系统内存管理单元架构规范SMMU架构2.0版

    : ·操作系统为其自身的内存访问以及在其下运行的应用程序的访问定义转换表。 它这样做是因为它认为它将处理器使用的虚拟地址(VA)映射到物理内存系统中的物理地址(PA)。 但是,它实际上定义了中间物理地址(IPA)内存映射中的地址
    发表于 08-12 06:25

    synopsys&Mentor设计流程

    synopsys & Mentor 设计流程免费下载。
    发表于 07-08 11:37 72次下载

    arm smmu的原理

    1: arm smmu的原理 1.1: smmu 基本知识 如上图所示,smmu 的作用和mmu 类似,mmu作用是替cpu翻译页表将进程的虚拟地址转换成cpu可以识别的物理地址。同理
    的头像 发表于 10-09 10:43 4268次阅读
    arm <b class='flag-5'>smmu</b>的原理

    arm smmu的原理与smmu驱动iommu框架

    如上图所示,smmu 的作用和mmu 类似,mmu作用是替cpu翻译页表将进程的虚拟地址转换成cpu可以识别的物理地址。同理,smmu的作用就是替设备将dma请求的地址,翻译成设备真正能用的物理地址,但是当
    的头像 发表于 10-09 10:48 6077次阅读
    arm <b class='flag-5'>smmu</b>的原理与<b class='flag-5'>smmu</b>驱动iommu框架

    通过处理器中的MMU进行VA-PA转换

    操作系统内核将每个应用程序的指令和数据放在物理内存中,但是应用程序并不是直接通过物理地址读写这些指令和数据。简单来说,就是通过MMU进行VA-PA转换,这让程序设计变得简单很多。
    的头像 发表于 07-28 18:06 2093次阅读
    通过处理器中的MMU进行<b class='flag-5'>VA-PA</b><b class='flag-5'>转换</b>

    SMMU数据结构格式

    就是SMMU Level 1 Stream Table Descriptor的数据格式,简称 **Level1 STD** 。
    的头像 发表于 04-28 11:48 903次阅读

    ARM SMMU Data structures概述

    ARM SMMU 是一种用于系统级内存管理单元(MMU)的架构,它支持基于translation表中的地址映射和内存属性信息的地址转换
    的头像 发表于 05-08 12:46 963次阅读
    ARM <b class='flag-5'>SMMU</b> Data structures概述

    你使用shell脚本中的2&amp;gt;&amp;amp;1了吗?

    run_cmax &gt; ./starrc_cmax.logs 2&gt;&amp;1中的 2&gt;&amp;1是啥意思?
    的头像 发表于 07-30 14:44 1814次阅读