Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/sfxge/common/efx_nvram.c
Show First 20 Lines • Show All 161 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
const efx_nvram_ops_t *envop = enp->en_envop; | const efx_nvram_ops_t *envop = enp->en_envop; | ||||
uint32_t partn; | uint32_t partn; | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | ||||
EFSYS_ASSERT3U(type, <, EFX_NVRAM_NTYPES); | |||||
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | ||||
goto fail1; | goto fail1; | ||||
if ((rc = envop->envo_partn_size(enp, partn, sizep)) != 0) | if ((rc = envop->envo_partn_size(enp, partn, sizep)) != 0) | ||||
goto fail2; | goto fail2; | ||||
return (0); | return (0); | ||||
Show All 16 Lines | efx_nvram_get_version( | ||||
const efx_nvram_ops_t *envop = enp->en_envop; | const efx_nvram_ops_t *envop = enp->en_envop; | ||||
uint32_t partn; | uint32_t partn; | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | ||||
EFSYS_ASSERT3U(type, <, EFX_NVRAM_NTYPES); | |||||
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | ||||
goto fail1; | goto fail1; | ||||
if ((rc = envop->envo_partn_get_version(enp, partn, | if ((rc = envop->envo_partn_get_version(enp, partn, | ||||
subtypep, version)) != 0) | subtypep, version)) != 0) | ||||
goto fail2; | goto fail2; | ||||
return (0); | return (0); | ||||
Show All 14 Lines | |||||
{ | { | ||||
const efx_nvram_ops_t *envop = enp->en_envop; | const efx_nvram_ops_t *envop = enp->en_envop; | ||||
uint32_t partn; | uint32_t partn; | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | ||||
EFSYS_ASSERT3U(type, <, EFX_NVRAM_NTYPES); | |||||
EFSYS_ASSERT3U(type, !=, EFX_NVRAM_INVALID); | |||||
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | ||||
goto fail1; | goto fail1; | ||||
EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, EFX_NVRAM_PARTN_INVALID); | EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, EFX_NVRAM_PARTN_INVALID); | ||||
if ((rc = envop->envo_partn_rw_start(enp, partn, chunk_sizep)) != 0) | if ((rc = envop->envo_partn_rw_start(enp, partn, chunk_sizep)) != 0) | ||||
goto fail2; | goto fail2; | ||||
Show All 19 Lines | |||||
{ | { | ||||
const efx_nvram_ops_t *envop = enp->en_envop; | const efx_nvram_ops_t *envop = enp->en_envop; | ||||
uint32_t partn; | uint32_t partn; | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | ||||
EFSYS_ASSERT3U(type, <, EFX_NVRAM_NTYPES); | |||||
EFSYS_ASSERT3U(type, !=, EFX_NVRAM_INVALID); | |||||
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | ||||
goto fail1; | goto fail1; | ||||
EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, partn); | EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, partn); | ||||
if ((rc = envop->envo_partn_read(enp, partn, offset, data, size)) != 0) | if ((rc = envop->envo_partn_read(enp, partn, offset, data, size)) != 0) | ||||
goto fail2; | goto fail2; | ||||
Show All 22 Lines | |||||
{ | { | ||||
const efx_nvram_ops_t *envop = enp->en_envop; | const efx_nvram_ops_t *envop = enp->en_envop; | ||||
uint32_t partn; | uint32_t partn; | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | ||||
EFSYS_ASSERT3U(type, <, EFX_NVRAM_NTYPES); | |||||
EFSYS_ASSERT3U(type, !=, EFX_NVRAM_INVALID); | |||||
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | ||||
goto fail1; | goto fail1; | ||||
EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, partn); | EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, partn); | ||||
if ((rc = envop->envo_partn_read_backup(enp, partn, offset, | if ((rc = envop->envo_partn_read_backup(enp, partn, offset, | ||||
data, size)) != 0) | data, size)) != 0) | ||||
goto fail2; | goto fail2; | ||||
Show All 17 Lines | efx_nvram_erase( | ||||
unsigned int offset = 0; | unsigned int offset = 0; | ||||
size_t size = 0; | size_t size = 0; | ||||
uint32_t partn; | uint32_t partn; | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | ||||
EFSYS_ASSERT3U(type, <, EFX_NVRAM_NTYPES); | |||||
EFSYS_ASSERT3U(type, !=, EFX_NVRAM_INVALID); | |||||
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | ||||
goto fail1; | goto fail1; | ||||
EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, partn); | EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, partn); | ||||
if ((rc = envop->envo_partn_size(enp, partn, &size)) != 0) | if ((rc = envop->envo_partn_size(enp, partn, &size)) != 0) | ||||
goto fail2; | goto fail2; | ||||
Show All 22 Lines | |||||
{ | { | ||||
const efx_nvram_ops_t *envop = enp->en_envop; | const efx_nvram_ops_t *envop = enp->en_envop; | ||||
uint32_t partn; | uint32_t partn; | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | ||||
EFSYS_ASSERT3U(type, <, EFX_NVRAM_NTYPES); | |||||
EFSYS_ASSERT3U(type, !=, EFX_NVRAM_INVALID); | |||||
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | ||||
goto fail1; | goto fail1; | ||||
EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, partn); | EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, partn); | ||||
if ((rc = envop->envo_partn_write(enp, partn, offset, data, size)) != 0) | if ((rc = envop->envo_partn_write(enp, partn, offset, data, size)) != 0) | ||||
goto fail2; | goto fail2; | ||||
Show All 16 Lines | efx_nvram_rw_finish( | ||||
const efx_nvram_ops_t *envop = enp->en_envop; | const efx_nvram_ops_t *envop = enp->en_envop; | ||||
uint32_t partn; | uint32_t partn; | ||||
uint32_t verify_result = 0; | uint32_t verify_result = 0; | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | ||||
EFSYS_ASSERT3U(type, <, EFX_NVRAM_NTYPES); | |||||
EFSYS_ASSERT3U(type, !=, EFX_NVRAM_INVALID); | |||||
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | ||||
goto fail1; | goto fail1; | ||||
EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, partn); | EFSYS_ASSERT3U(enp->en_nvram_partn_locked, ==, partn); | ||||
if ((rc = envop->envo_partn_rw_finish(enp, partn, &verify_result)) != 0) | if ((rc = envop->envo_partn_rw_finish(enp, partn, &verify_result)) != 0) | ||||
goto fail2; | goto fail2; | ||||
Show All 27 Lines | efx_nvram_set_version( | ||||
const efx_nvram_ops_t *envop = enp->en_envop; | const efx_nvram_ops_t *envop = enp->en_envop; | ||||
uint32_t partn; | uint32_t partn; | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | ||||
EFSYS_ASSERT3U(type, <, EFX_NVRAM_NTYPES); | |||||
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | ||||
goto fail1; | goto fail1; | ||||
/* | /* | ||||
* The Siena implementation of envo_set_version() will attempt to | * The Siena implementation of envo_set_version() will attempt to | ||||
* acquire the NVRAM_UPDATE lock for the DYNAMIC_CONFIG partition. | * acquire the NVRAM_UPDATE lock for the DYNAMIC_CONFIG partition. | ||||
* Therefore, you can't have already acquired the NVRAM_UPDATE lock. | * Therefore, you can't have already acquired the NVRAM_UPDATE lock. | ||||
*/ | */ | ||||
Show All 22 Lines | |||||
{ | { | ||||
const efx_nvram_ops_t *envop = enp->en_envop; | const efx_nvram_ops_t *envop = enp->en_envop; | ||||
uint32_t partn; | uint32_t partn; | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE); | ||||
EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NVRAM); | ||||
EFSYS_ASSERT3U(type, <, EFX_NVRAM_NTYPES); | |||||
if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | if ((rc = envop->envo_type_to_partn(enp, type, &partn)) != 0) | ||||
goto fail1; | goto fail1; | ||||
if (envop->envo_buffer_validate != NULL) { | if (envop->envo_buffer_validate != NULL) { | ||||
if ((rc = envop->envo_buffer_validate(enp, partn, | if ((rc = envop->envo_buffer_validate(enp, partn, | ||||
partn_data, partn_size)) != 0) | partn_data, partn_size)) != 0) | ||||
goto fail2; | goto fail2; | ||||
▲ Show 20 Lines • Show All 581 Lines • Show Last 20 Lines |