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

Marek Vasut marex at denx.de
Wed Sep 7 16:54:14 CEST 2016


On 09/07/2016 03:31 PM, Chin Liang See wrote:
> On Tue, 2016-09-06 at 14:12 +0200, Marek Vasut wrote:
>> 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.
>>
> 
> Relook back, this portion is not being used and hence not being
> validated. Will put #ifdef in place to skip out these code.

Which portion is not used ? I don't understand why this patch is valid,
in fact I think it is wrong.

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list