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

完善資料讓更多小伙伴認識你,還能領取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的一部分,用于區(qū)分不同之間的地址空間,或者在接收到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 。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9009

    瀏覽量

    366087
  • 操作系統
    +關注

    關注

    37

    文章

    6614

    瀏覽量

    123031
  • 虛擬機
    +關注

    關注

    1

    文章

    897

    瀏覽量

    27971
  • TLB電路
    +關注

    關注

    0

    文章

    9

    瀏覽量

    5245

原文標題:ARM SMMU Data structure之Context Descriptors

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ARM系列SMMU總線資料合集

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

    多個設備是否可以共用一個SMMU StreamID?

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

    SMMU學習這一篇就夠了

    前言最近朋友圈、微信群( ARM-Trustzone-TEE-AT)掀起一陣學習SMMU的熱潮,作為一名安全領域的渣渣 ,勢必要蹭一蹭這個“熱點”,也學習一下吧,反正早晚都要學,因為它和安全的關系
    發(fā)表于 02-23 17:11

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

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

    ARM系統內存管理單元架構規(guī)范SMMU架構2.0版

    ARM系統MMU(SMMU)體系結構為存儲器管理單元(MMU)實施提供了靈活的實施框架,具有多個實施定義的選項。 該體系結構可用于系統級的MMU。 它基于轉換表中保存的地址映射和內存屬性信息,支持從
    發(fā)表于 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
    發(fā)表于 04-24 09:48 ?818次閱讀
    1線文件結構-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 基本知識 如上圖所示,smmu 的作用和mmu 類似,mmu作用是替cpu翻譯頁表將進程的虛擬地址轉換成cpu可以識別的物理地址。同理
    的頭像 發(fā)表于 10-09 10:43 ?4187次閱讀
    <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
    的頭像 發(fā)表于 10-09 10:48 ?6030次閱讀
    <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在物理上連續(xù)存儲。packed structure只允許包含packed數據類型。
    的頭像 發(fā)表于 11-07 10:17 ?2059次閱讀

    SMMU數據結構格式

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

    SMMU數據結構格式Level 1 Stream Table Descriptor介紹

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

    ARM SMMU Data structures概述

    ARM SMMU 是一種用于系統級內存管理單元(MMU)的架構,它支持基于translation表中的地址映射和內存屬性信息的地址轉換。
    的頭像 發(fā)表于 05-08 12:46 ?939次閱讀
    <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設置。
    的頭像 發(fā)表于 05-11 09:22 ?1208次閱讀
    <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而不進行任何地址轉換。
    的頭像 發(fā)表于 05-15 10:07 ?857次閱讀
    <b class='flag-5'>SMMU</b> VA-&gt;PA的轉換流程介紹