コード例 #1
0
ファイル: psu.py プロジェクト: zero804/sonic-buildimage
    def __init__(self, psu_index):
        PsuBase.__init__(self)
        # PSU is 1-based in DellEMC platforms
        self.index = psu_index + 1
        self.psu_presence_reg = "psu{}_prs".format(psu_index)
        self.psu_status_reg = "powersupply_status"
        self.is_driver_initialized = False

        if self.index == 1:
            ltc_dir = self.I2C_DIR + "i2c-11/11-0042/hwmon/"
        else:
            ltc_dir = self.I2C_DIR + "i2c-11/11-0040/hwmon/"

        try:
            hwmon_node = os.listdir(ltc_dir)[0]
        except OSError:
            hwmon_node = "hwmon*"
        else:
            self.is_driver_initialized = True

        self.HWMON_DIR = ltc_dir + hwmon_node + '/'

        self.psu_voltage_reg = self.HWMON_DIR + "in1_input"
        self.psu_current_reg = self.HWMON_DIR + "curr1_input"
        self.psu_power_reg = self.HWMON_DIR + "power1_input"

        self.eeprom = Eeprom(is_psu=True, psu_index=self.index)

        self._fan_list.append(Fan(self.index, psu_fan=True, dependency=self))
コード例 #2
0
 def __init__(self, psu_index):
     PsuBase.__init__(self)
     self.index = psu_index
     for fan_index in range(0, PSU_NUM_FAN[self.index]):
         fan = Fan(fan_index, 0, is_psu_fan=True, psu_index=self.index)
         self._fan_list.append(fan)
     self._api_helper = APIHelper()
コード例 #3
0
ファイル: psu.py プロジェクト: vivekreddynv/sonic-buildimage
 def __init__(self, index):
     PsuBase.__init__(self)
     self.__index = index
     self.__info = None
     self.__ts = 0
     # STUB IMPLEMENTATION
     self.color = ""
コード例 #4
0
    def __init__(self, psu_index):
        PsuBase.__init__(self)
        # PSU is 1-based in DellEMC platforms
        self.index = psu_index + 1
        self.state_sensor = IpmiSensor(
            self.SENSOR_MAPPING[self.index]["State"], is_discrete=True)
        self.voltage_sensor = IpmiSensor(
            self.SENSOR_MAPPING[self.index]["Voltage"])
        self.current_sensor = IpmiSensor(
            self.SENSOR_MAPPING[self.index]["Current"])
        self.power_sensor = IpmiSensor(
            self.SENSOR_MAPPING[self.index]["Power"])
        self.input_voltage_sensor = IpmiSensor(
            self.SENSOR_MAPPING[self.index]["InVoltage"])
        self.input_current_sensor = IpmiSensor(
            self.SENSOR_MAPPING[self.index]["InCurrent"])
        self.input_power_sensor = IpmiSensor(
            self.SENSOR_MAPPING[self.index]["InPower"])
        self.temp_sensor = IpmiSensor(
            self.SENSOR_MAPPING[self.index]["Temperature"])
        self.psu_type_offset = PSU_TYPE_OFFSET
        self.fru = IpmiFru(self.FRU_MAPPING[self.index])

        self._fan_list.append(
            Fan(fan_index=self.index, psu_fan=True, dependency=self))
コード例 #5
0
ファイル: psu.py プロジェクト: Russell123987/sonic-buildimage
 def __init__(self, psu_index):
     self.PSU_TEMP_MAX = 85 * 1000
     self.PSU_OUTPUT_POWER_MAX = 1300 * 1000
     self.PSU_OUTPUT_VOLTAGE_MIN = 11400
     self.PSU_OUTPUT_VOLTAGE_MAX = 12600
     self.index = psu_index
     PsuBase.__init__(self)
コード例 #6
0
    def __init__(self, psu_index, platform):
        global psu_list
        PsuBase.__init__(self)
        # PSU is 1-based on Mellanox platform
        self.index = psu_index + 1
        psu_list.append(self.index)
        self.psu_path = "/var/run/hw-management/"
        psu_oper_status = "thermal/psu{}_pwr_status".format(self.index)
        #psu_oper_status should always be present for all platforms
        self.psu_oper_status = os.path.join(self.psu_path, psu_oper_status)
        self._name = "PSU{}".format(psu_index + 1)

        if platform in platform_dict_psu:
            filemap = psu_profile_list[platform_dict_psu[platform]]
        else:
            filemap = psu_profile_list[0]

        self.psu_data = DEVICE_DATA[platform]['psus']

        if not self.psu_data['hot_swappable']:
            self.always_present = True
            self.psu_voltage = None
            self.psu_current = None
            self.psu_power = None
            self.psu_presence = None
            self.psu_temp = None
            self.psu_temp_threshold = None
        else:
            self.always_present = False
            psu_voltage = filemap[PSU_VOLTAGE].format(self.index)
            psu_voltage = os.path.join(self.psu_path, psu_voltage)
            self.psu_voltage = psu_voltage

            psu_current = filemap[PSU_CURRENT].format(self.index)
            psu_current = os.path.join(self.psu_path, psu_current)
            self.psu_current = psu_current

            psu_power = filemap[PSU_POWER].format(self.index)
            psu_power = os.path.join(self.psu_path, psu_power)
            self.psu_power = psu_power

            psu_presence = "thermal/psu{}_status".format(self.index)
            psu_presence = os.path.join(self.psu_path, psu_presence)
            self.psu_presence = psu_presence

            self.psu_temp = os.path.join(
                self.psu_path, 'thermal/psu{}_temp'.format(self.index))
            self.psu_temp_threshold = os.path.join(
                self.psu_path, 'thermal/psu{}_temp_max'.format(self.index))

        # unplugable PSU has no FAN
        if self.psu_data['hot_swappable']:
            fan = Fan(psu_index, None, True)
            self._fan_list.append(fan)

        if self.psu_data['led_num'] == 1:
            self.led = ComponentFaultyIndicator(Psu.get_shared_led())
        else:  # 2010/2100
            self.led = PsuLed(self.index)
コード例 #7
0
ファイル: psu.py プロジェクト: netgp2020/test3
    def __init__(self, index, conf=None, fan_conf=None):
        PsuBase.__init__(self)

        self._psu_index = index
        self._config = conf
        self._api_common = Common(self._config)
        self._fan_conf = fan_conf
        self._initialize_psu_fan()
コード例 #8
0
    def __init__(self, psu_index):
        PsuBase.__init__(self)
        # PSU is 1-based in Nokia platforms
        self.index = psu_index + 1
        self._fan_list = []

        # PSU eeprom
        self.eeprom = Eeprom(is_psu=True, psu_index=self.index)
コード例 #9
0
    def __init__(self, index, psu_index=0, conf=None):
        PsuBase.__init__(self)

        self.psu_index = index

        self._config = conf
        self._api_common = Common()
        self._name = self.get_name()
コード例 #10
0
    def __init__(self, psu_index, sku):
        global psu_list
        PsuBase.__init__(self)
        # PSU is 1-based on Mellanox platform
        self.index = psu_index + 1
        psu_list.append(self.index)
        self.psu_path = "/var/run/hw-management/"
        psu_oper_status = "thermal/psu{}_pwr_status".format(self.index)
        #psu_oper_status should always be present for all SKUs
        self.psu_oper_status = os.path.join(self.psu_path, psu_oper_status)
        self._name = "PSU{}".format(psu_index + 1)

        if sku in hwsku_dict_psu:
            filemap = psu_profile_list[hwsku_dict_psu[sku]]
        else:
            filemap = psu_profile_list[0]

        if sku in hwsku_dict_with_unplugable_psu:
            self.always_presence = True
            self.psu_voltage = None
            self.psu_current = None
            self.psu_power = None
            self.psu_presence = None
            self.psu_temp = None
            self.psu_temp_threshold = None
        else:
            self.always_presence = False
            psu_voltage = filemap[PSU_VOLTAGE].format(self.index)
            psu_voltage = os.path.join(self.psu_path, psu_voltage)
            self.psu_voltage = psu_voltage

            psu_current = filemap[PSU_CURRENT].format(self.index)
            psu_current = os.path.join(self.psu_path, psu_current)
            self.psu_current = psu_current

            psu_power = filemap[PSU_POWER].format(self.index)
            psu_power = os.path.join(self.psu_path, psu_power)
            self.psu_power = psu_power

            psu_presence = "thermal/psu{}_status".format(self.index)
            psu_presence = os.path.join(self.psu_path, psu_presence)
            self.psu_presence = psu_presence

            self.psu_temp = os.path.join(
                self.psu_path, 'thermal/psu{}_temp'.format(self.index))
            self.psu_temp_threshold = os.path.join(
                self.psu_path, 'thermal/psu{}_temp_max'.format(self.index))

        # unplugable PSU has no FAN
        if sku not in hwsku_dict_with_unplugable_psu:
            fan = Fan(False, psu_index, psu_index, True)
            self._fan_list.append(fan)

        self.psu_green_led_path = "led_psu_green"
        self.psu_red_led_path = "led_psu_red"
        self.psu_orange_led_path = "led_psu_orange"
        self.psu_led_cap_path = "led_psu_capability"
コード例 #11
0
ファイル: psu.py プロジェクト: vpsubramaniam/sonic-buildimage
    def __init__(self, index):
        PsuBase.__init__(self)
        fan = Fan(index, True)
        self._fan_list.append(fan)

        self.psu_index_mapping = {
            1: 39,
            2: 49,
        }
        self.psu_powerin_index_mapping = {
            1: 38,
            2: 48,
        }
        self.psu_currentout_index_mapping = {
            1: 36,
            2: 46,
        }
        self.psu_currentin_index_mapping = {
            1: 35,
            2: 45,
        }
        self.psu_voltageout_index_mapping = {
            1: 44,
            2: 54,
        }
        self.psu_voltagein_index_mapping = {
            1: 43,
            2: 53,
        }
        self.index = index
        self.psu_presence_attr = "power{}_present".format(
            self.psu_index_mapping[self.index])
        self.psu_status_attr = "curr{}_input".format(
            self.psu_currentout_index_mapping[self.index])
        self.psu_power_in_attr = "power{}_input".format(
            self.psu_powerin_index_mapping[self.index])
        self.psu_power_out_attr = "power{}_input".format(
            self.psu_index_mapping[self.index])
        self.psu_voltage_out_attr = "in{}_input".format(
            self.psu_voltageout_index_mapping[self.index])
        self.psu_current_out_attr = "curr{}_input".format(
            self.psu_currentout_index_mapping[self.index])
        self.psu_voltage_in_attr = "in{}_input".format(
            self.psu_voltagein_index_mapping[self.index])
        self.psu_current_in_attr = "curr{}_input".format(
            self.psu_currentin_index_mapping[self.index])
        self.psu_serial_attr = "power{}_sn".format(
            self.psu_index_mapping[self.index])
        self.psu_model_attr = "power{}_model".format(
            self.psu_index_mapping[self.index])
        self.psu_mfr_id_attr = "power{}_mfrid".format(
            self.psu_index_mapping[self.index])
        self.psu_capacity_attr = "power{}_pout_max".format(
            self.psu_index_mapping[self.index])
        self.psu_type_attr = "power{}_vin_type".format(
            self.psu_index_mapping[self.index])
コード例 #12
0
    def __init__(self, psu_index=0):
        PsuBase.__init__(self)
        self.index = psu_index

        self.i2c_num = PSU_HWMON_I2C_MAPPING[self.index]["num"]
        self.i2c_addr = PSU_HWMON_I2C_MAPPING[self.index]["addr"]
        self.hwmon_path = I2C_PATH.format(self.i2c_num, self.i2c_addr)

        self.i2c_num = PSU_CPLD_I2C_MAPPING[self.index]["num"]
        self.i2c_addr = PSU_CPLD_I2C_MAPPING[self.index]["addr"]
        self.cpld_path = I2C_PATH.format(self.i2c_num, self.i2c_addr)
コード例 #13
0
ファイル: psu.py プロジェクト: vivekreddynv/sonic-buildimage
    def __init__(self, psu_index=0):
        PsuBase.__init__(self)
        self.index = psu_index

        bus = PSU_HWMON_I2C_MAPPING[self.index]["bus"]
        addr = PSU_HWMON_I2C_MAPPING[self.index]["addr"]
        self.hwmon_path = I2C_PATH.format(bus, addr)

        bus = PSU_CPLD_I2C_MAPPING[self.index]["bus"]
        addr = PSU_CPLD_I2C_MAPPING[self.index]["addr"]
        self.cpld_path = I2C_PATH.format(bus, addr)
        self.__initialize_fan()
コード例 #14
0
 def __init__(self, psu_index):
     PsuBase.__init__(self)
     self.index = psu_index + 1 # PSU is 1-based in DellEMC platforms
     self.psu_presence_reg = "psu{}_prs".format(psu_index)
     self.psu_status = "psu{}_status".format(psu_index)
     self.eeprom = "/sys/bus/i2c/devices/{}-0056/eeprom".format(10+psu_index)
     self.psu_voltage_reg = 'in3_input'
     self.psu_current_reg = 'curr2_input'
     self.psu_power_reg = 'power2_input'
     self.dps_hwmon = "/sys/bus/i2c/devices/{}-005e/hwmon/".format(10 + psu_index)
     self.dps_hwmon_exist = os.path.exists(self.dps_hwmon)
     self._fan_list.append(Fan(fan_index=self.index, psu_fan=True, dependency=self))
コード例 #15
0
    def __init__(self, psu_index):
        PsuBase.__init__(self)
        # PSU is 1-based in DellEMC platforms
        self.index = psu_index + 1
        self.state_sensor = IpmiSensor(self.SENSOR_MAPPING[self.index]["State"],
                                       is_discrete=True)
        self.voltage_sensor = IpmiSensor(self.SENSOR_MAPPING[self.index]["Voltage"])
        self.current_sensor = IpmiSensor(self.SENSOR_MAPPING[self.index]["Current"])
        self.power_sensor = IpmiSensor(self.SENSOR_MAPPING[self.index]["Power"])
        self.fru = IpmiFru(self.FRU_MAPPING[self.index])

        self._fan_list.append(Fan(fan_index=self.index, psu_fan=True,
            dependency=self))
コード例 #16
0
ファイル: psu.py プロジェクト: stcheng/sonic-buildimage
 def __init__(self, psu_index):
     global psu_list
     PsuBase.__init__(self)
     # PSU is 1-based on Mellanox platform
     self.index = psu_index + 1
     psu_list.append(psu_index)
     self.psu_path = "/var/run/hw-management/thermal/"
     self.psu_oper_status = "psu{}_pwr_status".format(self.index)
     self.psu_presence = "psu{}_status".format(self.index)
     if os.path.exists(os.path.join(self.psu_path, self.psu_presence)):
         self.presence_file_exists = True
     else:
         self.presence_file_exists = False
コード例 #17
0
 def __init__(self, psu_index):
     PsuBase.__init__(self)
     self.index = psu_index
     self.psu_path = "/sys/devices/platform/e1031.smc/"
     self.psu_presence = "psu{}_prs"
     self.psu_oper_status = "psu{}_status"
     self.i2c_num = PSU_I2C_MAPPING[self.index]["num"]
     self.i2c_addr = PSU_I2C_MAPPING[self.index]["addr"]
     self.hwmon_path = HWMON_PATH.format(self.i2c_num, self.i2c_addr)
     for fan_index in range(0, PSU_NUM_FAN[self.index]):
         fan = Fan(fan_index, 0, is_psu_fan=True, psu_index=self.index)
         self._fan_list.append(fan)
     PsuBase.__init__(self)
コード例 #18
0
ファイル: psu.py プロジェクト: waynelud/sonic-buildimage
 def __init__(self, psu_index):
     PsuBase.__init__(self)
     self.index = psu_index
     self.green_led_path = GREEN_LED_PATH.format(self.index + 1)
     self.dx010_psu_gpio = [{
         'base': self.get_gpio_base()
     }, {
         'prs': 27,
         'status': 22
     }, {
         'prs': 28,
         'status': 25
     }]
コード例 #19
0
ファイル: psu.py プロジェクト: yongcanwang00/sonic-buildimage
 def __init__(self, psu_index):
     global psu_list
     PsuBase.__init__(self)
     # PSU is 1-based on Mellanox platform
     self.index = psu_index + 1
     psu_list.append(psu_index)
     self.psu_path = "/var/run/hw-management/thermal/"
     self.psu_oper_status = "psu{}_pwr_status".format(self.index)
     self.psu_presence = "psu{}_status".format(self.index)
     if os.path.exists(os.path.join(self.psu_path, self.psu_presence)):
         self.presence_file_exists = True
     else:
         self.presence_file_exists = False
コード例 #20
0
    def __init__(self, index, info_list, is_bmc):
        PsuBase.__init__(self)
        self.index = index
        self.is_bmc = is_bmc
        self.attr_path = info_list[0]
        self.status_path = info_list[1]
        if is_bmc:
            speed_file = self.attr_path + 'psu{}_fan_speed'.format(index + 1)
        else:
            speed_file = self.attr_path + 'psu_fan_speed_1'

        fan = Fan(index, 0, [self.status_path, speed_file], True)
        self._fan_list.append(fan)
        self.psu_name = "PSU{}".format(self.index + 1)
コード例 #21
0
    def __init__(self, psu_index=0):
        PsuBase.__init__(self)
        self.index = psu_index
        self._api_helper = APIHelper()

        self.i2c_num = PSU_HWMON_I2C_MAPPING[self.index]["num"]
        self.i2c_addr = PSU_HWMON_I2C_MAPPING[self.index]["addr"]
        self.hwmon_path = I2C_PATH.format(self.i2c_num, self.i2c_addr)

        self.i2c_num = PSU_CPLD_I2C_MAPPING[self.index]["num"]
        self.i2c_addr = PSU_CPLD_I2C_MAPPING[self.index]["addr"]
        self.cpld_path = I2C_PATH.format(self.i2c_num, self.i2c_addr)
        self.__initialize_fan()
        '''
コード例 #22
0
    def __init__(self, index, pddf_data=None, pddf_plugin_data=None):
        PsuBase.__init__(self)
        if not pddf_data or not pddf_plugin_data:
            raise ValueError('PDDF JSON data error')

        self.pddf_obj = pddf_data
        self.plugin_data = pddf_plugin_data
        self.platform = self.pddf_obj.get_platform()
        self.psu_index = index + 1

        self._fan_list = []     # _fan_list under PsuBase class is a global variable, hence we need to use _fan_list per class instatiation
        self.num_psu_fans = int(self.pddf_obj.get_num_psu_fans('PSU{}'.format(index+1)))
        for psu_fan_idx in range(self.num_psu_fans):
            psu_fan = Fan(0, psu_fan_idx, pddf_data, pddf_plugin_data, True, self.psu_index)
            self._fan_list.append(psu_fan)
コード例 #23
0
    def __init__(self, psu_index):
        PsuBase.__init__(self)
        self.psuled = None
        fan = PsuFan(psu_index)
        self._fan_list.append(fan)
        self.index = psu_index + 1
        self.psu_drv = "yesm1300am"
        self.psu_path = "/sys/bus/i2c/devices/"
        self.psu_presence = {
            1: "/psu1_present",
            2: "/psu2_present",
        }
        self.psu_oper_status = {
            1: "/psu1_power_good",
            2: "/psu2_power_good",
        }
        self.psu_model_name = "/psu_model_name"
        self.psu_serial_num = "/psu_serial_num"
        self.psu_mfr_id = "/psu_mfr_id"
        self.psu_v_out = "/psu_v_out"
        self.psu_i_out = "/psu_i_out"

        self._PSU_EEPROM_SERIAL_NUM_OFFSET = 0x35
        self._PSU_EEPROM_SERIAL_NUM_LENGTH = 19

        self.psu_mapping = "0-005e"
        if not os.path.exists(self.psu_path + self.psu_mapping):
            self.psu_mapping = "1-005e"

        if os.path.exists(self.psu_path + "9-0050"):
            self.psu_eeprom_mapping = {
                1: "9-0050",
                2: "10-0051",
            }
            self.psu_pmbus_mapping = {
                1: "9-0058",
                2: "10-0059",
            }
            self.psu_serial_num = "/eeprom"
        else:
            self.psu_eeprom_mapping = {
                1: "32-0050",
                2: "33-0051",
            }
            self.psu_pmbus_mapping = {
                1: "32-0058",
                2: "33-0059",
            }
コード例 #24
0
    def __init__(self, psu_index):
        PsuBase.__init__(self)

        self._api_common = Common()
        self.index = psu_index
        self.psu_presence = "psu{}_prs"
        self.psu_oper_status = "psu{}_status"
        self.i2c_num = PSU_I2C_MAPPING[self.index]["num"]
        self.i2c_addr = PSU_I2C_MAPPING[self.index]["addr"]
        self.hwmon_path = HWMON_PATH.format(self.i2c_num, self.i2c_addr)
        self.eeprom_addr = PSU_EEPROM_PATH.format(
            self.i2c_num, PSU_I2C_MAPPING[self.index]["eeprom_addr"])

        for fan_index in range(0, PSU_NUM_FAN[self.index]):
            fan = Fan(fan_index, 0, is_psu_fan=True, psu_index=self.index)
            self._fan_list.append(fan)
コード例 #25
0
 def __init__(self, psu_index):
     PsuBase.__init__(self)
     self.index = psu_index
     self._api_helper = APIHelper()
     self.green_led_path = GREEN_LED_PATH.format(self.index+1)
     self.dx010_psu_gpio = [
         {'base': self.__get_gpio_base()},
         {'prs': 27, 'status': 22},
         {'prs': 28, 'status': 25}
     ]
     self.i2c_num = PSU_I2C_MAPPING[self.index]["num"]
     self.i2c_addr = PSU_I2C_MAPPING[self.index]["addr"]
     self.hwmon_path = HWMON_PATH.format(self.i2c_num, self.i2c_addr)
     for fan_index in range(0, PSU_NUM_FAN[self.index]):
         fan = Fan(fan_index, 0, is_psu_fan=True, psu_index=self.index)
         self._fan_list.append(fan)
コード例 #26
0
    def __init__(self, index, pddf_data=None, pddf_plugin_data=None):
        PsuBase.__init__(self)
        if not pddf_data or not pddf_plugin_data:
            raise ValueError('PDDF JSON data error')

        self.pddf_obj = pddf_data
        self.plugin_data = pddf_plugin_data
        self.platform = self.pddf_obj.get_platform()
        self.psu_index = index + 1

        self.num_psu_fans = int(
            self.pddf_obj.get_num_psu_fans('PSU{}'.format(index + 1)))
        for psu_fan_idx in range(self.num_psu_fans):
            psu_fan = Fan(0, psu_fan_idx, pddf_data, pddf_plugin_data, True,
                          self.psu_index)
            self._fan_list.append(psu_fan)
コード例 #27
0
    def __init__(self, psu_index):
        PsuBase.__init__(self)
        # PSU is 1-based in DellEMC platforms
        self.index = psu_index + 1
        self.psu_presence_reg = "psu{}_presence".format(self.index)
        self.psu_serialno_reg = "psu{}_serialno".format(self.index)
        if self.index == 1:
            self.psu_voltage_reg = "in30_input"
            self.psu_current_reg = "curr602_input"
            self.psu_power_reg = "power2_input"
        elif self.index == 2:
            self.psu_voltage_reg = "in32_input"
            self.psu_current_reg = "curr702_input"
            self.psu_power_reg = "power4_input"

        # Passing True to specify it is a PSU fan
        psu_fan = Fan(fan_index=self.index, psu_fan=True)
        self._fan_list.append(psu_fan)
コード例 #28
0
    def __init__(self, psu_index, sku):
        global psu_list
        PsuBase.__init__(self)
        # PSU is 1-based on Mellanox platform
        self.index = psu_index + 1
        psu_list.append(self.index)
        self.psu_path = "/var/run/hw-management/"
        psu_oper_status = "thermal/psu{}_pwr_status".format(self.index)
        #psu_oper_status should always be present for all SKUs
        self.psu_oper_status = os.path.join(self.psu_path, psu_oper_status)
        self._name = "PSU{}".format(psu_index + 1)

        if sku in hwsku_dict_psu:
            filemap = psu_profile_list[hwsku_dict_psu[sku]]
        else:
            filemap = psu_profile_list[0]

        if sku in hwsku_dict_with_unplugable_psu:
            self.always_presence = True
            self.psu_voltage = None
            self.psu_current = None
            self.psu_power = None
            self.psu_presence = None
        else:
            self.always_presence = False
            psu_voltage = filemap[PSU_VOLTAGE].format(self.index)
            psu_voltage = os.path.join(self.psu_path, psu_voltage)
            self.psu_voltage = psu_voltage

            psu_current = filemap[PSU_CURRENT].format(self.index)
            psu_current = os.path.join(self.psu_path, psu_current)
            self.psu_current = psu_current

            psu_power = filemap[PSU_POWER].format(self.index)
            psu_power = os.path.join(self.psu_path, psu_power)
            self.psu_power = psu_power

            psu_presence = "thermal/psu{}_status".format(self.index)
            psu_presence = os.path.join(self.psu_path, psu_presence)
            self.psu_presence = psu_presence

        fan = Fan(sku, psu_index, psu_index, True)
        if fan.get_presence():
            self._fan_list.append(fan)
コード例 #29
0
    def __init__(self, psu_index):
        PsuBase.__init__(self)
        # initialize PSU Fan
        fan = Fan(psu_index, True)
        self._fan_list.append(fan)
        self.index = psu_index + 1

        self.pus_type = "AC"
        # driver attribute
        self.psu_presence = "/psu{}_present".format(psu_index + 1)
        self.psu_oper_status = "/psu{}_power_good".format(psu_index + 1)
        self.psu_model_name = "/psu_model_name"
        self.psu_mfr_id = "/psu_mfr_id"
        self.psu_v_in = "/psu_v_in"
        self.psu_v_out = "/psu_v_out"
        self.psu_i_in = "/psu_i_in"
        self.psu_i_out = "/psu_i_out"
        self.psu_p_in = "/psu_p_in"
        self.psu_p_out = "/psu_p_out"
        self.psu_temp1_input = "/psu_temp1_input"
        self.psu_mfr_pout_max = "/psu_mfr_pout_max"
        self.psu_serial_num = "/eeprom"

        # psu eeprom info
        self._PSU_EEPROM_SERIAL_NUM_OFFSET = 0x35
        self._PSU_EEPROM_SERIAL_NUM_LENGTH = 19

        # driver path
        psu_bus_num = [10, 11]
        psu_eeprom_address = [50, 51]
        psu_pmbus_address = [58, 59]
        psu_path = "/sys/bus/i2c/devices/"
        self.psu_mapping = psu_path + "1-005e"
        self.psu_eeprom = psu_path + "{}-00{}".format(
            psu_bus_num[psu_index], psu_eeprom_address[psu_index])
        self.psu_pmbus = psu_path + "{}-00{}".format(
            psu_bus_num[psu_index], psu_pmbus_address[psu_index])
コード例 #30
0
 def __init__(self, psu_index):
     PsuBase.__init__(self)
     self.index = psu_index
     self.psu_path = "/sys/devices/platform/e1031.smc/"
     self.psu_presence = "psu{}_prs"
     self.psu_oper_status = "psu{}_status"
コード例 #31
0
ファイル: psu.py プロジェクト: stephenxs/sonic-buildimage
 def __init__(self, psu_index):
     self.index = psu_index
     PsuBase.__init__(self)