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

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

3天内不再提示

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

芯片验证工程师 来源:芯片验证工程师 2023-05-06 14:44 次阅读

588d8978-e6d8-11ed-ab56-dac502259ad0.png

上图就是SMMU Level 1 Stream Table Descriptor的数据格式,简称Level1 STD

[4:0] Span(跨度)

描述Level2 STE数组的大小和L2Ptr的有效性。

5896300a-e6d8-11ed-ab56-dac502259ad0.png

如上图,当

Span为0,表明该STD是无效的,需要上报异常。

Span为1-11,表明该STD底下的Level STE包含2^(Span-1)个STEs

Span为12-31,Reserved,也需要上报异常。

Span必须在0到(SMMU_STRTAB_BASE_CFG.SPLIT + 1)的范围内,即它必须保持在Stream table split point的范围内。

传入事务StreamID所对应的STDSpan如果设置为

Span == 0

Span ==Reserved value

Span out of bounds value given the split point

select a valid Level 1 descriptor but are outside of the level 2 range

都会视为无效。

[51:6] L2Ptr

指向Level-2 STE的起始位置。L2Ptr[N:0]被SMMU视为0,其中

N == 5 + (Span - 1)

因此,SMMU将Level-2 STE的起始地址对齐到其大小。在SMMUv3.0中,L2Ptr[51:48]是RES0。超出OAS或物理地址的行为是会上报异常的。

所有导致Stream table lookup未到达有效STE的事务都会终止,上报异常并可以记录事件C_BAD_STREAMID(根据SMMU_(S_)CR2.RECINVSID设置)

当L1STD更改时, non-leaf CMD_CFGI_STE是使L1STD条目失效所需的最小范围invalidate命令。根据更改情况,也可能需要其他STE失效,例如:

将Span == 0的inactive L1STD更改为non-zero active Span(引入新的部分Level-2 STE)仅需要使L1STD失效。

将Span != 0的active L1STD更改为inactive L1STD需要使L1STD以及受影响的缓存的STE失效。需要多个non-leaf CMD_CFGI_STE命令或更广泛的命令,如CMD_CFGI_STE_RANGE或CMD_CFGI_ALL。





审核编辑:刘清

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

    关注

    0

    文章

    35

    浏览量

    14231

原文标题:SMMU数据结构格式之 Level 1 Stream Table Descriptor

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

收藏 人收藏

    评论

    相关推荐

    数据结构

    1.数据结构的概念 所谓数据结构是指由某一数据对象及该对象中所有数据成员之间的关系组成的集合。成员之间的关系有很多种,最常见的是前后件关系。
    发表于 03-04 14:13

    大话数据结构pdf下载

    大话数据结构是一本很值得初学者看的编程书籍,用简单的语言然人深刻的理解数据结构,强烈程序员推荐下载收藏,下面是部分内容预览: 完整的pdf格式电子书下载: 《大话数据结构》.pdf
    发表于 07-04 00:33

    常见的数据结构

    胡乱的,这就要求我们选择一种好的方式来存储数据,而这也是数据结构的核心内容。数据存储一直以来大家面对的数据存储,都是类似存储 1、 2、{a
    发表于 05-10 07:58

    数据结构的基本概念是什么

    数据结构基本概念
    发表于 05-27 08:29

    数据结构队列顺序及其构造

    数据结构队列顺序队列构造顺序队列顺序队列的初始化判断队列是否满判断队列是否为空顺序队列的入队顺序队列的出队顺序队列的读取顺序队列存放数据的队列数组当做收尾相接的表处理(对长度进行SIZE取余作为
    发表于 12-17 06:11

    数据结构链式栈介绍

    数据结构链式栈链式栈链式栈的定义链式栈操作的实现链式栈初始化链式栈入栈链式栈出栈链式栈初始化链式栈链式栈无栈满问题,空间可以扩充插入与删除仅在栈顶处执行链式栈的栈顶在链头链式栈的定义 //定义链式
    发表于 12-17 08:11

    数据结构链表的基本操作

    嵌入式学习基础-数据结构链表的基本操作链表节点采用结构体的方式进行定义,下面是最基础的定义只有一个数据data,*pNext用于指向下一个节点(若为尾节点则指向NULL)。//链表节点struct
    发表于 12-22 08:05

    ARM系列SMMU总线资料合集

    1SMMU的基本结构和用法SMMU即system memory management unit,在其他体系结构中对应的是IOMMU。先上图
    发表于 04-11 15:58

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

    。##### Q6. 一个设备有多个Stream ID会如何呢?如果一个device在device tree, ACPI table中指定了多个StreamID, 那么arm SMMU driver为这些
    发表于 11-07 15:36

    SMMU学习这一篇就够了

    的STE(streamID entry)2.4.2 一个 2-level Stream Table 的示例2.4.3 Multi-level Str
    发表于 02-23 17:11

    什么是数据结构?为什么要学习数据结构数据结构的应用实例分析

    本文档的主要内容详细介绍的是什么是数据结构?为什么要学习数据结构数据结构的应用实例分析包括了:数据结构在串口通信当中的应用,
    发表于 09-26 15:45 14次下载
    什么是<b class='flag-5'>数据结构</b>?为什么要学习<b class='flag-5'>数据结构</b>?<b class='flag-5'>数据结构</b>的应用实例分析

    arm smmu的原理

    的作用就是替设备将dma请求的地址,翻译成设备真正能用的物理地址,但是当smmu bypass的时候,设备也可以直接使用物理地址来进行dma; 1.2: smmu数据结构 smmu
    的头像 发表于 10-09 10:43 3282次阅读
    arm <b class='flag-5'>smmu</b>的原理

    SMMU数据结构格式

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

    SMMU数据结构格式Stream Table Entry...V和Config介绍

    更新一个valid STE时需要非常小心,因为此时SMMU可能会访问这个STE数据,这其中存在着“竞争race”。
    的头像 发表于 05-04 10:15 799次阅读
    <b class='flag-5'>SMMU</b><b class='flag-5'>数据结构</b><b class='flag-5'>格式</b>之<b class='flag-5'>Stream</b> <b class='flag-5'>Table</b> Entry...V和Config<b class='flag-5'>介绍</b>

    ARM SMMU Data structures之Stream Table

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