diff options
author | David Cunado <david.cunado@arm.com> | 2017-01-19 10:26:16 +0000 |
---|---|---|
committer | David Cunado <david.cunado@arm.com> | 2017-01-26 13:47:37 +0000 |
commit | 9edac0479d562a5cb62b57961ad6288d0537e9f1 (patch) | |
tree | 22d7922f26fc9888d6dc6517edd4cbb22f585b12 /include/plat | |
parent | d7aa7b44d6c73f84a8913b010e850e0322063d91 (diff) |
Resolve build errors flagged by GCC 6.2
With GCC 6.2 compiler, more C undefined behaviour is being flagged as
warnings, which result in build errors in ARM TF build.
The specific issue that this patch resolves is the use of (1 << 31),
which is predominantly used in case statements, where 1 is represented
as a signed int. When shifted to msb the behaviour is undefined.
The resolution is to specify 1 as an unsigned int using a convenience
macro ULL(). A duplicate macro MAKE_ULL() is replaced.
Fixes ARM-software/tf-issues#438
Change-Id: I08e3053bbcf4c022ee2be33a75bd0056da4073e1
Signed-off-by: David Cunado <david.cunado@arm.com>
Diffstat (limited to 'include/plat')
-rw-r--r-- | include/plat/arm/board/common/board_css_def.h | 4 | ||||
-rw-r--r-- | include/plat/arm/common/arm_def.h | 10 | ||||
-rw-r--r-- | include/plat/arm/soc/common/soc_css_def.h | 4 | ||||
-rw-r--r-- | include/plat/common/common_def.h | 22 |
4 files changed, 10 insertions, 30 deletions
diff --git a/include/plat/arm/board/common/board_css_def.h b/include/plat/arm/board/common/board_css_def.h index 975f1fc5..65e3d32d 100644 --- a/include/plat/arm/board/common/board_css_def.h +++ b/include/plat/arm/board/common/board_css_def.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -68,7 +68,7 @@ * development platforms */ -#define PLAT_ARM_DRAM2_SIZE MAKE_ULL(0x180000000) +#define PLAT_ARM_DRAM2_SIZE ULL(0x180000000) /* UART related constants */ #define PLAT_ARM_BOOT_UART_BASE SOC_CSS_UART0_BASE diff --git a/include/plat/arm/common/arm_def.h b/include/plat/arm/common/arm_def.h index 6d7bcd1e..4d264448 100644 --- a/include/plat/arm/common/arm_def.h +++ b/include/plat/arm/common/arm_def.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -89,7 +89,7 @@ * - SCP TZC DRAM: If present, DRAM reserved for SCP use * - AP TZC DRAM: The remaining TZC secured DRAM reserved for AP use */ -#define ARM_TZC_DRAM1_SIZE MAKE_ULL(0x01000000) +#define ARM_TZC_DRAM1_SIZE ULL(0x01000000) #define ARM_SCP_TZC_DRAM1_BASE (ARM_DRAM1_BASE + \ ARM_DRAM1_SIZE - \ @@ -113,12 +113,12 @@ #define ARM_NS_DRAM1_END (ARM_NS_DRAM1_BASE + \ ARM_NS_DRAM1_SIZE - 1) -#define ARM_DRAM1_BASE MAKE_ULL(0x80000000) -#define ARM_DRAM1_SIZE MAKE_ULL(0x80000000) +#define ARM_DRAM1_BASE ULL(0x80000000) +#define ARM_DRAM1_SIZE ULL(0x80000000) #define ARM_DRAM1_END (ARM_DRAM1_BASE + \ ARM_DRAM1_SIZE - 1) -#define ARM_DRAM2_BASE MAKE_ULL(0x880000000) +#define ARM_DRAM2_BASE ULL(0x880000000) #define ARM_DRAM2_SIZE PLAT_ARM_DRAM2_SIZE #define ARM_DRAM2_END (ARM_DRAM2_BASE + \ ARM_DRAM2_SIZE - 1) diff --git a/include/plat/arm/soc/common/soc_css_def.h b/include/plat/arm/soc/common/soc_css_def.h index f1396a6c..316f8f90 100644 --- a/include/plat/arm/soc/common/soc_css_def.h +++ b/include/plat/arm/soc/common/soc_css_def.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -98,7 +98,7 @@ */ /* 2MB used for SCP DDR retraining */ -#define PLAT_ARM_SCP_TZC_DRAM1_SIZE MAKE_ULL(0x00200000) +#define PLAT_ARM_SCP_TZC_DRAM1_SIZE ULL(0x00200000) #endif /* __SOC_CSS_DEF_H__ */ diff --git a/include/plat/common/common_def.h b/include/plat/common/common_def.h index 65f31e7f..05588c13 100644 --- a/include/plat/common/common_def.h +++ b/include/plat/common/common_def.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -54,26 +54,6 @@ */ #define FIRMWARE_WELCOME_STR "Booting Trusted Firmware\n" -/* - * Some of the platform porting definitions use the 'ull' suffix in order to - * avoid subtle integer overflow errors due to implicit integer type promotion - * when working with 32-bit values. - * - * The TSP linker script includes some of these definitions to define the BL32 - * memory map, but the GNU LD does not support the 'ull' suffix, causing the - * build process to fail. To solve this problem, the auxiliary macro MAKE_ULL(x) - * will add the 'ull' suffix only when the macro __LINKER__ is not defined - * (__LINKER__ is defined in the command line to preprocess the linker script). - * Constants in the linker script will not have the 'ull' suffix, but this is - * not a problem since the linker evaluates all constant expressions to 64 bit - * (assuming the target architecture is 64 bit). - */ -#ifndef __LINKER__ - #define MAKE_ULL(x) x##ull -#else - #define MAKE_ULL(x) x -#endif - #if LOAD_IMAGE_V2 #define BL2_IMAGE_DESC { \ .image_id = BL2_IMAGE_ID, \ |