全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > PCB设计 >

SMMU数据结构格式

时间:2023-04-28 11:48

人气:

作者:admin

标签: 数据格式  std 

导读:就是SMMU Level 1 Stream Table Descriptor的数据格式,简称 **Level1 STD** 。...

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

  • **[4:0] Span(跨度) **

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

    如上图,当

  • 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所对应的STD Span如果设置为

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。
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信