PCIe wiki
PCI Express Port Bus Driver Support for Linux
PCIe driver development for Exynos SoC
DM81xx_AM38xx_PCI_Express_Endpoint_Driver_User_Guide
DWC pcie reference mannual
PCIe tutorial
深入PCI与PCIe之二:软件篇
PCIe设备枚举流程
一、designware pcie产品:Dual Mode core
RC core
EP core
Switch core
二、架构:Common Xpress Port Logic (CXPL)
实现大部分的传输层逻辑,所有的数据链路层逻辑,物理层的MAC部分(包括LTSSM)。这个module就是所说的core。
XADM和RADM都是针对传输应用添加的模块。比如说添加传输队列,仲裁TLP transmmision。
Transmit Application-Dependent Module (XADM)
Receive Application-Dependent Module (RADM)
Configuration-Dependent Module (CDM)
Power Management Controller (PMC)
Local Bus Controller (LBC)
Message Generation (MSG_GEN)
Hot Plug Control (hotplug_ctrl)
三、核心(CXPL)操作3.1 DM/RC/EP 模式下的初始化在reset之后,通过检测device_type输入进入到RC或者EP模式,CDM内部配置寄存器为复位值。
LTSSM前配置:keep the app_ltssm_enable signal deasserted after reset until the application is ready to establish a link and start receiving and transmitting TLPs,在这个阶段通过DBI配置好配置寄存器。
开始LTSSM:assert app_ltssm_enable to allow the LTSSM to begin link establishment
3.2 link EstablishmentPIPE口,和usb3.0一样。建立链路后,Data link module发起flow control initialization,完成后通知transaction layer module可以发送接收TLP。
3.3 TLP processing3.4 Interrupt支持传统中断intr和MSI
3.5 Flow Control分为两个phase:初始化和更新。VC0的初始化跟着link初始化,在发起正常传输之前完成。
3.6 Address Translation完成AMBA memory space到PCI memory space的转换,包括transmit地址转换和