Date: Sat, 19 Mar 2005 00:15:09 GMT From: Juli Mallett <jmallett@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 73488 for review Message-ID: <200503190015.j2J0F98Q047048@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=73488 Change 73488 by jmallett@jmallett_windward on 2005/03/19 00:14:37 Stop using cache, sort phys_avail[] Affected files ... .. //depot/projects/mips/sys/conf/Makefile.mips#17 edit .. //depot/projects/mips/sys/conf/kern.sgimips.mk#2 edit .. //depot/projects/mips/sys/mips/conf/GENERIC#17 edit .. //depot/projects/mips/sys/mips/conf/INDY#16 edit .. //depot/projects/mips/sys/mips/mips/pmap.c#41 edit Differences ... ==== //depot/projects/mips/sys/conf/Makefile.mips#17 (text+ko) ==== ==== //depot/projects/mips/sys/conf/kern.sgimips.mk#2 (text+ko) ==== @@ -4,4 +4,4 @@ # # $FreeBSD$ -TEXTADDR?= 0x80069000 +TEXTADDR?= 0xffffffffa0069000 ==== //depot/projects/mips/sys/mips/conf/GENERIC#17 (text+ko) ==== @@ -10,7 +10,7 @@ makeoptions MIPSOPTS=-mips3 #Build for a MIPS III -#makeoptions TEXTADDR=0x88069000 #Indy +#makeoptions TEXTADDR=0xa8069000 #Indy # Platform support platform sgimips #SGI MIPS systems. ==== //depot/projects/mips/sys/mips/conf/INDY#16 (text+ko) ==== @@ -10,9 +10,7 @@ hints "INDY.hints" -makeoptions MIPSOPTS=-mips3 #Build for a MIPS III - -makeoptions TEXTADDR=0xFFFFFFFF88069000 #Indy +makeoptions TEXTADDR=0xFFFFFFFFA8069000 #Indy # Platform support platform sgimips #SGI MIPS systems. ==== //depot/projects/mips/sys/mips/mips/pmap.c#41 (text+ko) ==== @@ -248,7 +248,7 @@ pa = phys_avail[0]; phys_avail[0] += size; - va = MIPS_PHYS_TO_KSEG0(pa); + va = MIPS_PHYS_TO_KSEG1(pa); bzero((caddr_t) va, size); return va; } @@ -264,6 +264,26 @@ { int i; + /* Sort. */ +again: + for (i = 0; phys_avail[i + 1] != 0; i += 2) { + if (i < 2) + continue; + if (phys_avail[i - 2] > phys_avail[i]) { + vm_paddr_t ptemp[2]; + + ptemp[0] = phys_avail[i+0]; + ptemp[1] = phys_avail[i+1]; + + phys_avail[i + 0] = phys_avail[i - 2]; + phys_avail[i + 1] = phys_avail[i - 1]; + + phys_avail[i - 2] = ptemp[0]; + phys_avail[i - 1] = ptemp[1]; + goto again; + } + } + /* * Steal the message buffer from the beginning of memory. */ @@ -331,7 +351,7 @@ break; } - va = (void *)MIPS_PHYS_TO_KSEG0(m->phys_addr); + va = (void *)MIPS_PHYS_TO_KSEG1(m->phys_addr); if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) bzero(va, PAGE_SIZE); return (va); @@ -342,7 +362,7 @@ { vm_page_t m; - m = PHYS_TO_VM_PAGE(MIPS_KSEG0_TO_PHYS((vm_offset_t)mem)); + m = PHYS_TO_VM_PAGE(MIPS_KSEG1_TO_PHYS((vm_offset_t)mem)); vm_page_lock_queues(); vm_page_free(m); vm_page_unlock_queues(); @@ -649,7 +669,7 @@ #if 0 /* XXX notyet, need pmap_extract etc., to love us. */ return MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_UC, start); #endif - return MIPS_PHYS_TO_KSEG0(start); + return MIPS_PHYS_TO_KSEG1(start); } void @@ -699,7 +719,7 @@ vm_page_unlock_queues(); VM_OBJECT_UNLOCK(pmap->pm_pteobj); - pmap->pm_lev1 = (pt_entry_t*) MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(lev1pg)); + pmap->pm_lev1 = (pt_entry_t*) MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(lev1pg)); /* install self-referential address mapping entry (not PG_ASM) */ pmap->pm_lev1[PTLEV1I] = pmap_phys_to_pte(VM_PAGE_TO_PHYS(lev1pg)) @@ -1254,7 +1274,7 @@ void pmap_zero_page(vm_page_t m) { - vm_offset_t va = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(m)); + vm_offset_t va = MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(m)); bzero((caddr_t) va, PAGE_SIZE); } @@ -1270,7 +1290,7 @@ void pmap_zero_page_area(vm_page_t m, int off, int size) { - vm_offset_t va = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(m)); + vm_offset_t va = MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(m)); bzero((char *)(caddr_t)va + off, size); } @@ -1284,7 +1304,7 @@ void pmap_zero_page_idle(vm_page_t m) { - vm_offset_t va = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(m)); + vm_offset_t va = MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(m)); bzero((caddr_t) va, PAGE_SIZE); } @@ -1298,8 +1318,8 @@ void pmap_copy_page(vm_page_t msrc, vm_page_t mdst) { - vm_offset_t src = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(msrc)); - vm_offset_t dst = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(mdst)); + vm_offset_t src = MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(msrc)); + vm_offset_t dst = MIPS_PHYS_TO_KSEG1(VM_PAGE_TO_PHYS(mdst)); bcopy((caddr_t) src, (caddr_t) dst, PAGE_SIZE); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503190015.j2J0F98Q047048>