mirror_ubuntu-kernels/drivers/net/ethernet/intel/ice
Jacob Keller 81f07491e2 ice: discover and store size of available flash
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: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2020-03-21 00:29:10 -07:00
..
ice_adminq_cmd.h ice: discover and store size of available flash 2020-03-21 00:29:10 -07:00
ice_base.c ice: add backslash-n to strings 2020-02-19 13:26:45 -08:00
ice_base.h ice: Add support to enable/disable all Rx queues before waiting 2020-02-15 16:39:55 -08:00
ice_common.c ice: store NVM version info in extracted format 2020-03-21 00:28:18 -07:00
ice_common.h ice: store NVM version info in extracted format 2020-03-21 00:28:18 -07:00
ice_controlq.c ice: print opcode when printing controlq errors 2019-11-08 12:03:18 -08:00
ice_controlq.h ice: Update FW API minor version 2019-11-22 13:43:46 -08:00
ice_dcb_lib.c ice: use variable name more descriptive than type 2020-03-10 13:10:58 -07:00
ice_dcb_lib.h ice: Validate config for SW DCB map 2020-02-19 12:12:27 -08:00
ice_dcb_nl.c ice: SW DCB, report correct max TC value 2020-02-19 13:09:20 -08:00
ice_dcb_nl.h ice: Implement DCBNL support 2019-11-08 12:02:14 -08:00
ice_dcb.c ice: Trivial fixes 2020-02-12 11:49:12 -08:00
ice_dcb.h ice: Allow for delayed LLDP MIB change registration 2019-09-05 08:13:41 -07:00
ice_devids.h ice: fix define for E822 backplane device 2020-02-19 13:39:33 -08:00
ice_ethtool.c ice: store NVM version info in extracted format 2020-03-21 00:28:18 -07:00
ice_flex_pipe.c ice: Fix for TCAM entry management 2020-02-19 12:59:37 -08:00
ice_flex_pipe.h ice: Optimize table usage 2020-01-25 21:42:50 -08:00
ice_flex_type.h ice: Enable writing filtering tables 2020-01-25 21:38:32 -08:00
ice_flow.c ice: use variable name more descriptive than type 2020-03-10 13:10:58 -07:00
ice_flow.h ice: Implement ethtool get/set rx-flow-hash 2020-01-25 21:47:28 -08:00
ice_hw_autogen.h ice: Always clear the QRXFLXP_CNTXT register for VF Rx queues 2020-02-19 13:01:51 -08:00
ice_lan_tx_rx.h ice: Allocate flow profile 2020-01-24 16:06:32 -08:00
ice_lib.c ice: use variable name more descriptive than type 2020-03-10 13:10:58 -07:00
ice_lib.h ice: use variable name more descriptive than type 2020-03-10 13:10:58 -07:00
ice_main.c ice: Fix format specifier 2020-03-10 13:10:47 -07:00
ice_nvm.c ice: discover and store size of available flash 2020-03-21 00:29:10 -07:00
ice_nvm.h ice: create function to read a section of the NVM and Shadow RAM 2020-03-21 00:24:56 -07:00
ice_osdep.h ice: Start hardware initialization 2018-03-26 09:59:08 -07:00
ice_protocol_type.h ice: Initilialize VF RSS tables 2020-01-25 21:45:19 -08:00
ice_sched.c ice: remove pointless NULL check of port_info 2019-11-22 13:43:42 -08:00
ice_sched.h ice: Add NDO callback to set the maximum per-queue bitrate 2019-11-08 11:58:49 -08:00
ice_sriov.c ice: remove unnecessary fallthrough comments 2020-02-15 16:56:48 -08:00
ice_sriov.h ice: Add handlers for VF netdevice operations 2018-10-03 07:42:30 -07:00
ice_status.h ice: Populate TCAM filter software structures 2020-01-25 21:34:36 -08:00
ice_switch.c ice: use variable name more descriptive than type 2020-03-10 13:10:58 -07:00
ice_switch.h ice: Add NDO callback to set the maximum per-queue bitrate 2019-11-08 11:58:49 -08:00
ice_txrx_lib.c ice: Don't allow same value for Rx tail to be written twice 2020-02-12 11:48:22 -08:00
ice_txrx_lib.h ice: Move common functions to ice_txrx_lib.c 2019-11-04 11:45:05 -08:00
ice_txrx.c ice: replace "fallthrough" comments with fallthrough reserved word 2020-02-15 17:03:12 -08:00
ice_txrx.h ice: Don't reject odd values of usecs set by user 2020-02-19 11:50:41 -08:00
ice_type.h ice: discover and store size of available flash 2020-03-21 00:29:10 -07:00
ice_virtchnl_pf.c ice: Use EOPNOTSUPP instead of ENOTSUPP 2020-03-10 13:10:53 -07:00
ice_virtchnl_pf.h ice: allow bigger VFs 2020-03-10 13:09:52 -07:00
ice_xsk.c ice: add backslash-n to strings 2020-02-19 13:26:45 -08:00
ice_xsk.h ice: Use EOPNOTSUPP instead of ENOTSUPP 2020-03-10 13:10:53 -07:00
ice.h ice: Increase mailbox receive queue length to maximum 2020-03-10 13:10:36 -07:00
Makefile ice: Enable writing hardware filtering tables 2020-01-24 13:18:19 -08:00