[OpenBIOS] [commit] r1041 - trunk/openbios-devel/arch/ppc/qemu

repository service svn at openbios.org
Mon May 23 00:29:33 CEST 2011


Author: afaerber
Date: Mon May 23 00:29:33 2011
New Revision: 1041
URL: http://tracker.coreboot.org/trac/openbios/changeset/1041

Log:
ppc64: Don't set Kp bit on SLB

Since QEMU 81762d6dd0d430d87024f2c83e9c4dcc4329fb7d (Clean up
PowerPC SLB handling code) we never got to the ppc64 OpenBIOS banner.

According to Alex' debugging this is due to the Kp bit being set.

The code was supposed to be a 1:1 translation of the old mtsrin
code, which did not set Kp bit. So don't set Kp bit with slbmte.

Introduce a define for the shift, suggested by Alex.

Signed-off-by: Andreas Färber <andreas.faerber at web.de>
Acked-by: Alexander Graf <agraf at suse.de>

Modified:
   trunk/openbios-devel/arch/ppc/qemu/ofmem.c

Modified: trunk/openbios-devel/arch/ppc/qemu/ofmem.c
==============================================================================
--- trunk/openbios-devel/arch/ppc/qemu/ofmem.c	Sun May 22 18:39:48 2011	(r1040)
+++ trunk/openbios-devel/arch/ppc/qemu/ofmem.c	Mon May 23 00:29:33 2011	(r1041)
@@ -25,6 +25,8 @@
 
 #define BIT(n)		(1U << (31 - (n)))
 
+#define SLB_VSID_SHIFT 12
+
 /* called from assembly */
 extern void dsi_exception(void);
 extern void isi_exception(void);
@@ -497,7 +499,7 @@
 
     slbia(); /* Invalidate all SLBs except SLB 0 */
     for (i = 0; i < 16; i++) {
-        unsigned long rs = ((0x400 + i) << 12) | (0x10 << 7);
+        unsigned long rs = (0x400 + i) << SLB_VSID_SHIFT;
         unsigned long rb = ((unsigned long)i << 28) | (1 << 27) | i;
         slbmte(rs, rb);
     }



More information about the OpenBIOS mailing list