NV services: Difference between revisions
No edit summary |
No edit summary |
||
Line 66: | Line 66: | ||
QueryEvent is only supported on (and implemented differently on): | QueryEvent is only supported on (and implemented differently on): | ||
* /dev/nvhost-gpu | * /dev/nvhost-gpu | ||
** 1: SmException_BptIntReport | ** EvtId=1: SmException_BptIntReport | ||
** 2: SmException_BptPauseReport | ** EvtId=2: SmException_BptPauseReport | ||
** 3: ErrorNotifierEvent | ** EvtId=3: ErrorNotifierEvent | ||
* /dev/nvhost-ctrl: Used to get events for | * /dev/nvhost-ctrl: Used to get events for syncpts. | ||
** | ** EvtId=(event_slot | ((syncpt_id & 0xFFF) << 16) | (is_valid << 28)): New format used by NVHOST_IOCTL_CTRL_SYNCPT_WAIT_EVENT/NVHOST_IOCTL_CTRL_SYNCPT_WAIT_EVENT_EX. | ||
** | ** EvtId=(event_slot | (syncpt_id << 4)): Old format used by NVHOST_IOCTL_CTRL_SYNCPT_WAITEX. | ||
* /dev/nvhost-ctrl-gpu | * /dev/nvhost-ctrl-gpu | ||
** 1: Returns error_event_handle. | ** EvtId=1: Returns error_event_handle. | ||
** 2: Returns unknown event. | ** EvtId=2: Returns unknown event. | ||
* /dev/nvhost-dbg-gpu | * /dev/nvhost-dbg-gpu | ||
** Ignores | ** Ignores EvtId. | ||
== MapSharedMem == | == MapSharedMem == | ||
Line 290: | Line 290: | ||
| 0xC010001D || Inout || 16 || [[#NVHOST_IOCTL_CTRL_SYNCPT_WAIT_EVENT]] | | 0xC010001D || Inout || 16 || [[#NVHOST_IOCTL_CTRL_SYNCPT_WAIT_EVENT]] | ||
|- | |- | ||
| 0xC010001E || Inout || 16 || [[# | | 0xC010001E || Inout || 16 || [[#NVHOST_IOCTL_CTRL_SYNCPT_WAIT_EVENT_EX]] | ||
|- | |- | ||
| 0xC004001F || Inout || 4 || [[#NVHOST_IOCTL_CTRL_SYNCPT_ALLOC_EVENT]] | | 0xC004001F || Inout || 4 || [[#NVHOST_IOCTL_CTRL_SYNCPT_ALLOC_EVENT]] | ||
Line 298: | Line 298: | ||
| 0x40080021 || In || 8 || [[#NVHOST_IOCTL_CTRL_SYNCPT_FREE_EVENT_BATCH]] | | 0x40080021 || In || 8 || [[#NVHOST_IOCTL_CTRL_SYNCPT_FREE_EVENT_BATCH]] | ||
|- | |- | ||
| 0xC0040022 || Inout || 4 || [[# | | 0xC0040022 || Inout || 4 || [[#NVHOST_IOCTL_CTRL_SYNCPT_GET_SHIFT]] | ||
|} | |} | ||
Line 330: | Line 330: | ||
struct { | struct { | ||
__in u32 id; | __in u32 id; | ||
__in u32 lock; // | __in u32 lock; // 0=unlock, 1=lock | ||
}; | }; | ||
Line 376: | Line 376: | ||
struct { | struct { | ||
__in u32 | __in u32 event_slot; // 0x00 to 0x3F | ||
}; | }; | ||
=== NVHOST_IOCTL_CTRL_SYNCPT_WAIT_EVENT === | === NVHOST_IOCTL_CTRL_SYNCPT_WAIT_EVENT === | ||
Waits on a syncpt using events. If waiting fails, returns error code 0x05 (Timeout) and sets '''value''' to ( | Waits on a syncpt using events. If waiting fails, returns error code 0x05 (Timeout) and sets '''value''' to ('''event_slot''' | (('''syncpt_id''' & 0xFFF) << 16) | ('''is_valid''' << 28)). | ||
struct { | struct { | ||
Line 389: | Line 389: | ||
}; | }; | ||
=== | === NVHOST_IOCTL_CTRL_SYNCPT_WAIT_EVENT_EX === | ||
Waits on a syncpt using a specific event. If waiting fails, returns error code 0x05 (Timeout) and sets '''value''' to | Waits on a syncpt using a specific event. If waiting fails, returns error code 0x05 (Timeout) and sets '''value''' to ('''event_slot''' | ('''syncpt_id''' << 4)). | ||
struct { | struct { | ||
Line 396: | Line 396: | ||
__in u32 thresh; | __in u32 thresh; | ||
__in s32 timeout; | __in s32 timeout; | ||
__inout u32 value; // in= | __inout u32 value; // in=event_slot; out=syncpt_value | ||
}; | }; | ||
Line 403: | Line 403: | ||
struct { | struct { | ||
__in u32 | __in u32 event_slot; // 0x00 to 0x3F | ||
}; | }; | ||
Line 410: | Line 410: | ||
struct { | struct { | ||
__in u32 | __in u32 event_slot; // 0x00 to 0x3F | ||
}; | }; | ||
Line 417: | Line 417: | ||
struct { | struct { | ||
__in u64 | __in u64 event_slot_mask; // 64-bit bitfield where each bit represents one event | ||
}; | }; | ||
=== | === NVHOST_IOCTL_CTRL_SYNCPT_GET_SHIFT === | ||
Returns the syncpt shift value. | |||
struct { | struct { | ||
__out u32 | __out u32 syncpt_shift; // 0x00 (FIFO disabled) or 0x60 (FIFO enabled) | ||
}; | }; | ||
Line 1,235: | Line 1,235: | ||
| 0xC018441A || Inout || 24 || NVGPU_DBG_GPU_IOCTL_LAZY_ALLOC_RESERVED_PA | | 0xC018441A || Inout || 24 || NVGPU_DBG_GPU_IOCTL_LAZY_ALLOC_RESERVED_PA | ||
|- | |- | ||
| 0xC020441B || Inout || 32 || [11.0.0+] | | 0xC020441B || Inout || 32 || [11.0.0+] NVGPU_DBG_GPU_IOCTL_LAZY_ALLOC_RESERVED_PA_EX | ||
|- | |- | ||
| 0xC084441C || Inout || 132 || [11.0.0+] | | 0xC084441C || Inout || 132 || [11.0.0+] NVGPU_DBG_GPU_IOCTL_GET_SETTINGS | ||
|- | |- | ||
| 0xC018441D || Inout || 24 || [11.0.0+] | | 0xC018441D || Inout || 24 || [11.0.0+] NVGPU_DBG_GPU_IOCTL_GET_SERIAL_NUMBER | ||
|- | |- | ||
| 0xC020441E || Inout || 32 || [11.0.0+] | | 0xC020441E || Inout || 32 || [11.0.0+] NVGPU_DBG_GPU_IOCTL_GET_GPU_VA_RANGE_PAGES | ||
|} | |} | ||