【已评审】新增私有对象,新增UartDynamicConfig,支持串口参数改配

背景

  • 某客户诉求,要求某机型支持串口参数(波特率,数据位等)改配

  • 串口配置参数更改步骤:bios菜单设置→bios自动复位→下发给cpld→bmc监听smc传递的参数值,读到配置发生变更后进行串口参数改配

  • 波特率设置后,需要把联通的其他Uart的参数一起配置;如当建立sol会话后,配置变更时需要同时更改输入端口和Uart5的配置参数

  • 设计约束,1、使能Hisport over Uart后设备无法访问,源Uart的波特率等参数信息无法查询。2、当前仅支持查询波特率,无法得知停止位数据位等其他参数的情况。故原有Uart对象下的参数属性用于维护当前Uart的参数配置,而cpld传来的新配置用新对象承载

  • 串口连接状态变更时,需要将对端连接的串口信息重新配置;如断开连接时需要将对端连接的Uart恢复为默认参数配置

  • 串口参数配置修改的源端口不一定是Uart,也可能是Port口,故不能将Uart直接复用承载cpld下发的信息

决策点(必填,一句话描述待决策点)

新增私有对象UartDynamicConfig,用于承载从硬件获得到的串口参数值

详细描述(必填,描述待评审接口的详细内容)

1、新增私有对象UartDynamicConfig

变化类型:新增私有对象

应用场景:用于承载从硬件获得到的串口参数值,包括原始数据和经映射得到的具体实际的参数值,并将其参数适配到源节点(如果是Uart)和源节点相连的所有Uart。

持久化类型: 无

操作权限:ReadOnly

详细描述:

属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
SysComId 新增属性 u8 只读 R:ReadOnly false 支持动态配置的输入端口Id Uart:0~15,Port:16~31,与SerialManagement的SrcSerial/DestSerial属性保持一致
RawConfigData 新增属性 u64 只读 R:ReadOnly true 从cpld读到的串口参数原始数据 默认值0,代表串口参数配回默认值

示例

      "UartDynamicConfig_0": {
            "SysComId": 0,
            "RawConfigData": "<=/Scanner_Chan0Conf.Value"
        }

遗留问题

1、属性更名:

Id → SysComId
ConfigRaw → RawConfigData

2、“BaudRate”、“DataBit”、“ParityBit”、“StopBit”、"FlowControl"不在csr里面配置

3、Interconnectuartdynamicconfig对象名变更为UartDynamicConfig

4、RawConfigData属性大小从U32扩增为U64,预留以后参数变更扩增

评审结论

闭环遗留问题后允许新增

讲了太多无用信息,缺没有讲清楚业务诉求:

  1. 波特率设置后,需要把联通的其他Uart的参数一起配置
  2. 确认串口连接状态变更时,是否需要重新下发配置;

SerialConfig与ConfigRaw命名与具体业务场景不匹配

建议通过配置mask的方式来确定配置的值,避免配置过多对象引用