feat(master : nicsensor.sh)Update to 1.4 Standard

1.修正fru write操作逻辑,并通过验证
This commit is contained in:
leimingsheng 2025-01-10 14:14:13 +08:00
parent 49bc774a60
commit 914889f21f
4 changed files with 46 additions and 10 deletions

@ -1,3 +1,9 @@
# Script Version 1.4 20250110
Release Note
1.[问题修复]修正tmp112传感器读取的逻辑问题
2.[新增功能]添加fru解析工具,位置 /tool/fru_parse/fru_parse.py
3.[功能优化]完善fru write操作逻辑(验证PASS)
# Script Version 1.3 20241229 # Script Version 1.3 20241229
Release Note Release Note
1.[新增功能]支持5280m7的OCP卡的使用 1.[新增功能]支持5280m7的OCP卡的使用

@ -1,4 +1,4 @@
On Version V1.2 On Version V1.x
start_get_sensor //启动读取Sensor的流程 start_get_sensor //启动读取Sensor的流程
|--->set_configuration |--->set_configuration
| |--->set_configuration_5280m7/5468m7/donghu/yichun //根据服务器类型设置具体I2C相关参数 | |--->set_configuration_5280m7/5468m7/donghu/yichun //根据服务器类型设置具体I2C相关参数

@ -134,7 +134,7 @@ ina3221_ch2_volt="0"
ina3221_ch0_current="0" ina3221_ch0_current="0"
ina3221_ch1_current="0" ina3221_ch1_current="0"
ina3221_ch2_current="0" ina3221_ch2_current="0"
SCRIPT_VERSION="1.3 Standard Rev1" SCRIPT_VERSION="1.4 Standard"
fru_file_name=$option_data2 fru_file_name=$option_data2
fru_write_size=0 fru_write_size=0
@ -1023,6 +1023,7 @@ parse_fru_write_data(){
printf "0x%s ",$i printf "0x%s ",$i
} }
}'` }'`
format_print $INFO "Success to get FRU data"
} }
read_fru(){ read_fru(){
@ -1059,15 +1060,40 @@ read_fru(){
} }
# !!! untest function !!!
write_fru(){ write_fru(){
start_offset=1
write_offset=0
hex_offset="0x00"
while true
do
if [ $fru_write_size -eq 0 ];then
format_print $INFO "Complete write Fru action!!!"
break
fi
i2c_write_byte=$(($fru_write_size+2)) once_data=`echo $fru_write_data | awk -v start=$start_offset '{
for(i=1;i<=NF;i++)
{
if(i>=start && i<start+8)
{
printf "%s ", $i
}
}
}'`
format_print $INFO "Start write fru data : $once_data"
write_command="i2ctransfer -y $i2c_bus w$i2c_write_byte@$chip_slave $fru_offset $fru_write_data" # do once write
write_res=`$write_command` hex_num=$(echo "obase=16; $write_offset" | bc)
format_log_print $INFO "Exec Command: $write_command" hex_offset=$(echo $hex_num | awk '{printf("0x%s", $0)}')
write_command="i2ctransfer -y $i2c_bus w10@$chip_slave 0x00 $hex_offset $once_data"
format_log_print $INFO "FRU write command : $write_command"
write_res=`$write_command`
# counting varible iterate
write_offset=$(($write_offset+8))
start_offset=$(($start_offset+8))
fru_write_size=$(($fru_write_size-8))
done
} }
process_fru(){ process_fru(){

@ -17,7 +17,7 @@
### 正文 ### 正文
一、脚本使用方法 Version1.3 一、脚本使用方法 Version1.4
1.1、修改项目专属配置 1.1、修改项目专属配置
针对不同项目,请先修改脚本中的部分变量(ADC128电压传感器的分压系数,INA3221的分流精密电阻阻值) 针对不同项目,请先修改脚本中的部分变量(ADC128电压传感器的分压系数,INA3221的分流精密电阻阻值)
@ -61,9 +61,13 @@
1.4.2 fru命令 1.4.2 fru命令
命令: ./nicsensor.sh <pcie_slot> fru <chip_slave> read 命令: ./nicsensor.sh <pcie_slot> fru <chip_slave> read
举例说明:读取Ravel板卡的EEPROM中的FRU(0x57) 举例说明:读取板卡的EEPROM中的FRU(0x57)
- ./nicsensor.sh 5 fru 0x57 read - ./nicsensor.sh 5 fru 0x57 read
命令: ./nicsensor.sh <pcie_slot> fru <chip_slave> write <fru.bin>
举例说明:写入板卡的EEPROM中的FRU(0x57)
- ./nicsensor.sh 5 fru 0x57 write fru.bin
1.4.3 读取芯片寄存器 1.4.3 读取芯片寄存器
命令: ./nicsensor.sh <pcie_slot> chip <chip_slave> <i2c_cmd> 命令: ./nicsensor.sh <pcie_slot> chip <chip_slave> <i2c_cmd>