• Jacob Keller's avatar
    ice: discover and store size of available flash · 81f07491
    Jacob Keller authored
    When reading from the NVM using a flat address, it is useful to know the
    upper bound on the size of the flash contents. This value is not stored
    within the NVM.
    
    We can determine the size by performing a bisection between upper and
    lower bounds. It is known that the size cannot exceed 16 MB (offset of
    0xFFFFFF).
    
    Use a while loop to bisect the upper and lower bounds by reading one
    byte at a time. On a failed read, lower the maximum bound. On
    a successful read, increase the lower bound.
    
    Save this as the flash_size in the ice_nvm_info structure that contains
    data related to the NVM.
    
    The size will be used in a future patch for implementing full NVM read
    via ethtool's GEEPROM command.
    
    The maximum possible size for the flash is bounded by the size limit for
    the NVM AdminQ commands. Add a new macro, ICE_AQC_NVM_MAX_OFFSET, which
    can be used to represent this upper bound.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    81f07491
ice_adminq_cmd.h 59.5 KB