]> git.proxmox.com Git - grub2.git/commitdiff
Disable VSX instruction
authorPaulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com>
Thu, 25 Sep 2014 22:33:39 +0000 (19:33 -0300)
committerColin Watson <cjwatson@debian.org>
Tue, 1 Nov 2016 11:04:56 +0000 (11:04 +0000)
VSX bit is enabled by default for Power7 and Power8 CPU models,
so we need to disable them in order to avoid instruction exceptions.
Kernel will activate it when necessary.

* grub-core/kern/powerpc/ieee1275/startup.S: Disable VSX.

Also-By: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Also-By: Colin Watson <cjwatson@debian.org>
Origin: other, https://lists.gnu.org/archive/html/grub-devel/2014-09/msg00078.html
Last-Update: 2015-01-27

Patch-Name: ppc64el-disable-vsx.patch

grub-core/kern/powerpc/ieee1275/startup.S

index 21c884b433897e1dae15b06d1340ce0280f77c31..de9a9601a9c2742695b78a4a8844d26492092082 100644 (file)
@@ -20,6 +20,8 @@
 #include <grub/symbol.h>
 #include <grub/offsets.h>
 
+#define MSR_VSX 0x80
+
 .extern __bss_start
 .extern _end
 
        .globl  start, _start
 start:
 _start:
+ _start:
+
+    /* Disable VSX instruction */
+       mfmsr  0
+       oris   0,0,MSR_VSX
+       /* The "VSX Available" bit is in the lower half of the MSR, so we
+          don't need mtmsrd, which in any case won't work in 32-bit mode.  */
+       mtmsr  0
+       isync
+
        li      2, 0
        li      13, 0