ARM: omap: make am43xx build with SMP enabled
Subsystems (3)
PATCH 1/1 ARM: omap: make am43xx build with SMP enabled
With am43xx enabled, omap4 and omap5 disabled and SMP on, I get these build errors:
arch/arm/mach-omap2/built-in.o: In function `scu_gp_set':
:(.text+0x7858): undefined reference to omap4_get_scu_base' arch/arm/mach-omap2/built-in.o: In function scu_gp_clear':
:(.text+0x793c): undefined reference to omap4_get_scu_base' arch/arm/mach-omap2/built-in.o: In function omap4_cpu_die':
:(.ref.text+0x44): undefined reference to `omap4_hotplug_cpu'
The easiest way to work around that is to turn on the missing functions, even though we know they won't be used on am43xx, which is single-CPU.
arch/arm/mach-omap2/Makefile +2 -1
@@ -39,7 +39,7 @@ omap-4-5-common = omap4-common.o omap-wakeupgen.o \ sleep44xx.o obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-common) $(smp-y) obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-common) $(smp-y) -obj-$(CONFIG_SOC_AM43XX) += $(omap-4-5-common) +obj-$(CONFIG_SOC_AM43XX) += $(omap-4-5-common) $(smp-y) plus_sec := $(call as-instr,.arch_extension sec,+sec) AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec)
@@ -89,6 +89,7 @@ obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o obj-$(CONFIG_SOC_OMAP5) += omap-mpuss-lowpower.o +obj-$(CONFIG_SOC_AM43XX) += omap-mpuss-lowpower.o obj-$(CONFIG_PM_DEBUG) += pm-debug.o obj-$(CONFIG_POWER_AVS_OMAP) += sr_device.o
Tony Lindgren
maintainerPATCH 1/1 ARM: omap: make am43xx build with SMP enabled
Quoted 10 lines · Arnd Bergmann
With am43xx enabled, omap4 and omap5 disabled and SMP on, I get these build errors:
arch/arm/mach-omap2/built-in.o: In function `scu_gp_set':
:(.text+0x7858): undefined reference toomap4_get_scu_base' arch/arm/mach-omap2/built-in.o: In functionscu_gp_clear':
:(.text+0x793c): undefined reference toomap4_get_scu_base' arch/arm/mach-omap2/built-in.o: In functionomap4_cpu_die':
:(.ref.text+0x44): undefined reference to `omap4_hotplug_cpu'
Quoted 8 lines
The easiest way to work around that is to turn on the missing functions, even though we know they won't be used on am43xx, which is single-CPU.
Signed-off-by Arnd Bergmann <[email protected]>Cc Ankur Kishore <[email protected]>Cc Afzal Mohammed <[email protected]>Cc Tony Lindgren <[email protected]>
Looks OK to me:
Quoted 21 lines
arch/arm/mach-omap2/Makefile +2
-1@@ -39,7 +39,7 @@ omap-4-5-common = omap4-common.o omap-wakeupgen.o \ sleep44xx.o obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-common) $(smp-y) obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-common) $(smp-y) -obj-$(CONFIG_SOC_AM43XX) += $(omap-4-5-common) +obj-$(CONFIG_SOC_AM43XX) += $(omap-4-5-common) $(smp-y) plus_sec := $(call as-instr,.arch_extension sec,+sec) AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec)@@ -89,6 +89,7 @@ obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o obj-$(CONFIG_SOC_OMAP5) += omap-mpuss-lowpower.o +obj-$(CONFIG_SOC_AM43XX) += omap-mpuss-lowpower.o obj-$(CONFIG_PM_DEBUG) += pm-debug.o obj-$(CONFIG_POWER_AVS_OMAP) += sr_device.o
PATCH 1/1 ARM: omap: make am43xx build with SMP enabled
Hi,
Quoted 15 lines · Tony Lindgren
Quoted 14 lines · Arnd Bergmann
With am43xx enabled, omap4 and omap5 disabled and SMP on, I get these build errors:
arch/arm/mach-omap2/built-in.o: In function `scu_gp_set':
:(.text+0x7858): undefined reference toomap4_get_scu_base' arch/arm/mach-omap2/built-in.o: In functionscu_gp_clear':
:(.text+0x793c): undefined reference toomap4_get_scu_base' arch/arm/mach-omap2/built-in.o: In functionomap4_cpu_die':
:(.ref.text+0x44): undefined reference to `omap4_hotplug_cpu'The easiest way to work around that is to turn on the missing functions, even though we know they won't be used on am43xx, which is single-CPU.
Quoted 8 lines
Quoted 4 lines
Signed-off-by Arnd Bergmann <[email protected]>Cc Ankur Kishore <[email protected]>Cc Afzal Mohammed <[email protected]>Cc Tony Lindgren <[email protected]>Looks OK to me:
Acked-by Tony Lindgren <[email protected]>
Wait, seeing another build error after applying this patch, I will respond back soon.
Regards
Afzal
PATCH 1/1 ARM: omap: make am43xx build with SMP enabled
In reply to Arnd BergmannHi Arnd, Tony,
Quoted 2 lines · Arnd Bergmann
With am43xx enabled, omap4 and omap5 disabled and SMP on, I get these build errors:
Getting AM43x only build with OMAP4/5 disabled was really difficult with original series itself, I thought finally had got a right Makefile change handling SMP combinations too, but still :(, my brain was not big enough to think of multiplatform case :)
Thanks Arnd for the patch.
Quoted 10 lines
arch/arm/mach-omap2/built-in.o: In function `scu_gp_set':
:(.text+0x7858): undefined reference toomap4_get_scu_base' arch/arm/mach-omap2/built-in.o: In functionscu_gp_clear':
:(.text+0x793c): undefined reference toomap4_get_scu_base' arch/arm/mach-omap2/built-in.o: In functionomap4_cpu_die':
:(.ref.text+0x44): undefined reference to `omap4_hotplug_cpu'The easiest way to work around that is to turn on the missing functions, even though we know they won't be used on am43xx, which is single-CPU.
This change was giving errors mainly due to unavailable omap4 prcm functions required by "omap-mpuss-lowpower.c"
How about the below patch - we don't need to include additional files with it, or something wrong with it ?
Regards
Afzal
---8<------
From: Afzal Mohammed <[email protected]>
Date: Mon, 24 Jun 2013 12:41:05 +0530
Subject: [PATCH] ARM: OMAP2+: AM43x: resolve SMP related build error
If AM43x and SMP is selected, OMAP4 & OMAP5 deselected, build error as follows,
arch/arm/mach-omap2/built-in.o: In function `scu_gp_set':arch/arm/mach-omap2/sleep44xx.S:131: undefined reference to omap4_get_scu_base' arch/arm/mach-omap2/sleep44xx.S:132: undefined reference to scu_power_mode' arch/arm/mach-omap2/built-in.o: In function `scu_gp_clear':arch/arm/mach-omap2/sleep44xx.S:227: undefined reference to omap4_get_scu_base' arch/arm/mach-omap2/sleep44xx.S:229: undefined reference to scu_power_mode'
Resolve it by building sleep44xx.S only for OMAP4 & OMAP5.
--- arch/arm/mach-omap2/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
arch/arm/mach-omap2/Makefile +3 -2
@@ -35,8 +35,9 @@ obj-$(CONFIG_SOC_HAS_OMAP2_SDRC) += sdrc.o smp-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o smp-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o -omap-4-5-common = omap4-common.o omap-wakeupgen.o \ - sleep44xx.o +omap-4-5-common = omap4-common.o omap-wakeupgen.o +obj-$(CONFIG_ARCH_OMAP4) += sleep44xx.o +obj-$(CONFIG_SOC_OMAP5) += sleep44xx.o obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-common) $(smp-y) obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-common) $(smp-y) obj-$(CONFIG_SOC_AM43XX) += $(omap-4-5-common)
--
Tony Lindgren
maintainerPATCH 1/1 ARM: omap: make am43xx build with SMP enabled
Quoted 24 lines · Mohammed, Afzal
Hi Arnd, Tony,
Quoted 2 lines · Arnd Bergmann
With am43xx enabled, omap4 and omap5 disabled and SMP on, I get these build errors:
Getting AM43x only build with OMAP4/5 disabled was really difficult with original series itself, I thought finally had got a right
Makefilechange handling SMP combinations too, but still :(, my brain was not big enough to think of multiplatform case :)Thanks Arnd for the patch.
Quoted 10 lines
arch/arm/mach-omap2/built-in.o: In function `scu_gp_set':
:(.text+0x7858): undefined reference toomap4_get_scu_base' arch/arm/mach-omap2/built-in.o: In functionscu_gp_clear':
:(.text+0x793c): undefined reference toomap4_get_scu_base' arch/arm/mach-omap2/built-in.o: In functionomap4_cpu_die':
:(.ref.text+0x44): undefined reference to `omap4_hotplug_cpu'The easiest way to work around that is to turn on the missing functions, even though we know they won't be used on am43xx, which is single-CPU.
Quoted 5 lines
This change was giving errors mainly due to unavailable omap4 prcm functions required by "
omap-mpuss-lowpower.c"How about the below patch - we don't need to include additional files with it, or something wrong with it ?
This too looks OK to me, sounds like you'll need a separate sleep code anyways. It's probably best that Arnd applies this directly:
Quoted 41 lines
---8<------
From: Afzal Mohammed <[email protected]>
Date: Mon, 24 Jun 2013 12:41:05 +0530
Subject: [PATCH] ARM: OMAP2+: AM43x: resolve SMP related build errorIf AM43x and SMP is selected, OMAP4 & OMAP5 deselected, build error as follows,
arch/arm/mach-omap2/built-in.o: In function `scu_gp_set':arch/arm/mach-omap2/sleep44xx.S:131: undefined reference toomap4_get_scu_base' arch/arm/mach-omap2/sleep44xx.S:132: undefined reference toscu_power_mode'arch/arm/mach-omap2/built-in.o: In function `scu_gp_clear':arch/arm/mach-omap2/sleep44xx.S:227: undefined reference toomap4_get_scu_base' arch/arm/mach-omap2/sleep44xx.S:229: undefined reference toscu_power_mode'Resolve it by building
sleep44xx.Sonly for OMAP4 & OMAP5.Signed-off-by Afzal Mohammed <[email protected]>--- arch/arm/mach-omap2/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)arch/arm/mach-omap2/Makefile +3
-3@@ -35,8 +35,9 @@ obj-$(CONFIG_SOC_HAS_OMAP2_SDRC) += sdrc.o smp-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o smp-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o -omap-4-5-common = omap4-common.o omap-wakeupgen.o \ - sleep44xx.o +omap-4-5-common = omap4-common.o omap-wakeupgen.o +obj-$(CONFIG_ARCH_OMAP4) += sleep44xx.o +obj-$(CONFIG_SOC_OMAP5) += sleep44xx.o obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-common) $(smp-y) obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-common) $(smp-y) obj-$(CONFIG_SOC_AM43XX) += $(omap-4-5-common) --