eb1f31fad3
The ice_read_flash_module interface for reading from the various NVM modules was introduced. It's purpose is two-fold. First, it enables reading data from the CSS header, used to allow accessing the image security revisions. Second, it allowed reading from either the 1st or the 2nd NVM bank. This interface was necessary because the device has two copies of each module. Only one bank is active at a time, but it could be different for each module. The driver had to determine which bank was active and then use that to calculate the offset into the flash to read. Future plans include allowing access to read not just from the active flash bank, but also the inactive bank. This will be useful for enabling display of the version information for a pending flash update. The current abstraction in ice_read_flash_module is to specify the exact bank to read. This requires callers to know whether to read from the 1st or 2nd flash bank. This is the wrong abstraction level, since in most cases the decision point from a caller's perspective is whether to read from the active bank or the inactive bank. Add a new ice_bank_select enumeration, used to indicate whether a flow wants to read from the active, or inactive flash bank. Refactor ice_read_flash_module to take this new enumeration instead of a raw flash bank. Have ice_read_flash_module select which bank to read from based on the cached data we load during NVM initialization. With this change, it will be come easier to implement reading version data from the inactive flash banks in a future change. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Qiming Yang <qiming.yang@intel.com> |
||
---|---|---|
.. | ||
ice_acl_ctrl.c | ||
ice_acl.c | ||
ice_acl.h | ||
ice_adminq_cmd.h | ||
ice_alloc.h | ||
ice_bitops.h | ||
ice_common.c | ||
ice_common.h | ||
ice_controlq.c | ||
ice_controlq.h | ||
ice_dcb.c | ||
ice_dcb.h | ||
ice_devids.h | ||
ice_fdir.c | ||
ice_fdir.h | ||
ice_flex_pipe.c | ||
ice_flex_pipe.h | ||
ice_flex_type.h | ||
ice_flow.c | ||
ice_flow.h | ||
ice_hw_autogen.h | ||
ice_lan_tx_rx.h | ||
ice_nvm.c | ||
ice_nvm.h | ||
ice_osdep.h | ||
ice_protocol_type.h | ||
ice_sbq_cmd.h | ||
ice_sched.c | ||
ice_sched.h | ||
ice_status.h | ||
ice_switch.c | ||
ice_switch.h | ||
ice_type.h | ||
meson.build | ||
README |
/* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2020 Intel Corporation */ Intel® ICE driver ================== This directory contains source code of FreeBSD ice driver of version 2020.10.21 released by the team which develops basic drivers for any ice NIC. The directory of base/ contains the original source package. This driver is valid for the product(s) listed below * Intel® Ethernet Network Adapters E810 Updating the driver =================== NOTE: The source code in this directory should not be modified apart from the following file(s): ice_osdep.h