Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-5]: src/sys/arch/atari/atari Pullup: atari_init.c 1.49-1.50, pm...



details:   https://anonhg.NetBSD.org/src/rev/3de555d2c4fa
branches:  netbsd-1-5
changeset: 488442:3de555d2c4fa
user:      leo <leo%NetBSD.org@localhost>
date:      Thu Jul 06 11:35:18 2000 +0000

description:
Pullup: atari_init.c 1.49-1.50, pmap.c 1.56-1.57. Approved by thorpej.

Get 060 CacheCopyBack support in line with the amiga (and working ;-)

diffstat:

 sys/arch/atari/atari/atari_init.c |  15 +++++++++++----
 sys/arch/atari/atari/pmap.c       |   8 +++++---
 2 files changed, 16 insertions(+), 7 deletions(-)

diffs (71 lines):

diff -r d2b5c7ff3dbb -r 3de555d2c4fa sys/arch/atari/atari/atari_init.c
--- a/sys/arch/atari/atari/atari_init.c Thu Jul 06 11:29:58 2000 +0000
+++ b/sys/arch/atari/atari/atari_init.c Thu Jul 06 11:35:18 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: atari_init.c,v 1.48 2000/03/28 23:57:25 simonb Exp $   */
+/*     $NetBSD: atari_init.c,v 1.48.4.1 2000/07/06 11:35:18 leo Exp $  */
 
 /*
  * Copyright (c) 1995 Leo Weppelman
@@ -174,6 +174,7 @@
  * 
  * Very crude 68040 support by Michael L. Hitch.
  */
+int kernel_copyback = 1;
 
 void
 start_c(id, ttphystart, ttphysize, stphysize, esym_addr)
@@ -367,13 +368,19 @@
         * recommended by Motorola; for the 68060 mandatory)
         */
        if (mmutype == MMU_68040) {
+
+           if (kernel_copyback)
+               pg_proto |= PG_CCB;
+
            for (; i < (u_int)Sysseg; i += NBPG, pg_proto += NBPG)
                *pg++ = pg_proto;
+
            pg_proto = (pg_proto & ~PG_CCB) | PG_CI;
-           for (; i < (u_int)&Sysseg[kstsize * NPTEPG]; i += NBPG,
-                                                        pg_proto += NBPG)
+           for (; i < pstart; i += NBPG, pg_proto += NBPG)
                *pg++ = pg_proto;
-           pg_proto = (pg_proto & ~PG_CI) | PG_CCB;
+           pg_proto = (pg_proto & ~PG_CI);
+           if (kernel_copyback)
+               pg_proto |= PG_CCB;
        }
 #endif /* defined(M68040) || defined(M68060) */
 
diff -r d2b5c7ff3dbb -r 3de555d2c4fa sys/arch/atari/atari/pmap.c
--- a/sys/arch/atari/atari/pmap.c       Thu Jul 06 11:29:58 2000 +0000
+++ b/sys/arch/atari/atari/pmap.c       Thu Jul 06 11:35:18 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.55 2000/03/26 20:42:26 kleink Exp $ */
+/*     $NetBSD: pmap.c,v 1.55.4.1 2000/07/06 11:35:19 leo Exp $        */
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -1083,6 +1083,8 @@
  *     or lose information.  That is, this routine must actually
  *     insert this page into the given map NOW.
  */
+extern int kernel_copyback;
+
 int
 pmap_enter(pmap, va, pa, prot, flags)
        register pmap_t pmap;
@@ -1308,10 +1310,10 @@
        if (wired)
                npte |= PG_W;
        if (!checkpv && !cacheable)
-               npte |= PG_CI;
+               npte |= (cputype == CPU_68060 ? PG_CIN : PG_CI);
 #if defined(M68040) || defined(M68060)
        else if (mmutype == MMU_68040 && (npte & PG_PROT) == PG_RW &&
-                pmap != pmap_kernel())
+                (kernel_copyback || pmap != pmap_kernel()))
                npte |= PG_CCB;         /* cache copyback */
 #endif
        /*



Home | Main Index | Thread Index | Old Index