-
Bug
-
Resolution: Fixed
-
High
-
PDK
-
PDK-14321
-
-
PROCESSOR_SDK_10.00.00
-
Description
In the highlighted lines below, the rdDelay value will cause the if-check to always pass, meaning the 'break' statement will always be hit and the else-clause will never be run.
searchPoint.rdDelay = PHY_DDR_TUNE_RD_DELAY_START;
do
{
searchPoint.rxDLL = RX_DLL_HIGH_SEARCH_START;
...
if((tempSearchPoint.rxDLL != PHY_DDR_TUNE_DLL_MAX)||
(searchPoint.rdDelay == PHY_DDR_TUNE_RD_DELAY_START))
else
{ searchPoint.rdDelay--; }}while(...)
Resolution
By starting the search from `read delay end`
and breaking from search either if we successfully found Secondary Rx High or
`current read delay` becomes `read delay start`.
Root Cause
The root cause of this issue is we are starting the loop from
`read delay start` instead of starting from `read delay end` and breaks
from loop if `current read delay` is `read delay start`.