bios相关FAQ
更新时间: 2025/08/18
在Gitcode上查看源码

【Q】丝印上报是怎么回事?

概述

  • BMC与BIOS通过IPMI命令交互是一种用途比较广泛的交互方式。在天池机型上,BIOS通过IPMI命令从BMC读取丝印信息就是其中一种

  • BIOS启动时,通过ReadFileFromBmc这条IPMI命令从BMC读取丝印文件silkconfig.json,解析丝印文件后,更新到BIOS人机界面、SMBIOS等

  • 丝印信息当前包括内存、PCIe设备、板载网卡、直通硬盘,即将实现CPU的丝印信息上报

  • ReadFileFromBmc的实现可见bios组件仓

  • silkconfig.json已支持一键收集时获取,路径为dump_info/AppDump/bios

MemSilk

  • 基于Memory对象实现,包含CpuId、ChannelId、LogicalChannelId、DimmId、DimmName属性。DimmName作为内存丝印信息,最终会体现到SMBIOS中

  • BIOS会通过WriteSmbiosData这条IPMI命令发送SMBIOS数据给BMC,BMC通过内存丝印信息来匹配Memory对象,从而更新内存静态信息

  • WriteSmbiosData的实现可见bios组件仓

  • SMBIOS_CONF已支持一键收集时获取,路径为dump_info/AppDump/bios

PCIeSilk

  • 基于ComponentType为NVMe(2)、PCIe(8)、OCP(83)的PcieAddrInfo对象实现,包含Segment、SocketID、PortID、SlotID以及类型属性

  • BIOS会通过WritePcieDiskBdfToBmc、WritePcieCardBdfToBmc、WriteOcpCardBdfToBmc将3种类型设备的BDF号传给BMC

  • BMC根据BDF号向BIOS查询对应PCIe槽位的四元组信息,从而加载对应的CSR

  • WritePcieDiskBdfToBmc、WritePcieCardBdfToBmc、WriteOcpCardBdfToBmc的实现可见bios组件仓

  • 加载PCIe设备CSR的流程可见pcie_device组件仓

NICSilk

  • 基于ComponentType为NIC(13)的PcieAddrInfo对象实现,包含SocketID、SlotID属性

  • 这种丝印类型针对的是板载网卡。BMC暂无应用场景

DiskSilk

  • 基于ControllerType为SAS(2)和SATA(3)的PcieAddrInfo对象实现,包含SocketID、PortID、SlotID、RootBDF等属性

  • 这种丝印类型针对的是CPU直出硬盘,不经过RAID卡管理,这些硬盘的信息需要通过BMA上报。有以下几个关键流程:

1、BMA基于rootBDF向BMC获取硬盘的丝印号

2、BMA将获取到的直通盘信息连同丝印号挂到BMC的资源协作路径上

3、storage组件通过丝印号来匹配Drive对象,匹配成功则将直通盘信息赋给对应的Drive对象