From: Justin Chadwell Date: Wed, 3 Jul 2019 13:13:34 +0000 (+0100) Subject: Update layerscape platform to not rely on undefined overflow behaviour X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=9e4afb0272615a1c5f11d8371fd82c41a19499d5;p=project%2Fbcm63xx%2Fatf.git 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 --- 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 -#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);