zynqmp_pm_get_chipid(9)
π zynqmp_pm_get_chipid(9) β like, the whole glow-up
okay so bestie, welcome to the Kernel API Manual β¨ This one's about zynqmp_pm_get_chipid(9), and no cap, it's short but it's iconic. Let's get into it π
πΈ NAME πΈ
zynqmp_pm_get_chipid β Get silicon ID registers π₯
Like, it literally goes and grabs the silicon ID registers for you. That's the whole vibe. iykyk π
π¦ SYNOPSIS π¦
int zynqmp_pm_get_chipid (u32 *idcode , u32 *version );
so you call it, you hand it two pointers, and it returns an int (which is the status, we'll get to that π). The spacing in there is exactly as the manpage says it β do not come for me π«Ά
β¨ ARGUMENTS β¨
Two args, both of them pointers to u32, both of them literally the whole point of the function:
idcodeβ the IDCODE register π Like, this is where the IDCODE lands.versionβ the version register π Yeah. The version goes here.
that's it, that's the arguments, and yes they're both required β you're passing pointers in, so no sneaky NULL-ish games being described here, mkay? π
π RETURN π
So the function returns the status of the operation, AND it drops the idcode and version registers into idcode and version respectively. Like a little two-for-one deal π₯ Status out the return, data out the pointers. Obsessed, honestly.
π SEE ALSO π
okay this is the part where the manpage just absolutely spills β it's giving main character energy, it's giving "I know everyone at this party" π Every one of these, no skipping, no summarising, periodt:
Kernel file ./drivers/firmware/xilinx/zynqmp.c and friends:
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_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 the directory it all lives in: ./drivers/firmware/xilinx π§
ngl bestie, that SEE ALSO list is longer than my attention span, but we got through it together π«Άπ
β okay that's the page!! quick cute sign-off: this lil beauty comes from ./drivers/firmware/xilinx and it's dated October 2026 πΈ Thanks for reading, mwah πβ¨π
π¦ 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