zynqmp_pm_set_requirement(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… zynqmp_pm_set_requirement(9) β€” or, the Kernel API Manual page your bestie needed

okay so this is a page straight out of the Kernel API Manual, bestie, and it's all about zynqmp_pm_set_requirement. no cap, the whole thing is one function and it's giving "small but important". let's get into it πŸŽ€


✨ NAME ✨

zynqmp_pm_set_requirement β€” the PM call that sets the requirement for PM slaves 🧚


🌸 SYNOPSIS 🌸

int zynqmp_pm_set_requirement (const u32 node , const u32 capabilities ,
const u32 qos , const enum zynqmp_pm_request_ack ack );

that's it, that's the whole signature, and yes she returns an int, we love a return type that tells us how it went πŸ’–


πŸ¦‹ ARGUMENTS πŸ¦‹

  • node β€” the node ID of the slave. it's a const u32, so like, hands off, she's a value not a vibe.
  • capabilities β€” the requested capabilities of the slave. this is literally the whole point of the function, so pls get it right πŸ™ˆ
  • qos β€” quality of service. and before you ask: not supported. i know, i know. 😭 keep it in the args anyway.
  • ack β€” the flag that says whether an acknowledge is requested. it's an enum zynqmp_pm_request_ack, so use the enum, don't be that person who passes a raw number πŸ’€

πŸ”₯ DESCRIPTION πŸ”₯

so here's the tea β˜• β€” this API function is meant for slaves that a PU already has requested, and you're using it to change their capabilities. that's the whole situation. main character behavior only ✨

lowkey important: the "already has requested" part is not optional flavor text, bestie. this is for the change-capabilities-after-the-fact case. don't come in here with a fresh slave and expect a whole new world πŸ’…

⭐ RETURN ⭐

returns status β€” either success, or error plus reason. so when it goes wrong, it does not just ghost you, it tells you why 🫢


🌈 SEE ALSO 🌈

okay this is the part where she lists everyone she knows, and honestly? iconic. the main file is ./drivers/firmware/xilinx/zynqmp.c, plus these lovely structs and functions:

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_fw_fn(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)

then the clock girlies: 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)

the ggs/pggs squad 🐣: 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)

boot mode & node crew: 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_load_pdi(9), zynqmp_pm_efuse_access(9), zynqmp_pm_register_notifier(9), zynqmp_pm_system_shutdown(9)

and the rest of the extended fam, fr fr: 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 whole page bestie πŸ’œ no skipped sections, no missing flags, we keep every detail because that's the rule and honestly? that's just good taste πŸ’…

signing off from ./drivers/firmware/xilinx 🌸 β€” October 2026, version energy only, mwah 🫢✨

πŸ“¦ where this page comes from