ixgbe_read_flat_nvm(9)
π 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms