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

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

3天内不再提示

ARM SMMU Data structure之Context Descriptors

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

STE 包含每个stream的配置,指示:

• 是否启用来自device的流量。

• 是否进行stage 1 translation,获取stage 1 translation tables的配置。

• 是否进行stage 2 translation以及相关的stage 2 translation tables和VMID。

如果启用了stage 1,则STE中的S1ContextPtr字段包含一个或多个cd的基址。CD将StreamID与stage 1 translation table基指针(将VA转换为IPA)、per-stream配置和ASID关联起来。

如果多个devices与一个特定的虚拟机相关联,这意味着它们共享stage 2 translation tables,也就是说多个ste可能会映射到一个stage 2 translation table。

通常来说,Stream table和stage 2 translation table由hypervisor管理,而与devices相关的cd和stage 1 translation tables由guest OS管理。此外,hypervisor可以使用单独的hypervisor stage 1 translations。

在不使用hypervisor的情况下,裸机操作系统管理Streamtable和CDs。

当输入事务启用SubstreamID时,SubstreamID索引CDs以选择 stage 1 translation context。如果没有提供SubstreamID,行为取决于ST.S1DSS:

当STE.S1DSS == 0b00,所有流量都有SubstreamID,不带有SubstreamID的输入事务则被中止并记录一个事件。

当STE.S1DSS == 0b01,没有SubstreamID的事务视为配置stage 1-bypass。

当STE.S1DSS == 0b10,没有SubstreamID的事务使用Substream=0的CD。在此配置下,SubstreamID=0的事务将被中止,并记录一个事件。

当stage 1被启用时,STE.S1ContextPtr字段给出了以下地址之一(由配置STE.S1FmtSTE.S1CDMax)确定:

一张CD。

single-level table of CDs的起始地址。

L1CDs的起始地址,L1CD.L2Ptr都指向一个L2CDs的起始地址。L1CDs由SubstreamID的高位索引,L2CDs由SubstreamID的较低位索引。用于L1CDs和L2CDs索引的SubstreamID位由STE.S1Fmt配置。

当同时使用stage 1和stage 2时,S1ContextPtr和L2Ptr地址为IPA,仅使用stage1时为PA

由CD和STE提供的ASID和VMID值是TLB tag的一部分,用于区分不同之间的地址空间,或者在接收到TLB invalidation操作时匹配无效的TLB。

302a9adc-ef68-11ed-90ce-dac502259ad0.jpg

Configuration structure example

上图显示了一个示例配置,其中StreamID从linear Stream table中选择一个Ste,Ste指向stage2的translation table,并指向单个stage1的CD配置, 然后CD指向stage1的translation tables。

3040f9bc-ef68-11ed-90ce-dac502259ad0.jpg

上图显示了一个配置,其中一个STE指向包含多个cd的数组。SubstreamID选择其中一个cd,最终确认要用的stage1页表。

305da6b6-ef68-11ed-90ce-dac502259ad0.jpg

Multi-level Stream and CD tables

上图显示了一个更复杂的布局,其中使用了一个multi-level Stream table。其中两个STE指向一张CD或一个CD数组,而第三个STE指向一个multi-level CD table 。





审核编辑:刘清

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

    关注

    134

    文章

    8977

    浏览量

    365556
  • 操作系统
    +关注

    关注

    37

    文章

    6561

    浏览量

    122883
  • 虚拟机
    +关注

    关注

    1

    文章

    890

    浏览量

    27878
  • TLB电路
    +关注

    关注

    0

    文章

    9

    浏览量

    5245

原文标题:ARM SMMU Data structure之Context Descriptors

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

收藏 人收藏

    评论

    相关推荐

    ARM系列SMMU总线资料合集

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

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

    ;__iommu_probe_device->arm_smmu_probe_device->arm_smmu_insert_masterarm_smmu_insert_master将这些
    发表于 11-07 15:36

    SMMU学习这一篇就够了

    前言最近朋友圈、微信群( ARM-Trustzone-TEE-AT)掀起一阵学习SMMU的热潮,作为一名安全领域的渣渣 ,势必要蹭一蹭这个“热点”,也学习一下吧,反正早晚都要学,因为它和安全的关系
    发表于 02-23 17:11

    RK3588 ubunutu pcie虚拟化的SMMU配置在哪里修改呢?

    信息:  2. DTS配置  2.1 SMMU配置  compatible = “armsmmu-v3”;
    发表于 03-13 14:32

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

    ARM系统MMU(SMMU)体系结构为存储器管理单元(MMU)实施提供了灵活的实施框架,具有多个实施定义的选项。 该体系结构可用于系统级的MMU。 它基于转换表中保存的地址映射和内存属性信息,支持从
    发表于 08-12 06:25

    1线文件结构-1-Wire File Structure

    a directory structure for data residing in 1-Wire devices including iButtons. It allows named files to be randomly accessed as they are
    发表于 04-24 09:48 810次阅读
    1线文件结构-1-Wire File <b class='flag-5'>Structure</b>

    ARM720T DATA

    ARM720T DATA
    发表于 10-25 14:07 5次下载
    <b class='flag-5'>ARM</b>720T <b class='flag-5'>DATA</b>

    arm smmu的原理

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

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

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

    SystemVerilog中的Packed Structure

    一个packed structure有很多的bits组成,这些bit在物理上连续存储。packed structure只允许包含packed数据类型。
    的头像 发表于 11-07 10:17 2002次阅读

    SMMU数据结构格式

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

    SMMU数据结构格式Level 1 Stream Table Descriptor介绍

    上图就是SMMU Level 1 Stream Table Descriptor的数据格式,简称Level1 STD。
    的头像 发表于 05-06 14:44 844次阅读
    <b class='flag-5'>SMMU</b>数据结构格式<b class='flag-5'>之</b>Level 1 Stream Table Descriptor介绍

    ARM SMMU Data structures概述

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

    ARM SMMU Data structuresStream Table

    incoming transaction的StreamID可以找到一个STE。SMMU支持两种Stream table格式,格式由Stream table base registers设置。
    的头像 发表于 05-11 09:22 1154次阅读
    <b class='flag-5'>ARM</b> <b class='flag-5'>SMMU</b> <b class='flag-5'>Data</b> structures<b class='flag-5'>之</b>Stream Table

    SMMU VA-&gt;PA的转换流程介绍

    如果SMMU全局禁用(例如,刚结束复位SMMU_CR0.SMMUEN == 0),则transaction将通过SMMU而不进行任何地址转换。
    的头像 发表于 05-15 10:07 823次阅读
    <b class='flag-5'>SMMU</b> VA-&gt;PA的转换流程介绍