38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
import os
|
||
|
import time
|
||
|
|
||
|
def release_board():
|
||
|
if open('/proc/cmdline', 'r').readlines()[0].find('SONIC_BOOT_TYPE=warm') != -1:
|
||
|
return
|
||
|
|
||
|
os.system('i2cset -y 0 0x37 0x4 0x0')
|
||
|
time.sleep(1)
|
||
|
os.system('i2cset -y 0 0x37 0x4 0x1')
|
||
|
time.sleep(1)
|
||
|
os.system('echo 1 > /sys/bus/pci/devices/0000\:00\:1c.0/remove')
|
||
|
time.sleep(1)
|
||
|
os.system('echo 1 > /sys/bus/pci/rescan')
|
||
|
time.sleep(1)
|
||
|
# EPLD_QSFP_RST
|
||
|
os.system('i2cset -y 0 0x36 0x5 0xff')
|
||
|
os.system('i2cset -y 0 0x37 0x5 0xff')
|
||
|
# EPLD_QSFP_INT_MASK
|
||
|
os.system('i2cset -y 0 0x36 0xd 0xff')
|
||
|
os.system('i2cset -y 0 0x37 0xd 0xff')
|
||
|
# EPLD_PPU_INT_MASK
|
||
|
os.system('i2cset -y 0 0x36 0xb 0x00')
|
||
|
# EPLD_SFP_DISABLE1
|
||
|
os.system('i2cset -y 0 0x36 0xe 0x00')
|
||
|
os.system('i2cset -y 0 0x37 0xe 0x00')
|
||
|
# EPLD_SFP_DISABLE2
|
||
|
os.system('i2cset -y 0 0x36 0xf 0x00')
|
||
|
os.system('i2cset -y 0 0x37 0xf 0x00')
|
||
|
# EPLD_SFP_DISABLE3
|
||
|
os.system('i2cset -y 0 0x36 0x10 0x00')
|
||
|
os.system('i2cset -y 0 0x37 0x10 0x00')
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
release_board()
|