zynqmp_pm_se...sk_write_reg(9)
π zynqmp_pm_sec_mask_write_reg β from the Kernel API Manual, bestie β¨
Okay so picture this: you're deep in the kernel, you've got a device node staring at you, and you need the PM firmware to write to it securely, with a mask and everything. That's literally this function. It's giving "trusted middleman" energy π
πΈ NAME πΈ
zynqmp_pm_sec_mask_write_reg β the PM call that securely writes to a given offset of the node π«Ά
β¨ SYNOPSIS β¨
int zynqmp_pm_sec_mask_write_reg (const u32 node_id , const u32 offset ,
u32 mask , u32 value );
Not me obsessing over a four-argument signature π she's compact and she knows it.
π ARGUMENTS π
node_idβ the Node Id of the device. Like, which device are we talking to, bestie? Gotta name names πoffsetβ the offset to be used, and heads up, it's 20-bit. Twenty bits. Precious little offset π¦maskβ the mask to be used. So we're not just blindly writing, we're being selective β¨valueβ the value to be written. The actual payload, the main character of this whole operation π
π₯ RETURN π₯
Returns 0 on success, or an error value on failure. That's it. Zero means slay, anything else means the vibe check failed π
π SEE ALSO π
Kernel file ./drivers/firmware/xilinx/zynqmp.c β and honestly the whole friend group is here, get comfy, this is a long guest list:
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)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_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)
Bestie note: yes, zynqmp_pm_sec_read_reg(9) is right there in the list too β the read half of this whole secure-register situation, iykyk πβ¨
Okay that's the whole page, no cap. Sourced from ./drivers/firmware/xilinx, October 2026 edition, and the page itself answers to the name zynqmp_pm_se...sk_write_reg(9) (the terminal truncated her name, she's dramatic like that π). Mwah, go forth and write securely πππ¦
π¦ 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