550.40.07

This commit is contained in:
Bernhard Stoeckner
2024-01-24 17:51:53 +01:00
parent bb2dac1f20
commit 91676d6628
1411 changed files with 261367 additions and 145959 deletions

View File

@@ -30,35 +30,62 @@
// Source file: ctrl/ctrl00fe.finn
//
#define NV00FE_CTRL_SUBMIT_PAGING_OPERATIONS_FLAG_PAGE_KIND_SOURCE_ALLOCATION 0:0
#define NV00FE_CTRL_SUBMIT_PAGING_OPERATIONS_FLAG_PAGE_KIND_SOURCE_ALLOCATION_PHYSICAL (0x00000000U)
#define NV00FE_CTRL_SUBMIT_PAGING_OPERATIONS_FLAG_PAGE_KIND_SOURCE_ALLOCATION_VIRTUAL (0x00000001U)
typedef enum NV00FE_CTRL_OPERATION_TYPE {
NV00FE_CTRL_OPERATION_TYPE_NOP = 0, // operation is ignored, used internally
NV00FE_CTRL_OPERATION_TYPE_MAP = 1,
NV00FE_CTRL_OPERATION_TYPE_UNMAP = 2,
NV00FE_CTRL_OPERATION_TYPE_SEMAPHORE_WAIT = 3,
NV00FE_CTRL_OPERATION_TYPE_SEMAPHORE_SIGNAL = 4,
} NV00FE_CTRL_OPERATION_TYPE;
typedef struct NV00FE_CTRL_PAGING_OPERATION {
typedef struct NV00FE_CTRL_OPERATION_MAP {
NvHandle hVirtualMemory;
NV_DECLARE_ALIGNED(NvU64 virtualOffset, 8);
NvHandle hPhysicalMemory;
NV_DECLARE_ALIGNED(NvU64 physicalOffset, 8);
NV_DECLARE_ALIGNED(NvU64 size, 8);
NvU32 flags;
} NV00FE_CTRL_PAGING_OPERATION;
NvU32 dmaFlags; // NVOS46_FLAGS
} NV00FE_CTRL_OPERATION_MAP;
typedef struct NV00FE_CTRL_OPERATION_UNMAP {
NvHandle hVirtualMemory;
NV_DECLARE_ALIGNED(NvU64 virtualOffset, 8);
NV_DECLARE_ALIGNED(NvU64 size, 8);
NvU32 dmaFlags; // NVOS47_FLAGS
} NV00FE_CTRL_OPERATION_UNMAP;
typedef struct NV00FE_CTRL_OPERATION_SEMAPHORE {
NvU32 index;
NV_DECLARE_ALIGNED(NvU64 value, 8);
} NV00FE_CTRL_OPERATION_SEMAPHORE;
typedef struct NV00FE_CTRL_OPERATION {
NV00FE_CTRL_OPERATION_TYPE type;
union {
NV_DECLARE_ALIGNED(NV00FE_CTRL_OPERATION_MAP map, 8);
NV_DECLARE_ALIGNED(NV00FE_CTRL_OPERATION_UNMAP unmap, 8);
NV_DECLARE_ALIGNED(NV00FE_CTRL_OPERATION_SEMAPHORE semaphore, 8);
} data;
} NV00FE_CTRL_OPERATION;
/*
* NV00FE_CTRL_CMD_SUBMIT_PAGING_OPERATIONS
* NV00FE_CTRL_CMD_SUBMIT_OPERATIONS
*
* Execute a list of paging operations
* Execute a list of mapping/semaphore operations
* Page size is determined by the virtual allocation
* Offsets/sizes must respect the page size
*
*/
#define NV00FE_CTRL_CMD_SUBMIT_PAGING_OPERATIONS (0xfe0002U) /* finn: Evaluated from "(FINN_NV_MEMORY_MAPPER_INTERFACE_ID << 8) | NV00FE_CTRL_SUBMIT_PAGING_OPERATIONS_PARAMS_MESSAGE_ID" */
#define NV00FE_CTRL_CMD_SUBMIT_OPERATIONS (0xfe0101U) /* finn: Evaluated from "(FINN_NV_MEMORY_MAPPER_INTERFACE_ID << 8) | NV00FE_CTRL_SUBMIT_OPERATIONS_PARAMS_MESSAGE_ID" */
#define NV00FE_CTRL_SUBMIT_PAGING_OPERATIONS_MAX_COUNT (0x00010000U)
#define NV00FE_MAX_OPERATIONS_COUNT (0x00001000U)
#define NV00FE_CTRL_SUBMIT_PAGING_OPERATIONS_PARAMS_MESSAGE_ID (0x2U)
#define NV00FE_CTRL_SUBMIT_OPERATIONS_PARAMS_MESSAGE_ID (0x1U)
typedef struct NV00FE_CTRL_SUBMIT_PAGING_OPERATIONS_PARAMS {
NvU32 pagingOpsCount;
NV_DECLARE_ALIGNED(NvP64 pagingOps, 8);
} NV00FE_CTRL_SUBMIT_PAGING_OPERATIONS_PARAMS;
typedef struct NV00FE_CTRL_SUBMIT_OPERATIONS_PARAMS {
NvU32 operationsCount;
NV_DECLARE_ALIGNED(NV00FE_CTRL_OPERATION pOperations[NV00FE_MAX_OPERATIONS_COUNT], 8);
NvU32 operationsProcessedCount;
} NV00FE_CTRL_SUBMIT_OPERATIONS_PARAMS;