summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorIcarus Sparry <icarus.w.sparry@intel.com>2015-12-26 12:18:03 -0800
committerchrome-bot <chrome-bot@chromium.org>2016-01-05 17:26:10 -0800
commit077e545662963fc9d656bf13ed4d811e9d0590ed (patch)
tree5abc6285747de7fa7917ed16d5b422ecd79ef9d8 /util
parent3d752a3bf6bdacce4e7f2ec797e98a63c380f813 (diff)
downloadchrome-ec-077e545662963fc9d656bf13ed4d811e9d0590ed.tar.gz
cortex-m: proper handling of input parameters to SVC handler
According to section 2.7 of Cortex-M3 Application Note 179: A Cortex-M3 processor can get a "late arriving exception" and this will corrupt the values of the r0, r1, r2 and r3 registers passed in an svc call. http://infocenter.arm.com/help/topic/com.arm.doc.dai0179b/AppsNote179.pdf The fix is to reload the two registers we care about, r0 and r1, from the stack to ensure the input parameters to SVC handler, desched (r0) and resched (r1), are valid. BUG=chrome-os-partner:48499 BRANCH=none TEST=Used assert to verify resched is a valid TASK ID. Change-Id: Ie2229472e709febe16eee3c2cd986e3815fda076 Signed-off-by: Icarus Sparry <icarus.w.sparry@intel.com> Signed-off-by: Kevin K Wong <kevin.k.wong@intel.com> Reviewed-on: https://chromium-review.googlesource.com/319849 Commit-Ready: Icarus W Sparry <icarus.w.sparry@intel.com> Tested-by: Icarus W Sparry <icarus.w.sparry@intel.com> Reviewed-by: Icarus W Sparry <icarus.w.sparry@intel.com> Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'util')
0 files changed, 0 insertions, 0 deletions