diff options
Diffstat (limited to 'debian/patches/ppc64el-disable-vsx.patch')
-rw-r--r-- | debian/patches/ppc64el-disable-vsx.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/debian/patches/ppc64el-disable-vsx.patch b/debian/patches/ppc64el-disable-vsx.patch new file mode 100644 index 0000000..bd29ae8 --- /dev/null +++ b/debian/patches/ppc64el-disable-vsx.patch @@ -0,0 +1,52 @@ +From c1c72eb757d40208128fb1da02199b0210a206ab Mon Sep 17 00:00:00 2001 +From: Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com> +Date: Thu, 25 Sep 2014 19:33:39 -0300 +Subject: Disable VSX instruction + +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 | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/grub-core/kern/powerpc/ieee1275/startup.S b/grub-core/kern/powerpc/ieee1275/startup.S +index 21c884b43..de9a9601a 100644 +--- a/grub-core/kern/powerpc/ieee1275/startup.S ++++ b/grub-core/kern/powerpc/ieee1275/startup.S +@@ -20,6 +20,8 @@ + #include <grub/symbol.h> + #include <grub/offsets.h> + ++#define MSR_VSX 0x80 ++ + .extern __bss_start + .extern _end + +@@ -28,6 +30,16 @@ + .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 + |