1/*
2 * Copyright (c) 2014, University of Washington.
3 * All rights reserved.
4 *
5 * This file is distributed under the terms in the attached LICENSE file.
6 * If you do not find this file, copies can be found by writing to:
7 * ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich. 
8 * Attn: Systems Group.
9 */
10
11device vtd_iotlb msbfirst ( addr base ) "VT-d IOTLB Registers" { 
12       register iva_reg addr(base, 0x000) "Invalidate Address Register" {
13           addr	52 wo	"Address";
14	   _	5  mbz;	
15	   ih	1  wo	"Invalidation Hint";
16	   am	6  wo	"Address Mask";
17	};
18
19	constants iirg_ "IOTLB Invalidation Request Granularity" {
20            rsvd_ir = 0b00 "Reserved";
21            gir     = 0b01 "Global Invalidation request";
22            domir   = 0b10 "Domain-selective invalidation request";
23            pir     = 0b11 "Page-selective-within-domain invalidation request";
24        };
25
26        constants iaig_ "IOTLB Actual Request Granularity" {
27            rsvd_ip = 0b00 "Reserved";
28            gip     = 0b01 "Global Invalidation performed";
29            domip   = 0b10 "Domain-selective invalidation performed";
30            devip   = 0b11 "Device-selective invalidation performed";
31        };
32
33	register iotlb_reg addr(base, 0x008) "IOTLB Invalidate Register" {
34	    ivt	 1  rw	   	     "Invalidate IOTLB";
35	    _	 1  mbz;	
36	    iirg 2  rw	 type(iirg_) "IOTLB Invalidation Request Granularity";
37	    _	 1  mbz;
38	    iaig 2  ro	 type(iaig_) "IOTLB Actual Invalidation Granularity";
39	    _	 7  mbz;
40	    dr	 1  rw		     "Drain Reads";
41	    dw	 1  rw	 	     "Drain Writes";
42	    did	 16 rw	 	     "Domain-ID";
43	    _	 32 mbz;
44	};
45};
46