sfxge(4): add Medford2 support to NVRAM module

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
Differential Revision:  https://reviews.freebsd.org/D18153
This commit is contained in:
Andrew Rybchenko 2018-11-27 12:21:41 +00:00
parent 20c5aab398
commit 824c97ed5c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=341031
2 changed files with 29 additions and 4 deletions

View File

@ -34,7 +34,7 @@ __FBSDID("$FreeBSD$");
#include "efx.h"
#include "efx_impl.h"
#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD
#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD || EFSYS_OPT_MEDFORD2
#if EFSYS_OPT_VPD || EFSYS_OPT_NVRAM
@ -2179,6 +2179,20 @@ static ef10_parttbl_entry_t medford_parttbl[] = {
PARTN_MAP_ENTRY(MUM_FIRMWARE, ALL, MUM_FIRMWARE),
};
static ef10_parttbl_entry_t medford2_parttbl[] = {
/* partn ports nvtype */
PARTN_MAP_ENTRY(MC_FIRMWARE, ALL, MC_FIRMWARE),
PARTN_MAP_ENTRY(MC_FIRMWARE_BACKUP, ALL, MC_GOLDEN),
PARTN_MAP_ENTRY(EXPANSION_ROM, ALL, BOOTROM),
PARTN_MAP_ENTRY(EXPROM_CONFIG, ALL, BOOTROM_CFG),
PARTN_MAP_ENTRY(DYNAMIC_CONFIG, ALL, DYNAMIC_CFG),
PARTN_MAP_ENTRY(FPGA, ALL, FPGA),
PARTN_MAP_ENTRY(FPGA_BACKUP, ALL, FPGA_BACKUP),
PARTN_MAP_ENTRY(LICENSE, ALL, LICENSE),
PARTN_MAP_ENTRY(EXPANSION_UEFI, ALL, UEFIROM),
PARTN_MAP_ENTRY(MUM_FIRMWARE, ALL, MUM_FIRMWARE),
};
static __checkReturn efx_rc_t
ef10_parttbl_get(
__in efx_nic_t *enp,
@ -2196,6 +2210,11 @@ ef10_parttbl_get(
*parttbl_rowsp = EFX_ARRAY_SIZE(medford_parttbl);
break;
case EFX_FAMILY_MEDFORD2:
*parttblp = medford2_parttbl;
*parttbl_rowsp = EFX_ARRAY_SIZE(medford2_parttbl);
break;
default:
EFSYS_ASSERT(B_FALSE);
return (EINVAL);
@ -2389,4 +2408,4 @@ ef10_nvram_partn_rw_finish(
#endif /* EFSYS_OPT_NVRAM */
#endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD */
#endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD || EFSYS_OPT_MEDFORD2 */

View File

@ -59,7 +59,7 @@ static const efx_nvram_ops_t __efx_nvram_siena_ops = {
#endif /* EFSYS_OPT_SIENA */
#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD
#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD || EFSYS_OPT_MEDFORD2
static const efx_nvram_ops_t __efx_nvram_ef10_ops = {
#if EFSYS_OPT_DIAG
@ -78,7 +78,7 @@ static const efx_nvram_ops_t __efx_nvram_ef10_ops = {
ef10_nvram_buffer_validate, /* envo_buffer_validate */
};
#endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD */
#endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD || EFSYS_OPT_MEDFORD2 */
__checkReturn efx_rc_t
efx_nvram_init(
@ -110,6 +110,12 @@ efx_nvram_init(
break;
#endif /* EFSYS_OPT_MEDFORD */
#if EFSYS_OPT_MEDFORD2
case EFX_FAMILY_MEDFORD2:
envop = &__efx_nvram_ef10_ops;
break;
#endif /* EFSYS_OPT_MEDFORD2 */
default:
EFSYS_ASSERT(0);
rc = ENOTSUP;