• Dan Nowlin's avatar
    ice: manage profiles and field vectors · 450052a4
    Dan Nowlin authored
    Implement functions to manage profiles and field vectors in hardware.
    
    In hardware, there are up to 256 profiles and each of these profiles can
    have 48 field vector words. Each field vector word is described by
    protocol id and offset in the packet. To add a new recipe all used
    profiles need to be searched. If the profile contains all required
    protocol ids and offsets from the recipe it can be used. The driver has
    to add this profile to recipe association to tell hardware that newly
    added recipe is going to be associated with this profile.
    
    The amount of used profiles depend on the package. To avoid searching
    across not used profile, max profile id value is calculated at init flow.
    The profile is considered as unused when all field vector words in the
    profile are invalid (protocol id 0xff and offset 0x1ff).
    
    Profiles are read from the package section ICE_SID_FLD_VEC_SW. Empty
    field vector words can be used for recipe results. Store all unused field
    vector words in prof_res_bm. It is a 256 elements array (max number of
    profiles) each element is a 48 bit bitmap (max number of field vector
    words).
    
    For now, support only non-tunnel profiles type.
    Co-developed-by: default avatarGrishma Kotecha <grishma.kotecha@intel.com>
    Signed-off-by: default avatarGrishma Kotecha <grishma.kotecha@intel.com>
    Signed-off-by: default avatarDan Nowlin <dan.nowlin@intel.com>
    Signed-off-by: default avatarWojciech Drewek <wojciech.drewek@intel.com>
    Tested-by: default avatarSandeep Penigalapati <sandeep.penigalapati@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    450052a4
ice_flex_pipe.c 148 KB