debuggers.hg

changeset 20870:07f95839e431

Enable IOMMU by default.

Can be disabled with 'iommu=0' boot parameter.

Note that iommu_inclusive_mapping is now also enabled by default, to
deal with systems with broken BIOS tables specifying bad RMRRs. Old
behaviour can be specified via 'iommu_inclusive_mapping=0'.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Jan 19 15:44:54 2010 +0000 (2010-01-19)
parents 89907dab1aef
children 49a2c1069e14
files xen/drivers/passthrough/iommu.c xen/drivers/passthrough/vtd/x86/vtd.c
line diff
     1.1 --- a/xen/drivers/passthrough/iommu.c	Tue Jan 19 10:56:59 2010 +0000
     1.2 +++ b/xen/drivers/passthrough/iommu.c	Tue Jan 19 15:44:54 2010 +0000
     1.3 @@ -37,13 +37,13 @@ static int iommu_populate_page_table(str
     1.4   *   no-intremap                Disable VT-d Interrupt Remapping
     1.5   */
     1.6  custom_param("iommu", parse_iommu_param);
     1.7 -int iommu_enabled;
     1.8 +int iommu_enabled = 1;
     1.9  int iommu_pv_enabled;
    1.10  int force_iommu;
    1.11  int iommu_passthrough;
    1.12 -int iommu_snoop;
    1.13 -int iommu_qinval;
    1.14 -int iommu_intremap;
    1.15 +int iommu_snoop = 1;
    1.16 +int iommu_qinval = 1;
    1.17 +int iommu_intremap = 1;
    1.18  int amd_iommu_debug;
    1.19  int amd_iommu_perdev_intremap;
    1.20  
    1.21 @@ -51,13 +51,6 @@ static void __init parse_iommu_param(cha
    1.22  {
    1.23      char *ss;
    1.24  
    1.25 -    iommu_enabled = 1;
    1.26 -    iommu_snoop = 1;
    1.27 -    iommu_qinval = 1;
    1.28 -    iommu_intremap = 1;
    1.29 -    amd_iommu_debug = 0;
    1.30 -    amd_iommu_perdev_intremap = 0;
    1.31 -
    1.32      do {
    1.33          ss = strchr(s, ',');
    1.34          if ( ss )
     2.1 --- a/xen/drivers/passthrough/vtd/x86/vtd.c	Tue Jan 19 10:56:59 2010 +0000
     2.2 +++ b/xen/drivers/passthrough/vtd/x86/vtd.c	Tue Jan 19 15:44:54 2010 +0000
     2.3 @@ -31,7 +31,7 @@
     2.4   * iommu_inclusive_mapping: when set, all memory below 4GB is included in dom0
     2.5   * 1:1 iommu mappings except xen and unusable regions.
     2.6   */
     2.7 -static int iommu_inclusive_mapping;
     2.8 +static int iommu_inclusive_mapping = 1;
     2.9  boolean_param("iommu_inclusive_mapping", iommu_inclusive_mapping);
    2.10  
    2.11  void *map_vtd_domain_page(u64 maddr)