BAR
Base address register
用来申请内存范围,访问类型(P-MMIO, NP-MMIO, IO), 宽度(32/64 BITS)
以及系统分配的首地址
Base & Limit
PCIe EP(TYPE 0 HEADER)没有这两个寄存器
RC, SWITCH (TYPE 1 HEADER)包含这两个寄存器
用作设定RC/SWITCH SECONDARY BUS(DOWNSTREAM)的地址范围,从而判断是否将PRIMARY BUS ( UPSTREAM )上的请求往下传
PCIE是POINT TO POINT的,不像PCI,是SHARED-BUS,总线上的数据,是被所有EP DEV看到的。
这一点与USB2.0比较类似,是广播方式的(BROADCASTING)
USB3.0也修改了广播方式,变成了ROUTING方式
OS(ORDERED SET) 与DLLP是在一个LINK之间交互的
TLP可能会在多条LINK之间交互
有三组,分别对应NP-MMIO, P-MMIO, IO
P-MMIO & NP-MMIO
BASE的低20位,总是0.
LIMITS的低20位,总是1.
所以,最小的范围是1MB
IO
BASE的低12位,总是0
LIMITS的低12位,总是1
所以,最小的范围是4KB
无效的范围:
如果BASE > LIMIT,则表示一个无效的范围
本文详细解析了PCIe设备中BAR(Base Address Register)的作用及其如何定义内存访问范围和类型。同时介绍了Base&Limit寄存器在RC和Switch中的应用,用于设定下游总线的地址范围,确保上游请求的有效传递。

被折叠的 条评论
为什么被折叠?



