地址域和iATU

iATU是PCIe设备中用于地址转换的单元,将PCI地址转化为设备内部地址。它支持入站和出站映射,以及地址匹配和BAR匹配两种模式。地址匹配模式在PCIe分配地址后进行,而BAR匹配模式常在设计时固定,由SoC固件配置。文章讨论了这些概念及其在PCIe板卡集成中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要来自:

https://www.cnblogs.com/DF11G/p/17341493.html

https://blog.csdn.net/alex_mianmian/article/details/120240748

加上自己的理解

背景

        遇到iATU源于自己一段DPU的工作经历,需要集成PCIe的IP,S家的PCIe控制器里面有iATU,结果将PCIe地址和Device侧地址终于搞明白了。

iATU的概念

首先网上找来的一段,解释的比较好

iATU:

1、iATU是内部地址转换单元。它将PCI地址转换为设备内部地址。

        例如,PCI/PCIe板卡,板卡上有DDR和SoC。并且板卡上具有SoC设备和DDR的内部地址。

这个内部地址空间不同于PCI域的地址。PCI域的地址由主机在扫描板卡时指定(通过bar映射)。

        如果主机想要直接访问板卡上的 DDR,需要板卡上的iATU 将PCI地址转换为内部地址。

        总之,可以理解为:PCI地址==PCI域的地址

2、iATU映射方向:

        iATU可以进行入站和出站映射。

        入站映射是PCI地址到内部地址的映射。

        出站映射是指向PCI地址的内部地址。

3、iATU映射模式:

        在设备上,iATU支持两种映射模式,地址匹配模式和BAR匹配模式。

        1)、对于地址匹配模式:

                PCI地址------映射------内部地址

                这需要PCIe扫描之后,Host分配地址之后,完成的。

              PCIe分配地址之后,这时候板卡在PCIe域的地址才确定下来,这时候就需要板卡上的 Soc(如果有的话),进行PCIe地址和板卡地址的映射。             

        2)、对于BAR匹配模式:

                BAR编号------映射------内部地址

                一般来说,如果板卡具有SoC,SoC上的Firmware将使用BAR匹配模式配置iATU映射。不要让主机端驱动程序配置它(主机程序也可以实现,这需要将iATU映射到bar的固定地址)。这一般是在设计时就规划好,直接写死。

具体场景分析

待补充

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值