qed_mcp_get_nvm_image(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… qed_mcp_get_nvm_image(9) πŸ’…

okay bestie, welcome to the Kernel API Manual β€” this is the page for qed_mcp_get_nvm_image, and it's genuinely the "gimme the whole firmware vibe" one. Let's go 🫢


🌸 NAME 🌸

qed_mcp_get_nvm_image β€” allows reading a whole nvram image.

Like, the entire image. Not a slice, not a peek β€” the whole thing. slay.


✨ SYNOPSIS ✨

int qed_mcp_get_nvm_image (struct qed_hwfn *p_hwfn , enum qed_nvm_images
image_id , u8 *p_buffer , u32 buffer_len );

πŸŽ€ ARGUMENTS πŸŽ€

  • p_hwfn β€” HW device data. this is the hardware's whole personality, basically.
  • image_id β€” the image requested for reading. which nvram image are we grabbing bestie πŸ‘€
  • p_buffer β€” allocated buffer into which to fill data. you bring the bucket, it brings the water πŸ’§
  • buffer_len β€” length of the allocated buffer. no cap, the length actually matters here.

🌈 RETURN 🌈

  • 0 if p_buffer now contains the nvram image. that's the good ending πŸ’–

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/net/ethernet/qlogic/qed/qed_mcp.h

and the entire friend group, literally all of them, in order:

qed_mcp_get_link_params(9), qed_mcp_get_link_state(9), qed_mcp_get_link_capabilities(9), qed_mcp_set_link(9), qed_mcp_get_mfw_ver(9), qed_mcp_get_mbi_ver(9), qed_mcp_get_media_type(9), qed_mcp_get_transceiver_data(9), qed_mcp_trans_speed_mask(9), qed_mcp_get_board_config(9), qed_mcp_cmd(9), qed_mcp_cmd_nosleep(9), qed_mcp_drain(9), qed_mcp_get_flash_size(9), qed_mcp_send_drv_version(9), qed_get_process_kill_counter(9), qed_start_recovery_process(9), qed_recovery_prolog(9), qed_mcp_ov_update_current_config(9), qed_mcp_ov_update_driver_state(9), qed_mcp_ov_update_mtu(9), qed_mcp_ov_update_mac(9), qed_mcp_ov_update_wol(9), qed_mcp_set_led(9), qed_mcp_nvm_read(9), qed_mcp_nvm_write(9), qed_mcp_nvm_resp(9), qed_mcp_get_nvm_image_att(9), qed_mcp_bist_register_test(9), qed_mcp_bist_clock_test(9), qed_mcp_bist_nvm_get_num_images(9), qed_mcp_bist_nvm_get_image_att(9), qed_mfw_process_tlv_req(9), qed_mcp_send_raw_debug_data(9), qed_mcp_is_ext_speed_supported(9), qed_mcp_cmd_init(9), qed_mcp_cmd_port_init(9), qed_mcp_free(9), qed_mcp_handle_events(9), qed_mcp_load_req(9), qed_mcp_load_done(9), qed_mcp_unload_req(9), qed_mcp_unload_done(9), qed_mcp_read_mb(9), qed_mcp_ack_vf_flr(9), qed_mcp_fill_shmem_func_info(9), qed_mcp_reset(9), qed_mcp_nvm_rd_cmd(9), qed_mcp_phy_sfp_read(9), qed_mcp_is_init(9), qed_mcp_config_vf_msix(9), qed_mcp_halt(9), qed_mcp_resume(9), qed_mcp_set_resc_max_val(9), qed_mcp_get_resc_info(9), qed_mcp_ov_update_eswitch(9), qed_mcp_initiate_pf_flr(9), qed_mcp_resc_lock(9), qed_mcp_resc_unlock(9), qed_mcp_resc_lock_default_init(9), qed_mcp_is_smart_an_supported(9), qed_mcp_get_capabilities(9), qed_mcp_set_capabilities(9), qed_mcp_read_ufp_config(9), qed_mcp_nvm_info_populate(9), qed_mcp_nvm_info_free(9), qed_mcp_get_engine_config(9), qed_mcp_get_ppfid_bitmap(9), qed_mcp_nvm_get_cfg(9), qed_mcp_nvm_set_cfg(9), qed_mcp_is_esl_supported(9), qed_mcp_get_esl_status(9)


πŸ’€ friendly reminder: p_buffer has to be an allocated buffer and buffer_len is its length β€” you don't get to just vibe-check your way past that, iykyk.

okay that's the whole page, no crumbs left πŸ“ this came from the source/version <pink>./drivers/net/ethernet/qlogic/qed` and it's dated October 2026 β€” mwah, bye bestie πŸ’œπŸ§š

πŸ“¦ where this page comes from