多功能PCIE交换机之十:NTB EEPROM 更新注意事项

2024-03-23 05:10

本文主要是介绍多功能PCIE交换机之十:NTB EEPROM 更新注意事项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


8717 PLX NTB EEPROM烧写


1.背景


NTB上的EEPROM保存着它上电后的默认设置,包括PCIE链接的设置、NT端口的使能、地址转换窗口的数量和大小、PCIE AER的默认配置等等。在新机器安装之前、系统地址窗口需要改变等情况下,就需要通过厂商提供的SDK 工具进行NTB EEPROM的烧写。



2.针对不同出厂设置的烧写方法

考虑到不同厂商的差异以及不同客户的需求,厂商提供的主板上的NTB EEPROM可能出现下面的几种配置:


  • NT 链接

首先通过NTB的示例程序,比如PLX提供的NTSample,可以看到双控系统上一侧NTB port类型是Virutual interface, 如下图所示意:


wKioL1ihmmqx83BkAAAirVu2rcI501.png双控系统另外一侧的portlink interface,如下图所示意:


 wKiom1ihmqeTufkiAACF5uXOyRc486.jpg在这virtual interface一侧,既可以通过NT PCIE downstream设备又可以通过upstream设备进行烧写,正确的操作:

a.单击左上区域选择NTBupstream PCIE 设备 4:0:0或者 NTB downstream PCIE 6:00.0

b.双击在左下角区域选择EEPROM Editor

c.tools中选择program eeprom, 打开virtual interface对应的eeprom文件,进行烧写。


如下图所示:

wKioL1ihnAuSIEgnAAA-Y5VxDtI714.png



而如果需要更新link interface一侧的NTBEEPROM,切记不能选择down stream设备6:00.0对应的EEPROM进行烧写,因为这样会烧写到对侧virtual interfaceEEPROM里面去,而只能基于它的upstream PCIE device进行烧写,如下图:

wKiom1ihnjvyL9pRAABDT5b7AZg794.png


在单NT模式下,建议烧写操作的顺序如下:

a.烧写NT Link interfaceNTB EEPROM

b.重启NT Link interface的控制器;

c. NT Link interface重启进入OS之后,检查down steam port 是否存在,如果存在,到下一步; 否则跳到步骤a;

d. 烧写NT Virtual interface控制器的NTB EEPROM,烧写完成之后,重启让新的EEPROM生效。


  • NT


NTSample显示两端都是Virtual-Side(背靠背)链接的时候,可以看做双NT模式,此时两侧的NVDIMM可参照单NT Port virtual interface 一侧的EEPROM进行烧写。


  • NT (没有NTBeanble)

此时用lspic看不到NTB设备,down stramupstream的设备都看不到,这很可能是BIOSNTB没有使能的原因所致。


还有一种现象是,lspci能看到NTB upstream的设备,但是看不到down steam的设备,

这个很可能是因为两侧的NTBNT端口在eeprom都被disable,都变成link interface所致。


不管上面哪种NT的设置,都要求烧写NTB EEPROM的时候不要重启、掉电,否则可能导致系统无法启动。


3.烧写过程碰到问题的处理


烧写过程中,一不小心,很可能就会出现下面的问题:


a. link interface烧写EEPROM

如果在link interface通过downstream进行烧写EEPROM,注意它实际烧写到了virtual interface一侧的NTB上的EEPROM上去了。 如果是在单NT的配置下,且先在virtual interface一侧烧写NTB EEPROM,再在link interface一侧烧写link interface一侧期望的EEPROM, 实际结果会发现两侧节点的NT port都被disable了,导致只看到upstream节点,看不到downstream节点,这样NTB驱动无法加载,后面也就无法再用厂家提供的SDK工具来更新NTB EEPROM。 针对这种问题,可以考虑下面的步骤进行恢复:

  • 从其他双控系统上找到一个NTB virtual interface的节点,把它替换出现问题的双控系统上的link interface节点;或者把出现问题的virtual interface节点替换NTB正常的双控系统上的link interface节点;


  • 重新上电后,系统应该能够启动,并且两个控制器的NTB驱动都能加载,参考上文中关于单NT link interface 烧写EEPROM的方法,把当前系统上的link interface 一侧的控制器上的EEPROM 烧写成virtual interface 模式;


  • 用之前出现问题的双控系统的link interface 一侧的控制器,替代其他机器上的控制器;或者在virtual interface一侧重新插入烧好了EEPROM的控制器。上电后,应该两个控制器都能看到downstream NTB.



b.烧录了有问题的EEPROM,导致系统无法启动


可参考下面的方案,先通过硬件跳线跳过BIOS阶段对NTB的扫描,进入系统后解除跳线,通过SDK过擦除EEPROM, 然后重新烧写正确的EEPROM


 

4.总结


NTBEEPROM烧写,需要深刻理解NTB port interfacelink interface的区别,只有对NTB底层硬件工作原理、PCIE设备探测、驱动加载、NTB系统互联有全面的了解,才可能找到办法解决烧写过程中碰到的各种问题。




















本文转自存储之厨51CTO博客,原文链接:http://blog.51cto.com/xiamachao/1897422 ,如需转载请自行联系原作者





这篇关于多功能PCIE交换机之十:NTB EEPROM 更新注意事项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/837233

相关文章

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更

一文带你迅速搞懂路由器/交换机/光猫三者概念区别

《一文带你迅速搞懂路由器/交换机/光猫三者概念区别》讨论网络设备时,常提及路由器、交换机及光猫等词汇,日常生活、工作中,这些设备至关重要,居家上网、企业内部沟通乃至互联网冲浪皆无法脱离其影响力,本文将... 当谈论网络设备时,我们常常会听到路由器、交换机和光猫这几个名词。它们是构建现代网络基础设施的关键组成

Spring Security6.3.x的使用指南与注意事项

《SpringSecurity6.3.x的使用指南与注意事项》SpringSecurity6.3.1基于现代化架构,提供简洁配置、增强默认安全性和OAuth2.1/OIDC支持,采用Lambda... 目录介绍基础配置 (Servlet 应用 - 使用 Lambda DSL)关键配置详解(Lambda DS

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构