[U-Boot] [PATCH 07/11] arm: socfpga: sysmgr: Fix casting warning when enabling ARM64

Marek Vasut marex at denx.de
Tue Sep 6 14:12:43 CEST 2016


On 09/06/2016 11:41 AM, Chin Liang See wrote:
> On Mon, 2016-09-05 at 18:02 +0200, Marek Vasut wrote:
>> On 08/22/2016 05:02 PM, Chin Liang See wrote:
>>> Fix casting warning to pointer from integer of different size
>>> when enabling ARM64 support
>>
>> What sort of error did you observe ?
> 
> The warning is triggered as ARM64 has build flag -Wpointer-to-int-cast
> and similar. Here is the build error log
> 
> arch/arm/mach-socfpga/system_manager.c: In function sysmgr_pinmux_init:
>                                                                        
>           arch/arm/mach-socfpga/system_manager.c:59:18: warning: cast
> from pointer to integer of different size [-Wpointer-to-int-cast]      
>                           uint32_t regs = (uint32_t)&sysmgr_regs
> ->emacio[0];                                                           
>                                                               ^        
>                                                                        
>                                                           In file
> included from arch/arm/mach-socfpga/system_manager.c:8:0:              
>                                                                        
>       ./arch/arm/include/asm/io.h:78:29: warning: cast to pointer from
> integer of different size [-Wint-to-pointer-cast]                      
>                     #define __arch_putl(v,a)  (*(volatile unsigned int
> *)(a) = (v))                                                           

I see ... Except the code below does regs += sizeof(regs); , which in
the original case increments the address by 4 , but with your change,
the increment would be 16 . So this patch breaks things.

btw it's not worth reposting patches while there is still ongoing
discussion.

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list