NV services: Difference between revisions
Line 1,730: | Line 1,730: | ||
u32 sm_arch_warp_count; // 0x80 | u32 sm_arch_warp_count; // 0x80 | ||
u32 gpu_va_bit_count; // 0x28 | u32 gpu_va_bit_count; // 0x28 | ||
u32 reserved; // | u32 reserved; // 0x0 | ||
u64 flags; // 0x55 (HAS_SYNCPOINTS | SUPPORT_SPARSE_ALLOCS | SUPPORT_CYCLE_STATS | SUPPORT_CYCLE_STATS_SNAPSHOT) | u64 flags; // 0x55 (HAS_SYNCPOINTS | SUPPORT_SPARSE_ALLOCS | SUPPORT_CYCLE_STATS | SUPPORT_CYCLE_STATS_SNAPSHOT) | ||
u32 twod_class; // 0x902D (FERMI_TWOD_A) | u32 twod_class; // 0x902D (FERMI_TWOD_A) | ||
Line 1,754: | Line 1,754: | ||
__in u64 gpu_characteristics_buf_addr; // ignored, but must not be NULL | __in u64 gpu_characteristics_buf_addr; // ignored, but must not be NULL | ||
__out struct gpu_characteristics gc; | __out struct gpu_characteristics gc; | ||
}; | |||
[S2] Uses [[#Ioctl3|Ioctl3]]. | |||
struct gpu_characteristics { | |||
u32 arch; // 0x170 | |||
u32 impl; // 0xE | |||
u32 rev; // 0xA1 (Revision A1) | |||
u32 num_gpc; // 0x1 | |||
u64 l2_cache_size; // 0x100000 | |||
u64 on_board_video_memory_size; // 0x0 (not used) | |||
u32 num_tpc_per_gpc; // 0x6 | |||
u32 bus_type; // 0x20 (NVGPU_GPU_BUS_TYPE_AXI) | |||
u32 big_page_size; // 0x0 | |||
u32 compression_page_size; // 0x10000 | |||
u32 pde_coverage_bit_count; // 0x15 | |||
u32 available_big_page_sizes; // 0x0 | |||
u32 gpc_mask; // 0x1 | |||
u32 sm_arch_sm_version; // 0x808 | |||
u32 sm_arch_spa_version; // 0x806 | |||
u32 sm_arch_warp_count; // 0x60 | |||
u32 gpu_va_bit_count; // 0x28 | |||
u32 reserved; // 0x0 | |||
u64 flags; // 0x935FAF1EDC0155 | |||
u32 twod_class; // 0x902D (FERMI_TWOD_A) | |||
u32 threed_class; // 0xC797 (AMPERE_B) | |||
u32 compute_class; // 0xC7C0 (AMPERE_COMPUTE_B) | |||
u32 gpfifo_class; // 0xC76F (AMPERE_CHANNEL_GPFIFO_B) | |||
u32 inline_to_memory_class; // 0xA140 (KEPLER_INLINE_TO_MEMORY_B) | |||
u32 dma_copy_class; // 0xC7B5 (AMPERE_DMA_COPY_B) | |||
u32 unk0; // 0xF001F | |||
u32 unk1; // 0x21002B | |||
u32 unk2; // 0xFFFF000D | |||
u32 unk3; // 0xFFFFFFFF | |||
u32 unk4; // 0x0 | |||
u32 unk5; // 0x1 | |||
u32 unk6; // 0x1 | |||
u32 unk7; // 0x1 | |||
u32 unk8; // 0x4 | |||
u32 unk9; // 0x0 | |||
u32 unk10; // 0x1 | |||
u32 unk11; // 0x0 | |||
u32 unk12; // 0x0 | |||
u64 chipname; // 0x6761313066 ("ga10f") | |||
u32 unk13; // 0x0 | |||
u32 unk14; // 0x2 | |||
u32 unk15; // 0x40 | |||
u32 unk16; // 0x3 | |||
u32 unk17; // 0x7 | |||
u32 unk18; // 0x1 | |||
u32 unk19; // 0x1 | |||
u32 unk20; // 0x0 | |||
u32 unk21; // 0x0 | |||
}; | |||
struct in_buf { | |||
__in u64 gpu_characteristics_buf_size; // must not be NULL, but gets overwritten with 0xD0=max_size | |||
__in u8 reserved[0xD8]; | |||
}; | |||
struct out_buf { | |||
__out u8 reserved[0xE0]; | |||
}; | |||
struct out_buf2 { | |||
__out struct gpu_characteristics gc; | |||
}; | }; | ||