用于操作 pcie 设备的那部分内存空间该怎么称呼? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wniming
V2EX    硬件

用于操作 pcie 设备的那部分内存空间该怎么称呼?

  •  
  •   wniming 2023-01-26 16:39:05 +08:00 2203 次点击
    这是一个创建于 987 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以下是截取 r8125 2.5G 网卡的 lspci 的输出,可以看出

    region0 是用来通过 io 端口配置设备的, region2 是用来通过 mmio 来配置和操作设备的, region4 是用来设置设备的 msix 中断的,

    我可以称 region4 映射的内容是 msix table ,但不知道该怎么称呼 region2 映射的内容,是叫“mmio device register”,还是叫“mmio device dat”,我只知道这个 region 是用来配置和操作设备的,不知道里面的东西该怎么称呼。

    因为要给开源社区提交 patch 才纠结这个问题,我希望对 region2 映射的内容的描述肯定能让人看懂没有歧义。

    root@develop:~# lspci -s 07:00.0 -vv 07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05) DeviceName: Realtek RTL8125BG LAN Subsystem: ASUSTeK Computer Inc. Device 87d7 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 37 IOMMU group: 17 Region 0: I/O ports at d000 [size=256] Region 2: Memory at fcb00000 (64-bit, non-prefetchable) [size=64K] Region 4: Memory at fcb10000 (64-bit, non-prefetchable) [size=16K] Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+) Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME- Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+ Address: 0000000000000000 Data: 0000 Masking: 00000000 Pending: 00000000 Capabilities: [70] Express (v2) Endpoint, MSI 01 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 26W DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+ RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 4096 bytes DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend- LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x1 TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR+ 10BitTagComp- 10BitTagReq- OBFF Via message/WAKE#, ExtFmt- EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS- TPHComp+ ExtTPHComp- AtomicOpsCap: 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled, AtomicOpsCtl: ReqEn- LnkCap2: Supported Link Speeds: 2.5-5GT/s, Crosslink- Retimer- 2Retimers- DRS- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1- EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest- Retimer- 2Retimers- CrosslinkRes: unsupported Capabilities: [b0] MSI-X: Enable- Count=32 Masked- Vector table: BAR=4 offset=00000000 PBA: BAR=4 offset=00000800 Capabilities: [d0] Vital Product Data 
    5 条回复    2023-02-10 10:24:10 +08:00
    churchmice
        1
    churchmice  
       2023-01-26 17:29:48 +08:00 via Android
    那个不叫 region2,叫做 bar2
    pcie 的配置寄存器分两块,一块用 conifg read/write 来访问,大小 4K,里面是跟 pcie 本身的配置,一般不涉及具体的设备性质

    另一部分叫做 mmio,通过 bar 的形式映射到系统的 mmio 空间里面,你可以叫 bar0,bar1,bar2...bar5 ,每一个都是 32bit 的 bar
    当然你也可以把 bar0/bar1 合在一块变成一个 64bit 的 bar0
    wniming
        2
    wniming  
    OP
       2023-01-26 17:51:54 +08:00   1
    @churchmice 感谢回复,那么 lspci 输出中的 region 是什么意思?
    churchmice
        3
    churchmice  
       2023-01-26 19:22:08 +08:00 via Android
    @wniming region 就是 bar,只不过在 pcie spec 里面只有 bar,没有 region 这种说法
    RobertYang
        4
    RobertYang  
       2023-02-10 10:21:27 +08:00
    BAR 是 base address register ,他指示 MEM 或 IO 空间的基地和属性,所以这里写 region 也没问题。
    RobertYang
        5
    RobertYang  
       2023-02-10 10:24:10 +08:00
    每个 BAR 空间里面的功能你需要去看网卡的定义,PCIe 协议里面没有规定,PCIe 只对配置空间有规定。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     891 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:00 PVG 04:00 LAX 13:00 JFK 16:00
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86