From 4dd9607ff06416f09b5d91dc531a23c9c54d14ec Mon Sep 17 00:00:00 2001 From: Rushikesh S Kadam Date: Sat, 3 Nov 2018 15:35:06 +0530 Subject: 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 Reviewed-on: https://chromium-review.googlesource.com/1316702 Commit-Ready: Caveh Jalali Reviewed-by: Caveh Jalali --- core/minute-ia/init.S | 4 ++++ 1 file changed, 4 insertions(+) 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 -- cgit v1.2.1