summaryrefslogtreecommitdiff
path: root/include/lib
diff options
context:
space:
mode:
authorYatharth Kochar <yatharth.kochar@arm.com>2016-11-09 15:39:25 +0000
committerYatharth Kochar <yatharth.kochar@arm.com>2016-12-01 11:02:51 +0000
commit69d59e0ce9f713b0fd4929908ec1649d29f2cbd4 (patch)
treefde05328ab9626b1aecdeff086b49c4fb81cc277 /include/lib
parentc59428b1502f37c9b2f551613da1b491c4226d10 (diff)
AArch32: Miscellaneous fixes in the AArch32 code
This patch makes following miscellaneous fixes: * pl011_console.S: Fixed the bit mask used to check if the transmit FIFO is full or empty. * smcc_macros.S: Added `_fsxc` suffix while updating the SPSR. By default the assembler assumes `_fc` suffix which does not update all the fields in SPSR. By adding `_fsxc` suffix all the fields gets updated. * platform_helpers.S: Removed the weak definition for `plat_my_core_pos()` as this is a mandatory function which needs to be defined by all platforms. Change-Id: I8302292533c943686fff8d7c749a07132c052a3b Signed-off-by: Yatharth Kochar <yatharth.kochar@arm.com>
Diffstat (limited to 'include/lib')
-rw-r--r--include/lib/aarch32/smcc_macros.S8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/lib/aarch32/smcc_macros.S b/include/lib/aarch32/smcc_macros.S
index c80c3e47..4d329f5d 100644
--- a/include/lib/aarch32/smcc_macros.S
+++ b/include/lib/aarch32/smcc_macros.S
@@ -109,7 +109,13 @@
msr spsr_und, r9
msr sp_und, r10
msr lr_und, r11
- msr spsr, r12
+ /*
+ * Use the `_fsxc` suffix explicitly to instruct the assembler
+ * to update all the 32 bits of SPSR. Else, by default, the
+ * assembler assumes `_fc` suffix which only modifies
+ * f->[31:24] and c->[7:0] bits of SPSR.
+ */
+ msr spsr_fsxc, r12
/* Restore the rest of the general purpose registers */
ldm r0, {r0-r12}