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@web.de Acked-by: Alexander Graf agraf@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); }