Subject: Re: Panic during dump
To: None <Richard.Earnshaw@buzzard.freeserve.co.uk>
From: Jason R Thorpe <thorpej@wasabisystems.com>
List: port-arm
Date: 05/07/2002 16:44:07
--7fwXp2o0gOrkU5lS
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Tue, May 07, 2002 at 09:19:55PM +0100, Richard Earnshaw wrote:

 > Well, that stops the panic, but unfortunately the dump locks up on the 
 > first block ;-(
 > 
 > May not be related of course.

Hm.  Take 2, this time without omitting the TLB flush.

-- 
        -- Jason R. Thorpe <thorpej@wasabisystems.com>

--7fwXp2o0gOrkU5lS
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=arm-pmap-patch

Index: pmap.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/arm/arm32/pmap.c,v
retrieving revision 1.96
diff -u -r1.96 pmap.c
--- pmap.c	2002/04/24 17:35:10	1.96
+++ pmap.c	2002/05/07 23:43:17
@@ -938,12 +938,21 @@
  *
  *	For now, VM is already on, we only need to map the
  *	specified memory.
+ *
+ *	XXX This routine should eventually go away; it's only used
+ *	XXX by machine-dependent crash dump code.
  */
 vaddr_t
 pmap_map(vaddr_t va, paddr_t spa, paddr_t epa, vm_prot_t prot)
 {
+	pt_entry_t *pte;
+
 	while (spa < epa) {
-		pmap_kenter_pa(va, spa, prot);
+		pte = vtopte(va);
+
+		*pte = L2_S_PROTO | spa |
+		    L2_S_PROT(PTE_KERNEL, prot) | pte_l2_s_cache_mode;
+		cpu_tlb_flushID_SE(va);
 		va += NBPG;
 		spa += NBPG;
 	}

--7fwXp2o0gOrkU5lS--