summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRushikesh S Kadam <rushikesh.s.kadam@intel.com>2018-11-03 15:35:06 +0530
committerchrome-bot <chrome-bot@chromium.org>2018-12-18 08:27:09 -0800
commit4dd9607ff06416f09b5d91dc531a23c9c54d14ec (patch)
tree8d8c7e635fb5e17840f69d16bc004a48956bb0fb
parent59364c835d14689c55e66551cd48c668814541df (diff)
downloadchrome-ec-4dd9607ff06416f09b5d91dc531a23c9c54d14ec.tar.gz
core/minute-ia: Reset Task-switched flag during init
It is observed that CRO.TS may be set prior to main ISH FW entry. In such case, an ESC instruction such as fninit assembly instruction for FPU initialization, will cause a fault. The execution handlers are not setup this early in FW initialization phase, and will lead to ISH CPU reset. This patch resets the TS flag in early FW initilization. BRANCH=none BUG=b:120051132 TEST=Test host FW loading for main ISH FW. Change-Id: I7e330e2d1f39cc4a349f308ec0d046c19db281de Signed-off-by: Rushikesh S Kadam <rushikesh.s.kadam@intel.com> Reviewed-on: https://chromium-review.googlesource.com/1316702 Commit-Ready: Caveh Jalali <caveh@google.com> Reviewed-by: Caveh Jalali <caveh@google.com>
-rw-r--r--core/minute-ia/init.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/core/minute-ia/init.S b/core/minute-ia/init.S
index 5ba0cbf581..67340f343c 100644
--- a/core/minute-ia/init.S
+++ b/core/minute-ia/init.S
@@ -348,6 +348,10 @@ reset:
# Load IDT
lidt __idt_ptr
+ # Reset Task-Switched flag to prevent an ESC instruction such
+ # as fninit, from triggering a Device-not-available fault
+ clts
+
#ifdef CONFIG_FPU
fninit
#endif