zynqmp_pm_invoke_fw_fn(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… zynqmp_pm_invoke_fw_fn(9) β€” a Kernel API Manual moment

okay so bestie, welcome to the glow-up of zynqmp_pm_invoke_fw_fn(9) from the Kernel API Manual. this is the function that picks up the phone and calls the system-level platform management layer caller function, and which caller it's ringing totally depends on your configuration. no cap. πŸ“žβœ¨


🌸 NAME

zynqmp_pm_invoke_fw_fn β€” literally the "invoke the system-level platform management layer caller function depending on the configuration" girlie. she does exactly what it says on the tin, and she does it iconically. πŸ‘‘


πŸŽ€ SYNOPSIS

int zynqmp_pm_invoke_fw_fn (u32 pm_api_id , u32 *ret_payload , u32
num_args , ... );

✨ ARGUMENTS

  • pm_api_id β€” the requested PM-API call. this is the "who are we calling" of it all. πŸ“²
  • ret_payload β€” the returned value array. think of it as the little tray where the answer gets handed back to you. 🫢
  • num_args β€” the number of arguments to the requested PM-API call. you gotta tell her how many lil friends you're bringing. 🧚
  • ... β€” variable arguments. the mystery guest list. πŸ’œ

πŸ”₯ DESCRIPTION

so basically she invokes the platform management function for an SMC or HVC call, depending on configuration. lowkey the whole vibe is "depends on your setup, babe." πŸ’…

she follows the SMC Calling Convention (SMCCC) for SMC64, and the Pm Function Identifier is:

PM_SIP_SVC + PASS_THROUGH_FW_CMD_ID =
((SMC_TYPE_FAST << FUNCID_TYPE_SHIFT) ((SMC_64) << FUNCID_CC_SHIFT)
((SIP_START) << FUNCID_OEN_SHIFT) (PASS_THROUGH_FW_CMD_ID))

quick glossary moment because iykyk but also let's all be on the same page:

  • PM_SIP_SVC β€” the registered ZynqMP SIP Service Call. ⭐
  • PASS_THROUGH_FW_CMD_ID β€” the fixed SiP SVC call ID for FW specific calls. πŸ¦‹
not me being obsessed with a function that literally delegates to firmware and comes back with a status. main character energy fr fr. 😭

πŸ’€ RETURN

returns status, either success or error+reason. so like, either she ate or she has notes. πŸ“βœ¨


πŸ¦‹ SEE ALSO

the whole friend group, and yes we're tagging everyone because nobody gets left out. πŸ«ΆπŸ’–

Kernel file ./drivers/firmware/xilinx/zynqmp.c struct zynqmp_devinfo(9), struct pm_api_feature_data(9), zynqmp_pm_ret_code(9), do_fw_call_smc(9), do_fw_call_hvc(9), zynqmp_pm_feature(9), zynqmp_pm_is_function_supported(9), zynqmp_pm_invoke_fn(9), zynqmp_pm_get_api_version(9), zynqmp_pm_get_chipid(9), zynqmp_pm_get_family_info(9), zynqmp_pm_get_sip_svc_version(9), zynqmp_pm_get_trustzone_version(9), get_set_conduit_method(9), zynqmp_pm_query_data(9), zynqmp_pm_clock_enable(9), zynqmp_pm_clock_disable(9), zynqmp_pm_clock_getstate(9), zynqmp_pm_clock_setdivider(9), zynqmp_pm_clock_getdivider(9), zynqmp_pm_clock_setparent(9), zynqmp_pm_clock_getparent(9), zynqmp_pm_set_pll_frac_mode(9), zynqmp_pm_get_pll_frac_mode(9), zynqmp_pm_set_pll_frac_data(9), zynqmp_pm_get_pll_frac_data(9), zynqmp_pm_set_sd_tapdelay(9), zynqmp_pm_sd_dll_reset(9), zynqmp_pm_ospi_mux_select(9), zynqmp_pm_write_ggs(9), zynqmp_pm_read_ggs(9), zynqmp_pm_write_pggs(9), zynqmp_pm_read_pggs(9), zynqmp_pm_set_boot_health_status(9), zynqmp_pm_reset_assert(9), zynqmp_pm_reset_get_status(9), zynqmp_pm_fpga_load(9), zynqmp_pm_fpga_get_status(9), zynqmp_pm_fpga_get_config_status(9), zynqmp_pm_pinctrl_request(9), zynqmp_pm_pinctrl_release(9), zynqmp_pm_pinctrl_set_function(9), zynqmp_pm_pinctrl_get_config(9), zynqmp_pm_pinctrl_set_config(9), zynqmp_pm_bootmode_read(9), zynqmp_pm_bootmode_write(9), zynqmp_pm_init_finalize(9), zynqmp_pm_set_suspend_mode(9), zynqmp_pm_request_node(9), zynqmp_pm_release_node(9), zynqmp_pm_get_rpu_mode(9), zynqmp_pm_set_rpu_mode(9), zynqmp_pm_set_tcm_config(9), zynqmp_pm_get_node_status(9), zynqmp_pm_get_rpu_node_status(9), zynqmp_pm_force_pwrdwn(9), zynqmp_pm_request_wake(9), zynqmp_pm_start_rpu(9), zynqmp_pm_stop_rpu(9), zynqmp_pm_set_requirement(9), zynqmp_pm_load_pdi(9), zynqmp_pm_efuse_access(9), zynqmp_pm_register_notifier(9), zynqmp_pm_system_shutdown(9), zynqmp_pm_set_feature_config(9), zynqmp_pm_get_feature_config(9), zynqmp_pm_sec_read_reg(9), zynqmp_pm_sec_mask_write_reg(9), zynqmp_pm_set_sd_config(9), zynqmp_pm_set_gem_config(9), struct zynqmp_pm_shutdown_scope(9), zynqmp_pm_is_shutdown_scope_valid(9), zynqmp_clear_pm_state(9)


and that's the tea, bestie πŸ“ β€” this little icon comes from ./drivers/firmware/xilinx, dated October 2026, and yes she's still serving zynqmp_pm_invoke_fw_fn(9) realness. periodt. πŸ’…πŸŒˆπŸŽ€

πŸ“¦ where this page comes from