Go to file
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
.ci ci: enable v21 ABI checks 2020-12-14 15:34:04 +01:00
.github/workflows ci: fix package installation in GitHub Actions 2020-12-19 09:21:25 +01:00
app app/testpmd: fix queue stats mapping configuration 2021-01-08 16:03:04 +01:00
buildtools build: fix plugin load on static build 2021-01-05 23:01:36 +01:00
config build: disable Windows warnings for insecure funtions 2020-12-07 21:34:04 +01:00
devtools devtools: add acronyms in dictionary for commit checks 2020-11-22 22:43:49 +01:00
doc doc: fix some statements for ice vector PMD 2021-01-08 16:03:06 +01:00
drivers net/ice/base: refactor interface for flash read 2021-01-08 16:03:06 +01:00
examples build: fix plugin load on static build 2021-01-05 23:01:36 +01:00
kernel kni: fix build on RHEL 8.3 2020-11-27 01:39:54 +01:00
lib rcu: use EAL memory barrier API 2021-01-11 15:34:21 +01:00
license license: add licenses for exception cases 2020-12-11 12:22:19 +01:00
usertools usertools: remove dpdk-setup.sh 2020-11-27 17:25:24 +01:00
.editorconfig devtools: add EditorConfig file 2020-02-22 21:05:22 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore regex/mlx5: introduce driver for BlueField 2 2020-07-21 19:04:05 +02:00
.travis.yml ci: enable v21 ABI checks 2020-12-14 15:34:04 +01:00
ABI_VERSION version: 21.02-rc0 2020-11-30 10:55:22 +01:00
MAINTAINERS net/ionic: update maintainer and documentation 2021-01-08 16:03:04 +01:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt build: update meson for Marvell Armada drivers 2021-01-08 16:03:05 +01:00
meson.build examples: fix flattening directory layout on install 2020-11-12 19:33:06 +01:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 21.02-rc0 2020-11-30 10:55:22 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org