[OpenBIOS] [commit] r1267 - trunk/openbios-devel/arch/sparc32

repository service svn at openbios.org
Sun Feb 16 17:26:41 CET 2014


Author: mcayland
Date: Sun Feb 16 17:26:40 2014
New Revision: 1267
URL: http://tracker.coreboot.org/trac/openbios/changeset/1267

Log:
SPARC32: unmap freed memory in ofmem_arch_unmap_pages()

During NextStep boot, all the virtual memory is probed so freed memory must be
properly unmapped.

Signed-off-by: Olivier Danet <odanet at caramail.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>

Modified:
   trunk/openbios-devel/arch/sparc32/ofmem_sparc32.c

Modified: trunk/openbios-devel/arch/sparc32/ofmem_sparc32.c
==============================================================================
--- trunk/openbios-devel/arch/sparc32/ofmem_sparc32.c	Sun Feb 16 17:26:37 2014	(r1266)
+++ trunk/openbios-devel/arch/sparc32/ofmem_sparc32.c	Sun Feb 16 17:26:40 2014	(r1267)
@@ -142,8 +142,16 @@
 /* Unmap a set of pages */
 void ofmem_arch_unmap_pages(ucell virt, ucell size)
 {
-    /* OFMEM re-maps the pages for us, so just ensure the TLB is in sync */
-    srmmu_flush_whole_tlb();
+	unsigned long pa;
+	ucell i;
+
+	for (i = 0; i < size; i += PAGE_SIZE) {
+		pa = find_pte(virt, 0);
+		*(uint32_t *)pa = 0;
+		virt += PAGE_SIZE;
+	}
+
+	srmmu_flush_whole_tlb(); 
 }
 
 /* Map a set of pages */



More information about the OpenBIOS mailing list