52 lines
1.4 KiB
Diff
52 lines
1.4 KiB
Diff
From efc381a55124b12fc74ed8117283f11367c9372a 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
|
|
|