zynqmp_pm_se...ature_config(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, so this is a page from the Kernel API Manual, and the header up top is literally zynqmp_pm_se...ature_config(9) (yes the kernel truncated it, that's just how it renders, don't come for me 😭). The function it's actually about is zynqmp_pm_set_feature_config. Let's get into it πŸ’–

✨ NAME ✨

zynqmp_pm_set_feature_config β€” a PM call that requests an IOCTL for feature config πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

int zynqmp_pm_set_feature_config (enum pm_feature_config_id id , u32
       value );

Like, that's it. That's the whole vibe check. Two arguments, one int back. Slay πŸ’…


🌸 ARGUMENTS 🌸

  • id β€” the config ID of the feature you're trying to configure, it's an enum pm_feature_config_id so it's the which feature part of the equation 🧚
  • value β€” the config value of that feature, a u32, so it's the what do you want it set to part πŸ”₯

Two little params, doing the absolute most. Main character energy fr fr.


⭐ RETURN ⭐

Returns 0 on success, or an error value on failure. That's the whole story β€” zero means we ate, anything else means something went sideways 😭

ngl bestie, if you get a non-zero back, please actually check it? Don't just ignore the return value, that's giving chaos 🌈

πŸ‘‘ SEE ALSO πŸ‘‘

okay this list is long, so buckle up, but every single one of these is part of the family and they all deserve their shoutout πŸ’œ

From the 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_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 crew 🌸:

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 besties (yes that's their real names, iconic) 🫢:

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)

the FPGA + pinctrl girlies πŸŽ€:

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 + suspend + nodes πŸ’«:

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)

the RPU saga 😭:

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)

and the rest of the squad πŸ”₯:

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_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)


lowkey the move here is: if you're messing with feature config, you're probably also poking at zynqmp_pm_get_feature_config(9) β€” they're literally siblings, iykyk πŸ‘€

and that's the whole page, bestie, no cap πŸ§šβ€β™€οΈ this gem came from ./drivers/firmware/xilinx, dated October 2026, page name zynqmp_pm_se...ature_config(9). go forth and configure your features responsibly πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from