designware PCIE IP核的驱动 调试及记录

本文详细介绍了PCIe驱动的初始化流程,包括开启时钟、链路训练及状态机(LTSSM)的应用。在配置空间访问中,讨论了三种不同的实现方法,并阐述了如何通过IATU进行地址映射以直接操作PCI设备。此外,文章还解释了通过TLP包的TYPE区分内存读写和配置空间操作,并展示了新版本地址转换的寄存器配置方式。

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

designware PCIE

1. PCIE RC 驱动流程

  • 开启时钟,初始化PCIE PHY 的状态,打开训练状态,若是训练完成,和EP建立了链接, (在PCIe链路可以正常工作之前,需要对PCIe链路进行链路训练,在这个过程中,就会用LTSSM(Link Training and Status State Machine))LTSSM将会进入L0状态
  • 接下来可以对EP的配置空间进行访问(前置知识,你需要了解PCIE的配置空间,mem空间,io空间),以深度优先的方式开始进行不同的设备的枚举。(不同的PCIE的控制器有不同的配置空间访问的实现方法:1.在CPU地址空间中专门划分出来256MB的空间用作配置空间的访问。2.将EP设备的PCI总线地址配置特殊寄存器来指定要访问的设备。3.和1相似,但是不需要256MB的地址空间,实现方式是每次在访问EP设备的配置空间,都需要去改iATU的映射规则(前置知识,了解iATU是什么,地址映射是什么),这样可以将同样的CPU的地址映射到不同的PCI总线的地址)
  • 读到配置和地址空间 (ssdfans.com)VID和DID不为0xFFFF,说明有设备,然后进行读取设备精确信息,配置设备在PCIE总线上的mem地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值