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> |
||
---|---|---|
.ci | ||
.github/workflows | ||
app | ||
buildtools | ||
config | ||
devtools | ||
doc | ||
drivers | ||
examples | ||
kernel | ||
lib | ||
license | ||
usertools | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
ABI_VERSION | ||
MAINTAINERS | ||
Makefile | ||
meson_options.txt | ||
meson.build | ||
README | ||
VERSION |
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