patch-2.4.4 linux/arch/ia64/sn/io/sgi_io_init.c

Next file: linux/arch/ia64/sn/io/sgi_io_sim.c
Previous file: linux/arch/ia64/sn/io/sgi_if.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.3/linux/arch/ia64/sn/io/sgi_io_init.c linux/arch/ia64/sn/io/sgi_io_init.c
@@ -79,13 +79,8 @@
 void
 sgi_master_io_infr_init(void)
 {
-#ifdef Colin
-	/*
-	 * Simulate Big Window 0.
-	 * Only when we build for lutsen etc. ..
-	 */
-	simulated_BW0_init();
-#endif
+	int cnode;
+	extern int maxnodes;
 
 	/*
 	 * Do any early init stuff .. einit_tbl[] etc.
@@ -122,7 +117,9 @@
 	sn_mp_setup();
 
 	DBG("--> sgi_master_io_infr_init: calling per_hub_init(0).\n");
-	per_hub_init(0); /* Need to get and send in actual cnode number */
+	for (cnode = 0; cnode < maxnodes; cnode++) {
+		per_hub_init(cnode);
+	}
 
 	/* We can do headless hub cnodes here .. */
 
@@ -188,7 +185,7 @@
 	/* Emulate cboot() .. */
 	mlreset(1); /* This is a slave cpu */
 
-	per_hub_init(0); /* Need to get and send in actual cnode number */
+	// per_hub_init(0); /* Need to get and send in actual cnode number */
 
 	/* Done */
 }
@@ -212,12 +209,8 @@
 	 * do not currently support yet .. just a hack for now.
 	 */
 #ifdef NUMA_BASE
-	DBG("sn_mp_setup(): maxnodes= %d  numnodes= %d\n", maxnodes,numnodes);
         maxnodes = numnodes;
-#ifdef SIMULATED_KLGRAPH
-	maxnodes = 1;
-	numnodes = 1;
-#endif /* SIMULATED_KLGRAPH */
+	DBG("sn_mp_setup(): maxnodes= %d  numnodes= %d\n", maxnodes,numnodes);
         printk("sn_mp_setup(): Allocating backing store for *Nodepdaindr[%2d] \n",
                 maxnodes);
 
@@ -259,6 +252,14 @@
 	 *      ml/SN/promif.c
 	 */
 
+#ifdef CONFIG_IA64_SGI_SN1
+	for (cpu = 0; cpu < smp_num_cpus; cpu++) {
+		/* Skip holes in CPU space */
+		if (cpu_enabled(cpu)) {
+			init_platform_pda(cpu);
+		}
+	}
+#endif
 	for (cnode = 0; cnode < maxnodes; cnode++) {
 		/*
 		 * Set up platform-dependent nodepda fields.
@@ -267,29 +268,7 @@
 		 */
 		DBG("sn_mp_io_setup: calling init_platform_nodepda(%2d)\n",cnode);
 		init_platform_nodepda(Nodepdaindr[cnode], cnode);
-
-		/*
-		 * This routine clears the Hub's Interrupt registers.
-		 */
-#ifndef CONFIG_IA64_SGI_IO
-		/*
-		 * We need to move this intr_clear_all() routine 
-		 * from SN/intr.c to a more appropriate file.
-		 * Talk to Al Mayer.
-		 */
-                intr_clear_all(COMPACT_TO_NASID_NODEID(cnode));
-#endif
 	}
-
-#ifdef CONFIG_IA64_SGI_IO
-	for (cpu = 0; cpu < smp_num_cpus; cpu++) {
-		/* Skip holes in CPU space */
-		if (cpu_enabled(cpu)) {
-			init_platform_pda(cpu);
-		}
-	}
-#endif
-
 	/*
 	 * Initialize platform-dependent vertices in the hwgraph:
 	 *	module
@@ -309,4 +288,26 @@
 	klhwg_add_all_modules(hwgraph_root);
 	DBG("sn_mp_setup: calling klhwg_add_all_nodes()\n");
 	klhwg_add_all_nodes(hwgraph_root);
+
+
+	for (cnode = 0; cnode < maxnodes; cnode++) {
+
+		/*
+		 * This routine clears the Hub's Interrupt registers.
+		 */
+#ifdef CONFIG_IA64_SGI_SN1
+		/*
+		 * We need to move this intr_clear_all() routine 
+		 * from SN/intr.c to a more appropriate file.
+		 * Talk to Al Mayer.
+		 */
+                intr_clear_all(COMPACT_TO_NASID_NODEID(cnode));
+		/* now init the hub */
+	//	per_hub_init(cnode);
+#endif
+	}
+
+#if defined(CONFIG_IA64_SGI_SYNERGY_PERF)
+	synergy_perf_init();
+#endif /* CONFIG_IA64_SGI_SYNERGY_PERF */
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)