Skip to content

Commit

Permalink
Fix NumRegField byte(s) read
Browse files Browse the repository at this point in the history
  • Loading branch information
prgeor committed Aug 9, 2023
1 parent 537095c commit 3803669
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions sonic_platform_base/sonic_xcvr/fields/xcvr_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ def __init__(self, name, offset, **kwargs):
self.offset = offset
self.ro = kwargs.get("ro", True)
self.deps = kwargs.get("deps", [])
self.bitmask = None

def get_fields(self):
"""
Expand Down Expand Up @@ -86,6 +87,7 @@ def __init__(self, name, bitpos, offset=None, **kwargs):
super(RegBitField, self).__init__(name, offset, **kwargs)
assert bitpos < 64
self.bitpos = bitpos
self.bitmask = 1 << self.bitpos

def get_size(self):
return 1
Expand Down Expand Up @@ -115,7 +117,7 @@ class RegBitsField(XcvrField):
def __init__(self, name, bitpos, offset=None, **kwargs):
super(RegBitsField, self).__init__(name, offset, **kwargs)
self.size = self.size = kwargs.get("size", 1) #No of bits
assert (bitpos >= 0 and (bitpos+self.size-1 < 8), "bitpos must be within one byte")
assert bitpos >= 0 and bitpos+self.size <= 8, "bitpos must be within one byte"
self.bitpos = bitpos
self.bitmask = (((1 << self.size) - 1) << self.bitpos) & 0xff

Expand Down Expand Up @@ -159,7 +161,7 @@ def get_bitmask(self):
return None
mask = 0
for field in self.fields:
mask |= 1 << field.bitpos
mask |= field.bitmask
return mask

def get_size(self):
Expand Down

0 comments on commit 3803669

Please sign in to comment.