Re: WWW Linux Sparc-32 SMP

From: Anton Blanchard (anton@linuxcare.com)
Date: Wed Jun 21 2000 - 19:49:05 EST


 
> To put it mildly, it did not work on my SS-10 with Hypersparc. It is
> VERY freaky. The first time I tried to boot it would hang when it tried to
> add swap. I hadn't stripped vmlinux yet, so I went and tried that, then it
> got past adding swap but freaked when it should have run the init scripts.

Yes this was my fault. Hypersparc doesn't have context tags on its icache
so we must flush it each time we change contexts.

Cheers,
Anton

--- linux/arch/sparc/mm/srmmu.c Thu Jun 22 08:45:28 2000
+++ linux_sparc32/arch/sparc/mm/srmmu.c Thu Jun 22 10:43:17 2000
@@ -88,6 +88,8 @@
 int viking_mxcc_present = 0;
 spinlock_t srmmu_context_spinlock = SPIN_LOCK_UNLOCKED;
 
+int is_hypersparc;
+
 /*
  * In general all page table modifications should use the V8 atomic
  * swap instruction. This insures the mmu and the cpu are in sync
@@ -542,7 +544,10 @@
                 spin_unlock(&srmmu_context_spinlock);
                 srmmu_ctxd_set(&srmmu_context_table[mm->context], mm->pgd);
         }
- /* XXX should we hyper_flush_whole_icache() here - Anton */
+
+ if (is_hypersparc)
+ hyper_flush_whole_icache();
+
         srmmu_set_context(mm->context);
 }
 
@@ -1448,6 +1453,8 @@
         srmmu_name = "ROSS HyperSparc";
 
         init_vac_layout();
+
+ is_hypersparc = 1;
 
         BTFIXUPSET_CALL(pte_clear, srmmu_pte_clear, BTFIXUPCALL_NORM);
         BTFIXUPSET_CALL(pmd_clear, srmmu_pmd_clear, BTFIXUPCALL_NORM);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Jun 23 2000 - 21:00:23 EST