XenevaOS
Loading...
Searching...
No Matches
amdxdna_accel.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * Copyright (C) 2022-2024, Advanced Micro Devices, Inc.
4 */
5
6#ifndef _UAPI_AMDXDNA_ACCEL_H_
7#define _UAPI_AMDXDNA_ACCEL_H_
8
9#include <linux/stddef.h>
10#include "drm.h"
11
12#if defined(__cplusplus)
13extern "C" {
14#endif
15
16#define AMDXDNA_INVALID_CMD_HANDLE (~0UL)
17#define AMDXDNA_INVALID_ADDR (~0UL)
18#define AMDXDNA_INVALID_CTX_HANDLE 0
19#define AMDXDNA_INVALID_BO_HANDLE 0
20#define AMDXDNA_INVALID_FENCE_HANDLE 0
21#define AMDXDNA_INVALID_DOORBELL_OFFSET (~0U)
22
23/*
24 * Define hardware context priority
25 */
26#define AMDXDNA_QOS_REALTIME_PRIORITY 0x100
27#define AMDXDNA_QOS_HIGH_PRIORITY 0x180
28#define AMDXDNA_QOS_NORMAL_PRIORITY 0x200
29#define AMDXDNA_QOS_LOW_PRIORITY 0x280
30
37
51
71
99
109
121
133
139
160
163 AMDXDNA_BO_SHMEM = 1, /* Be compatible with legacy application code. */
168};
169
179
194
210
230
240#define SYNC_DIRECT_TO_DEVICE 0U
241#define SYNC_DIRECT_FROM_DEVICE 1U
245};
246
252
277
292
304
311 __u32 major; /* out */
312 __u32 minor; /* out */
313};
314
332
352
364
374
379
405
432
434 POWER_MODE_DEFAULT, /* Fallback to calculated DPM */
435 POWER_MODE_LOW, /* Set frequency to lowest DPM */
436 POWER_MODE_MEDIUM, /* Set frequency to medium DPM */
437 POWER_MODE_HIGH, /* Set frequency to highest DPM */
438 POWER_MODE_TURBO, /* Maximum power */
439};
440
450
459 __u32 major; /* out */
460 __u32 minor; /* out */
461 __u32 patch; /* out */
462 __u32 build; /* out */
463};
464
479
495
505
521
529 __u32 param; /* in */
530 __u32 buffer_size; /* in/out */
531 __u64 buffer; /* in/out */
532};
533
534#define AMDXDNA_HWCTX_STATE_IDLE 0
535#define AMDXDNA_HWCTX_STATE_ACTIVE 1
536
600
612
637
638/*
639 * Supported params in struct amdxdna_drm_get_array
640 */
641#define DRM_AMDXDNA_HW_CONTEXT_ALL 0
642#define DRM_AMDXDNA_HW_LAST_ASYNC_ERR 2
643#define DRM_AMDXDNA_BO_USAGE 6
644
687
695
703 __u32 param; /* in */
705 __u64 buffer; /* in */
706};
707
717
718#define DRM_IOCTL_AMDXDNA_CREATE_HWCTX \
719 DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDXDNA_CREATE_HWCTX, \
720 struct amdxdna_drm_create_hwctx)
721
722#define DRM_IOCTL_AMDXDNA_DESTROY_HWCTX \
723 DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDXDNA_DESTROY_HWCTX, \
724 struct amdxdna_drm_destroy_hwctx)
725
726#define DRM_IOCTL_AMDXDNA_CONFIG_HWCTX \
727 DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDXDNA_CONFIG_HWCTX, \
728 struct amdxdna_drm_config_hwctx)
729
730#define DRM_IOCTL_AMDXDNA_CREATE_BO \
731 DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDXDNA_CREATE_BO, \
732 struct amdxdna_drm_create_bo)
733
734#define DRM_IOCTL_AMDXDNA_GET_BO_INFO \
735 DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDXDNA_GET_BO_INFO, \
736 struct amdxdna_drm_get_bo_info)
737
738#define DRM_IOCTL_AMDXDNA_SYNC_BO \
739 DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDXDNA_SYNC_BO, \
740 struct amdxdna_drm_sync_bo)
741
742#define DRM_IOCTL_AMDXDNA_EXEC_CMD \
743 DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDXDNA_EXEC_CMD, \
744 struct amdxdna_drm_exec_cmd)
745
746#define DRM_IOCTL_AMDXDNA_GET_INFO \
747 DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDXDNA_GET_INFO, \
748 struct amdxdna_drm_get_info)
749
750#define DRM_IOCTL_AMDXDNA_SET_STATE \
751 DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDXDNA_SET_STATE, \
752 struct amdxdna_drm_set_state)
753
754#define DRM_IOCTL_AMDXDNA_GET_ARRAY \
755 DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDXDNA_GET_ARRAY, \
756 struct amdxdna_drm_get_array)
757
758#define DRM_IOCTL_AMDXDNA_WAIT_CMD \
759 DRM_IOW(DRM_COMMAND_BASE + DRM_AMDXDNA_WAIT_CMD, \
760 struct amdxdna_drm_wait_cmd)
761
762#if defined(__cplusplus)
763} /* extern c end */
764#endif
765
766#endif /* _UAPI_AMDXDNA_ACCEL_H_ */
#define __counted_by(m)
Definition stddef.h:64
amdxdna_drm_ioctl_id
Definition amdxdna_accel.h:38
@ DRM_AMDXDNA_WAIT_CMD
Definition amdxdna_accel.h:48
@ DRM_AMDXDNA_EXEC_CMD
Definition amdxdna_accel.h:45
@ DRM_AMDXDNA_GET_BO_INFO
Definition amdxdna_accel.h:43
@ DRM_AMDXDNA_CONFIG_HWCTX
Definition amdxdna_accel.h:41
@ DRM_AMDXDNA_CREATE_HWCTX
Definition amdxdna_accel.h:39
@ DRM_AMDXDNA_SYNC_BO
Definition amdxdna_accel.h:44
@ DRM_AMDXDNA_CREATE_BO
Definition amdxdna_accel.h:42
@ DRM_AMDXDNA_GET_INFO
Definition amdxdna_accel.h:46
@ DRM_AMDXDNA_SET_STATE
Definition amdxdna_accel.h:47
@ DRM_AMDXDNA_DESTROY_HWCTX
Definition amdxdna_accel.h:40
@ DRM_AMDXDNA_GET_ARRAY
Definition amdxdna_accel.h:49
amdxdna_bo_type
Definition amdxdna_accel.h:161
@ AMDXDNA_BO_DEV_HEAP
Definition amdxdna_accel.h:165
@ AMDXDNA_BO_SHARE
Definition amdxdna_accel.h:164
@ AMDXDNA_BO_CMD
Definition amdxdna_accel.h:167
@ AMDXDNA_BO_DEV
Definition amdxdna_accel.h:166
@ AMDXDNA_BO_SHMEM
Definition amdxdna_accel.h:163
@ AMDXDNA_BO_INVALID
Definition amdxdna_accel.h:162
amdxdna_drm_get_param
Definition amdxdna_accel.h:465
@ DRM_AMDXDNA_GET_POWER_MODE
Definition amdxdna_accel.h:473
@ DRM_AMDXDNA_QUERY_AIE_METADATA
Definition amdxdna_accel.h:467
@ DRM_AMDXDNA_QUERY_AIE_VERSION
Definition amdxdna_accel.h:468
@ DRM_AMDXDNA_QUERY_HW_CONTEXTS
Definition amdxdna_accel.h:471
@ DRM_AMDXDNA_GET_FRAME_BOUNDARY_PREEMPT_STATE
Definition amdxdna_accel.h:477
@ DRM_AMDXDNA_QUERY_AIE_STATUS
Definition amdxdna_accel.h:466
@ DRM_AMDXDNA_QUERY_RESOURCE_INFO
Definition amdxdna_accel.h:476
@ DRM_AMDXDNA_QUERY_FIRMWARE_VERSION
Definition amdxdna_accel.h:472
@ DRM_AMDXDNA_QUERY_TELEMETRY
Definition amdxdna_accel.h:474
@ DRM_AMDXDNA_QUERY_CLOCK_METADATA
Definition amdxdna_accel.h:469
@ DRM_AMDXDNA_QUERY_SENSORS
Definition amdxdna_accel.h:470
@ DRM_AMDXDNA_GET_FORCE_PREEMPT_STATE
Definition amdxdna_accel.h:475
amdxdna_cmd_type
Definition amdxdna_accel.h:247
@ AMDXDNA_CMD_SUBMIT_EXEC_BUF
Definition amdxdna_accel.h:248
@ AMDXDNA_CMD_SUBMIT_SIGNAL
Definition amdxdna_accel.h:250
@ AMDXDNA_CMD_SUBMIT_DEPENDENCY
Definition amdxdna_accel.h:249
amdxdna_drm_config_hwctx_param
Definition amdxdna_accel.h:134
@ DRM_AMDXDNA_HWCTX_CONFIG_CU
Definition amdxdna_accel.h:135
@ DRM_AMDXDNA_HWCTX_REMOVE_DBG_BUF
Definition amdxdna_accel.h:137
@ DRM_AMDXDNA_HWCTX_ASSIGN_DBG_BUF
Definition amdxdna_accel.h:136
amdxdna_device_type
Definition amdxdna_accel.h:31
@ AMDXDNA_DEV_TYPE_UMQ
Definition amdxdna_accel.h:34
@ AMDXDNA_DEV_TYPE_PF
Definition amdxdna_accel.h:35
@ AMDXDNA_DEV_TYPE_UNKNOWN
Definition amdxdna_accel.h:32
@ AMDXDNA_DEV_TYPE_KMQ
Definition amdxdna_accel.h:33
amdxdna_sensor_type
Definition amdxdna_accel.h:375
@ AMDXDNA_SENSOR_TYPE_COLUMN_UTILIZATION
Definition amdxdna_accel.h:377
@ AMDXDNA_SENSOR_TYPE_POWER
Definition amdxdna_accel.h:376
amdxdna_drm_set_param
Definition amdxdna_accel.h:688
@ DRM_AMDXDNA_SET_FORCE_PREEMPT
Definition amdxdna_accel.h:692
@ DRM_AMDXDNA_SET_POWER_MODE
Definition amdxdna_accel.h:689
@ DRM_AMDXDNA_SET_FRAME_BOUNDARY_PREEMPT
Definition amdxdna_accel.h:693
@ DRM_AMDXDNA_WRITE_AIE_REG
Definition amdxdna_accel.h:691
@ DRM_AMDXDNA_WRITE_AIE_MEM
Definition amdxdna_accel.h:690
amdxdna_power_mode_type
Definition amdxdna_accel.h:433
@ POWER_MODE_HIGH
Definition amdxdna_accel.h:437
@ POWER_MODE_LOW
Definition amdxdna_accel.h:435
@ POWER_MODE_MEDIUM
Definition amdxdna_accel.h:436
@ POWER_MODE_DEFAULT
Definition amdxdna_accel.h:434
@ POWER_MODE_TURBO
Definition amdxdna_accel.h:438
int8_t __s8
Definition drm.h:37
int32_t __s32
Definition drm.h:41
uint32_t __u32
Definition drm.h:42
int64_t __s64
Definition drm.h:43
uint8_t __u8
Definition drm.h:38
uint16_t __u16
Definition drm.h:40
uint64_t __u64
Definition drm.h:44
Definition amdxdna_accel.h:604
__u64 ex_err_code
Definition amdxdna_accel.h:610
__u64 ts_us
Definition amdxdna_accel.h:608
__u64 err_code
Definition amdxdna_accel.h:606
Definition amdxdna_accel.h:116
__u8 cu_func
Definition amdxdna_accel.h:118
__u8 pad[3]
Definition amdxdna_accel.h:119
__u32 cu_bo
Definition amdxdna_accel.h:117
Definition amdxdna_accel.h:499
__u8 pad[7]
Definition amdxdna_accel.h:503
__u8 state
Definition amdxdna_accel.h:501
Definition amdxdna_accel.h:627
__u64 heap_usage
Definition amdxdna_accel.h:635
__u64 total_usage
Definition amdxdna_accel.h:631
__u64 internal_usage
Definition amdxdna_accel.h:633
__s64 pid
Definition amdxdna_accel.h:629
Definition amdxdna_accel.h:153
__u32 param_val_size
Definition amdxdna_accel.h:157
__u32 handle
Definition amdxdna_accel.h:154
__u32 pad
Definition amdxdna_accel.h:158
__u64 param_val
Definition amdxdna_accel.h:156
__u32 param_type
Definition amdxdna_accel.h:155
Definition amdxdna_accel.h:203
__u64 vaddr
Definition amdxdna_accel.h:205
__u64 size
Definition amdxdna_accel.h:206
__u32 handle
Definition amdxdna_accel.h:208
__u64 flags
Definition amdxdna_accel.h:204
__u32 type
Definition amdxdna_accel.h:207
Definition amdxdna_accel.h:86
__u32 syncobj_handle
Definition amdxdna_accel.h:97
__u32 umq_doorbell
Definition amdxdna_accel.h:95
__u64 ext
Definition amdxdna_accel.h:87
__u32 max_opc
Definition amdxdna_accel.h:92
__u32 umq_bo
Definition amdxdna_accel.h:90
__u32 num_tiles
Definition amdxdna_accel.h:93
__u64 ext_flags
Definition amdxdna_accel.h:88
__u32 log_buf_bo
Definition amdxdna_accel.h:91
__u32 mem_size
Definition amdxdna_accel.h:94
__u64 qos_p
Definition amdxdna_accel.h:89
__u32 handle
Definition amdxdna_accel.h:96
Definition amdxdna_accel.h:105
__u32 handle
Definition amdxdna_accel.h:106
__u32 pad
Definition amdxdna_accel.h:107
Definition amdxdna_accel.h:266
__u32 arg_count
Definition amdxdna_accel.h:274
__u64 seq
Definition amdxdna_accel.h:275
__u32 type
Definition amdxdna_accel.h:270
__u64 ext
Definition amdxdna_accel.h:267
__u64 args
Definition amdxdna_accel.h:272
__u64 cmd_handles
Definition amdxdna_accel.h:271
__u64 ext_flags
Definition amdxdna_accel.h:268
__u32 hwctx
Definition amdxdna_accel.h:269
__u32 cmd_count
Definition amdxdna_accel.h:273
Definition amdxdna_accel.h:648
__u32 pad
Definition amdxdna_accel.h:678
__u32 num_element
Definition amdxdna_accel.h:676
__u32 param
Definition amdxdna_accel.h:663
__u64 buffer
Definition amdxdna_accel.h:685
__u32 element_size
Definition amdxdna_accel.h:669
Definition amdxdna_accel.h:221
__u32 handle
Definition amdxdna_accel.h:224
__u64 vaddr
Definition amdxdna_accel.h:227
__u64 ext_flags
Definition amdxdna_accel.h:223
__u64 ext
Definition amdxdna_accel.h:222
__u64 map_offset
Definition amdxdna_accel.h:226
__u32 pad
Definition amdxdna_accel.h:225
__u64 xdna_addr
Definition amdxdna_accel.h:228
Definition amdxdna_accel.h:528
__u32 buffer_size
Definition amdxdna_accel.h:530
__u64 buffer
Definition amdxdna_accel.h:531
__u32 param
Definition amdxdna_accel.h:529
Definition amdxdna_accel.h:446
__u8 pad[7]
Definition amdxdna_accel.h:448
__u8 power_mode
Definition amdxdna_accel.h:447
Definition amdxdna_accel.h:483
__u64 npu_task_curr
Definition amdxdna_accel.h:493
__u64 npu_task_max
Definition amdxdna_accel.h:489
__u64 npu_tops_curr
Definition amdxdna_accel.h:491
__u64 npu_tops_max
Definition amdxdna_accel.h:487
__u64 npu_clk_max
Definition amdxdna_accel.h:485
Definition amdxdna_accel.h:540
__u64 command_submissions
Definition amdxdna_accel.h:552
__u32 fatal_error_app_module
Definition amdxdna_accel.h:596
__u64 suspensions
Definition amdxdna_accel.h:566
__u32 ctx_pc
Definition amdxdna_accel.h:588
__u64 preemptions
Definition amdxdna_accel.h:558
__u32 fatal_error_type
Definition amdxdna_accel.h:590
__u32 latency
Definition amdxdna_accel.h:582
__u32 hwctx_id
Definition amdxdna_accel.h:548
__s64 pid
Definition amdxdna_accel.h:550
__u32 fatal_error_exception_pc
Definition amdxdna_accel.h:594
__u32 fps
Definition amdxdna_accel.h:578
__u32 txn_op_idx
Definition amdxdna_accel.h:586
__u64 priority
Definition amdxdna_accel.h:562
__u32 state
Definition amdxdna_accel.h:572
__u64 heap_usage
Definition amdxdna_accel.h:564
__u32 num_col
Definition amdxdna_accel.h:546
__u32 context_id
Definition amdxdna_accel.h:542
__u32 pad
Definition amdxdna_accel.h:598
__u32 gops
Definition amdxdna_accel.h:576
__u32 start_col
Definition amdxdna_accel.h:544
__u32 frame_exec_time
Definition amdxdna_accel.h:584
__u32 pasid
Definition amdxdna_accel.h:574
__u32 fatal_error_exception_type
Definition amdxdna_accel.h:592
__u64 migrations
Definition amdxdna_accel.h:556
__u64 errors
Definition amdxdna_accel.h:560
__u32 dma_bandwidth
Definition amdxdna_accel.h:580
__u64 command_completions
Definition amdxdna_accel.h:554
Definition amdxdna_accel.h:343
struct amdxdna_drm_query_aie_tile_metadata core
Definition amdxdna_accel.h:348
struct amdxdna_drm_query_aie_tile_metadata shim
Definition amdxdna_accel.h:350
__u16 rows
Definition amdxdna_accel.h:346
__u32 col_size
Definition amdxdna_accel.h:344
struct amdxdna_drm_query_aie_tile_metadata mem
Definition amdxdna_accel.h:349
__u16 cols
Definition amdxdna_accel.h:345
struct amdxdna_drm_query_aie_version version
Definition amdxdna_accel.h:347
Definition amdxdna_accel.h:299
__u64 buffer
Definition amdxdna_accel.h:300
__u32 buffer_size
Definition amdxdna_accel.h:301
__u32 cols_filled
Definition amdxdna_accel.h:302
Definition amdxdna_accel.h:324
__u16 event_reg_count
Definition amdxdna_accel.h:329
__u16 pad[3]
Definition amdxdna_accel.h:330
__u16 lock_count
Definition amdxdna_accel.h:328
__u16 row_start
Definition amdxdna_accel.h:326
__u16 dma_channel_count
Definition amdxdna_accel.h:327
__u16 row_count
Definition amdxdna_accel.h:325
Definition amdxdna_accel.h:310
__u32 major
Definition amdxdna_accel.h:311
__u32 minor
Definition amdxdna_accel.h:312
Definition amdxdna_accel.h:370
struct amdxdna_drm_query_clock mp_npu_clock
Definition amdxdna_accel.h:371
struct amdxdna_drm_query_clock h_clock
Definition amdxdna_accel.h:372
Definition amdxdna_accel.h:359
__u32 pad
Definition amdxdna_accel.h:362
__u8 name[16]
Definition amdxdna_accel.h:360
__u32 freq_mhz
Definition amdxdna_accel.h:361
Definition amdxdna_accel.h:458
__u32 build
Definition amdxdna_accel.h:462
__u32 major
Definition amdxdna_accel.h:459
__u32 minor
Definition amdxdna_accel.h:460
__u32 patch
Definition amdxdna_accel.h:461
Definition amdxdna_accel.h:420
__u32 num_col
Definition amdxdna_accel.h:423
__u64 migrations
Definition amdxdna_accel.h:428
__u32 start_col
Definition amdxdna_accel.h:422
__u32 context_id
Definition amdxdna_accel.h:421
__u64 preemptions
Definition amdxdna_accel.h:429
__u64 command_completions
Definition amdxdna_accel.h:427
__u64 errors
Definition amdxdna_accel.h:430
__u64 command_submissions
Definition amdxdna_accel.h:426
__u32 pad
Definition amdxdna_accel.h:424
__s64 pid
Definition amdxdna_accel.h:425
Definition amdxdna_accel.h:393
__s8 unitm
Definition amdxdna_accel.h:401
__u8 type
Definition amdxdna_accel.h:402
__u32 max
Definition amdxdna_accel.h:396
__u8 status[64]
Definition amdxdna_accel.h:399
__u8 label[64]
Definition amdxdna_accel.h:394
__u32 average
Definition amdxdna_accel.h:397
__u8 units[16]
Definition amdxdna_accel.h:400
__u32 input
Definition amdxdna_accel.h:395
__u8 pad[6]
Definition amdxdna_accel.h:403
__u32 highest
Definition amdxdna_accel.h:398
Definition amdxdna_accel.h:509
__u32 map_num_elements
Definition amdxdna_accel.h:517
__u32 type
Definition amdxdna_accel.h:515
__u32 minor
Definition amdxdna_accel.h:513
__u32 major
Definition amdxdna_accel.h:511
__u32 map[]
Definition amdxdna_accel.h:519
Definition amdxdna_accel.h:713
__u8 pad[7]
Definition amdxdna_accel.h:715
__u8 power_mode
Definition amdxdna_accel.h:714
Definition amdxdna_accel.h:702
__u32 param
Definition amdxdna_accel.h:703
__u64 buffer
Definition amdxdna_accel.h:705
__u32 buffer_size
Definition amdxdna_accel.h:704
Definition amdxdna_accel.h:238
__u64 offset
Definition amdxdna_accel.h:243
__u32 direction
Definition amdxdna_accel.h:242
__u64 size
Definition amdxdna_accel.h:244
__u32 handle
Definition amdxdna_accel.h:239
Definition amdxdna_accel.h:175
__u64 vaddr
Definition amdxdna_accel.h:176
__u64 len
Definition amdxdna_accel.h:177
Definition amdxdna_accel.h:189
__s32 dmabuf_fd
Definition amdxdna_accel.h:190
__u32 num_entries
Definition amdxdna_accel.h:191
struct amdxdna_drm_va_entry va_entries[]
Definition amdxdna_accel.h:192
Definition amdxdna_accel.h:287
__u32 timeout
Definition amdxdna_accel.h:289
__u64 seq
Definition amdxdna_accel.h:290
__u32 hwctx
Definition amdxdna_accel.h:288
Definition amdxdna_accel.h:128
__u16 pad[3]
Definition amdxdna_accel.h:130
__u16 num_cus
Definition amdxdna_accel.h:129
Definition amdxdna_accel.h:63
__u32 fps
Definition amdxdna_accel.h:65
__u32 dma_bandwidth
Definition amdxdna_accel.h:66
__u32 latency
Definition amdxdna_accel.h:67
__u32 priority
Definition amdxdna_accel.h:69
__u32 frame_exec_time
Definition amdxdna_accel.h:68
__u32 gops
Definition amdxdna_accel.h:64