diff options
author | Justin Chadwell <justin.chadwell@arm.com> | 2019-07-03 14:13:34 +0100 |
---|---|---|
committer | Justin Chadwell <justin.chadwell@arm.com> | 2019-07-11 12:10:58 +0100 |
commit | 9e4afb0272615a1c5f11d8371fd82c41a19499d5 (patch) | |
tree | 31032a1867c39ebfcee7969a4d2b29cac6f42465 /plat/layerscape | |
parent | 36cfbf3ca28be833116a1ac7c7c1b98da50db95a (diff) |
Update layerscape platform to not rely on undefined overflow behaviour
This consists of ensuring that the left operand of each shift is
unsigned when the operation might overflow into the sign bit.
Change-Id: Ib63ef6e2e4616dd56828bfd3800d5fe2df109934
Signed-off-by: Justin Chadwell <justin.chadwell@arm.com>
Diffstat (limited to 'plat/layerscape')
-rw-r--r-- | plat/layerscape/board/ls1043/ls1043_psci.c | 4 | ||||
-rw-r--r-- | plat/layerscape/board/ls1043/ls_gic.c | 2 | ||||
-rw-r--r-- | plat/layerscape/common/include/soc.h | 6 |
3 files changed, 6 insertions, 6 deletions
diff --git a/plat/layerscape/board/ls1043/ls1043_psci.c b/plat/layerscape/board/ls1043/ls1043_psci.c index d6429c32..8e282cba 100644 --- a/plat/layerscape/board/ls1043/ls1043_psci.c +++ b/plat/layerscape/board/ls1043/ls1043_psci.c @@ -66,12 +66,12 @@ static void ls1043_reset_core(int core_pos) dsb(); /* enable core soft reset */ mmio_write_32(LS_SCFG_BASE + LS_SCFG_CORESRENCR_OFFSET, - htobe32(1 << 31)); + htobe32(1U << 31)); dsb(); isb(); /* reset core */ mmio_write_32(LS_SCFG_BASE + LS_SCFG_CORE0_SFT_RST_OFFSET + - core_pos * 4, htobe32(1 << 31)); + core_pos * 4, htobe32(1U << 31)); mdelay(10); } diff --git a/plat/layerscape/board/ls1043/ls_gic.c b/plat/layerscape/board/ls1043/ls_gic.c index 3d8b262d..cba55caf 100644 --- a/plat/layerscape/board/ls1043/ls_gic.c +++ b/plat/layerscape/board/ls1043/ls_gic.c @@ -35,7 +35,7 @@ void get_gic_offset(uint32_t *gicc_base, uint32_t *gicd_base) soc_dev_id == (SVR_LS1043AE << 8)) && ((val & 0xff) == REV1_1)) { val = be32toh(mmio_read_32((uintptr_t)gic_align)); - if (val & (1 << GIC_ADDR_BIT)) { + if (val & (1U << GIC_ADDR_BIT)) { *gicc_base = GICC_BASE; *gicd_base = GICD_BASE; } else { diff --git a/plat/layerscape/common/include/soc.h b/plat/layerscape/common/include/soc.h index 76c34189..a5dc8557 100644 --- a/plat/layerscape/common/include/soc.h +++ b/plat/layerscape/common/include/soc.h @@ -9,9 +9,9 @@ #include <stdint.h> -#define SVR_WO_E 0xFFFFFE -#define SVR_LS1043A 0x879204 -#define SVR_LS1043AE 0x879200 +#define SVR_WO_E 0xFFFFFEu +#define SVR_LS1043A 0x879204u +#define SVR_LS1043AE 0x879200u void get_gic_offset(uint32_t *gicc_base, uint32_t *gicd_base); |