mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-29 18:11:05 +00:00
Loop on FRMH bit set in the interrupt handler. This has 2 benefits: 1) FRMH is checked every LPC interrupt. So if port 80 gets stuck, any LPC activity like keyboard or host commands will unstick it. 2) Bursts of rapid writes to port 80 are captured more accurately. This also seems to prevent the port 80 channel from getting stuck. There's a small drawback that if the host spams port 80 non-stop for several seconds it can watchdog the EC, but if the host has access to write to I/O ports it could already accomplish a similar result simply by writing the 0xd1 reboot command to the host interface. BUG=chrome-os-partner:12349 BRANCH=link TEST=manual 1. From a root shell, 'ectool port80flood' repeatedly (20x or so). 2. Reboot. Port 80 codes should still be captured. Change-Id: I7a51dfe6a384a0d08cfeb91a539217fc59488637 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/33444 Reviewed-by: Duncan Laurie <dlaurie@chromium.org>