[0] V Valid
V == 1'b0:意味着STE是invalid,STE中的其他语段都被IGNORED
V == 1'b1:意味着STE是valid,STE中的其他语段按照描述含义执行
更新一个valid STE时需要非常小心,因为此时SMMU可能会访问这个STE数据,这其中存在着“竞争race”。
选择到invalid STE的Device transaction将会报告abort,事务处理终止,并且记录下这个C_BAD_STE事件。
STE 字段遵循 S1 前缀用于与 stage 1 translation相关的字段,S2 前缀用于与stage 2 translation相关的字段,以及其他不使用前缀的字段与特定translation stage 无关,同时适用Stage1和Stage2。
[3:1] Config[2:0] Stream configuration
如果stage 1未实现(SMMU_IDR0.S1P == 0),则设置 Config[2:0] == 0b1x1 是非法的。Config[0]可以是RAZ/WI。RAZ/WI Read-As-Zero, Writes Ignored.
如果stage 2未实现(SMMU_IDR0.S2P == 0),则设置 Config[2:0] == 0b11x 是非法的。Config[1]可以是RAZ/WI。
如果实现了stage 2,并且不支持Secure stage 2(SMMU_S_IDR1.SEL2 == 0),并且 STE 是从Secure Stream table中获得的,则设置 Config[2:0] == 0b11x 也是非法的。
配置Secure STE为 STE.Config[2:0] == 0b11x,且 STE.S2AA64 == 0 是非法的。
在一个valid STE中(STE.V == 1):
S2前缀的字段(除了S2VMID)被IGNORED ,如果stage 2 bypasses translation (Config[1] == 0)
S1前缀的字段被IGNORED ,如果stage 1 bypasses translation (Config[1] == 0)
Note:当stage 1配置为translate时,需要根据域段S1DSS 和 S1Fmt 的描述以获取substream配置。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !