=PCIE_BUS_PERFORMANCE)return;/** For max performance, the MRRS must be set to the largest supported* value. However, it cannot be configured larger than the MPS
MRRS代表最大读数据请求大小,对于MRRS选择,同样有6种:128B,256B,512B,1024B,2048B,4096B. 这个参数也是在Configuration阶段,写入到设备的control寄存器。MRRS可以比MPS大,比如MPS设置为256B,MRRS设置为4KB,通常MRRS大于等于MPS。 在MPS在PCIe整体性能中,有至关重要的作用。随着MPS大小的增加,PCIe传输效率也在不断...
pcie_bus_perf 模式,两端设备MPS可能是不同的, 若 RP MPSS:512 MPS:256, EP MPSS:128 ,此模式下EP MPS协商设置为128, 同时需要将MRRS设置为128,避免出现读请求size > MPS, 出现畸形报文的情况。 随着PCIe协议的演进,在其他场景也出现需要类似的机制,若tag设置5-bit, 8-bit, 10-bit tag能力,tag这块实现...
如果需要修改MPS或者MRRS,需要先找到Device Control Register中MPS和MRRS的位置,如PCIe Spec定义,MPS在bit5-7,MRRS在bit12-14. 同时Device Control Register的offset是0x8h。 比如小编环境中,PCIe Capacity的位置在0x70. 结合Device Control Register的offset是0x8h,我们就可以整体看到MPS和MRRS修改的PCIe配置空间的位...
pcie_write_mrrs(dev); pci_info(dev, "Max Payload Size set to %4d/%4d (was %4d), Max Read Rq %4d\n", pcie_get_mps(dev), 128 << dev->pcie_mpss, orig_mps, pcie_get_readrq(dev)); return 0; } void pcie_bus_configure_settings(struct pci_bus *bus) ...
based on its parent bus. Also set MRRS (Max Read Request Size) to the largest supported value (no larger than the MPS that the device or bus can support) for best performance. pcie_bus_peer2peer Set every device's MPS to 128B, which ...