STRUCT ICE_VERNIER_INFO_E82X(9)
π¦ struct ice_vernier_info_e82x(9) β the Kernel API Manual, but make it make sense π¦
okay so bestie, welcome to the Kernel API Manual, section 9. today's main character is struct ice_vernier_info_e82x and honestly? she's a little lookup table of numbers and she KNOWS it. π
β¨ SYNOPSIS β¨
here's the whole struct, exactly as it lives, no notes:
struct ice_vernier_info_e82x {
u32 tx_par_clk;
u32 rx_par_clk;
u32 tx_pcs_clk;
u32 rx_pcs_clk;
u32 tx_desk_rsgb_par;
u32 rx_desk_rsgb_par;
u32 tx_desk_rsgb_pcs;
u32 rx_desk_rsgb_pcs;
u32 tx_fixed_delay;
u32 pmd_adj_divisor;
u32 rx_fixed_delay;
};
like, she's twelve-ish u32s in a trench coat. iconic behaviour. π§
πΈ Members πΈ
okay let's go field by field, no skips, no cap:
tx_par_clkβ the frequency used to calculateP_REG_PAR_TX_TUS. it's giving "ingredient for a math moment" β¨rx_par_clkβ the frequency used to calculateP_REG_PAR_RX_TUS. yes, the rx twin, she's here too π«Άtx_pcs_clkβ the frequency used to calculateP_REG_PCS_TX_TUSπrx_pcs_clkβ the frequency used to calculateP_REG_PCS_RX_TUSπtx_desk_rsgb_parβ the frequency used to calculateP_REG_DESK_PAR_TX_TUSπrx_desk_rsgb_parβ the frequency used to calculateP_REG_DESK_PAR_RX_TUSπtx_desk_rsgb_pcsβ the frequency used to calculateP_REG_DESK_PCS_TX_TUSβrx_desk_rsgb_pcsβ the frequency used to calculateP_REG_DESK_PCS_RX_TUSβtx_fixed_delayβ the fixed Tx latency, measured in 1/100th nanoseconds. tiny units, huge vibes π₯pmd_adj_divisorβ the divisor used to calculate PDM alignment adjustment. she divides, she slays πrx_fixed_delayβ the fixed Rx latency, also measured in 1/100th nanoseconds. matching set, we love a coordinated moment π
π Description π
so what IS this thing? it's a table of constants used as part of the Vernier calibration of the Tx and Rx timestamps. literally the cheat sheet for getting your timestamps calibrated correctly. π°οΈβ¨
that includes:
- the frequency values used to compute TUs per PAR/PCS clock cycle
- the static delay values that were measured during hardware design
β οΈ important caveat bestie, don't skip this one: some values are not used for all link speeds, and the P_REG_DESK_PAR* registers may represent different clock markers at different link speeds β either the deskew marker for multi-lane link speeds, or the Reed Solomon gearbox marker for RS-FEC. so like... same register name, different meaning depending on speed. iykyk π
π SEE ALSO π
go touch grass in these files and functions, they're all connected bestie:
- Kernel file
./drivers/net/ethernet/intel/ice/ice_ptp_hw.h struct ice_phy_reg_info_eth56g(9)struct ice_time_ref_info_e82x(9)struct ice_eth56g_mac_reg_cfg(9)ice_e82x_time_ref(9)ice_set_e82x_time_ref(9)ice_get_base_incval(9)
π cute sign-off π
that's the whole page, fr fr. sourced from ./drivers/net/ethernet/intel/ice, dated October 2026, living under that Kernel API Manual umbrella as struct ice_v...er_info_e82x(9). go calibrate those timestamps, bestie β you're gonna slay πππ¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms