diff options
author | ian <ian@FreeBSD.org> | 2014-02-02 00:48:15 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2014-02-02 00:48:15 +0000 |
commit | 734d68c62464e8dd39078271c026027f204ed144 (patch) | |
tree | d2d882fb3da5505bc3b87888e43c11065d6c3dad /sys/dev/usb/controller/ehci_imx.c | |
parent | 336383e796fb53dd2e812fe72ff6e12721816bb9 (diff) | |
download | FreeBSD-src-734d68c62464e8dd39078271c026027f204ed144.zip FreeBSD-src-734d68c62464e8dd39078271c026027f204ed144.tar.gz |
Update all arm code that manipulates the PSR registers to use modern syntax.
It turns out the version of gas we're using interprets the old '_all' mask
as 'fc' instead of 'fsxc'. That is, "all" doesn't really mean "all".
This was the cause of the "wrong-endian register restore" bug that's
been causing problems with some cortex-a9 chips. The 'endian' bit in the
spsr register would never get changed (it falls into the 'x' mask group)
and the first return-from-exception would fail if the chip had powered on
with garbage in the spsr register that included the big-endian bit. It's
unknown why this affected only certain cortex-a9 chips.
Diffstat (limited to 'sys/dev/usb/controller/ehci_imx.c')
0 files changed, 0 insertions, 0 deletions