numam-dpdk/drivers/net/ice/base
Qi Zhang eb1f31fad3 net/ice/base: refactor interface for flash read
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>
2021-01-08 16:03:06 +01:00
..
ice_acl_ctrl.c net/ice/base: rename ACL priority values 2020-09-18 18:55:10 +02:00
ice_acl.c net/ice/base: rename function 2020-09-18 18:55:10 +02:00
ice_acl.h net/ice/base: rename ACL priority values 2020-09-18 18:55:10 +02:00
ice_adminq_cmd.h net/ice/base: support extended GPIO access 2020-11-03 23:35:03 +01:00
ice_alloc.h net/ice/base: update copyright 2020-05-18 20:35:57 +02:00
ice_bitops.h net/ice/base: fix bitmap set function 2020-11-03 23:24:24 +01:00
ice_common.c net/ice/base: read more security revision options 2021-01-08 16:03:06 +01:00
ice_common.h net/ice/base: specify global RSS LUT id in get/set RSS LUT 2020-11-03 23:35:03 +01:00
ice_controlq.c net/ice/base: join format strings to same line 2020-09-18 18:55:09 +02:00
ice_controlq.h net/ice/base: increase control queue timeout 2021-01-08 16:03:06 +01:00
ice_dcb.c net/ice/base: recognize 860 as iSCSI port in CEE mode 2020-11-03 23:35:03 +01:00
ice_dcb.h net/ice/base: replace single-element array hack 2020-09-18 18:55:09 +02:00
ice_devids.h net/ice/base: support E823L devices 2020-06-16 19:21:08 +02:00
ice_fdir.c net/ice/base: support tunnel for flow director 2020-11-03 23:35:03 +01:00
ice_fdir.h net/ice/base: support tunnel for flow director 2020-11-03 23:35:03 +01:00
ice_flex_pipe.c net/ice/base: use macro to get variable size array length 2020-11-03 23:35:03 +01:00
ice_flex_pipe.h net/ice/base: update copyright 2020-05-18 20:35:57 +02:00
ice_flex_type.h net/ice/base: use package info from ice segment metadata 2020-11-03 23:35:03 +01:00
ice_flow.c net/ice/base: modify ptype map for UDP 2021-01-08 16:03:06 +01:00
ice_flow.h net/ice/base: refactor RSS configure API 2020-11-03 23:35:03 +01:00
ice_hw_autogen.h net/ice/base: consolidate MAC config set 2020-06-16 19:21:07 +02:00
ice_lan_tx_rx.h net/ice: support auxiliary IP offset Rx descriptor 2020-09-18 18:55:06 +02:00
ice_nvm.c net/ice/base: refactor interface for flash read 2021-01-08 16:03:06 +01:00
ice_nvm.h net/ice/base: add NVM helper functions 2020-06-16 19:21:08 +02:00
ice_osdep.h net/ice: use write combining store for tail updates 2020-10-13 14:42:02 +02:00
ice_protocol_type.h net/ice/base: enable QinQ filter for switch advanced rule 2020-09-18 18:55:10 +02:00
ice_sbq_cmd.h net/ice/base: update copyright 2020-05-18 20:35:57 +02:00
ice_sched.c net/ice/base: implement shared rate limiter 2020-11-03 23:35:03 +01:00
ice_sched.h net/ice/base: implement shared rate limiter 2020-11-03 23:35:03 +01:00
ice_status.h net/ice/base: update copyright 2020-05-18 20:35:57 +02:00
ice_switch.c net/ice/base: use malloc instead of calloc 2020-11-03 23:35:03 +01:00
ice_switch.h net/ice/base: allocate and free RSS global lookup table 2020-11-03 23:35:03 +01:00
ice_type.h net/ice/base: refactor interface for flash read 2021-01-08 16:03:06 +01:00
meson.build net/ice/base: update copyright 2020-05-18 20:35:57 +02:00
README net/ice/base: update version 2020-11-03 23:35:03 +01:00

/* 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