/openbmc/linux/drivers/thunderbolt/ |
H A D | nvm.c | 38 int (*read_version)(struct tb_nvm *nvm); 39 int (*validate)(struct tb_nvm *nvm); 40 int (*write_headers)(struct tb_nvm *nvm); 56 static int intel_switch_nvm_version(struct tb_nvm *nvm) in intel_switch_nvm_version() argument 58 struct tb_switch *sw = tb_to_switch(nvm->dev); in intel_switch_nvm_version() 82 nvm->major = (val >> 16) & 0xff; in intel_switch_nvm_version() 83 nvm->minor = (val >> 8) & 0xff; in intel_switch_nvm_version() 84 nvm->active_size = nvm_size; in intel_switch_nvm_version() 89 static int intel_switch_nvm_validate(struct tb_nvm *nvm) in intel_switch_nvm_validate() argument 91 struct tb_switch *sw = tb_to_switch(nvm->dev); in intel_switch_nvm_validate() [all …]
|
H A D | retimer.c | 37 struct tb_nvm *nvm = priv; in nvm_read() local 38 struct tb_retimer *rt = tb_to_retimer(nvm->dev); in nvm_read() 60 struct tb_nvm *nvm = priv; in nvm_write() local 61 struct tb_retimer *rt = tb_to_retimer(nvm->dev); in nvm_write() 67 ret = tb_nvm_write_buf(nvm, offset, val, bytes); in nvm_write() 75 struct tb_nvm *nvm; in tb_retimer_nvm_add() local 78 nvm = tb_nvm_alloc(&rt->dev); in tb_retimer_nvm_add() 79 if (IS_ERR(nvm)) { in tb_retimer_nvm_add() 80 ret = PTR_ERR(nvm) == -EOPNOTSUPP ? 0 : PTR_ERR(nvm); in tb_retimer_nvm_add() 84 ret = tb_nvm_read_version(nvm); in tb_retimer_nvm_add() [all …]
|
H A D | switch.c | 104 ret = tb_nvm_validate(sw->nvm); in nvm_validate_and_write() 108 ret = tb_nvm_write_headers(sw->nvm); in nvm_validate_and_write() 112 buf = sw->nvm->buf_data_start; in nvm_validate_and_write() 113 image_size = sw->nvm->buf_data_size; in nvm_validate_and_write() 122 sw->nvm->flushed = true; in nvm_validate_and_write() 268 sw->nvm->authenticating = true; in nvm_authenticate() 274 sw->nvm->authenticating = true; in nvm_authenticate() 306 struct tb_nvm *nvm = priv; in nvm_read() local 307 struct tb_switch *sw = tb_to_switch(nvm->dev); in nvm_read() 329 struct tb_nvm *nvm = priv; in nvm_write() local [all …]
|
H A D | tb.h | 191 struct tb_nvm *nvm; member 331 struct tb_nvm *nvm; member 769 int tb_nvm_read_version(struct tb_nvm *nvm); 770 int tb_nvm_validate(struct tb_nvm *nvm); 771 int tb_nvm_write_headers(struct tb_nvm *nvm); 772 int tb_nvm_add_active(struct tb_nvm *nvm, nvmem_reg_read_t reg_read); 773 int tb_nvm_write_buf(struct tb_nvm *nvm, unsigned int offset, void *val, 775 int tb_nvm_add_non_active(struct tb_nvm *nvm, nvmem_reg_write_t reg_write); 776 void tb_nvm_free(struct tb_nvm *nvm);
|
/openbmc/linux/drivers/net/ethernet/intel/igb/ |
H A D | e1000_nvm.c | 22 udelay(hw->nvm.delay_usec); in igb_raise_eec_clk() 37 udelay(hw->nvm.delay_usec); in igb_lower_eec_clk() 52 struct e1000_nvm_info *nvm = &hw->nvm; in igb_shift_out_eec_bits() local 57 if (nvm->type == e1000_nvm_eeprom_spi) in igb_shift_out_eec_bits() 69 udelay(nvm->delay_usec); in igb_shift_out_eec_bits() 194 struct e1000_nvm_info *nvm = &hw->nvm; in igb_standby_nvm() local 197 if (nvm->type == e1000_nvm_eeprom_spi) { in igb_standby_nvm() 202 udelay(nvm->delay_usec); in igb_standby_nvm() 206 udelay(nvm->delay_usec); in igb_standby_nvm() 221 if (hw->nvm.type == e1000_nvm_eeprom_spi) { in e1000_stop_nvm() [all …]
|
H A D | e1000_i210.c | 25 s32 timeout = hw->nvm.word_size + 1; in igb_get_hw_semaphore_i210() 200 if (!(hw->nvm.ops.acquire(hw))) { in igb_read_nvm_srrd_i210() 203 hw->nvm.ops.release(hw); in igb_read_nvm_srrd_i210() 230 struct e1000_nvm_info *nvm = &hw->nvm; in igb_write_nvm_srwr() local 238 if ((offset >= nvm->word_size) || (words > (nvm->word_size - offset)) || in igb_write_nvm_srwr() 300 if (!(hw->nvm.ops.acquire(hw))) { in igb_write_nvm_srwr_i210() 303 hw->nvm.ops.release(hw); in igb_write_nvm_srwr_i210() 544 if (!(hw->nvm.ops.acquire(hw))) { in igb_validate_nvm_checksum_i210() 550 read_op_ptr = hw->nvm.ops.read; in igb_validate_nvm_checksum_i210() 551 hw->nvm.ops.read = igb_read_nvm_eerd; in igb_validate_nvm_checksum_i210() [all …]
|
H A D | e1000_82575.c | 328 struct e1000_nvm_info *nvm = &hw->nvm; in igb_init_nvm_params_82575() local 345 nvm->word_size = BIT(size); in igb_init_nvm_params_82575() 346 nvm->opcode_bits = 8; in igb_init_nvm_params_82575() 347 nvm->delay_usec = 1; in igb_init_nvm_params_82575() 349 switch (nvm->override) { in igb_init_nvm_params_82575() 351 nvm->page_size = 32; in igb_init_nvm_params_82575() 352 nvm->address_bits = 16; in igb_init_nvm_params_82575() 355 nvm->page_size = 8; in igb_init_nvm_params_82575() 356 nvm->address_bits = 8; in igb_init_nvm_params_82575() 359 nvm->page_size = eecd & E1000_EECD_ADDR_BITS ? 32 : 8; in igb_init_nvm_params_82575() [all …]
|
/openbmc/linux/drivers/net/ethernet/intel/e1000e/ |
H A D | nvm.c | 18 udelay(hw->nvm.delay_usec); in e1000_raise_eec_clk() 33 udelay(hw->nvm.delay_usec); in e1000_lower_eec_clk() 48 struct e1000_nvm_info *nvm = &hw->nvm; in e1000_shift_out_eec_bits() local 53 if (nvm->type == e1000_nvm_eeprom_spi) in e1000_shift_out_eec_bits() 65 udelay(nvm->delay_usec); in e1000_shift_out_eec_bits() 184 struct e1000_nvm_info *nvm = &hw->nvm; in e1000_standby_nvm() local 187 if (nvm->type == e1000_nvm_eeprom_spi) { in e1000_standby_nvm() 192 udelay(nvm->delay_usec); in e1000_standby_nvm() 196 udelay(nvm->delay_usec); in e1000_standby_nvm() 211 if (hw->nvm.type == e1000_nvm_eeprom_spi) { in e1000_stop_nvm() [all …]
|
H A D | 82571.c | 122 struct e1000_nvm_info *nvm = &hw->nvm; in e1000_init_nvm_params_82571() local 126 nvm->opcode_bits = 8; in e1000_init_nvm_params_82571() 127 nvm->delay_usec = 1; in e1000_init_nvm_params_82571() 128 switch (nvm->override) { in e1000_init_nvm_params_82571() 130 nvm->page_size = 32; in e1000_init_nvm_params_82571() 131 nvm->address_bits = 16; in e1000_init_nvm_params_82571() 134 nvm->page_size = 8; in e1000_init_nvm_params_82571() 135 nvm->address_bits = 8; in e1000_init_nvm_params_82571() 138 nvm->page_size = eecd & E1000_EECD_ADDR_BITS ? 32 : 8; in e1000_init_nvm_params_82571() 139 nvm->address_bits = eecd & E1000_EECD_ADDR_BITS ? 16 : 8; in e1000_init_nvm_params_82571() [all …]
|
H A D | ich8lan.c | 619 struct e1000_nvm_info *nvm = &hw->nvm; in e1000_init_nvm_params_ich8lan() local 625 nvm->type = e1000_nvm_flash_sw; in e1000_init_nvm_params_ich8lan() 634 nvm->flash_base_addr = 0; in e1000_init_nvm_params_ich8lan() 637 nvm->flash_bank_size = nvm_size / 2; in e1000_init_nvm_params_ich8lan() 639 nvm->flash_bank_size /= sizeof(u16); in e1000_init_nvm_params_ich8lan() 659 nvm->flash_base_addr = sector_base_addr in e1000_init_nvm_params_ich8lan() 665 nvm->flash_bank_size = ((sector_end_addr - sector_base_addr) in e1000_init_nvm_params_ich8lan() 667 nvm->flash_bank_size /= 2; in e1000_init_nvm_params_ich8lan() 669 nvm->flash_bank_size /= sizeof(u16); in e1000_init_nvm_params_ich8lan() 672 nvm->word_size = E1000_ICH8_SHADOW_RAM_WORDS; in e1000_init_nvm_params_ich8lan() [all …]
|
H A D | 80003es2lan.c | 72 struct e1000_nvm_info *nvm = &hw->nvm; in e1000_init_nvm_params_80003es2lan() local 76 nvm->opcode_bits = 8; in e1000_init_nvm_params_80003es2lan() 77 nvm->delay_usec = 1; in e1000_init_nvm_params_80003es2lan() 78 switch (nvm->override) { in e1000_init_nvm_params_80003es2lan() 80 nvm->page_size = 32; in e1000_init_nvm_params_80003es2lan() 81 nvm->address_bits = 16; in e1000_init_nvm_params_80003es2lan() 84 nvm->page_size = 8; in e1000_init_nvm_params_80003es2lan() 85 nvm->address_bits = 8; in e1000_init_nvm_params_80003es2lan() 88 nvm->page_size = eecd & E1000_EECD_ADDR_BITS ? 32 : 8; in e1000_init_nvm_params_80003es2lan() 89 nvm->address_bits = eecd & E1000_EECD_ADDR_BITS ? 16 : 8; in e1000_init_nvm_params_80003es2lan() [all …]
|
H A D | e1000.h | 574 return hw->nvm.ops.validate(hw); in e1000_validate_nvm_checksum() 579 return hw->nvm.ops.update(hw); in e1000e_update_nvm_checksum() 585 return hw->nvm.ops.read(hw, offset, words, data); in e1000_read_nvm() 591 return hw->nvm.ops.write(hw, offset, words, data); in e1000_write_nvm()
|
/openbmc/linux/drivers/net/ethernet/intel/igc/ |
H A D | igc_i225.c | 43 s32 timeout = hw->nvm.word_size + 1; in igc_get_hw_semaphore_i225() 201 status = hw->nvm.ops.acquire(hw); in igc_read_nvm_srrd_i225() 206 hw->nvm.ops.release(hw); in igc_read_nvm_srrd_i225() 229 struct igc_nvm_info *nvm = &hw->nvm; in igc_write_nvm_srwr() local 237 if (offset >= nvm->word_size || (words > (nvm->word_size - offset)) || in igc_write_nvm_srwr() 299 status = hw->nvm.ops.acquire(hw); in igc_write_nvm_srwr_i225() 304 hw->nvm.ops.release(hw); in igc_write_nvm_srwr_i225() 325 status = hw->nvm.ops.acquire(hw); in igc_validate_nvm_checksum_i225() 333 read_op_ptr = hw->nvm.ops.read; in igc_validate_nvm_checksum_i225() 334 hw->nvm.ops.read = igc_read_nvm_eerd; in igc_validate_nvm_checksum_i225() [all …]
|
H A D | igc_base.c | 67 struct igc_nvm_info *nvm = &hw->nvm; in igc_init_nvm_params_base() local 88 nvm->type = igc_nvm_eeprom_spi; in igc_init_nvm_params_base() 89 nvm->word_size = BIT(size); in igc_init_nvm_params_base() 90 nvm->opcode_bits = 8; in igc_init_nvm_params_base() 91 nvm->delay_usec = 1; in igc_init_nvm_params_base() 93 nvm->page_size = eecd & IGC_EECD_ADDR_BITS ? 32 : 8; in igc_init_nvm_params_base() 94 nvm->address_bits = eecd & IGC_EECD_ADDR_BITS ? in igc_init_nvm_params_base() 97 if (nvm->word_size == BIT(15)) in igc_init_nvm_params_base() 98 nvm->page_size = 128; in igc_init_nvm_params_base()
|
H A D | igc_nvm.c | 99 struct igc_nvm_info *nvm = &hw->nvm; in igc_read_nvm_eerd() local 106 if (offset >= nvm->word_size || (words > (nvm->word_size - offset)) || in igc_read_nvm_eerd() 168 ret_val = hw->nvm.ops.read(hw, i, 1, &nvm_data); in igc_validate_nvm_checksum() 201 ret_val = hw->nvm.ops.read(hw, i, 1, &nvm_data); in igc_update_nvm_checksum() 209 ret_val = hw->nvm.ops.write(hw, NVM_CHECKSUM_REG, 1, &checksum); in igc_update_nvm_checksum()
|
/openbmc/linux/drivers/media/i2c/ |
H A D | ov2740.c | 346 struct nvm_data *nvm; member 651 static int ov2740_load_otp_data(struct nvm_data *nvm) in ov2740_load_otp_data() argument 653 struct device *dev = regmap_get_device(nvm->regmap); in ov2740_load_otp_data() 659 if (nvm->nvm_buffer) in ov2740_load_otp_data() 662 nvm->nvm_buffer = kzalloc(CUSTOMER_USE_OTP_SIZE, GFP_KERNEL); in ov2740_load_otp_data() 663 if (!nvm->nvm_buffer) in ov2740_load_otp_data() 707 ret = regmap_bulk_read(nvm->regmap, OV2740_REG_OTP_CUSTOMER, in ov2740_load_otp_data() 708 nvm->nvm_buffer, CUSTOMER_USE_OTP_SIZE); in ov2740_load_otp_data() 735 kfree(nvm->nvm_buffer); in ov2740_load_otp_data() 736 nvm->nvm_buffer = NULL; in ov2740_load_otp_data() [all …]
|
/openbmc/qemu/hw/arm/ |
H A D | nrf51_soc.c | 122 if (!object_property_set_uint(OBJECT(&s->nvm), "flash-size", in nrf51_soc_realize() 127 if (!sysbus_realize(SYS_BUS_DEVICE(&s->nvm), errp)) { in nrf51_soc_realize() 131 mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->nvm), 0); in nrf51_soc_realize() 133 mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->nvm), 1); in nrf51_soc_realize() 135 mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->nvm), 2); in nrf51_soc_realize() 137 mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->nvm), 3); in nrf51_soc_realize() 198 object_initialize_child(obj, "nvm", &s->nvm, TYPE_NRF51_NVM); in nrf51_soc_init()
|
H A D | msf2-soc.c | 117 memory_region_init_rom(&s->nvm, OBJECT(dev_soc), "MSF2.eNVM", s->envm_size, in m2sxxx_soc_realize() 126 &s->nvm, 0, s->envm_size); in m2sxxx_soc_realize() 128 memory_region_add_subregion(system_memory, ENVM_BASE_ADDRESS, &s->nvm); in m2sxxx_soc_realize()
|
/openbmc/linux/drivers/net/ethernet/intel/i40e/ |
H A D | i40e_nvm.c | 21 struct i40e_nvm_info *nvm = &hw->nvm; in i40e_init_nvm() local 33 nvm->sr_size = BIT(sr_size) * I40E_SR_WORDS_IN_1KB; in i40e_init_nvm() 39 nvm->timeout = I40E_MAX_NVM_TIMEOUT; in i40e_init_nvm() 40 nvm->blank_nvm_mode = false; in i40e_init_nvm() 42 nvm->blank_nvm_mode = true; in i40e_init_nvm() 65 if (hw->nvm.blank_nvm_mode) in i40e_acquire_nvm() 74 hw->nvm.hw_semaphore_timeout = I40E_MS_TO_GTIME(time_left) + gtime; in i40e_acquire_nvm() 92 hw->nvm.hw_semaphore_timeout = in i40e_acquire_nvm() 98 hw->nvm.hw_semaphore_timeout = 0; in i40e_acquire_nvm() 120 if (hw->nvm.blank_nvm_mode) in i40e_release_nvm() [all …]
|
/openbmc/linux/drivers/net/wireless/intel/iwlwifi/ |
H A D | iwl-nvm-parse.c | 1961 struct iwl_nvm_data *nvm; in iwl_get_nvm() local 2002 nvm = kzalloc(struct_size(nvm, channels, IWL_NUM_CHANNELS), GFP_KERNEL); in iwl_get_nvm() 2003 if (!nvm) { in iwl_get_nvm() 2008 iwl_set_hw_address_from_csr(trans, nvm); in iwl_get_nvm() 2011 if (!is_valid_ether_addr(nvm->hw_addr)) { in iwl_get_nvm() 2017 IWL_INFO(trans, "base HW address: %pM\n", nvm->hw_addr); in iwl_get_nvm() 2020 nvm->nvm_version = le16_to_cpu(rsp->general.nvm_version); in iwl_get_nvm() 2021 nvm->n_hw_addrs = rsp->general.n_hw_addrs; in iwl_get_nvm() 2022 if (nvm->n_hw_addrs == 0) in iwl_get_nvm() 2029 nvm->sku_cap_11ac_enable = in iwl_get_nvm() [all …]
|
/openbmc/qemu/docs/system/devices/ |
H A D | nvme.rst | 34 -drive file=nvm.img,if=none,id=nvm 35 -device nvme,serial=deadbeef,drive=nvm 66 -drive file=nvm-1.img,if=none,id=nvm-1 67 -device nvme-ns,drive=nvm-1 68 -drive file=nvm-2.img,if=none,id=nvm-2 69 -device nvme-ns,drive=nvm-2 136 -drive file=nvm-1.img,if=none,id=nvm-1 137 -device nvme-ns,drive=nvm-1,nsid=1 138 -drive file=nvm-2.img,if=none,id=nvm-2 139 -device nvme-ns,drive=nvm-2,nsid=3,shared=off,detached=on [all …]
|
/openbmc/linux/drivers/net/ethernet/intel/ice/ |
H A D | ice_nvm.c | 29 cmd = &desc.params.nvm; in ice_aq_read_nvm() 132 cmd = &desc.params.nvm; in ice_aq_update_nvm() 168 cmd = &desc.params.nvm; in ice_aq_erase_nvm() 577 ice_get_nvm_ver_info(struct ice_hw *hw, enum ice_bank_select bank, struct ice_nvm_info *nvm) in ice_get_nvm_ver_info() argument 588 nvm->major = (ver & ICE_NVM_VER_HI_MASK) >> ICE_NVM_VER_HI_SHIFT; in ice_get_nvm_ver_info() 589 nvm->minor = (ver & ICE_NVM_VER_LO_MASK) >> ICE_NVM_VER_LO_SHIFT; in ice_get_nvm_ver_info() 602 nvm->eetrack = (eetrack_hi << 16) | eetrack_lo; in ice_get_nvm_ver_info() 616 int ice_get_inactive_nvm_ver(struct ice_hw *hw, struct ice_nvm_info *nvm) in ice_get_inactive_nvm_ver() argument 618 return ice_get_nvm_ver_info(hw, ICE_INACTIVE_FLASH_BANK, nvm); in ice_get_inactive_nvm_ver() 1072 status = ice_get_nvm_ver_info(hw, ICE_ACTIVE_FLASH_BANK, &flash->nvm); in ice_init_nvm() [all …]
|
H A D | ice_devlink.c | 100 struct ice_nvm_info *nvm = &pf->hw.flash.nvm; in ice_info_nvm_ver() local 102 snprintf(ctx->buf, sizeof(ctx->buf), "%x.%02x", nvm->major, nvm->minor); in ice_info_nvm_ver() 109 struct ice_nvm_info *nvm = &ctx->pending_nvm; in ice_info_pending_nvm_ver() local 113 nvm->major, nvm->minor); in ice_info_pending_nvm_ver() 118 struct ice_nvm_info *nvm = &pf->hw.flash.nvm; in ice_info_eetrack() local 120 snprintf(ctx->buf, sizeof(ctx->buf), "0x%08x", nvm->eetrack); in ice_info_eetrack() 126 struct ice_nvm_info *nvm = &ctx->pending_nvm; in ice_info_pending_eetrack() local 129 snprintf(ctx->buf, sizeof(ctx->buf), "0x%08x", nvm->eetrack); in ice_info_pending_eetrack()
|
/openbmc/linux/drivers/net/wireless/intel/iwlwifi/mei/ |
H A D | main.c | 176 struct iwl_mei_nvm *nvm; member 860 kfree(mei->nvm); in iwl_mei_handle_nvm() 861 mei->nvm = kzalloc(sizeof(*mei_nvm), GFP_KERNEL); in iwl_mei_handle_nvm() 862 if (!mei->nvm) in iwl_mei_handle_nvm() 865 ether_addr_copy(mei->nvm->hw_addr, sap_nvm->hw_addr); in iwl_mei_handle_nvm() 866 mei->nvm->n_hw_addrs = sap_nvm->n_hw_addrs; in iwl_mei_handle_nvm() 867 mei->nvm->radio_cfg = le32_to_cpu(sap_nvm->radio_cfg); in iwl_mei_handle_nvm() 868 mei->nvm->caps = le32_to_cpu(sap_nvm->caps); in iwl_mei_handle_nvm() 869 mei->nvm->nvm_version = le32_to_cpu(sap_nvm->nvm_version); in iwl_mei_handle_nvm() 871 for (i = 0; i < ARRAY_SIZE(mei->nvm->channels); i++) in iwl_mei_handle_nvm() [all …]
|
/openbmc/linux/Documentation/networking/devlink/ |
H A D | ice.rst | 204 * - ``nvm-flash`` 216 Both the ``nvm-flash`` and ``shadow-ram`` regions can be accessed without a 226 pci/0000:01:00.0/nvm-flash: size 10485760 snapshot [] max 1 229 $ devlink region new pci/0000:01:00.0/nvm-flash snapshot 1 230 $ devlink region dump pci/0000:01:00.0/nvm-flash snapshot 1 232 $ devlink region dump pci/0000:01:00.0/nvm-flash snapshot 1 238 $ devlink region read pci/0000:01:00.0/nvm-flash snapshot 1 address 0 length 16 241 $ devlink region delete pci/0000:01:00.0/nvm-flash snapshot 1
|