PERFORCE change 151665 for review
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Tue Oct 21 15:04:42 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=151665
Change 151665 by nwhitehorn at nwhitehorn_trantor on 2008/10/21 15:04:40
On 64-bit systems with an enabled hypervisor (e.g. IBM G5 systems),
the system becomes extremely unhappy if you suddenly switch
hyper-privileged mode off.
On a non-partitioned IBM system, you are supposed to keep MSR[HV] = 1
at all times, but our trap handlers zeroed the upper 32 bits of the MSR.
Instead, or the current MSR with the new SRR1 value to preserve any
stray bits right before we exit the handler.
This patch results in booting multi-user under Mambo. And now we return
to my regularly scheduled field theory assignment...
Affected files ...
.. //depot/projects/ppc-g5/sys/powerpc/aim/trap_subr.S#4 edit
Differences ...
==== //depot/projects/ppc-g5/sys/powerpc/aim/trap_subr.S#4 (text+ko) ====
@@ -224,6 +224,11 @@
lwz %r3,(savearea+CPUSAVE_SRR0)(%r2); /* restore srr0 */ \
mtsrr0 %r3; \
lwz %r3,(savearea+CPUSAVE_SRR1)(%r2); /* restore srr1 */ \
+ \
+ /* Make sure HV bit of MSR propagated to SRR1 */ \
+ mfmsr %r2; \
+ or %r3,%r2,%r3; \
+ \
mtsrr1 %r3; \
mfsprg2 %r2; /* restore r2 & r3 */ \
mfsprg3 %r3
More information about the p4-projects
mailing list