xref: /kvm-unit-tests/x86/intel-iommu.c (revision 16c0b05f0586b9c66e0c6b2ce7657bf98486af27)
1 /*
2  * Intel IOMMU unit test.
3  *
4  * Copyright (C) 2016 Red Hat, Inc.
5  *
6  * Authors:
7  *   Peter Xu <peterx@redhat.com>,
8  *
9  * This work is licensed under the terms of the GNU LGPL, version 2 or
10  * later.
11  */
12 
13 #include "intel-iommu.h"
14 
15 int main(int argc, char *argv[])
16 {
17 	vtd_init();
18 
19 	report("fault status check", vtd_readl(DMAR_FSTS_REG) == 0);
20 	report("QI enablement", vtd_readl(DMAR_GSTS_REG) & VTD_GCMD_QI);
21 	report("DMAR table setup", vtd_readl(DMAR_GSTS_REG) & VTD_GCMD_ROOT);
22 	report("IR table setup", vtd_readl(DMAR_GSTS_REG) & VTD_GCMD_IR_TABLE);
23 	report("DMAR enablement", vtd_readl(DMAR_GSTS_REG) & VTD_GCMD_DMAR);
24 	report("IR enablement", vtd_readl(DMAR_GSTS_REG) & VTD_GCMD_IR);
25 
26 	return report_summary();
27 }
28