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