DPU电子标签BoardCustomInfo字段无法更新到对应的MDB FruData对象属性上

问题描述

DPU通过SMBUS读取到了BoardCustomInfo字段内容,尝试更新到对应的frudata对象时报以下错误

其他字段内容可以正确更新并显示。

请问ipmi_dft_write_elabel方法是怎么实现的?目前SR中的StorageType配置的是“MCU”

查看fru信息, 没有Board Extend区域

答案内容由AI生成,仅供参考:

结论

您遇到的 BoardCustomInfo 字段无法更新问题,最可能的根本原因是 BoardCustomInfo 字段内容的长度(135字节)超过了该域(Board Extra域)允许的最大写入长度限制(48字节)

ipmi_dft_write_elabel 函数很可能在闭源实现中内置了对该长度限制的检查。

关于您询问的另外两个可能原因:

  • StorageType 配置:根据上下文, StorageType 配置(如 MCUTianChiEepromV2)是用于定义电子标签的存储格式和解析逻辑的,它并不直接控制特定字段的写入长度限制。因此,问题与 StorageType 配置为 MCU 无关。
  • ipmi_dft_write_elabel 的通用长度限制:虽然这是一个闭源函数,但已知的文档记载了 Board 域各 field 的明确长度限制,这比一个通用的函数长度限制更具体、更可能是直接原因。

解决方案建议

  1. 检查数据长度:请确认需要写入的 BoardCustomInfo 数据是否确实超过48字节。如果是,则需要从需求层面缩减该字段的数据量。
  2. 检查写入区域:请确保写入命令和逻辑将 BoardCustomInfo 数据写入了 Board Extra 域中除 field 0 以外的正确 field。field 0 只有3字节的限制,其他 field 的限制是48字节。
  3. 验证CSR配置:由于这是DPU场景,请检查相关的CSR配置,确认FruData对象的属性映射是否正确指向了电子标签中的 BoardCustomInfo 字段。

总结:此问题的根本原因并非 StorageType 或通用的函数长度限制,而是特定域(Board Extra 域)的字段级写入长度限制(48字节)。您的数据长度(135字节)超出了此限制。

点击此处查看详细分析解答

您好,根据您提供的上下文信息,我将对该问题进行分析和解答。

问题分析

您遇到的问题是DPU通过SMBUS读取到的BoardCustomInfo字段内容(长度135字节)无法更新到对应的FruData对象属性上,而其他字段可以正常更新。错误信息指向 ipmi_dft_write_elabel 函数。

根据上下文,关于此问题有两个关键信息点:

  1. ipmi_dft_write_elabel 函数及失败原因:已知 ipmi_dft_write_elabel 是一个闭源的BMC固件函数,用于将电子标签数据写入FRU内存。该函数曾因访问权限失败(错误码211)而导致写入失败。
  2. 电子标签写入的长度限制:关于写入标准FRU的 Board Extra 域BoardCustomInfo 字段所在区域),文档明确记载了长度限制

    Board 域 field 0 固定只能写入3字节,其它 field 写入长度限制为48字节。

结论

您遇到的 BoardCustomInfo 字段无法更新问题,最可能的根本原因是 BoardCustomInfo 字段内容的长度(135字节)超过了该域(Board Extra域)允许的最大写入长度限制(48字节)

ipmi_dft_write_elabel 函数很可能在闭源实现中内置了对该长度限制的检查。

关于您询问的另外两个可能原因:

  • StorageType 配置:根据上下文, StorageType 配置(如 MCUTianChiEepromV2)是用于定义电子标签的存储格式和解析逻辑的,它并不直接控制特定字段的写入长度限制。因此,问题与 StorageType 配置为 MCU 无关。
  • ipmi_dft_write_elabel 的通用长度限制:虽然这是一个闭源函数,但已知的文档记载了 Board 域各 field 的明确长度限制,这比一个通用的函数长度限制更具体、更可能是直接原因。

解决方案建议

  1. 检查数据长度:请确认需要写入的 BoardCustomInfo 数据是否确实超过48字节。如果是,则需要从需求层面缩减该字段的数据量。
  2. 检查写入区域:请确保写入命令和逻辑将 BoardCustomInfo 数据写入了 Board Extra 域中除 field 0 以外的正确 field。field 0 只有3字节的限制,其他 field 的限制是48字节。
  3. 验证CSR配置:由于这是DPU场景,请检查相关的CSR配置,确认FruData对象的属性映射是否正确指向了电子标签中的 BoardCustomInfo 字段。

总结:此问题的根本原因并非 StorageType 或通用的函数长度限制,而是特定域(Board Extra 域)的字段级写入长度限制(48字节)。您的数据长度(135字节)超出了此限制。

BoardCustomInfo是扩展域,MCU当前只支持写MfgDate、BoardProductName、BoardSerialNumber

请问StorageType要配成什么类型可以支持BoardCustomInfo字段的写入?

还要看存储格式是什么,只有Tianchi和EpromV2的支持写MfgDate、BoardProductName、BoardSerialNumber