0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ARM SMMU Data structure之Context Descriptors

芯片驗(yàn)證工程師 ? 來源:芯片驗(yàn)證工程師 ? 2023-05-11 09:10 ? 次閱讀

STE 包含每個(gè)stream的配置,指示:

? 是否啟用來自device的流量。

? 是否進(jìn)行stage 1 translation,獲取stage 1 translation tables的配置。

? 是否進(jìn)行stage 2 translation以及相關(guān)的stage 2 translation tables和VMID。

如果啟用了stage 1,則STE中的S1ContextPtr字段包含一個(gè)或多個(gè)cd的基址。CD將StreamID與stage 1 translation table基指針(將VA轉(zhuǎn)換為IPA)、per-stream配置和ASID關(guān)聯(lián)起來。

如果多個(gè)devices與一個(gè)特定的虛擬機(jī)相關(guān)聯(lián),這意味著它們共享stage 2 translation tables,也就是說多個(gè)ste可能會(huì)映射到一個(gè)stage 2 translation table。

通常來說,Stream table和stage 2 translation table由hypervisor管理,而與devices相關(guān)的cd和stage 1 translation tables由guest OS管理。此外,hypervisor可以使用單獨(dú)的hypervisor stage 1 translations。

在不使用hypervisor的情況下,裸機(jī)操作系統(tǒng)管理Streamtable和CDs。

當(dāng)輸入事務(wù)啟用SubstreamID時(shí),SubstreamID索引CDs以選擇 stage 1 translation context。如果沒有提供SubstreamID,行為取決于ST.S1DSS:

當(dāng)STE.S1DSS == 0b00,所有流量都有SubstreamID,不帶有SubstreamID的輸入事務(wù)則被中止并記錄一個(gè)事件。

當(dāng)STE.S1DSS == 0b01,沒有SubstreamID的事務(wù)視為配置stage 1-bypass。

當(dāng)STE.S1DSS == 0b10,沒有SubstreamID的事務(wù)使用Substream=0的CD。在此配置下,SubstreamID=0的事務(wù)將被中止,并記錄一個(gè)事件。

當(dāng)stage 1被啟用時(shí),STE.S1ContextPtr字段給出了以下地址之一(由配置STE.S1FmtSTE.S1CDMax)確定:

一張CD。

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

L1CDs的起始地址,L1CD.L2Ptr都指向一個(gè)L2CDs的起始地址。L1CDs由SubstreamID的高位索引,L2CDs由SubstreamID的較低位索引。用于L1CDs和L2CDs索引的SubstreamID位由STE.S1Fmt配置。

當(dāng)同時(shí)使用stage 1和stage 2時(shí),S1ContextPtr和L2Ptr地址為IPA,僅使用stage1時(shí)為PA。

由CD和STE提供的ASID和VMID值是TLB tag的一部分,用于區(qū)分不同之間的地址空間,或者在接收到TLB invalidation操作時(shí)匹配無效的TLB。

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

Configuration structure example

上圖顯示了一個(gè)示例配置,其中StreamID從linear Stream table中選擇一個(gè)Ste,Ste指向stage2的translation table,并指向單個(gè)stage1的CD配置, 然后CD指向stage1的translation tables。

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

上圖顯示了一個(gè)配置,其中一個(gè)STE指向包含多個(gè)cd的數(shù)組。SubstreamID選擇其中一個(gè)cd,最終確認(rèn)要用的stage1頁表。

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

Multi-level Stream and CD tables

上圖顯示了一個(gè)更復(fù)雜的布局,其中使用了一個(gè)multi-level Stream table。其中兩個(gè)STE指向一張CD或一個(gè)CD數(shù)組,而第三個(gè)STE指向一個(gè)multi-level CD table 。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9028

    瀏覽量

    366496
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6689

    瀏覽量

    123141
  • 虛擬機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    905

    瀏覽量

    28021
  • TLB電路
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    5246

原文標(biāo)題:ARM SMMU Data structure之Context Descriptors

文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM系列SMMU總線資料合集

    、SMMU的高級(jí)功能上篇我們介紹了SMMU的基本結(jié)構(gòu)和用法,本篇講一下SMMU的高級(jí)功能。在ARM64體系結(jié)構(gòu)中,SMMU幾乎可以放在總線互
    發(fā)表于 04-11 15:58

    多個(gè)設(shè)備是否可以共用一個(gè)SMMU StreamID?

    ;__iommu_probe_device->arm_smmu_probe_device->arm_smmu_insert_masterarm_smmu_insert_master將這些
    發(fā)表于 11-07 15:36

    SMMU學(xué)習(xí)這一篇就夠了

    前言最近朋友圈、微信群( ARM-Trustzone-TEE-AT)掀起一陣學(xué)習(xí)SMMU的熱潮,作為一名安全領(lǐng)域的渣渣 ,勢(shì)必要蹭一蹭這個(gè)“熱點(diǎn)”,也學(xué)習(xí)一下吧,反正早晚都要學(xué),因?yàn)樗桶踩年P(guān)系
    發(fā)表于 02-23 17:11

    RK3588 ubunutu pcie虛擬化的SMMU配置在哪里修改呢?

    信息:  2. DTS配置  2.1 SMMU配置  compatible = “arm,smmu-v3”;
    發(fā)表于 03-13 14:32

    ARM系統(tǒng)內(nèi)存管理單元架構(gòu)規(guī)范SMMU架構(gòu)2.0版

    ARM系統(tǒng)MMU(SMMU)體系結(jié)構(gòu)為存儲(chǔ)器管理單元(MMU)實(shí)施提供了靈活的實(shí)施框架,具有多個(gè)實(shí)施定義的選項(xiàng)。 該體系結(jié)構(gòu)可用于系統(tǒng)級(jí)的MMU。 它基于轉(zhuǎn)換表中保存的地址映射和內(nèi)存屬性信息,支持從
    發(fā)表于 08-12 06:25

    1線文件結(jié)構(gòu)-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
    發(fā)表于 04-24 09:48 ?827次閱讀
    1線文件結(jié)構(gòu)-1-Wire File <b class='flag-5'>Structure</b>

    ARM720T DATA

    ARM720T DATA
    發(fā)表于 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 基本知識(shí) 如上圖所示,smmu 的作用和mmu 類似,mmu作用是替cpu翻譯頁表將進(jìn)程的虛擬地址轉(zhuǎn)換成cpu可以識(shí)別的物理地址。同理
    的頭像 發(fā)表于 10-09 10:43 ?4244次閱讀
    <b class='flag-5'>arm</b> <b class='flag-5'>smmu</b>的原理

    arm smmu的原理與smmu驅(qū)動(dòng)iommu框架

    如上圖所示,smmu 的作用和mmu 類似,mmu作用是替cpu翻譯頁表將進(jìn)程的虛擬地址轉(zhuǎn)換成cpu可以識(shí)別的物理地址。同理,smmu的作用就是替設(shè)備將dma請(qǐng)求的地址,翻譯成設(shè)備真正能用的物理地址,但是當(dāng)smmu bypass
    的頭像 發(fā)表于 10-09 10:48 ?6063次閱讀
    <b class='flag-5'>arm</b> <b class='flag-5'>smmu</b>的原理與<b class='flag-5'>smmu</b>驅(qū)動(dòng)iommu框架

    SystemVerilog中的Packed Structure

    一個(gè)packed structure有很多的bits組成,這些bit在物理上連續(xù)存儲(chǔ)。packed structure只允許包含packed數(shù)據(jù)類型。
    的頭像 發(fā)表于 11-07 10:17 ?2119次閱讀

    SMMU數(shù)據(jù)結(jié)構(gòu)格式

    就是SMMU Level 1 Stream Table Descriptor的數(shù)據(jù)格式,簡(jiǎn)稱 **Level1 STD** 。
    的頭像 發(fā)表于 04-28 11:48 ?896次閱讀

    SMMU數(shù)據(jù)結(jié)構(gòu)格式Level 1 Stream Table Descriptor介紹

    上圖就是SMMU Level 1 Stream Table Descriptor的數(shù)據(jù)格式,簡(jiǎn)稱Level1 STD。
    的頭像 發(fā)表于 05-06 14:44 ?941次閱讀
    <b class='flag-5'>SMMU</b>數(shù)據(jù)結(jié)構(gòu)格式<b class='flag-5'>之</b>Level 1 Stream Table Descriptor介紹

    ARM SMMU Data structures概述

    ARM SMMU 是一種用于系統(tǒng)級(jí)內(nèi)存管理單元(MMU)的架構(gòu),它支持基于translation表中的地址映射和內(nèi)存屬性信息的地址轉(zhuǎn)換。
    的頭像 發(fā)表于 05-08 12:46 ?961次閱讀
    <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可以找到一個(gè)STE。SMMU支持兩種Stream table格式,格式由Stream table base registers設(shè)置。
    的頭像 發(fā)表于 05-11 09:22 ?1238次閱讀
    <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的轉(zhuǎn)換流程介紹

    如果SMMU全局禁用(例如,剛結(jié)束復(fù)位SMMU_CR0.SMMUEN == 0),則transaction將通過SMMU而不進(jìn)行任何地址轉(zhuǎn)換。
    的頭像 發(fā)表于 05-15 10:07 ?893次閱讀
    <b class='flag-5'>SMMU</b> VA-&gt;PA的轉(zhuǎn)換流程介紹