Skip to content

Commit

Permalink
hssi: increate timeout to 1 second
Browse files Browse the repository at this point in the history
Some operations are taking longer than the current timeout, such as
putting an HSSI port in loopback. Timeout is a failure, so waiting
a little long isn't a problem. Actual completion observed has been
over 100ms, so chose 1 second.

The current timeout logic could be improved but is not changed in
this commit. Time passed is calculated as the sum of sleep times,
which assumes MMIO reads are free and sleep is exactly the requested
wait.

Signed-off-by: Michael Adler <michael.adler@intel.com>
  • Loading branch information
michael-adler committed Jun 17, 2024
1 parent 587f9c7 commit 80a04d0
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions binaries/hssi/ethernet/hssicommon.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,12 @@
DEFAULT_BDF = 'ssss:bb:dd.f'

# mailbox register poll interval 1 microseconds
HSSI_POLL_SLEEP_TIME = 1/1000000
HSSI_POLL_SLEEP_TIME_SEC = 1/1000000

# mailbox register poll timeout 500 microseconds
HSSI_POLL_TIMEOUT = 5/10000
# Mailbox register poll timeout 1 second. Responses are typically much
# faster than one second, but in rare cases can take a while. No reason
# to make this short since timeout is generally a failure.
HSSI_POLL_TIMEOUT_SEC = 1

HSSI_FEATURE_ID = 0x15

Expand Down Expand Up @@ -1185,11 +1187,11 @@ def clear_reg_bits(self,
idx, width, 0)
self.write32(region_index, reg_offset, value)

time.sleep(HSSI_POLL_SLEEP_TIME)
if total_time > HSSI_POLL_TIMEOUT:
time.sleep(HSSI_POLL_SLEEP_TIME_SEC)
if total_time > HSSI_POLL_TIMEOUT_SEC:
return False

total_time = HSSI_POLL_SLEEP_TIME + total_time
total_time = HSSI_POLL_SLEEP_TIME_SEC + total_time
return False

def clear_reg(self,
Expand All @@ -1209,11 +1211,11 @@ def clear_reg(self,
return True
self.write32(region_index, reg_offset, 0x0)

time.sleep(HSSI_POLL_SLEEP_TIME)
if total_time > HSSI_POLL_TIMEOUT:
time.sleep(HSSI_POLL_SLEEP_TIME_SEC)
if total_time > HSSI_POLL_TIMEOUT_SEC:
return False

total_time = HSSI_POLL_SLEEP_TIME + total_time
total_time = HSSI_POLL_SLEEP_TIME_SEC + total_time

return False

Expand Down Expand Up @@ -1262,10 +1264,10 @@ def read_poll_timeout(self,
if ((reg_data >> bit_index) & 1) == 1:
return True

time.sleep(HSSI_POLL_SLEEP_TIME)
if total_time > HSSI_POLL_TIMEOUT:
time.sleep(HSSI_POLL_SLEEP_TIME_SEC)
if total_time > HSSI_POLL_TIMEOUT_SEC:
return False
total_time = HSSI_POLL_SLEEP_TIME + total_time
total_time = HSSI_POLL_SLEEP_TIME_SEC + total_time

return False

Expand Down

0 comments on commit 80a04d0

Please sign in to comment.