多功能PCIE交换机之十:单NT的恢复


应用场景

1.virtual interface节点重启而link interface节点一直在线;

2. NTB或者DMA出现过function level reset(FLR);

3.系统重启时link interface节点比virtual interface节点早启动许多;

4.有问题的EEPROM导致系统无法启动


实现步骤:类似对NTB/DMA热插拔的支持

0.如果系统无法重启,先硬件通过板上的PEX使能跳线disable 8717;待系统BIOS启动后,通过跳线enable 8717;

1.暂停所有依赖8717的应用程序,卸载8717 NTB和DMA驱动

2.利用sysfs下的pci目录特性,到相应的B:D:F目录下:echo 1 > rescan

3.对link interface:

a.从默认文件或者根据默认值恢复bar0/bar1/bar2/bar3到系统正常时的值;

b.恢复设备的cache line和 interrupt line寄存器到系统默认的值

c.如果link bandwidth改变,还需要从默认文件或者设置恢复serdes到默认的设置


3.对NTB上DMA:(如果它也被reset)

a.从默认文件或者根据默认值恢复bar0/bar1到系统正常时的值;

b.恢复设备的cache line和 interrupt line寄存器到系统默认的值

c.如果link bandwidth改变,还需要从默认文件或者设置恢复serdes到默认的设置


4.重新加载8717驱动,根据需要恢复先前暂停的应用程序