[U-Boot] [PATCH] ARMV7: Fix build for non-OMAP3 boards

Commit c3d3a54 uses CONFIG_ARMV7 to determine whether to call the v7_flush_cache_all function. This breaks the build for all non-OMAP3 boards (like Panda and OMAP4430SDP) since there is only a v7_flush_cache_all implementation for OMAP3.
This patch uses CONFIG_OMAP3XXX instead of CONFIG_ARMV7 so that only boards with a v7_flush_cache_all will make the call.
Tested on Beagle, Overo, Panda, and OMAP4430SDP
Signed-off-by: Steve Sakoman steve.sakoman@linaro.org ---
diff --git a/arch/arm/lib/cache.c b/arch/arm/lib/cache.c index 5715168..30686fe 100644 --- a/arch/arm/lib/cache.c +++ b/arch/arm/lib/cache.c @@ -38,7 +38,7 @@ void flush_cache (unsigned long dummy1, unsigned long dummy2) /* disable write buffer as well (page 2-22) */ asm("mcr p15, 0, %0, c7, c10, 4" : : "r" (0)); #endif -#ifdef CONFIG_ARMV7 +#ifdef CONFIG_OMAP34XX void v7_flush_cache_all(void);
v7_flush_cache_all();

-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Steve Sakoman Sent: Saturday, October 23, 2010 2:20 AM To: u-boot@lists.denx.de Subject: [U-Boot] [PATCH] ARMV7: Fix build for non-OMAP3 boards
Commit c3d3a54 uses CONFIG_ARMV7 to determine whether to call the v7_flush_cache_all function. This breaks the build for all non-OMAP3 boards (like Panda and OMAP4430SDP) since there is only a v7_flush_cache_all implementation for OMAP3.
This patch uses CONFIG_OMAP3XXX instead of CONFIG_ARMV7 so that only boards with a v7_flush_cache_all will make the call.
[sp] Is this call board specific?

On Mon, 2010-10-25 at 15:28 +0530, Premi, Sanjeev wrote:
-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Steve Sakoman Sent: Saturday, October 23, 2010 2:20 AM To: u-boot@lists.denx.de Subject: [U-Boot] [PATCH] ARMV7: Fix build for non-OMAP3 boards
Commit c3d3a54 uses CONFIG_ARMV7 to determine whether to call the v7_flush_cache_all function. This breaks the build for all non-OMAP3 boards (like Panda and OMAP4430SDP) since there is only a v7_flush_cache_all implementation for OMAP3.
This patch uses CONFIG_OMAP3XXX instead of CONFIG_ARMV7 so that only boards with a v7_flush_cache_all will make the call.
[sp] Is this call board specific?
No, it is not.
Steve

-----Original Message----- From: Steve Sakoman [mailto:steve@sakoman.com] Sent: Monday, October 25, 2010 6:52 PM To: Premi, Sanjeev Cc: u-boot@lists.denx.de Subject: RE: [U-Boot] [PATCH] ARMV7: Fix build for non-OMAP3 boards
On Mon, 2010-10-25 at 15:28 +0530, Premi, Sanjeev wrote:
-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Steve Sakoman Sent: Saturday, October 23, 2010 2:20 AM To: u-boot@lists.denx.de Subject: [U-Boot] [PATCH] ARMV7: Fix build for non-OMAP3 boards
Commit c3d3a54 uses CONFIG_ARMV7 to determine whether to call the v7_flush_cache_all function. This breaks the build for
all non-OMAP3
boards (like Panda and OMAP4430SDP) since there is only a v7_flush_cache_all implementation for OMAP3.
This patch uses CONFIG_OMAP3XXX instead of CONFIG_ARMV7 so that only boards with a v7_flush_cache_all will make the call.
[sp] Is this call board specific?
No, it is not.
[sp] I asked because I can see omap3/cache.S but not under omap-common/ (as I was expecting) - neither in omap4/
Doesn't this patch works-around the problem by using CONFIG_OMAP34XX? Wouldn't change in cache.S (or Makefile) be better solution/ or workaround. At least workaround will be visible to more eyes.
~sanjeev
Steve

On Mon, 2010-10-25 at 20:10 +0530, Premi, Sanjeev wrote:
-----Original Message----- From: Steve Sakoman [mailto:steve@sakoman.com] Sent: Monday, October 25, 2010 6:52 PM To: Premi, Sanjeev Cc: u-boot@lists.denx.de Subject: RE: [U-Boot] [PATCH] ARMV7: Fix build for non-OMAP3 boards
On Mon, 2010-10-25 at 15:28 +0530, Premi, Sanjeev wrote:
-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Steve Sakoman Sent: Saturday, October 23, 2010 2:20 AM To: u-boot@lists.denx.de Subject: [U-Boot] [PATCH] ARMV7: Fix build for non-OMAP3 boards
Commit c3d3a54 uses CONFIG_ARMV7 to determine whether to call the v7_flush_cache_all function. This breaks the build for
all non-OMAP3
boards (like Panda and OMAP4430SDP) since there is only a v7_flush_cache_all implementation for OMAP3.
This patch uses CONFIG_OMAP3XXX instead of CONFIG_ARMV7 so that only boards with a v7_flush_cache_all will make the call.
[sp] Is this call board specific?
No, it is not.
[sp] I asked because I can see omap3/cache.S but not under omap-common/ (as I was expecting) - neither in omap4/
Doesn't this patch works-around the problem by using CONFIG_OMAP34XX?
Yes, this is a hopefully temporary fix to allow non-OMAP3 ARMV7 boards to build.
Wouldn't change in cache.S (or Makefile) be better solution/ or workaround. At least workaround will be visible to more eyes.
Ideally we would have a generic ARMV7 implementation that would work for even non-OMAP ARMV7 processors. Someone who is familiar with the differences in ARMV7 cache implementations from the various silicon vendors would need to do this. This beyond my knowledge.
A "second best" solution would be to have a cache.S that worked for both OMAP3 and OMAP4 in omap-common/
If this isn't possible, then we should add an OMAP4 specific cache.S in omap4/
But until we settle on the proper long term strategy this patch should be applied so that non-OMAP3 ARMV7 boards will build.
Steve

-----Original Message----- From: Steve Sakoman [mailto:steve@sakoman.com] Sent: Monday, October 25, 2010 8:38 PM To: Premi, Sanjeev Cc: u-boot@lists.denx.de Subject: RE: [U-Boot] [PATCH] ARMV7: Fix build for non-OMAP3 boards
On Mon, 2010-10-25 at 20:10 +0530, Premi, Sanjeev wrote:
-----Original Message----- From: Steve Sakoman [mailto:steve@sakoman.com] Sent: Monday, October 25, 2010 6:52 PM To: Premi, Sanjeev Cc: u-boot@lists.denx.de Subject: RE: [U-Boot] [PATCH] ARMV7: Fix build for
non-OMAP3 boards
On Mon, 2010-10-25 at 15:28 +0530, Premi, Sanjeev wrote:
-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de] On Behalf Of
Steve Sakoman
Sent: Saturday, October 23, 2010 2:20 AM To: u-boot@lists.denx.de Subject: [U-Boot] [PATCH] ARMV7: Fix build for
non-OMAP3 boards
Commit c3d3a54 uses CONFIG_ARMV7 to determine whether
to call the
v7_flush_cache_all function. This breaks the build for
all non-OMAP3
boards (like Panda and OMAP4430SDP) since there is only a v7_flush_cache_all implementation for OMAP3.
This patch uses CONFIG_OMAP3XXX instead of CONFIG_ARMV7 so that only boards with a v7_flush_cache_all will make the call.
[sp] Is this call board specific?
No, it is not.
[sp] I asked because I can see omap3/cache.S but not under
omap-common/
(as I was expecting) - neither in omap4/ Doesn't this patch works-around the problem by using
CONFIG_OMAP34XX?
Yes, this is a hopefully temporary fix to allow non-OMAP3 ARMV7 boards to build.
Wouldn't change in cache.S (or Makefile) be better solution/ or workaround. At least workaround will be visible to more eyes.
Ideally we would have a generic ARMV7 implementation that would work for even non-OMAP ARMV7 processors. Someone who is familiar with the differences in ARMV7 cache implementations from the various silicon vendors would need to do this. This beyond my knowledge.
A "second best" solution would be to have a cache.S that worked for both OMAP3 and OMAP4 in omap-common/
If this isn't possible, then we should add an OMAP4 specific cache.S in omap4/
But until we settle on the proper long term strategy this patch should be applied so that non-OMAP3 ARMV7 boards will build.
Can we indicate either in the title/ description that patch is temporary?
Steve
participants (2)
-
Premi, Sanjeev
-
Steve Sakoman