[U-Boot] [PATCH 07/11] arm: socfpga: sysmgr: Fix casting warning when enabling ARM64
Chin Liang See
clsee at altera.com
Wed Sep 7 15:31:02 CEST 2016
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.
Thanks
Chin Liang
> btw it's not worth reposting patches while there is still ongoing
> discussion.
>
More information about the U-Boot
mailing list