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

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@arm.com AuthorDate: Sat Jul 12 14:24:07 2014 +0100 Commit: Albert ARIBAUD albert.u.boot@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@arm.com Acked-by: Ian Campbell ijc@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?
York

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@arm.com AuthorDate: Sat Jul 12 14:24:07 2014 +0100 Commit: Albert ARIBAUD albert.u.boot@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@arm.com> Acked-by: Ian Campbell <ijc@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?

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@arm.com AuthorDate: Sat Jul 12 14:24:07 2014 +0100 Commit: Albert ARIBAUD albert.u.boot@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@arm.com> Acked-by: Ian Campbell <ijc@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.
York

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@arm.com AuthorDate: Sat Jul 12 14:24:07 2014 +0100 Commit: Albert ARIBAUD albert.u.boot@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@arm.com> Acked-by: Ian Campbell <ijc@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?

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@arm.com AuthorDate: Sat Jul 12 14:24:07 2014 +0100 Commit: Albert ARIBAUD albert.u.boot@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@arm.com> Acked-by: Ian Campbell <ijc@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

On Thu, Mar 05, 2015 at 03:45:24PM -0800, York Sun wrote:
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@arm.com AuthorDate: Sat Jul 12 14:24:07 2014 +0100 Commit: Albert ARIBAUD albert.u.boot@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@arm.com> Acked-by: Ian Campbell <ijc@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.
Ah well now we're getting somewhere :) Let me try and whip up a patch..
participants (2)
-
Tom Rini
-
York Sun