summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller/ehci_imx.c
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-02-02 00:48:15 +0000
committerian <ian@FreeBSD.org>2014-02-02 00:48:15 +0000
commit734d68c62464e8dd39078271c026027f204ed144 (patch)
treed2d882fb3da5505bc3b87888e43c11065d6c3dad /sys/dev/usb/controller/ehci_imx.c
parent336383e796fb53dd2e812fe72ff6e12721816bb9 (diff)
downloadFreeBSD-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
OpenPOWER on IntegriCloud