diff options
author | Hyungwoo Yang <hyungwoo.yang@intel.com> | 2019-04-15 22:17:11 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-04-26 04:19:18 -0700 |
commit | f730c0c1ab2cadb820676ef09ebb57888d48cb96 (patch) | |
tree | 8953f42e6776f828c0f55cc2c01d44c087a43511 /core/minute-ia/task_defs.h | |
parent | 6549da39d519b4d07e8bca7bef0393549765412b (diff) | |
download | chrome-ec-f730c0c1ab2cadb820676ef09ebb57888d48cb96.tar.gz |
ish: fix s/w generated interrupt request
Current s/w generated IRQ uses LAPIC's ICR but it causes pending
interrupts for other IRQs in IOAPIC and leads LVT error with
illegal vector. So instead of using ICR, we use "int" instruction.
BRANCH=none
BUG=b:129937881,b:124128140
TEST=Tested on Arcada platform
Change-Id: I49c4120e7355f9a98d20d5ed259c4fdf6bad5196
Signed-off-by: Hyungwoo Yang <hyungwoo.yang@intel.com>
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1568786
Commit-Ready: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Diffstat (limited to 'core/minute-ia/task_defs.h')
-rw-r--r-- | core/minute-ia/task_defs.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/core/minute-ia/task_defs.h b/core/minute-ia/task_defs.h index 15aca6b8b5..01632392cb 100644 --- a/core/minute-ia/task_defs.h +++ b/core/minute-ia/task_defs.h @@ -19,6 +19,10 @@ #define USE_FPU_OFFSET_STR STRINGIFY(USE_FPU_OFFSET) /* "20" */ #define FPU_CTX_OFFSET_STR STRINGIFY(FPU_CTX_OFFSET) /* "24" */ + +asm (".equ USE_FPU_OFFSET, "USE_FPU_OFFSET_STR); +asm (".equ FPU_CTX_OFFSET, "FPU_CTX_OFFSET_STR); + #endif #endif /* CONFIG_FPU */ @@ -42,6 +46,7 @@ typedef union { int __task_start(int *start_called); void __switchto(void); +void sw_irq_handler(void); /* Only the IF bit is set so tasks start with interrupts enabled. */ #define INITIAL_EFLAGS (0x200UL) |