summaryrefslogtreecommitdiff
path: root/board/hatch/board.c
diff options
context:
space:
mode:
authorRong Chang <rongchang@chromium.org>2019-01-15 16:09:53 +0800
committerchrome-bot <chrome-bot@chromium.org>2019-02-27 04:59:23 -0800
commita3c27b39fa69f280a3728a5cf24de57a5d3ccb0d (patch)
treebf9202f135b1f9d464113ee98a7e509478504df1 /board/hatch/board.c
parentf8a6420fb6181c50301cab7a133524424a06481d (diff)
downloadchrome-ec-a3c27b39fa69f280a3728a5cf24de57a5d3ccb0d.tar.gz
ish: fix LAPIC error by sending EOI to IOAPIC RTE
ISH APIC has a bug when sending multiple IOAPIC interrupts to LAPIC at the same time, there's a small chance that the IRR (interrupt request register) states are not sync between LAPIC and IOAPIC REDTBL (redirection table). LAPIC raises internal error with error code 'receive illegal vector' in ESR. This CL handles above LAPIC local vector table error condition by comparing LAPIC IRR bits with IOAPIC REDTBL entries. And sends EOI (end of interrupt) to IOAPIC RTE if corresponding vector in LAPIC IRR was not set. BRANCH=none BUG=b:112750896,b:124128140 TEST=manual Cherry pick stress test program CL:1372875 and load on Atlas. Place a touch tester on TP and connect to ground. Chech console LAPIC error count and IOAPIC pending count. Change-Id: I1cddc91b2eca35719a83415f1548379574219a58 Signed-off-by: Rong Chang <rongchang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1411953 Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'board/hatch/board.c')
0 files changed, 0 insertions, 0 deletions