sonic-buildimage/platform/broadcom/sonic-platform-modules-accton/debian/sonic-platform-accton-as7816-64x.postinst
jostar-yang b4b9e4234f
[as7816-64x] Add to support PDDF (#7077)
Add PDDF support for Accton as7816-64x platform

Co-authored-by: Jostar Yang <jostar_yang@accton.com.tw>
2021-04-14 14:40:52 -07:00

157 lines
10 KiB
Plaintext

# Special arrangement to make PDDF mode default
# Disable monitor, monitor-fan, monitor-psu (not enabling them would imply they will be disabled by default)
# Enable pddf-platform-monitor
# Steps to check syseeprom i2c address
modprobe i2c-i801
modprobe i2c-dev
at_id=false
(i2cset -y -f 0 0x77 0x1) > /dev/null 2>&1
(i2cset -y -f 0 0x76 0x4) > /dev/null 2>&1
(i2cget -y -f 0 0x60 0xfd) > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "get at_id"
at_1=$(i2cget -y -f 0 0x60 0xfd)
if [ ${at_1} = '0x41' ]; then
echo "get at_1 is 0x41"
at_2=$(i2cget -y -f 0 0x60 0xfe)
if [ ${at_2} = '0x54' ]; then
echo "get at_2 is 0x54"
at_id=true
fi
fi
else
cpld_id=$(i2cget -y -f 1 0x60 0x1) #This CPD version that not support to record at_id
if [ ${cpld_id} = '0x5' ]; then
at_id=true
fi
fi
if $at_id ; then
echo "This CPLD is for AT used PSU"
echo "PSU-1 pmbus use parent_bus:0x9, dev_addr:0x58"
echo "PSU-1 eeprom use parent_bus:0x9, dev_addr:0x50"
echo "PSU-2 pmbus use parent_bus:0xa, dev_addr:0x5b"
echo "PSU-2 eeprom use parent_bus:0xa, dev_addr:0x53"
#Change the PDDF JSON file
sed -i 's@{ "chn":"0", "dev":"PSU2"},@\
{ "chn":"0", "dev":"PSU1" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "chn":"1", "dev":"PSU1"}@\
{ "chn":"1", "dev":"PSU2" }@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@"topo_info":{ "parent_bus":"0xa", "dev_addr":"0x5b", "dev_type":"psu_pmbus"},@\
"topo_info": {"parent_bus":"0x9", "dev_addr":"0x58" , "dev_type": "psu_pmbus" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_model_name", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x9a", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"10"},@\
{ "attr_name":"psu_model_name", "attr_devaddr":"0x58" , "attr_devtype":"pmbus", "attr_offset":"0x9a", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"10" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_mfr_id", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0X99", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"10"},@\
{ "attr_name":"psu_mfr_id", "attr_devaddr":"0x58" , "attr_devtype":"pmbus", "attr_offset":"0X99", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"10" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_fan_dir", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0xc3", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"5"},@\
{ "attr_name":"psu_fan_dir", "attr_devaddr":"0x58" , "attr_devtype":"pmbus", "attr_offset":"0xc3", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"5" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_v_out", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x8b", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"},@\
{ "attr_name":"psu_v_out", "attr_devaddr":"0x58" , "attr_devtype":"pmbus", "attr_offset":"0x8b", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_i_out", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x8c", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"},@\
{ "attr_name":"psu_i_out", "attr_devaddr":"0x58" , "attr_devtype":"pmbus", "attr_offset":"0x8c", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_p_out", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x96", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"},@\
{ "attr_name":"psu_p_out", "attr_devaddr":"0x58" , "attr_devtype":"pmbus", "attr_offset":"0x96", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_fan1_speed_rpm", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x90", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"},@\
{ "attr_name":"psu_fan1_speed_rpm", "attr_devaddr":"0x58" , "attr_devtype":"pmbus", "attr_offset":"0x90", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_temp1_input", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x8d", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}@\
{ "attr_name":"psu_temp1_input", "attr_devaddr":"0x58" , "attr_devtype":"pmbus", "attr_offset":"0x8d", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2" }@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@"topo_info":{ "parent_bus":"0xa", "dev_addr":"0x53", "dev_type":"psu_eeprom"},@\
"topo_info": {"parent_bus":"0x9", "dev_addr":"0x50" , "dev_type": "psu_pmbus" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@"topo_info": { "parent_bus":"0x9", "dev_addr":"0x58", "dev_type":"psu_pmbus"},@\
"topo_info": {"parent_bus":"0xa", "dev_addr":"0x5b", "dev_type": "psu_pmbus" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_model_name", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x9a", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"10"},@\
{ "attr_name":"psu_model_name", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x9a", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"10" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_mfr_id", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0X99", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"10"},@\
{ "attr_name":"psu_mfr_id", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0X99", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"10" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_fan_dir", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0xc3", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"5"},@\
{ "attr_name":"psu_fan_dir", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0xc3", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"5" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_v_out", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x8b", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"},@\
{ "attr_name":"psu_v_out", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x8b", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_i_out", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x8c", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"},@\
{ "attr_name":"psu_i_out", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x8c", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_p_out", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x96", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"},@\
{ "attr_name":"psu_p_out", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x96", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_fan1_speed_rpm", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x90", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"},@\
{ "attr_name":"psu_fan1_speed_rpm", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x90", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@{ "attr_name":"psu_temp1_input", "attr_devaddr":"0x58", "attr_devtype":"pmbus", "attr_offset":"0x8d", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2"}@\
{ "attr_name":"psu_temp1_input", "attr_devaddr":"0x5b", "attr_devtype":"pmbus", "attr_offset":"0x8d", "attr_mask":"0x0", "attr_cmpval":"0xff", "attr_len":"2" }@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
sed -i 's@"topo_info":{ "parent_bus":"0x9", "dev_addr":"0x50", "dev_type":"psu_eeprom"},@\
"topo_info": {"parent_bus":"0xa", "dev_addr":"0x53", "dev_type": "psu_pmbus" },@g' \
/usr/share/sonic/device/x86_64-accton_as7816_64x-r0/pddf/pddf-device.json
sync
fi
(i2cset -y -f 0 0x76 0x0) > /dev/null 2>&1
(i2cset -y -f 0 0x77 0x0) > /dev/null 2>&1
#For other CPLD that use below
#PSU-1 pmbus use "parent_bus":"0x21", "dev_addr":"0x5b"
#PSU-1 eeprom use "parent_bus":"0x21", "dev_addr":"0x53"
#PSU-2 pmbus use "parent_bus":"0x20", "dev_addr":"0x58"
#PSU-2 eeprom use "parent_bus":"0x20", "dev_addr":"0x50"
depmod -a
systemctl enable pddf-platform-init.service
systemctl start pddf-platform-init.service
systemctl enable as7816-pddf-platform-monitor.service
systemctl start as7816-pddf-platform-monitor.service