STRUCT AMDXDNA_DRM_CREATE_HWCTX(9)
π struct amdxdna_drm_create_hwctx β Create hardware context π
okay bestie, welcome to the Kernel API Manual β¨ this one's all about struct amdxdna_drm_create_hwctx, aka the little sign-up sheet you fill out to spawn a hardware context. it's giving "first day of school registration form" but for your accelerator π
β¨ NAME β¨
struct amdxdna_drm_create_hwctx β literally just Create hardware context. that's the whole vibe. no cap. π¦
πΈ SYNOPSIS πΈ
struct amdxdna_drm_create_hwctx {
__u64 ext;
__u64 ext_flags;
__u64 qos_p;
__u32 umq_bo;
__u32 log_buf_bo;
__u32 max_opc;
__u32 num_tiles;
__u32 mem_size;
__u32 umq_doorbell;
__u32 handle;
__u32 syncobj_handle;
};
look at her. icon. π
π Members π
okay so let's meet the cast, one field at a time π
extβ MBZ. that's it, that's the whole field. it must be zero, bestie, don't get creative πext_flagsβ also MBZ. yes, two of them. zero and zero, periodt. βqos_pβ the address of the QoS info. like, where the quality-of-service details live πumq_boβ the BO handle for the user mode queue (UMQ). yes, "UMQ" = user mode queue, iykyk π¬log_buf_boβ the BO handle for the log buffer. your receipts go here π§Ύmax_opcβ maximum operations per cycle. the speed limit, basically ποΈnum_tilesβ the number of AIE tiles. count 'em π’mem_sizeβ the size of AIE tile memory. how much room the tiles get πΎumq_doorbellβ returned offset of the doorbell associated with the UMQ. note the word returned β the kernel hands this back to you πhandleβ returned hardware context handle. your brand new context's name tag π·οΈsyncobj_handleβ returned syncobj handle for command completion. this is how you find out your commands finished β³
quick heads-up queen:umq_doorbell,handle, andsyncobj_handleare all returned values. you're not filling those in, the kernel is. don't be out here writing to them like you're the main character π
π SEE ALSO π
the whole friend group, fr fr β starting with the kernel file ./include/uapi/drm/amdxdna_accel.h π«Ά
- struct
amdxdna_drm_destroy_hwctx(9) β the breakup arc π - struct
amdxdna_cu_config(9) - struct
amdxdna_hwctx_param_config_cu(9) - struct
amdxdna_drm_config_hwctx(9) - struct
amdxdna_drm_va_entry(9) - struct
amdxdna_drm_va_tbl(9) - struct
amdxdna_drm_create_bo(9) - struct
amdxdna_drm_get_bo_info(9) - struct
amdxdna_drm_sync_bo(9) - struct
amdxdna_drm_exec_cmd(9) - struct
amdxdna_drm_wait_cmd(9) - struct
amdxdna_drm_query_aie_status(9) - struct
amdxdna_drm_query_aie_version(9) - struct
amdxdna_drm_query_aie_tile_metadata(9) - struct
amdxdna_drm_query_aie_metadata(9) - struct
amdxdna_drm_query_clock(9) - struct
amdxdna_drm_query_clock_metadata(9) - struct
amdxdna_drm_query_sensor(9) - struct
amdxdna_drm_query_hwctx(9) - struct
amdxdna_drm_get_power_mode(9) - struct
amdxdna_drm_query_firmware_version(9) - struct
amdxdna_drm_get_resource_info(9) - struct
amdxdna_drm_attribute_state(9) - struct
amdxdna_drm_query_telemetry_header(9) - struct
amdxdna_drm_get_info(9) - struct
amdxdna_drm_hwctx_entry(9) - struct
amdxdna_async_error(9) - struct
amdxdna_drm_bo_usage(9) - struct
amdxdna_drm_get_array(9) - struct
amdxdna_drm_set_state(9) - struct
amdxdna_drm_set_power_mode(9)
and that's the page, bestie πΈ this masterpiece lives in ./include/uapi/drm, dated October 2026, and its lil signature at the bottom is struct amdxdna_drm_create_hwctx(9). go create that context, you've got this πβ¨π
π¦ 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