• Vinicius Costa Gomes's avatar
    igc: Add support for PTP .getcyclesx64() · 069b142f
    Vinicius Costa Gomes authored
    Add support for using Timer 1 (i225/i226 have 4 timer registers) as a
    free-running clock (the "cycles" clock) in addition to Timer 0 (the
    default, "adjustable clock"). The objective is to allow taprio/etf
    offloading to coexist with PTP vclocks.
    
    Besides the implementation of .getcyclesx64() for i225/i226, to keep
    timestamping working when vclocks are in use, we also need to add
    support for TX and RX timestamping using the free running timer, when
    the requesting socket is bound to a vclock.
    
    On the RX side, i225/i226 can be configured to store the values of two
    timers in the received packet metadata area, so it's a matter of
    configuring the right registers and retrieving the right timestamp.
    
    The TX is a bit more involved because the hardware stores a single
    timestamp (with the selected timer in the TX descriptor) into one of
    the timestamp registers.
    
    Note some changes at how the timestamps are done for RX, the
    conversion and adjustment of timestamps are now done closer to the
    consumption of the timestamp instead of near the reception.
    Signed-off-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
    Tested-by: default avatarNaama Meir <naamax.meir@linux.intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    069b142f
igc_base.h 3.54 KB