Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Jan 2010 22:18:29 GMT
From:      Rafal Jaworowski <raj@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 172680 for review
Message-ID:  <201001062218.o06MITca044604@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=172680

Change 172680 by raj@raj_fdt on 2010/01/06 22:17:59

	mpc85xx: Clean up LAW regs early, so we can start with a known state.

Affected files ...

.. //depot/projects/fdt/sys/powerpc/booke/platform_bare.c#3 edit

Differences ...

==== //depot/projects/fdt/sys/powerpc/booke/platform_bare.c#3 (text+ko) ====

@@ -90,7 +90,8 @@
 static int
 bare_probe(platform_t plat)
 {
-	uint32_t ver;
+	uint32_t ver, sr;
+	int i, law_max, tgt;
 
 	ver = SVR_VER(mfspr(SPR_SVR));
 	if (ver == SVR_MPC8572E || ver == SVR_MPC8572)
@@ -98,6 +99,23 @@
 	else
 		maxcpu = 1;
 
+	/*
+	 * Clear local access windows. Skip DRAM entries, so we don't shoot
+	 * ourselves in the foot.
+	 */
+	law_max = law_getmax();
+	for (i = 0; i < law_max; i++) {
+		sr = ccsr_read4(OCP85XX_LAWSR(i));
+		if ((sr & 0x80000000) == 0)
+			continue;
+		tgt = (sr & 0x01f00000) >> 20;
+		if (tgt == OCP85XX_TGTIF_RAM1 || tgt == OCP85XX_TGTIF_RAM2 ||
+		    tgt == OCP85XX_TGTIF_RAM_INTL)
+			continue;
+
+		ccsr_write4(OCP85XX_LAWSR(i), sr & 0x7fffffff);
+	}
+
 	return (BUS_PROBE_GENERIC);
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001062218.o06MITca044604>