STRUCT AMDXDNA_DRM_CREATE_HWCTX(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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, and syncobj_handle are 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