numam-dpdk/drivers/net/ice/base
Qi Zhang b1d08cb258 net/ice/base: read option ROM combo version from CIVD
The driver currently reads the combo image version data from within the
Boot Configuration TLV block of the PFA area of the NVM. This allows
access to the active Option ROM version data, assuming that it has been
properly copied into this section.

There is no equivalent method for reading the Option ROM version data
from a pending Option ROM update, as it will not yet have been copied
into the PFA boot configuration block. Instead, replace this
implementation with one which scans for the CIVD data section of the
Option ROM image data.

This CIVD data is stored in a packed structured format within the Option
ROM. It is always aligned to a 512 byte boundary, and starts with
a special '$CIV' 4-byte signature. Data integrity is checked using
a simple modulo 256 sum of the structure bytes.

Implement a new ice_get_orom_civd_data function which allows reading
from the selected flash bank (active or inactive), and scans for valid
CIVD data. Use this instead of the boot configuration TLV in order to
report the combo version data of precisely what is in the Option ROM
data.

To allow access to reading the inactive Option ROM bank, introduce a new
ice_get_inactive_orom_ver function. Use of a new function is done in
order to avoid leaking the bank selection abstraction outside of
ice_nvm.c

With this new function, the driver can now read and display the version
of the to-be-activated Option ROM when an update has been initiated but
not yet finalized.

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: read option ROM combo version from CIVD 2021-01-08 16:03:06 +01:00
ice_nvm.h net/ice/base: read option ROM combo version from CIVD 2021-01-08 16:03:06 +01: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