KSDK1.3 ENET_DRV_Adjust1588timer bug

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

KSDK1.3 ENET_DRV_Adjust1588timer bug

312 Views
joseraffucci
Contributor IV

I've been working on getting PTP working on the K64FRDM board with KSDK1.3 and I found a a transposition error in the current ENET_DRV/ENET_HAL.  The HAL function kept barfing on the first (increaseCorrection) assertion when I tried to adjust the clock frequency. The correction factor appeared to be correct.

 

fsl_enet_hal.h:

 

static inline void ENET_HAL_Adjust1588Timer(ENET_Type * base, uint32_t increaseCorrection, uint32_t periodCorrection)  {
    assert(increaseCorrection <= ENET_ATINC_INC_MASK);  <== value C0A, Mask 7F
    assert(periodCorrection <= ENET_ATCOR_COR_MASK);
    /* Set correction for PTP timer increment*/
          ENET_BWR_ATINC_INC_CORR(base, increaseCorrection);
     /* Set correction for PTP timer period*/
     ENET_BWR_ATCOR_COR(base, periodCorrection);
}

 

Hours of debugging later (in PTP code of course) eventually led me to the call in ENET_DRV_Adjust1588timer().

 

fsl_enet_driver.c:

 

        /* Calculate the clock correction increase value*/
         if (drift < 0)         {
             corrIncrease = clockIncrease - corrIncrease;
         }
         else
         {
             corrIncrease = clockIncrease + corrIncrease;

         }

 

         /* Adjust the ptp timer*/
         ENET_HAL_Adjust1588Timer(base, corrPeriod, corrIncrease);
     }
     else
     {

         /* Adjust the ptp timer*/
         ENET_HAL_Adjust1588Timer(base, 0, clockIncrease);
     }

 

     return kStatus_ENET_Success;
}

 

 

It doesn't look like anybody's tested this with a real PTP server.  Boo for not paying attention when porting.  Kudos for using assertions and saving me a few more days of debugging.

Labels (1)
0 Kudos
1 Reply

204 Views
ivadorazinova
NXP Employee
NXP Employee

Hi Jose,

thank you for your valuable contribution.

We know about the issue and will be fixed in future KSDK version.

Have a nice day!

Iva

0 Kudos