[U-Boot] ARMv8 targets are broken on 2015.04-rc3

York Sun yorksun at freescale.com
Fri Mar 6 00:45:24 CET 2015



On 03/05/2015 03:33 PM, Tom Rini wrote:
> On Thu, Mar 05, 2015 at 03:27:59PM -0800, York Sun wrote:
>>
>>
>> On 03/05/2015 03:26 PM, Tom Rini wrote:
>>> On Thu, Mar 05, 2015 at 11:11:16AM -0800, York Sun wrote:
>>>> Guys,
>>>>
>>>> I found these targets are broken on tag 2015.04-rc3
>>>>
>>>> ls2085a_emu_D4
>>>> vexpress_aemv8a
>>>> vexpress_aemv8a_juno
>>>> ls2085a_emu
>>>> vexpress_aemv8a_semi
>>>> xilinx_zynqmp
>>>> ls2085a_simu
>>>>
>>>> git bisect points to this commit a389531439a7d5cea2829054edcf438dc76e79a9.
>>>> However it is really caused by this one
>>>>
>>>> commit e771a3d538a4fbe235864061ff3c81a8acb11082
>>>> Author:     Marc Zyngier <marc.zyngier at arm.com>
>>>> AuthorDate: Sat Jul 12 14:24:07 2014 +0100
>>>> Commit:     Albert ARIBAUD <albert.u.boot at aribaud.net>
>>>> CommitDate: Mon Jul 28 17:19:52 2014 +0200
>>>>
>>>>     ARM: HYP/non-sec/PSCI: emit DT nodes
>>>>
>>>>     Generate the PSCI node in the device tree.
>>>>
>>>>     Also add a reserve section for the "secure" code that lives in
>>>>     in normal RAM, so that the kernel knows it'd better not trip on
>>>>     it.
>>>>
>>>>     Signed-off-by: Marc Zyngier <marc.zyngier at arm.com>
>>>>     Acked-by: Ian Campbell <ijc at hellion.org.uk>
>>>>
>>>> This commit add armv7.h to bootm-fdt.c file.
>>>>
>>>> --- a/arch/arm/lib/bootm-fdt.c
>>>> +++ b/arch/arm/lib/bootm-fdt.c
>>>> @@ -17,13 +17,14 @@
>>>>
>>>>  #include <common.h>
>>>>  #include <fdt_support.h>
>>>> +#include <asm/armv7.h>
>>>>
>>>> Shouldn't this line be architecture dependent?
>>>
>>> Looking at the whole commit, how is this breaking things?
>>
>> Shall this include armv7.h regardless which architecture is compiled? This
>> didn't cause any problem until a recent commit a389531 changes armv7.h.
> 
> Yes, the include looks safe.  This is one of those cryptic bisects, can
> you poke it a bit more and see what's causing the failure inside of the
> file?
> 

You mean it is safe to include armv7.h even if I am building armv8 targets?
When compiling armv8 targets, I have these warnings

/home/u-boot-upstream-85xx/arch/arm/include/asm/armv7.h: In function
‘v7_enable_smp’:
/home/u-boot-upstream-85xx/arch/arm/include/asm/io.h:72:28: warning: cast to
pointer from integer of different size [-Wint-to-pointer-cast]
 #define __arch_getl(a)   (*(volatile unsigned int *)(a))
                            ^
/home/u-boot-upstream-85xx/arch/arm/include/asm/io.h:151:31: note: in expansion
of macro ‘__arch_getl’
 #define readl(c) ({ u32 __v = __arch_getl(c); __iormb(); __v; })
                               ^
/home/u-boot-upstream-85xx/arch/arm/include/asm/armv7.h:105:9: note: in
expansion of macro ‘readl’
  temp = readl(address);
         ^

The readl was added into armv7.h by commit a389531.

York


More information about the U-Boot mailing list