summaryrefslogtreecommitdiffstats
path: root/sys/dev/sfxge/common/efx_impl.h
diff options
context:
space:
mode:
authorarybchik <arybchik@FreeBSD.org>2016-01-20 08:26:58 +0000
committerarybchik <arybchik@FreeBSD.org>2016-01-20 08:26:58 +0000
commitc051b72131f1de0463b7d8c37f268829b685543a (patch)
tree4236e2add0500edcdf6d5a86153ee914bd887965 /sys/dev/sfxge/common/efx_impl.h
parent1dee23352d3b7a371b855eabff315ef446e86bb2 (diff)
downloadFreeBSD-src-c051b72131f1de0463b7d8c37f268829b685543a.zip
FreeBSD-src-c051b72131f1de0463b7d8c37f268829b685543a.tar.gz
MFC r294309
sfxge: select whether to read current or backup partition in Medford A/B scheme The dynamic config on Medford is stored using two partitions in flash, and at any time one is the 'current' partition, used to provide the active config, and the other 'backup' partition is used for writes. This means that there are two potential partitions that can be used to service reads, and which is required can depend on, for example, whether the read is to get the current contents or to verify a write. When the partition write lock is held, the default behaviour is to read from the backup partition, which was wrong for most reads in the common code which require the current partition. This change allows the current partition to be read whilst the write lock is held. There is one read in Manftest which needs the backup partition. ef10_nvram_partn_read_mode() is created to avoid changing ef10_nvram_partn_read() which shares a prototype with the equivalent Falcon and Siena methods. MC_CMD_NVRAM_READ_IN_V2 adds an extra field, but firmware which doesn't support it just ignores it. Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc.
Diffstat (limited to 'sys/dev/sfxge/common/efx_impl.h')
-rw-r--r--sys/dev/sfxge/common/efx_impl.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/sfxge/common/efx_impl.h b/sys/dev/sfxge/common/efx_impl.h
index 3faf2dd..5495b15 100644
--- a/sys/dev/sfxge/common/efx_impl.h
+++ b/sys/dev/sfxge/common/efx_impl.h
@@ -559,7 +559,8 @@ efx_mcdi_nvram_read(
__in uint32_t partn,
__in uint32_t offset,
__out_bcount(size) caddr_t data,
- __in size_t size);
+ __in size_t size,
+ __in uint32_t mode);
__checkReturn efx_rc_t
efx_mcdi_nvram_erase(
OpenPOWER on IntegriCloud