コード例 #1
0
def set_register():
    """
    For DVT/EVT boards the framework is not able to handle for GPIOI4 and
    causes error : 'Failed to configure "GPIOI4" for "BMC_SPI1_CS0":
    Not able to unsatisfy an AND condition'. In order to fix the error
    set the specific bit in the register so the framework can handle it.
    """
    """
    The write operation to SCU70 only can set to ’1’,
    to clear to ’0’, it must write ’1’ to SCU7C (write 1 clear).
    """
    l_reg = soc_get_register(0x7C)
    l_reg.set_bit(5, write_through=True)
    l_reg = soc_get_register(0x7C)
    l_reg.set_bit(12, write_through=True)
コード例 #2
0
def set_register():
    '''
    For DVT/EVT boards the framework is not able to handle for GPIOS0 and
    causes error : 'Failed to configure "GPIOS0" for "BMC_SPI_WP_N":
    Not able to unsatisfy an AND condition'. In order to fix the error
    set the specific bit in the register so the framework can handle it.
    '''
    l_reg = soc_get_register(0x8C)
    l_reg.clear_bit(0, write_through=True)
コード例 #3
0
def set_register():
    '''
    For DVT/EVT boards the framework is not able to handle for GPIOS0 and
    causes error : 'Failed to configure "GPIOS0" for "BMC_SPI_WP_N":
    Not able to unsatisfy an AND condition'. In order to fix the error
    set the specific bit in the register so the framework can handle it.
    '''
    l_reg = soc_get_register(0x8C)
    l_reg.clear_bit(0, write_through=True)
コード例 #4
0
 def satisfy(self, **kwargs):
     if BitsEqual.check(self):
         return
     reg = soc_get_register(self.register)
     value = self.value
     for bit in sorted(self.bits):
         if value & 0x1 == 0x1:
             reg.set_bit(bit, **kwargs)
         else:
             reg.clear_bit(bit, **kwargs)
         value >>= 1
コード例 #5
0
 def satisfy(self, **kwargs):
     if BitsEqual.check(self):
         return
     reg = soc_get_register(self.register)
     value = self.value
     for bit in sorted(self.bits):
         if value & 0x1 == 0x1:
             reg.set_bit(bit, **kwargs)
         else:
             reg.clear_bit(bit, **kwargs)
         value >>= 1
コード例 #6
0
 def unsatisfy(self, **kwargs):
     if not BitsEqual.check(self):
         return
     if len(self.bits) > 1:
         raise NotSmartEnoughException('Not able to unsatisfy '
                                       'multi-bits equal')
     bit = self.bits[0]
     reg = soc_get_register(self.register)
     value = self.value
     if value & 0x1 == 0x1:
         reg.clear_bit(bit, **kwargs)
     else:
         reg.set_bit(bit, **kwargs)
コード例 #7
0
 def unsatisfy(self, **kwargs):
     if not BitsEqual.check(self):
         return
     if len(self.bits) > 1:
         raise NotSmartEnoughException('Not able to unsatisfy '
                                       'multi-bits equal')
     bit = self.bits[0]
     reg = soc_get_register(self.register)
     value = self.value
     if value & 0x1 == 0x1:
         reg.clear_bit(bit, **kwargs)
     else:
         reg.set_bit(bit, **kwargs)
コード例 #8
0
 def __str__(self):
     return '%s[%s]!=0x%x' \
         % (str(soc_get_register(self.register)), self.bits, self.value)
コード例 #9
0
 def check(self):
     return soc_get_register(self.register).bits_value(self.bits) \
         == self.value
コード例 #10
0
 def write_to_hw(self):
     for reg in self.registers:
         soc_get_register(reg).write()
コード例 #11
0
 def _sync_from_hw(self):
     # for each register, create an object and read the value from HW
     for reg in self.registers:
         soc_get_register(reg).read(refresh=True)
コード例 #12
0
 def __str__(self):
     return '%s[%s]!=0x%x' \
         % (str(soc_get_register(self.register)), self.bits, self.value)
コード例 #13
0
 def check(self):
     return soc_get_register(self.register).bits_value(self.bits) \
         == self.value
コード例 #14
0
 def write_to_hw(self):
     for reg in self.registers:
         soc_get_register(reg).write()
コード例 #15
0
 def _sync_from_hw(self):
     # for each register, create an object and read the value from HW
     for reg in self.registers:
         soc_get_register(reg).read(refresh=True)
コード例 #16
0
ファイル: openbmc_gpio_table.py プロジェクト: hanzf00/openbmc
 def __str__(self):
     return "%s[%s]==0x%x" % (
         str(soc_get_register(self.register)),
         self.bits,
         self.value,
     )