Home | History | Annotate | Line # | Download | only in nvif
      1  1.1  riastrad /*	$NetBSD: if000c.h,v 1.2 2021/12/18 23:45:33 riastradh Exp $	*/
      2  1.1  riastrad 
      3  1.1  riastrad #ifndef __NVIF_IF000C_H__
      4  1.1  riastrad #define __NVIF_IF000C_H__
      5  1.1  riastrad struct nvif_vmm_v0 {
      6  1.1  riastrad 	__u8  version;
      7  1.1  riastrad 	__u8  page_nr;
      8  1.1  riastrad 	__u8  managed;
      9  1.1  riastrad 	__u8  pad03[5];
     10  1.1  riastrad 	__u64 addr;
     11  1.1  riastrad 	__u64 size;
     12  1.1  riastrad 	__u8  data[];
     13  1.1  riastrad };
     14  1.1  riastrad 
     15  1.1  riastrad #define NVIF_VMM_V0_PAGE                                                   0x00
     16  1.1  riastrad #define NVIF_VMM_V0_GET                                                    0x01
     17  1.1  riastrad #define NVIF_VMM_V0_PUT                                                    0x02
     18  1.1  riastrad #define NVIF_VMM_V0_MAP                                                    0x03
     19  1.1  riastrad #define NVIF_VMM_V0_UNMAP                                                  0x04
     20  1.1  riastrad #define NVIF_VMM_V0_PFNMAP                                                 0x05
     21  1.1  riastrad #define NVIF_VMM_V0_PFNCLR                                                 0x06
     22  1.1  riastrad #define NVIF_VMM_V0_MTHD(i)                                         ((i) + 0x80)
     23  1.1  riastrad 
     24  1.1  riastrad struct nvif_vmm_page_v0 {
     25  1.1  riastrad 	__u8  version;
     26  1.1  riastrad 	__u8  index;
     27  1.1  riastrad 	__u8  shift;
     28  1.1  riastrad 	__u8  sparse;
     29  1.1  riastrad 	__u8  vram;
     30  1.1  riastrad 	__u8  host;
     31  1.1  riastrad 	__u8  comp;
     32  1.1  riastrad 	__u8  pad07[1];
     33  1.1  riastrad };
     34  1.1  riastrad 
     35  1.1  riastrad struct nvif_vmm_get_v0 {
     36  1.1  riastrad 	__u8  version;
     37  1.1  riastrad #define NVIF_VMM_GET_V0_ADDR                                               0x00
     38  1.1  riastrad #define NVIF_VMM_GET_V0_PTES                                               0x01
     39  1.1  riastrad #define NVIF_VMM_GET_V0_LAZY	                                           0x02
     40  1.1  riastrad 	__u8  type;
     41  1.1  riastrad 	__u8  sparse;
     42  1.1  riastrad 	__u8  page;
     43  1.1  riastrad 	__u8  align;
     44  1.1  riastrad 	__u8  pad05[3];
     45  1.1  riastrad 	__u64 size;
     46  1.1  riastrad 	__u64 addr;
     47  1.1  riastrad };
     48  1.1  riastrad 
     49  1.1  riastrad struct nvif_vmm_put_v0 {
     50  1.1  riastrad 	__u8  version;
     51  1.1  riastrad 	__u8  pad01[7];
     52  1.1  riastrad 	__u64 addr;
     53  1.1  riastrad };
     54  1.1  riastrad 
     55  1.1  riastrad struct nvif_vmm_map_v0 {
     56  1.1  riastrad 	__u8  version;
     57  1.1  riastrad 	__u8  pad01[7];
     58  1.1  riastrad 	__u64 addr;
     59  1.1  riastrad 	__u64 size;
     60  1.1  riastrad 	__u64 memory;
     61  1.1  riastrad 	__u64 offset;
     62  1.1  riastrad 	__u8  data[];
     63  1.1  riastrad };
     64  1.1  riastrad 
     65  1.1  riastrad struct nvif_vmm_unmap_v0 {
     66  1.1  riastrad 	__u8  version;
     67  1.1  riastrad 	__u8  pad01[7];
     68  1.1  riastrad 	__u64 addr;
     69  1.1  riastrad };
     70  1.1  riastrad 
     71  1.1  riastrad struct nvif_vmm_pfnmap_v0 {
     72  1.1  riastrad 	__u8  version;
     73  1.1  riastrad 	__u8  page;
     74  1.1  riastrad 	__u8  pad02[6];
     75  1.1  riastrad 	__u64 addr;
     76  1.1  riastrad 	__u64 size;
     77  1.1  riastrad #define NVIF_VMM_PFNMAP_V0_ADDR                           0xfffffffffffff000ULL
     78  1.1  riastrad #define NVIF_VMM_PFNMAP_V0_ADDR_SHIFT                                        12
     79  1.1  riastrad #define NVIF_VMM_PFNMAP_V0_APER                           0x00000000000000f0ULL
     80  1.1  riastrad #define NVIF_VMM_PFNMAP_V0_HOST                           0x0000000000000000ULL
     81  1.1  riastrad #define NVIF_VMM_PFNMAP_V0_VRAM                           0x0000000000000010ULL
     82  1.1  riastrad #define NVIF_VMM_PFNMAP_V0_W                              0x0000000000000002ULL
     83  1.1  riastrad #define NVIF_VMM_PFNMAP_V0_V                              0x0000000000000001ULL
     84  1.1  riastrad #define NVIF_VMM_PFNMAP_V0_NONE                           0x0000000000000000ULL
     85  1.1  riastrad 	__u64 phys[];
     86  1.1  riastrad };
     87  1.1  riastrad 
     88  1.1  riastrad struct nvif_vmm_pfnclr_v0 {
     89  1.1  riastrad 	__u8  version;
     90  1.1  riastrad 	__u8  pad01[7];
     91  1.1  riastrad 	__u64 addr;
     92  1.1  riastrad 	__u64 size;
     93  1.1  riastrad };
     94  1.1  riastrad #endif
     95