nvme在silkconfig.json的格式

bmc需要向bios提供nvme丝印文件,bios才能获取nvme的信息。

请问nvme的丝印格式及数据来源是如何的呢?

1.丝印文件格式:json格式,可以在telent中执行 find / -name silkconfig.json,找到丝印文件,查看其中的数据内容

2.silkconfig.json是在bios仓中生成的,可以看一下bios_service.lua中的get_pcie_silk_node函数

您说的以上都知道的。我的理解是,NVME盘信息先上树,当NVME盘信息上树后bmc可获取,具体见get_pcie_silk_config,从get_pcie_silk_node分析NVME信息应属于PCIeSilk。如果确实如此,数据链路就非常清晰了。

1.在csr中配置pcieaddrinfo_nvme对象,BMC启动阶段会上树

2.pcie组件为pcieaddrinfo对象进行topo属性更新

3.OS上电,bios向BMC发送获取丝印信息的命令

4.BMC收到命令,创建/更新丝印文件,并返回给BIOS

不知道你想捋的是不是这个流程。

但nvme盘的信息,是上到bmc.kepler.storage /bmc/kepler/Systems/1/Storage/Drives/Drive_11_010102。

所以要在丝印中加入nvme的丝印信息,是否应该修改get_pcie_silk_config函数中的pcie路径为storage?

在下面链接中描述,在一键收集的日志里有记录silkconfig.json,但实际上无论V2还是V3的日志,都没有这份文件,请问是什么原因?

https://support.huawei.com/enterprise/zh/doc/EDOC1100235158/f40a8c00

不用换。

NVMe的丝印信息在PcieAddrInfo对象中,硬盘信息在drive对象中,这两者并不冲突。

你需要搞清楚传递丝印信息的目的:

丝印主要起一个设备配准的功能:socketid+portid可以精准定位到OS下的一个设备,slotid则是定位BMC侧的一个设备,丝印信息将socketid+portid和slotid组合起来,就实现了BMC侧与OS侧的设备配准。PcieAddrInfo对象重点服务该功能(另外还支持高速拓扑建立)。

经过设备配准之后,才会进入对应的组件对设备对象进行信息赋值。

我收集的日志里是有这个文件的