diff --git a/src/mainboard/amd/dinar/get_bus_conf.c b/src/mainboard/amd/dinar/get_bus_conf.c
index fcd4684..fdf4b67 100644
--- a/src/mainboard/amd/dinar/get_bus_conf.c
+++ b/src/mainboard/amd/dinar/get_bus_conf.c
@@ -30,7 +30,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-u8 bus_isa;
 u8 bus_sb700[2];
 u8 bus_rd890[14];
 
@@ -81,9 +80,6 @@
 
 	if (dev) {
 		bus_sb700[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	/* rd890 */
@@ -91,16 +87,8 @@
 		dev = dev_find_slot(bus_rd890[0], PCI_DEVFN(sbdn_rd890 + i, 0));
 		if (dev) {
 			bus_rd890[i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			if(255 != bus_rd890[i]) {
-				bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-				bus_isa++;
-			}
 		}
 	}
 
-
-	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
-
 	printk(BIOS_DEBUG, "Mainboard - Get_bus_conf.c - get_bus_conf - End.\n");
 }
diff --git a/src/mainboard/amd/dinar/irq_tables.c b/src/mainboard/amd/dinar/irq_tables.c
index 0000111..865d264 100644
--- a/src/mainboard/amd/dinar/irq_tables.c
+++ b/src/mainboard/amd/dinar/irq_tables.c
@@ -43,7 +43,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb700[2];
 extern unsigned long sbdn_sb700;
 
diff --git a/src/mainboard/amd/inagua/get_bus_conf.c b/src/mainboard/amd/inagua/get_bus_conf.c
index 2c38bdd..c688791 100644
--- a/src/mainboard/amd/inagua/get_bus_conf.c
+++ b/src/mainboard/amd/inagua/get_bus_conf.c
@@ -30,7 +30,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-u8 bus_isa;
 u8 bus_sb800[6];
 u32 apicid_sb800;
 
@@ -66,22 +65,16 @@
 
 	if (dev) {
 		bus_sb800[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_sb800[0], PCI_DEVFN(sbdn_sb800 + 0x14, i));
 		if (dev) {
 			bus_sb800[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 	apicid_sb800 = apicid_base;
 
diff --git a/src/mainboard/amd/inagua/irq_tables.c b/src/mainboard/amd/inagua/irq_tables.c
index 1318d4d..98d68d3 100644
--- a/src/mainboard/amd/inagua/irq_tables.c
+++ b/src/mainboard/amd/inagua/irq_tables.c
@@ -44,7 +44,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb800[6];
 extern unsigned long sbdn_sb800;
 
diff --git a/src/mainboard/amd/olivehill/get_bus_conf.c b/src/mainboard/amd/olivehill/get_bus_conf.c
index 3aeeb90..508a73cf 100644
--- a/src/mainboard/amd/olivehill/get_bus_conf.c
+++ b/src/mainboard/amd/olivehill/get_bus_conf.c
@@ -32,7 +32,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-u8 bus_isa;
 u8 bus_yangtze[6];
 u32 apicid_yangtze;
 
@@ -80,22 +79,16 @@
 
 	if (dev) {
 		bus_yangtze[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_yangtze[0], PCI_DEVFN(sbdn_yangtze + 0x14, i));
 		if (dev) {
 			bus_yangtze[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 	apicid_yangtze = apicid_base;
 
diff --git a/src/mainboard/amd/olivehill/irq_tables.c b/src/mainboard/amd/olivehill/irq_tables.c
index bea6eb2..8dbea45 100644
--- a/src/mainboard/amd/olivehill/irq_tables.c
+++ b/src/mainboard/amd/olivehill/irq_tables.c
@@ -43,7 +43,6 @@
 	pirq_info->rfu = rfu;
 }
 
-extern u8 bus_isa;
 extern u8 bus_yangtze[6];
 extern unsigned long sbdn_yangtze;
 
diff --git a/src/mainboard/amd/parmer/get_bus_conf.c b/src/mainboard/amd/parmer/get_bus_conf.c
index c792887..490e3c2 100644
--- a/src/mainboard/amd/parmer/get_bus_conf.c
+++ b/src/mainboard/amd/parmer/get_bus_conf.c
@@ -32,7 +32,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-u8 bus_isa;
 u8 bus_hudson[6];
 u32 apicid_hudson;
 
@@ -70,22 +69,16 @@
 
 	if (dev) {
 		bus_hudson[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_hudson[0], PCI_DEVFN(sbdn_hudson + 0x14, i));
 		if (dev) {
 			bus_hudson[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 	apicid_hudson = apicid_base;
 
diff --git a/src/mainboard/amd/parmer/irq_tables.c b/src/mainboard/amd/parmer/irq_tables.c
index 20fbb5d..19f8007 100644
--- a/src/mainboard/amd/parmer/irq_tables.c
+++ b/src/mainboard/amd/parmer/irq_tables.c
@@ -43,7 +43,6 @@
 	pirq_info->rfu = rfu;
 }
 
-extern u8 bus_isa;
 extern u8 bus_hudson[6];
 extern unsigned long sbdn_hudson;
 
diff --git a/src/mainboard/amd/persimmon/get_bus_conf.c b/src/mainboard/amd/persimmon/get_bus_conf.c
index 995cb42..412744c 100644
--- a/src/mainboard/amd/persimmon/get_bus_conf.c
+++ b/src/mainboard/amd/persimmon/get_bus_conf.c
@@ -31,7 +31,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
 * and acpi_tables busnum is default.
 */
-u8 bus_isa;
 u8 bus_sb800[6];
 u32 apicid_sb800;
 u32 apicver_sb800;
@@ -67,23 +66,17 @@
 
 	if (dev) {
 		bus_sb800[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_sb800[0], PCI_DEVFN(sbdn_sb800 + 0x14, i));
 		if (dev) {
 			bus_sb800[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 
 	/* I/O APICs:    APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 
 	/*
diff --git a/src/mainboard/amd/persimmon/irq_tables.c b/src/mainboard/amd/persimmon/irq_tables.c
index dbbb2af..840e7b1 100644
--- a/src/mainboard/amd/persimmon/irq_tables.c
+++ b/src/mainboard/amd/persimmon/irq_tables.c
@@ -44,7 +44,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb800[6];
 extern unsigned long sbdn_sb800;
 
diff --git a/src/mainboard/amd/south_station/get_bus_conf.c b/src/mainboard/amd/south_station/get_bus_conf.c
index b95ef1c..f221a45 100644
--- a/src/mainboard/amd/south_station/get_bus_conf.c
+++ b/src/mainboard/amd/south_station/get_bus_conf.c
@@ -30,7 +30,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
 * and acpi_tables busnum is default.
 */
-u8 bus_isa;
 u8 bus_sb800[6];
 u32 apicid_sb800;
 
@@ -68,23 +67,17 @@
 
   if (dev) {
     bus_sb800[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-    bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-    bus_isa++;
   }
 
   for (i = 0; i < 4; i++) {
     dev = dev_find_slot(bus_sb800[0], PCI_DEVFN(sbdn_sb800 + 0x14, i));
     if (dev) {
       bus_sb800[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-      bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-      bus_isa++;
     }
   }
 
 
   /* I/O APICs:   APIC ID Version State   Address */
-  bus_isa = 10;
   apicid_base = CONFIG_MAX_CPUS;
   apicid_sb800 = apicid_base;
 
diff --git a/src/mainboard/amd/south_station/irq_tables.c b/src/mainboard/amd/south_station/irq_tables.c
index dbbb2af..840e7b1 100644
--- a/src/mainboard/amd/south_station/irq_tables.c
+++ b/src/mainboard/amd/south_station/irq_tables.c
@@ -44,7 +44,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb800[6];
 extern unsigned long sbdn_sb800;
 
diff --git a/src/mainboard/amd/thatcher/get_bus_conf.c b/src/mainboard/amd/thatcher/get_bus_conf.c
index 577ec9f..b7d6d23 100644
--- a/src/mainboard/amd/thatcher/get_bus_conf.c
+++ b/src/mainboard/amd/thatcher/get_bus_conf.c
@@ -32,7 +32,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-u8 bus_isa;
 u8 bus_hudson[6];
 u32 apicid_hudson;
 
@@ -67,22 +66,16 @@
 
 	if (dev) {
 		bus_hudson[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_hudson[0], PCI_DEVFN(sbdn_hudson + 0x14, i));
 		if (dev) {
 			bus_hudson[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 	apicid_hudson = apicid_base;
 
diff --git a/src/mainboard/amd/thatcher/irq_tables.c b/src/mainboard/amd/thatcher/irq_tables.c
index 20fbb5d..19f8007 100644
--- a/src/mainboard/amd/thatcher/irq_tables.c
+++ b/src/mainboard/amd/thatcher/irq_tables.c
@@ -43,7 +43,6 @@
 	pirq_info->rfu = rfu;
 }
 
-extern u8 bus_isa;
 extern u8 bus_hudson[6];
 extern unsigned long sbdn_hudson;
 
diff --git a/src/mainboard/amd/torpedo/get_bus_conf.c b/src/mainboard/amd/torpedo/get_bus_conf.c
index 1e962e8..3f8f50e 100644
--- a/src/mainboard/amd/torpedo/get_bus_conf.c
+++ b/src/mainboard/amd/torpedo/get_bus_conf.c
@@ -29,7 +29,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
 * and acpi_tables busnum is default.
 */
-u8 bus_isa;
 u8 bus_sb900[6];
 
 /*
@@ -71,8 +70,6 @@
 
 	if (dev) {
 		bus_sb900[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
@@ -81,13 +78,8 @@
 		if (dev) {
 			bus_sb900[2 + i] =
 			    pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
-	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
-
 	printk(BIOS_DEBUG, "Mainboard - %s - %s - End.\n", __FILE__, __func__);
 }
diff --git a/src/mainboard/amd/torpedo/irq_tables.c b/src/mainboard/amd/torpedo/irq_tables.c
index 53cf6fa..f47d9dc 100644
--- a/src/mainboard/amd/torpedo/irq_tables.c
+++ b/src/mainboard/amd/torpedo/irq_tables.c
@@ -45,7 +45,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb900[6];
 extern unsigned long sbdn_sb900;
 
diff --git a/src/mainboard/amd/union_station/get_bus_conf.c b/src/mainboard/amd/union_station/get_bus_conf.c
index 632fede..0b55a2a 100644
--- a/src/mainboard/amd/union_station/get_bus_conf.c
+++ b/src/mainboard/amd/union_station/get_bus_conf.c
@@ -30,7 +30,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
 * and acpi_tables busnum is default.
 */
-u8 bus_isa;
 u8 bus_sb800[6];
 u32 apicid_sb800;
 
@@ -70,23 +69,17 @@
 
   if (dev) {
     bus_sb800[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-    bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-    bus_isa++;
   }
 
   for (i = 0; i < 4; i++) {
     dev = dev_find_slot(bus_sb800[0], PCI_DEVFN(sbdn_sb800 + 0x14, i));
     if (dev) {
       bus_sb800[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-      bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-      bus_isa++;
     }
   }
 
 
   /* I/O APICs:   APIC ID Version State   Address */
-  bus_isa = 10;
   apicid_base = CONFIG_MAX_CPUS;
   apicid_sb800 = apicid_base;
 
diff --git a/src/mainboard/amd/union_station/irq_tables.c b/src/mainboard/amd/union_station/irq_tables.c
index dbbb2af..840e7b1 100644
--- a/src/mainboard/amd/union_station/irq_tables.c
+++ b/src/mainboard/amd/union_station/irq_tables.c
@@ -44,7 +44,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb800[6];
 extern unsigned long sbdn_sb800;
 
diff --git a/src/mainboard/asrock/e350m1/get_bus_conf.c b/src/mainboard/asrock/e350m1/get_bus_conf.c
index d3c2b12..2553588 100644
--- a/src/mainboard/asrock/e350m1/get_bus_conf.c
+++ b/src/mainboard/asrock/e350m1/get_bus_conf.c
@@ -30,7 +30,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
 * and acpi_tables busnum is default.
 */
-u8 bus_isa;
 u8 bus_sb800[6];
 u32 apicid_sb800;
 
@@ -65,23 +64,17 @@
 
   if (dev) {
     bus_sb800[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-    bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-    bus_isa++;
   }
 
   for (i = 0; i < 4; i++) {
     dev = dev_find_slot(bus_sb800[0], PCI_DEVFN(sbdn_sb800 + 0x14, i));
     if (dev) {
       bus_sb800[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-      bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-      bus_isa++;
     }
   }
 
 
   /* I/O APICs:   APIC ID Version State   Address */
-  bus_isa = 10;
   apicid_base = CONFIG_MAX_CPUS;
   apicid_sb800 = apicid_base;
 
diff --git a/src/mainboard/asrock/e350m1/irq_tables.c b/src/mainboard/asrock/e350m1/irq_tables.c
index dbbb2af..840e7b1 100644
--- a/src/mainboard/asrock/e350m1/irq_tables.c
+++ b/src/mainboard/asrock/e350m1/irq_tables.c
@@ -44,7 +44,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb800[6];
 extern unsigned long sbdn_sb800;
 
diff --git a/src/mainboard/asrock/imb-a180/get_bus_conf.c b/src/mainboard/asrock/imb-a180/get_bus_conf.c
index bc93c54..8610e65 100644
--- a/src/mainboard/asrock/imb-a180/get_bus_conf.c
+++ b/src/mainboard/asrock/imb-a180/get_bus_conf.c
@@ -29,7 +29,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-u8 bus_isa;
 u8 bus_yangtze[6];
 u32 apicid_yangtze;
 
@@ -75,22 +74,16 @@
 
 	if (dev) {
 		bus_yangtze[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_yangtze[0], PCI_DEVFN(sbdn_yangtze + 0x14, i));
 		if (dev) {
 			bus_yangtze[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 	apicid_yangtze = apicid_base;
 }
diff --git a/src/mainboard/asrock/imb-a180/irq_tables.c b/src/mainboard/asrock/imb-a180/irq_tables.c
index 2b4422e..29dc999 100644
--- a/src/mainboard/asrock/imb-a180/irq_tables.c
+++ b/src/mainboard/asrock/imb-a180/irq_tables.c
@@ -43,7 +43,6 @@
 	pirq_info->rfu = rfu;
 }
 
-extern u8 bus_isa;
 extern u8 bus_yangtze[6];
 extern unsigned long sbdn_yangtze;
 
diff --git a/src/mainboard/asus/f2a85-m/get_bus_conf.c b/src/mainboard/asus/f2a85-m/get_bus_conf.c
index e6f79da..389ab8f 100644
--- a/src/mainboard/asus/f2a85-m/get_bus_conf.c
+++ b/src/mainboard/asus/f2a85-m/get_bus_conf.c
@@ -30,7 +30,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-u8 bus_isa;
 u8 bus_hudson[6];
 u32 apicid_hudson;
 
@@ -65,22 +64,16 @@
 
 	if (dev) {
 		bus_hudson[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_hudson[0], PCI_DEVFN(sbdn_hudson + 0x14, i));
 		if (dev) {
 			bus_hudson[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 	apicid_hudson = apicid_base;
 }
diff --git a/src/mainboard/asus/f2a85-m/irq_tables.c b/src/mainboard/asus/f2a85-m/irq_tables.c
index 40dd6e9..8fb6ff3 100644
--- a/src/mainboard/asus/f2a85-m/irq_tables.c
+++ b/src/mainboard/asus/f2a85-m/irq_tables.c
@@ -42,7 +42,6 @@
 	pirq_info->rfu = rfu;
 }
 
-extern u8 bus_isa;
 extern u8 bus_hudson[6];
 extern unsigned long sbdn_hudson;
 
diff --git a/src/mainboard/gizmosphere/gizmo/get_bus_conf.c b/src/mainboard/gizmosphere/gizmo/get_bus_conf.c
index dd9d28c..646c543 100755
--- a/src/mainboard/gizmosphere/gizmo/get_bus_conf.c
+++ b/src/mainboard/gizmosphere/gizmo/get_bus_conf.c
@@ -31,7 +31,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
 * and acpi_tables busnum is default.
 */
-u8 bus_isa;
 u8 bus_sb800[6];
 u32 apicid_sb800;
 
@@ -68,22 +67,16 @@
 
 	if (dev) {
 		bus_sb800[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_sb800[0], PCI_DEVFN(sbdn_sb800 + 0x14, i));
 		if (dev) {
 			bus_sb800[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:    APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 	apicid_sb800 = apicid_base;
 
diff --git a/src/mainboard/gizmosphere/gizmo/irq_tables.c b/src/mainboard/gizmosphere/gizmo/irq_tables.c
index 09fb4e2..5ce2be9 100755
--- a/src/mainboard/gizmosphere/gizmo/irq_tables.c
+++ b/src/mainboard/gizmosphere/gizmo/irq_tables.c
@@ -45,7 +45,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb800[6];
 extern unsigned long sbdn_sb800;
 
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/get_bus_conf.c b/src/mainboard/hp/pavilion_m6_1035dx/get_bus_conf.c
index 57ece7c..bd5026d 100644
--- a/src/mainboard/hp/pavilion_m6_1035dx/get_bus_conf.c
+++ b/src/mainboard/hp/pavilion_m6_1035dx/get_bus_conf.c
@@ -31,7 +31,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-u8 bus_isa;
 u8 bus_hudson[6];
 u32 apicid_hudson;
 
@@ -65,22 +64,16 @@
 
 	if (dev) {
 		bus_hudson[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_hudson[0], PCI_DEVFN(sbdn_hudson + 0x14, i));
 		if (dev) {
 			bus_hudson[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 	apicid_hudson = apicid_base;
 
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/irq_tables.c b/src/mainboard/hp/pavilion_m6_1035dx/irq_tables.c
index 1d99b4c..b0f2a15 100644
--- a/src/mainboard/hp/pavilion_m6_1035dx/irq_tables.c
+++ b/src/mainboard/hp/pavilion_m6_1035dx/irq_tables.c
@@ -42,7 +42,6 @@
 	pirq_info->rfu = rfu;
 }
 
-extern u8 bus_isa;
 extern u8 bus_hudson[6];
 extern unsigned long sbdn_hudson;
 
diff --git a/src/mainboard/jetway/nf81-t56n-lf/get_bus_conf.c b/src/mainboard/jetway/nf81-t56n-lf/get_bus_conf.c
index e91072e..8bc5ddf 100644
--- a/src/mainboard/jetway/nf81-t56n-lf/get_bus_conf.c
+++ b/src/mainboard/jetway/nf81-t56n-lf/get_bus_conf.c
@@ -32,7 +32,6 @@
  * Global variables for mainboard layouts. These are shared by irqtable,
  * mptable and acpi_tables where busnum is default.
  */
-u8 bus_isa;
 u8 bus_sb800[6];
 u32 apicid_sb800;
 u32 apicver_sb800;
@@ -68,22 +67,16 @@
 
 	if (dev) {
 		bus_sb800[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_sb800[0], PCI_DEVFN(sbdn_sb800 + 0x14, i));
 		if (dev) {
 			bus_sb800[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:    APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 
 	/*
diff --git a/src/mainboard/jetway/nf81-t56n-lf/irq_tables.c b/src/mainboard/jetway/nf81-t56n-lf/irq_tables.c
index 36d104d..5205a46 100644
--- a/src/mainboard/jetway/nf81-t56n-lf/irq_tables.c
+++ b/src/mainboard/jetway/nf81-t56n-lf/irq_tables.c
@@ -43,7 +43,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb800[6];
 extern unsigned long sbdn_sb800;
 
diff --git a/src/mainboard/lippert/frontrunner-af/get_bus_conf.c b/src/mainboard/lippert/frontrunner-af/get_bus_conf.c
index dfece88..e736e54 100644
--- a/src/mainboard/lippert/frontrunner-af/get_bus_conf.c
+++ b/src/mainboard/lippert/frontrunner-af/get_bus_conf.c
@@ -30,7 +30,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
 * and acpi_tables busnum is default.
 */
-u8 bus_isa;
 u8 bus_sb800[6];
 u32 apicid_sb800;
 
@@ -66,22 +65,16 @@
 
 	if (dev) {
 		bus_sb800[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_sb800[0], PCI_DEVFN(sbdn_sb800 + 0x14, i));
 		if (dev) {
 			bus_sb800[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:    APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 	apicid_sb800 = apicid_base;
 
diff --git a/src/mainboard/lippert/frontrunner-af/irq_tables.c b/src/mainboard/lippert/frontrunner-af/irq_tables.c
index dbbb2af..840e7b1 100644
--- a/src/mainboard/lippert/frontrunner-af/irq_tables.c
+++ b/src/mainboard/lippert/frontrunner-af/irq_tables.c
@@ -44,7 +44,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb800[6];
 extern unsigned long sbdn_sb800;
 
diff --git a/src/mainboard/lippert/toucan-af/get_bus_conf.c b/src/mainboard/lippert/toucan-af/get_bus_conf.c
index eddd645..20dc3ae 100644
--- a/src/mainboard/lippert/toucan-af/get_bus_conf.c
+++ b/src/mainboard/lippert/toucan-af/get_bus_conf.c
@@ -30,7 +30,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
 * and acpi_tables busnum is default.
 */
-u8 bus_isa;
 u8 bus_sb800[6];
 u32 apicid_sb800;
 
@@ -64,22 +63,16 @@
 
 	if (dev) {
 		bus_sb800[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	for (i = 0; i < 4; i++) {
 		dev = dev_find_slot(bus_sb800[0], PCI_DEVFN(sbdn_sb800 + 0x14, i));
 		if (dev) {
 			bus_sb800[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 
 	/* I/O APICs:    APIC ID Version State   Address */
-	bus_isa = 10;
 	apicid_base = CONFIG_MAX_CPUS;
 	apicid_sb800 = apicid_base;
 
diff --git a/src/mainboard/lippert/toucan-af/irq_tables.c b/src/mainboard/lippert/toucan-af/irq_tables.c
index dbbb2af..840e7b1 100644
--- a/src/mainboard/lippert/toucan-af/irq_tables.c
+++ b/src/mainboard/lippert/toucan-af/irq_tables.c
@@ -44,7 +44,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sb800[6];
 extern unsigned long sbdn_sb800;
 
diff --git a/src/mainboard/supermicro/h8qgi/get_bus_conf.c b/src/mainboard/supermicro/h8qgi/get_bus_conf.c
index d084e48..f604e21 100644
--- a/src/mainboard/supermicro/h8qgi/get_bus_conf.c
+++ b/src/mainboard/supermicro/h8qgi/get_bus_conf.c
@@ -30,7 +30,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-u8 bus_isa;
 u8 bus_sp5100[2];
 u8 bus_sr5650[14];
 
@@ -62,9 +61,6 @@
 
 	if (dev) {
 		bus_sp5100[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	/* sr5650 */
@@ -72,10 +68,6 @@
 		dev = dev_find_slot(bus_sr5650[0], PCI_DEVFN(sbdn_sr5650 + i, 0));
 		if (dev) {
 			bus_sr5650[i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			if(255 != bus_sr5650[i]) {
-				bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-				bus_isa++;
-			}
 		}
 	}
 
@@ -84,14 +76,11 @@
 		dev = dev_find_slot(bus_sp5100[0], PCI_DEVFN(sbdn_sp5100 + 0x14, i));
 		if (dev) {
 			bus_sp5100[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 */
 
 
 	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
 
 }
diff --git a/src/mainboard/supermicro/h8qgi/irq_tables.c b/src/mainboard/supermicro/h8qgi/irq_tables.c
index 3c2caa2..6b1e226 100644
--- a/src/mainboard/supermicro/h8qgi/irq_tables.c
+++ b/src/mainboard/supermicro/h8qgi/irq_tables.c
@@ -44,7 +44,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sp5100[2];
 extern unsigned long sbdn_sp5100;
 
diff --git a/src/mainboard/supermicro/h8scm/get_bus_conf.c b/src/mainboard/supermicro/h8scm/get_bus_conf.c
index db2ca62..3cae35a 100644
--- a/src/mainboard/supermicro/h8scm/get_bus_conf.c
+++ b/src/mainboard/supermicro/h8scm/get_bus_conf.c
@@ -30,7 +30,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-u8 bus_isa;
 u8 bus_sp5100[2];
 u8 bus_sr5650[14];
 
@@ -62,9 +61,6 @@
 
 	if (dev) {
 		bus_sp5100[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	/* sr5650 */
@@ -72,10 +68,6 @@
 		dev = dev_find_slot(bus_sr5650[0], PCI_DEVFN(sbdn_sr5650 + i, 0));
 		if (dev) {
 			bus_sr5650[i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			if(255 != bus_sr5650[i]) {
-				bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-				bus_isa++;
-			}
 		}
 	}
 
@@ -84,14 +76,11 @@
 		dev = dev_find_slot(bus_sp5100[0], PCI_DEVFN(sbdn_sp5100 + 0x14, i));
 		if (dev) {
 			bus_sp5100[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 */
 
 
 	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
 
 }
diff --git a/src/mainboard/supermicro/h8scm/irq_tables.c b/src/mainboard/supermicro/h8scm/irq_tables.c
index 53ce5c7..9770e6d 100644
--- a/src/mainboard/supermicro/h8scm/irq_tables.c
+++ b/src/mainboard/supermicro/h8scm/irq_tables.c
@@ -44,7 +44,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sp5100[2];
 extern unsigned long sbdn_sp5100;
 
diff --git a/src/mainboard/tyan/s8226/get_bus_conf.c b/src/mainboard/tyan/s8226/get_bus_conf.c
index ea06499..3cbe59c 100644
--- a/src/mainboard/tyan/s8226/get_bus_conf.c
+++ b/src/mainboard/tyan/s8226/get_bus_conf.c
@@ -29,7 +29,6 @@
 /* Global variables for MB layouts and these will be shared by irqtable mptable
  * and acpi_tables busnum is default.
  */
-int bus_isa;
 u8 bus_sp5100[2];
 u8 bus_sr5650[14];
 
@@ -63,9 +62,6 @@
 
 	if (dev) {
 		bus_sp5100[1] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-
-		bus_isa = (int)pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-		bus_isa++;
 	}
 
 	/* sr5650 */
@@ -73,10 +69,6 @@
 		dev = dev_find_slot(bus_sr5650[0], PCI_DEVFN(sbdn_sr5650 + i, 0));
 		if (dev) {
 			bus_sr5650[i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			if(255 != bus_sr5650[i]) {
-				bus_isa = (int)pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-				bus_isa++;
-			}
 		}
 	}
 
@@ -85,14 +77,9 @@
 		dev = dev_find_slot(bus_sp5100[0], PCI_DEVFN(sbdn_sp5100 + 0x14, i));
 		if (dev) {
 			bus_sp5100[2 + i] = pci_read_config8(dev, PCI_SECONDARY_BUS);
-			bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS);
-			bus_isa++;
 		}
 	}
 */
 
 
-	/* I/O APICs:   APIC ID Version State   Address */
-	bus_isa = 10;
-
 }
diff --git a/src/mainboard/tyan/s8226/irq_tables.c b/src/mainboard/tyan/s8226/irq_tables.c
index 3c2caa2..6b1e226 100644
--- a/src/mainboard/tyan/s8226/irq_tables.c
+++ b/src/mainboard/tyan/s8226/irq_tables.c
@@ -44,7 +44,6 @@
 	pirq_info->slot = slot;
 	pirq_info->rfu = rfu;
 }
-extern u8 bus_isa;
 extern u8 bus_sp5100[2];
 extern unsigned long sbdn_sp5100;
 
