【PCIe 总线及设备入门学习专栏 5.3.4 -- PCIe PHY Firmware 固件加载流程】
文章目录
-
- Overview
-
- PCIe PHY Firmware
- Firmware 加载流程
- PERSN# 与 Firmware 加载
- 代码流程示例
Overview
主流的 PCIe PHY内部均实现了一个简单的 CPU 用于执行 Firmware 固件进程,用于完成 PCIe 建链过程,例如速率切换,完成均衡算法等等。在 PCIe PHY 开始建链之前,需要将Firmware写入到PHY中,本质是写入到存储固件代码的存储模块中。
PCIe PHY Firmware
PCIe PHY(Physical Layer)firmware 是指用于控制和管理PCI Express(PCIe)物理层功能的固件。PHY内部有很多配置和状态寄存器,firmware固件通过读取状态寄存器和读写配置寄存器完成物理层数据流的处理。firmware完成的工作包容如下内容:
- PCIe速率切换(gen1–>gen3等等)
- 编解码方式切换(8b10b切换到128b130b)
- 判断 CRD 是否lock
简单来说,firmware就是一套配置文件,决定了在特定的时刻给控制类寄存器写入合适的数值以完成物理层的电路功能。
常见设计中,firmware的数据容量较大(有些PHY需要的firmware容量为96KB),因此 firmware存储在rom中,PCIe PHY 会预留一组接口用于写入firmware,在PHY上电后通过接口将rom中的的firmware写入PHY内部的ram中,此过程称之为firmwa