qcom_scm_call(9)
π qcom_scm_call(9) β Kernel API Manual π¦
okay bestie, so this is qcom_scm_call from the Kernel API Manual β the one and only π
πΈ NAME πΈ
qcom_scm_call β literally just "Invoke a syscall in the secure world" β¨ like, you're calling into the secure world, no big deal, very main character energy π
π SYNOPSIS π
int qcom_scm_call (struct device *dev , const struct qcom_scm_desc *desc , struct qcom_scm_res *res );
that's the whole vibe, copy it exactly bestie, don't retype it from memory π
π«Ά ARGUMENTS π«Ά
devβ device π» that's your device handle, that's it, that's the whole thingdescβ Descriptor structure containing arguments and return values π like it literally holds the args you're passing in and the stuff coming back outresβ Structure containing results from SMC/HVC call π this one's where the SMC/HVC call drops off its results
β DESCRIPTION β
Sends a command to the SCM and waits for the command to finish processing. πβ¨ like, you send it, and then you wait, because it's not a "fire and forget" situation, it's a "fire and then stand there watching" situation π
β οΈ ok this part is serious, no cap: this should only be called in pre-emptible context. ONLY. in pre-emptible context. not negotiable, not a suggestion, not a "well maybe just this once" β pre-emptible context or nothing π₯
π SEE ALSO π
Kernel file ./drivers/firmware/qcom/qcom_scm.c β go read the source, iykyk π
and the whole friend group of related functions, all of them, every single one (not me listing all of these, but we keep the facts fr fr):
qcom_scm_qseecom_resp(9)qcom_scm_call_atomic(9)qcom_scm_set_warm_boot_addr(9)qcom_scm_set_cold_boot_addr(9)qcom_scm_cpu_power_down(9)qcom_scm_is_pas_available(9)qcom_scm_restore_sec_cfg_available(9)qcom_scm_assign_mem(9)qcom_scm_ocmem_lock_available(9)qcom_scm_ocmem_lock(9)qcom_scm_ocmem_unlock(9)qcom_scm_ice_available(9)qcom_scm_ice_invalidate_key(9)qcom_scm_ice_set_key(9)qcom_scm_derive_sw_secret(9)qcom_scm_generate_ice_key(9)qcom_scm_prepare_ice_key(9)qcom_scm_import_ice_key(9)qcom_scm_hdcp_available(9)qcom_scm_hdcp_req(9)qcom_scm_qseecom_call(9)qcom_scm_qseecom_get_version(9)qcom_scm_qseecom_app_get_id(9)qcom_scm_qseecom_app_send(9)qcom_scm_qtee_invoke_smc(9)qcom_scm_qtee_callback_response(9)qcom_scm_is_available(9)
and that's the page bestie, go call your secure world syscalls responsibly ππ
source path ./drivers/firmware/qcom, dated October 2026 β mwah, love that for us ππ«Άπ§
π¦ 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