ixgbe_read_flat_nvm(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ixgbe_read_flat_nvm(9) β€” the Kernel API Manual page, but make it make sense

okay so bestie, we're in the Kernel API Manual today and the star of the show is ixgbe_read_flat_nvm(9) β€” yes the whole manual name is in the header, we're fancy like that πŸŽ€


✨ NAME ✨

ixgbe_read_flat_nvm β€” read a portion of NVM by flat offset. that's it. that's the vibe. πŸ¦‹


🌸 SYNOPSIS 🌸

int ixgbe_read_flat_nvm (struct ixgbe_hw *hw , u32 offset , u32 *length
, u8 *data , bool read_shadow_ram );

she takes five whole arguments, she's high maintenance, we respect it πŸ‘‘


πŸŽ€ ARGUMENTS πŸŽ€

  • hw β€” pointer to the HW struct. the hardware herself, the main character πŸ’–
  • offset β€” the offset from the beginning of NVM. where we're starting, iykyk πŸ“
  • length β€” (in) number of bytes to read; (out) number of bytes actually read. she's doing double duty, an icon who does both 😭
  • data β€” buffer to return data in (sized to fit the specified length). size her right or she will not fit, no cap 🫢
  • read_shadow_ram β€” if true, read from shadow RAM instead of NVM. literally a little toggle between two whole worlds ✨

πŸ¦‹ DESCRIPTION πŸ¦‹

so what does she actually do?? she reads a portion of the NVM, as a flat memory space. like one big continuous blob, no drama, just bytes 🌈

and here's the part that eats: this function correctly breaks read requests across Shadow RAM sectors, prevents Shadow RAM size from being exceeded in case of Shadow RAM read requests, and ensures that no single read request exceeds the maximum 4KB read for a single admin command. she's out here doing the math so you don't have to. she ate and left no crumbs πŸ”₯

⚠️ Returns an error code on failure. And bestie, listen β€” note that the data pointer may be partially updated if some reads succeed before a failure. so don't go trusting that buffer all the way to the end if she comes back mad πŸ’€

⭐ RETURN ⭐

the exit code of the operation. that's the whole answer. periodt πŸ’…


πŸ’œ SEE ALSO πŸ’œ

first up, the kernel file she lives in:

./drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c

and now, the entire friend group β€” literally the whole group chat, nobody got left on read 🫢:

ixgbe_should_retry_aci_send_cmd_execute(9),
ixgbe_aci_send_cmd_execute(9), ixgbe_aci_send_cmd(9),
ixgbe_aci_check_event_pending(9), ixgbe_aci_get_event(9),
ixgbe_fill_dflt_direct_cmd_desc(9), ixgbe_aci_get_fw_ver(9),
ixgbe_aci_req_res(9), ixgbe_aci_release_res(9), ixgbe_acquire_res(9),
ixgbe_release_res(9), ixgbe_parse_e610_caps(9),
ixgbe_parse_valid_functions_cap(9), ixgbe_parse_vf_dev_caps(9),
ixgbe_parse_vsi_dev_caps(9), ixgbe_parse_fdir_dev_caps(9),
ixgbe_parse_dev_caps(9), ixgbe_parse_vf_func_caps(9),
ixgbe_get_num_per_func(9), ixgbe_parse_vsi_func_caps(9),
ixgbe_parse_func_caps(9), ixgbe_aci_list_caps(9),
ixgbe_discover_dev_caps(9), ixgbe_discover_func_caps(9),
ixgbe_get_caps(9), ixgbe_aci_disable_rxen(9), ixgbe_aci_get_phy_caps(9),
ixgbe_copy_phy_caps_to_cfg(9), ixgbe_aci_set_phy_cfg(9),
ixgbe_aci_set_link_restart_an(9), ixgbe_is_media_cage_present(9),
ixgbe_get_media_type_from_phy_type(9), ixgbe_update_link_info(9),
ixgbe_get_link_status(9), ixgbe_aci_get_link_info(9),
ixgbe_aci_set_event_mask(9), ixgbe_configure_lse(9),
ixgbe_start_hw_e610(9), ixgbe_aci_set_port_id_led(9),
ixgbe_get_media_type_e610(9), ixgbe_setup_link_e610(9),
ixgbe_check_link_e610(9), ixgbe_get_link_capabilities_e610(9),
ixgbe_cfg_phy_fc(9), ixgbe_setup_fc_e610(9), ixgbe_fc_autoneg_e610(9),
ixgbe_disable_rx_e610(9), ixgbe_fw_recovery_mode_e610(9),
ixgbe_fw_rollback_mode_e610(9), ixgbe_init_phy_ops_e610(9),
ixgbe_identify_phy_e610(9), ixgbe_setup_eee_e610(9),
ixgbe_identify_module_e610(9), ixgbe_setup_phy_link_e610(9),
ixgbe_set_phy_power_e610(9), ixgbe_enter_lplu_e610(9),
ixgbe_init_eeprom_params_e610(9), ixgbe_aci_get_netlist_node(9),
ixgbe_acquire_nvm(9), ixgbe_release_nvm(9), ixgbe_aci_read_nvm(9),
ixgbe_aci_erase_nvm(9), ixgbe_aci_update_nvm(9),
ixgbe_nvm_write_activate(9), ixgbe_nvm_validate_checksum(9),
ixgbe_discover_flash_size(9), ixgbe_read_sr_base_address(9),
ixgbe_read_sr_area_size(9), ixgbe_determine_active_flash_banks(9),
ixgbe_get_flash_bank_offset(9), ixgbe_read_flash_module(9),
ixgbe_read_nvm_module(9), ixgbe_read_netlist_module(9),
ixgbe_read_orom_module(9), ixgbe_get_nvm_css_hdr_len(9),
ixgbe_read_nvm_sr_copy(9), ixgbe_get_nvm_srev(9),
ixgbe_get_orom_civd_data(9), ixgbe_get_orom_srev(9),
ixgbe_get_orom_ver_info(9), ixgbe_get_inactive_orom_ver(9),
ixgbe_get_nvm_ver_info(9), ixgbe_get_inactive_nvm_ver(9),
ixgbe_get_active_nvm_ver(9), ixgbe_get_netlist_info(9),
ixgbe_get_inactive_netlist_ver(9), ixgbe_get_flash_data(9),
ixgbe_aci_nvm_update_empr(9), ixgbe_read_sr_word_aci(9),
ixgbe_read_sr_buf_aci(9), ixgbe_read_ee_aci_e610(9),
ixgbe_read_ee_aci_buffer_e610(9),
ixgbe_validate_eeprom_checksum_e610(9), ixgbe_reset_hw_e610(9),
ixgbe_get_pfa_module_tlv(9), ixgbe_read_pba_string_e610(9)

like I said. the whole group chat. every single one of them, lowkey iconic 🧚


and that's the page bestie!! 🌸 ily, go read your NVM responsibly πŸ“

🫢 sign-off szn: this lil page comes from the source/version line ./drivers/net/ethernet/intel/i..., dated October 2026. keep her safe in your bookmarks πŸ’–
πŸ“¦ where this page comes from