* [PATCH v2 0/7] BSYM macro removal and secondary startup fixes
@ 2012-01-12 17:31 Rob Herring
2012-01-12 17:31 ` [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S Rob Herring
` (6 more replies)
0 siblings, 7 replies; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
BSYM macro usage is generally unnecessary in .c files if assembly functions
are properly annotated with ENTRY/ENDPROC. BSYM combined with properly
annotated assembly functions or C functions generates a wrong address
on Thumb2 builds causing secondary cores to fail to boot.
Tested Thumb2 SMP boot on highbank and imx6.
Changes in v2:
- Add missing ENDPROC annotation for all secondary startup functions.
- Use Pawel's patch for ARM boards instead.
Rob
Pawel Moll (1):
ARM: versatile: Add missing ENDPROC to headsmp.S
Rob Herring (6):
ARM: msm: Add missing ENDPROC to headsmp.S
ARM: ux500: add missing ENDPROC to headsmp.S
ARM: exynos: remove incorrect BSYM usage
ARM: imx: remove incorrect BSYM usage
ARM: highbank: remove incorrect BSYM usage
ARM: make BSYM macro assembly only
arch/arm/include/asm/unified.h | 4 ++--
arch/arm/mach-exynos/headsmp.S | 1 +
arch/arm/mach-exynos/platsmp.c | 5 ++---
arch/arm/mach-highbank/highbank.c | 3 +--
arch/arm/mach-imx/src.c | 3 +--
arch/arm/mach-msm/headsmp.S | 1 +
arch/arm/mach-realview/platsmp.c | 3 +--
arch/arm/mach-ux500/headsmp.S | 1 +
arch/arm/mach-vexpress/platsmp.c | 4 +---
arch/arm/plat-versatile/headsmp.S | 1 +
10 files changed, 12 insertions(+), 14 deletions(-)
--
1.7.5.4
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S
2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
2012-01-13 14:09 ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 2/7] ARM: msm: " Rob Herring
` (5 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
To: linux-arm-kernel
From: Pawel Moll <pawel.moll@arm.com>
Once the ENDPROC is in place, BSYM() in not longer necessary
to get correct pointer to versatile_secondary_startup().
Tested-by: Jon Medhurst <tixy@linaro.org>
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
---
arch/arm/mach-realview/platsmp.c | 3 +--
arch/arm/mach-vexpress/platsmp.c | 4 +---
arch/arm/plat-versatile/headsmp.S | 1 +
3 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
index e83c654..17c878d 100644
--- a/arch/arm/mach-realview/platsmp.c
+++ b/arch/arm/mach-realview/platsmp.c
@@ -17,7 +17,6 @@
#include <asm/hardware/gic.h>
#include <asm/mach-types.h>
#include <asm/smp_scu.h>
-#include <asm/unified.h>
#include <mach/board-eb.h>
#include <mach/board-pb11mp.h>
@@ -75,6 +74,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
* until it receives a soft interrupt, and then the
* secondary CPU branches to this address.
*/
- __raw_writel(BSYM(virt_to_phys(versatile_secondary_startup)),
+ __raw_writel(virt_to_phys(versatile_secondary_startup),
__io_address(REALVIEW_SYS_FLAGSSET));
}
diff --git a/arch/arm/mach-vexpress/platsmp.c b/arch/arm/mach-vexpress/platsmp.c
index 2b5f7ac..124ffb1 100644
--- a/arch/arm/mach-vexpress/platsmp.c
+++ b/arch/arm/mach-vexpress/platsmp.c
@@ -13,8 +13,6 @@
#include <linux/smp.h>
#include <linux/io.h>
-#include <asm/unified.h>
-
#include <mach/motherboard.h>
#define V2M_PA_CS7 0x10000000
@@ -46,6 +44,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
* secondary CPU branches to this address.
*/
writel(~0, MMIO_P2V(V2M_SYS_FLAGSCLR));
- writel(BSYM(virt_to_phys(versatile_secondary_startup)),
+ writel(virt_to_phys(versatile_secondary_startup),
MMIO_P2V(V2M_SYS_FLAGSSET));
}
diff --git a/arch/arm/plat-versatile/headsmp.S b/arch/arm/plat-versatile/headsmp.S
index d397a1f..dd703ef 100644
--- a/arch/arm/plat-versatile/headsmp.S
+++ b/arch/arm/plat-versatile/headsmp.S
@@ -38,3 +38,4 @@ pen: ldr r7, [r6]
.align
1: .long .
.long pen_release
+ENDPROC(versatile_secondary_startup)
--
1.7.5.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 2/7] ARM: msm: Add missing ENDPROC to headsmp.S
2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
2012-01-12 17:31 ` [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
2012-01-12 17:31 ` [PATCH v2 3/7] ARM: ux500: add " Rob Herring
` (4 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Once the ENDPROC is in place, BSYM() in not longer necessary
to get correct pointer to msm_secondary_startup().
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: David Brown <davidb@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
---
arch/arm/mach-msm/headsmp.S | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-msm/headsmp.S b/arch/arm/mach-msm/headsmp.S
index 0c631a9..bcd5af2 100644
--- a/arch/arm/mach-msm/headsmp.S
+++ b/arch/arm/mach-msm/headsmp.S
@@ -34,6 +34,7 @@ pen: ldr r7, [r6]
* should now contain the SVC stack for this core
*/
b secondary_startup
+ENDPROC(msm_secondary_startup)
.align
1: .long .
--
1.7.5.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 3/7] ARM: ux500: add missing ENDPROC to headsmp.S
2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
2012-01-12 17:31 ` [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S Rob Herring
2012-01-12 17:31 ` [PATCH v2 2/7] ARM: msm: " Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
2012-01-13 14:24 ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage Rob Herring
` (3 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Once the ENDPROC is in place, BSYM() in not longer necessary
to get correct pointer to u8500_secondary_startup().
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Linus Walleij <linus.walleij@stericsson.com>
---
arch/arm/mach-ux500/headsmp.S | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-ux500/headsmp.S b/arch/arm/mach-ux500/headsmp.S
index 64fa451..d03843d 100644
--- a/arch/arm/mach-ux500/headsmp.S
+++ b/arch/arm/mach-ux500/headsmp.S
@@ -32,6 +32,7 @@ pen: ldr r7, [r6]
* should now contain the SVC stack for this core
*/
b secondary_startup
+ENDPROC(u8500_secondary_startup)
1: .long .
.long pen_release
--
1.7.5.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage
2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
` (2 preceding siblings ...)
2012-01-12 17:31 ` [PATCH v2 3/7] ARM: ux500: add " Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
2012-01-13 14:24 ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 5/7] ARM: imx: " Rob Herring
` (2 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
BSYM macro is only needed for assembly files and its usage in c files is
wrong, so remove it. The linker will correctly set bit 0 for Thumb2
kernels.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Dave Martin <dave.martin@linaro.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
---
arch/arm/mach-exynos/headsmp.S | 1 +
arch/arm/mach-exynos/platsmp.c | 5 ++---
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-exynos/headsmp.S b/arch/arm/mach-exynos/headsmp.S
index 3cdeb36..b6a0ee2 100644
--- a/arch/arm/mach-exynos/headsmp.S
+++ b/arch/arm/mach-exynos/headsmp.S
@@ -36,6 +36,7 @@ pen: ldr r7, [r6]
* should now contain the SVC stack for this core
*/
b secondary_startup
+ENDPROC(exynos4_secondary_startup)
1: .long .
.long pen_release
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index 60bc45e..683aec7 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -24,7 +24,6 @@
#include <asm/cacheflush.h>
#include <asm/hardware/gic.h>
#include <asm/smp_scu.h>
-#include <asm/unified.h>
#include <mach/hardware.h>
#include <mach/regs-clock.h>
@@ -137,7 +136,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
while (time_before(jiffies, timeout)) {
smp_rmb();
- __raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)),
+ __raw_writel(virt_to_phys(exynos4_secondary_startup),
CPU1_BOOT_REG);
gic_raise_softirq(cpumask_of(cpu), 1);
@@ -192,6 +191,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
* until it receives a soft interrupt, and then the
* secondary CPU branches to this address.
*/
- __raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)),
+ __raw_writel(virt_to_phys(exynos4_secondary_startup),
CPU1_BOOT_REG);
}
--
1.7.5.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 5/7] ARM: imx: remove incorrect BSYM usage
2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
` (3 preceding siblings ...)
2012-01-12 17:31 ` [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
2012-01-13 14:27 ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 6/7] ARM: highbank: " Rob Herring
2012-01-12 17:31 ` [PATCH v2 7/7] ARM: make BSYM macro assembly only Rob Herring
6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
BSYM macro is only needed for assembly files and its usage in c files is
wrong, so remove it. The linker will correctly set bit 0 for Thumb2
kernels.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Dave Martin <dave.martin@linaro.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
---
arch/arm/mach-imx/src.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c
index 4bde04f..29bd124 100644
--- a/arch/arm/mach-imx/src.c
+++ b/arch/arm/mach-imx/src.c
@@ -15,7 +15,6 @@
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/smp.h>
-#include <asm/unified.h>
#define SRC_SCR 0x000
#define SRC_GPR1 0x020
@@ -43,7 +42,7 @@ void imx_enable_cpu(int cpu, bool enable)
void imx_set_cpu_jump(int cpu, void *jump_addr)
{
cpu = cpu_logical_map(cpu);
- writel_relaxed(BSYM(virt_to_phys(jump_addr)),
+ writel_relaxed(virt_to_phys(jump_addr),
src_base + SRC_GPR1 + cpu * 8);
}
--
1.7.5.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 6/7] ARM: highbank: remove incorrect BSYM usage
2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
` (4 preceding siblings ...)
2012-01-12 17:31 ` [PATCH v2 5/7] ARM: imx: " Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
2012-01-13 14:29 ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 7/7] ARM: make BSYM macro assembly only Rob Herring
6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
BSYM macro is only needed for assembly files and its usage in c files is
wrong, so remove it. The linker will correctly set bit 0 for Thumb2
kernels.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Dave Martin <dave.martin@linaro.org>
---
arch/arm/mach-highbank/highbank.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
index 804c4a5..7afbe1e 100644
--- a/arch/arm/mach-highbank/highbank.c
+++ b/arch/arm/mach-highbank/highbank.c
@@ -25,7 +25,6 @@
#include <linux/smp.h>
#include <asm/cacheflush.h>
-#include <asm/unified.h>
#include <asm/smp_scu.h>
#include <asm/hardware/arm_timer.h>
#include <asm/hardware/timer-sp.h>
@@ -76,7 +75,7 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr)
#ifdef CONFIG_SMP
cpu = cpu_logical_map(cpu);
#endif
- writel(BSYM(virt_to_phys(jump_addr)), HB_JUMP_TABLE_VIRT(cpu));
+ writel(virt_to_phys(jump_addr), HB_JUMP_TABLE_VIRT(cpu));
__cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16);
outer_clean_range(HB_JUMP_TABLE_PHYS(cpu),
HB_JUMP_TABLE_PHYS(cpu) + 15);
--
1.7.5.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 7/7] ARM: make BSYM macro assembly only
2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
` (5 preceding siblings ...)
2012-01-12 17:31 ` [PATCH v2 6/7] ARM: highbank: " Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
2012-01-13 14:10 ` Dave Martin
6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
BSYM macro is only needed for assembly files and its usage in c files is
wrong, so only define it for assembly.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Dave Martin <dave.martin@linaro.org>
---
arch/arm/include/asm/unified.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/include/asm/unified.h b/arch/arm/include/asm/unified.h
index bc63116..f5989f4 100644
--- a/arch/arm/include/asm/unified.h
+++ b/arch/arm/include/asm/unified.h
@@ -37,8 +37,8 @@
#define THUMB(x...) x
#ifdef __ASSEMBLY__
#define W(instr) instr.w
-#endif
#define BSYM(sym) sym + 1
+#endif
#else /* !CONFIG_THUMB2_KERNEL */
@@ -49,8 +49,8 @@
#define THUMB(x...)
#ifdef __ASSEMBLY__
#define W(instr) instr
-#endif
#define BSYM(sym) sym
+#endif
#endif /* CONFIG_THUMB2_KERNEL */
--
1.7.5.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S
2012-01-12 17:31 ` [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S Rob Herring
@ 2012-01-13 14:09 ` Dave Martin
0 siblings, 0 replies; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:09 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Jan 12, 2012 at 11:31:10AM -0600, Rob Herring wrote:
> From: Pawel Moll <pawel.moll@arm.com>
>
> Once the ENDPROC is in place, BSYM() in not longer necessary
> to get correct pointer to versatile_secondary_startup().
>
> Tested-by: Jon Medhurst <tixy@linaro.org>
> Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Acked-by: Dave Martin <dave.martin@linaro.org>
> ---
> arch/arm/mach-realview/platsmp.c | 3 +--
> arch/arm/mach-vexpress/platsmp.c | 4 +---
> arch/arm/plat-versatile/headsmp.S | 1 +
> 3 files changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
> index e83c654..17c878d 100644
> --- a/arch/arm/mach-realview/platsmp.c
> +++ b/arch/arm/mach-realview/platsmp.c
> @@ -17,7 +17,6 @@
> #include <asm/hardware/gic.h>
> #include <asm/mach-types.h>
> #include <asm/smp_scu.h>
> -#include <asm/unified.h>
>
> #include <mach/board-eb.h>
> #include <mach/board-pb11mp.h>
> @@ -75,6 +74,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
> * until it receives a soft interrupt, and then the
> * secondary CPU branches to this address.
> */
> - __raw_writel(BSYM(virt_to_phys(versatile_secondary_startup)),
> + __raw_writel(virt_to_phys(versatile_secondary_startup),
> __io_address(REALVIEW_SYS_FLAGSSET));
> }
> diff --git a/arch/arm/mach-vexpress/platsmp.c b/arch/arm/mach-vexpress/platsmp.c
> index 2b5f7ac..124ffb1 100644
> --- a/arch/arm/mach-vexpress/platsmp.c
> +++ b/arch/arm/mach-vexpress/platsmp.c
> @@ -13,8 +13,6 @@
> #include <linux/smp.h>
> #include <linux/io.h>
>
> -#include <asm/unified.h>
> -
> #include <mach/motherboard.h>
> #define V2M_PA_CS7 0x10000000
>
> @@ -46,6 +44,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
> * secondary CPU branches to this address.
> */
> writel(~0, MMIO_P2V(V2M_SYS_FLAGSCLR));
> - writel(BSYM(virt_to_phys(versatile_secondary_startup)),
> + writel(virt_to_phys(versatile_secondary_startup),
> MMIO_P2V(V2M_SYS_FLAGSSET));
> }
> diff --git a/arch/arm/plat-versatile/headsmp.S b/arch/arm/plat-versatile/headsmp.S
> index d397a1f..dd703ef 100644
> --- a/arch/arm/plat-versatile/headsmp.S
> +++ b/arch/arm/plat-versatile/headsmp.S
> @@ -38,3 +38,4 @@ pen: ldr r7, [r6]
> .align
> 1: .long .
> .long pen_release
> +ENDPROC(versatile_secondary_startup)
> --
> 1.7.5.4
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 7/7] ARM: make BSYM macro assembly only
2012-01-12 17:31 ` [PATCH v2 7/7] ARM: make BSYM macro assembly only Rob Herring
@ 2012-01-13 14:10 ` Dave Martin
0 siblings, 0 replies; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:10 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Jan 12, 2012 at 11:31:16AM -0600, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> BSYM macro is only needed for assembly files and its usage in c files is
> wrong, so only define it for assembly.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Dave Martin <dave.martin@linaro.org>
I already acked the previously posted version, but it's essentially the
same, so:
Acked-by: Dave Martin <dave.martin@linaro.org>
> ---
> arch/arm/include/asm/unified.h | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/include/asm/unified.h b/arch/arm/include/asm/unified.h
> index bc63116..f5989f4 100644
> --- a/arch/arm/include/asm/unified.h
> +++ b/arch/arm/include/asm/unified.h
> @@ -37,8 +37,8 @@
> #define THUMB(x...) x
> #ifdef __ASSEMBLY__
> #define W(instr) instr.w
> -#endif
> #define BSYM(sym) sym + 1
> +#endif
>
> #else /* !CONFIG_THUMB2_KERNEL */
>
> @@ -49,8 +49,8 @@
> #define THUMB(x...)
> #ifdef __ASSEMBLY__
> #define W(instr) instr
> -#endif
> #define BSYM(sym) sym
> +#endif
>
> #endif /* CONFIG_THUMB2_KERNEL */
>
> --
> 1.7.5.4
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 3/7] ARM: ux500: add missing ENDPROC to headsmp.S
2012-01-12 17:31 ` [PATCH v2 3/7] ARM: ux500: add " Rob Herring
@ 2012-01-13 14:24 ` Dave Martin
2012-01-13 14:46 ` Rob Herring
0 siblings, 1 reply; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:24 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Jan 12, 2012 at 11:31:12AM -0600, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> Once the ENDPROC is in place, BSYM() in not longer necessary
> to get correct pointer to u8500_secondary_startup().
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
> Cc: Linus Walleij <linus.walleij@stericsson.com>
The words at label 1 may be misaligned in a Thumb kernel, which is
undesirable.
It probably makes sense to add a .align 2 before that label
as part of this patch.
Cheers
---Dave
> ---
> arch/arm/mach-ux500/headsmp.S | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-ux500/headsmp.S b/arch/arm/mach-ux500/headsmp.S
> index 64fa451..d03843d 100644
> --- a/arch/arm/mach-ux500/headsmp.S
> +++ b/arch/arm/mach-ux500/headsmp.S
> @@ -32,6 +32,7 @@ pen: ldr r7, [r6]
> * should now contain the SVC stack for this core
> */
> b secondary_startup
> +ENDPROC(u8500_secondary_startup)
>
> 1: .long .
> .long pen_release
> --
> 1.7.5.4
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage
2012-01-12 17:31 ` [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage Rob Herring
@ 2012-01-13 14:24 ` Dave Martin
0 siblings, 0 replies; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:24 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Jan 12, 2012 at 11:31:13AM -0600, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> BSYM macro is only needed for assembly files and its usage in c files is
> wrong, so remove it. The linker will correctly set bit 0 for Thumb2
> kernels.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Dave Martin <dave.martin@linaro.org>
> Cc: Kukjin Kim <kgene.kim@samsung.com>
Missing .align before label 1 (see my comment on the ux500 patch)
Cheers
---Dave
> ---
> arch/arm/mach-exynos/headsmp.S | 1 +
> arch/arm/mach-exynos/platsmp.c | 5 ++---
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mach-exynos/headsmp.S b/arch/arm/mach-exynos/headsmp.S
> index 3cdeb36..b6a0ee2 100644
> --- a/arch/arm/mach-exynos/headsmp.S
> +++ b/arch/arm/mach-exynos/headsmp.S
> @@ -36,6 +36,7 @@ pen: ldr r7, [r6]
> * should now contain the SVC stack for this core
> */
> b secondary_startup
> +ENDPROC(exynos4_secondary_startup)
>
> 1: .long .
> .long pen_release
> diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
> index 60bc45e..683aec7 100644
> --- a/arch/arm/mach-exynos/platsmp.c
> +++ b/arch/arm/mach-exynos/platsmp.c
> @@ -24,7 +24,6 @@
> #include <asm/cacheflush.h>
> #include <asm/hardware/gic.h>
> #include <asm/smp_scu.h>
> -#include <asm/unified.h>
>
> #include <mach/hardware.h>
> #include <mach/regs-clock.h>
> @@ -137,7 +136,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
> while (time_before(jiffies, timeout)) {
> smp_rmb();
>
> - __raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)),
> + __raw_writel(virt_to_phys(exynos4_secondary_startup),
> CPU1_BOOT_REG);
> gic_raise_softirq(cpumask_of(cpu), 1);
>
> @@ -192,6 +191,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
> * until it receives a soft interrupt, and then the
> * secondary CPU branches to this address.
> */
> - __raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)),
> + __raw_writel(virt_to_phys(exynos4_secondary_startup),
> CPU1_BOOT_REG);
> }
> --
> 1.7.5.4
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 5/7] ARM: imx: remove incorrect BSYM usage
2012-01-12 17:31 ` [PATCH v2 5/7] ARM: imx: " Rob Herring
@ 2012-01-13 14:27 ` Dave Martin
0 siblings, 0 replies; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:27 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Jan 12, 2012 at 11:31:14AM -0600, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> BSYM macro is only needed for assembly files and its usage in c files is
> wrong, so remove it. The linker will correctly set bit 0 for Thumb2
> kernels.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Dave Martin <dave.martin@linaro.org>
> Cc: Sascha Hauer <kernel@pengutronix.de>
> Acked-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Dave Martin <dave.martin@linaro.org>
> ---
> arch/arm/mach-imx/src.c | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c
> index 4bde04f..29bd124 100644
> --- a/arch/arm/mach-imx/src.c
> +++ b/arch/arm/mach-imx/src.c
> @@ -15,7 +15,6 @@
> #include <linux/of.h>
> #include <linux/of_address.h>
> #include <linux/smp.h>
> -#include <asm/unified.h>
>
> #define SRC_SCR 0x000
> #define SRC_GPR1 0x020
> @@ -43,7 +42,7 @@ void imx_enable_cpu(int cpu, bool enable)
> void imx_set_cpu_jump(int cpu, void *jump_addr)
> {
> cpu = cpu_logical_map(cpu);
> - writel_relaxed(BSYM(virt_to_phys(jump_addr)),
> + writel_relaxed(virt_to_phys(jump_addr),
> src_base + SRC_GPR1 + cpu * 8);
> }
>
> --
> 1.7.5.4
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 6/7] ARM: highbank: remove incorrect BSYM usage
2012-01-12 17:31 ` [PATCH v2 6/7] ARM: highbank: " Rob Herring
@ 2012-01-13 14:29 ` Dave Martin
0 siblings, 0 replies; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:29 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Jan 12, 2012 at 11:31:15AM -0600, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> BSYM macro is only needed for assembly files and its usage in c files is
> wrong, so remove it. The linker will correctly set bit 0 for Thumb2
> kernels.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Dave Martin <dave.martin@linaro.org>
Acked-by: Dave Martin <dave.martin@linaro.org>
> ---
> arch/arm/mach-highbank/highbank.c | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
> index 804c4a5..7afbe1e 100644
> --- a/arch/arm/mach-highbank/highbank.c
> +++ b/arch/arm/mach-highbank/highbank.c
> @@ -25,7 +25,6 @@
> #include <linux/smp.h>
>
> #include <asm/cacheflush.h>
> -#include <asm/unified.h>
> #include <asm/smp_scu.h>
> #include <asm/hardware/arm_timer.h>
> #include <asm/hardware/timer-sp.h>
> @@ -76,7 +75,7 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr)
> #ifdef CONFIG_SMP
> cpu = cpu_logical_map(cpu);
> #endif
> - writel(BSYM(virt_to_phys(jump_addr)), HB_JUMP_TABLE_VIRT(cpu));
> + writel(virt_to_phys(jump_addr), HB_JUMP_TABLE_VIRT(cpu));
> __cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16);
> outer_clean_range(HB_JUMP_TABLE_PHYS(cpu),
> HB_JUMP_TABLE_PHYS(cpu) + 15);
> --
> 1.7.5.4
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 3/7] ARM: ux500: add missing ENDPROC to headsmp.S
2012-01-13 14:24 ` Dave Martin
@ 2012-01-13 14:46 ` Rob Herring
0 siblings, 0 replies; 15+ messages in thread
From: Rob Herring @ 2012-01-13 14:46 UTC (permalink / raw)
To: linux-arm-kernel
On 01/13/2012 08:24 AM, Dave Martin wrote:
> On Thu, Jan 12, 2012 at 11:31:12AM -0600, Rob Herring wrote:
>> From: Rob Herring <rob.herring@calxeda.com>
>>
>> Once the ENDPROC is in place, BSYM() in not longer necessary
>> to get correct pointer to u8500_secondary_startup().
>>
>> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
>> Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
>> Cc: Linus Walleij <linus.walleij@stericsson.com>
>
> The words at label 1 may be misaligned in a Thumb kernel, which is
> undesirable.
>
> It probably makes sense to add a .align 2 before that label
> as part of this patch.
>
Not a new problem, but I'll fix that as well.
Rob
> Cheers
> ---Dave
>
>> ---
>> arch/arm/mach-ux500/headsmp.S | 1 +
>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/mach-ux500/headsmp.S b/arch/arm/mach-ux500/headsmp.S
>> index 64fa451..d03843d 100644
>> --- a/arch/arm/mach-ux500/headsmp.S
>> +++ b/arch/arm/mach-ux500/headsmp.S
>> @@ -32,6 +32,7 @@ pen: ldr r7, [r6]
>> * should now contain the SVC stack for this core
>> */
>> b secondary_startup
>> +ENDPROC(u8500_secondary_startup)
>>
>> 1: .long .
>> .long pen_release
>> --
>> 1.7.5.4
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2012-01-13 14:46 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
2012-01-12 17:31 ` [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S Rob Herring
2012-01-13 14:09 ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 2/7] ARM: msm: " Rob Herring
2012-01-12 17:31 ` [PATCH v2 3/7] ARM: ux500: add " Rob Herring
2012-01-13 14:24 ` Dave Martin
2012-01-13 14:46 ` Rob Herring
2012-01-12 17:31 ` [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage Rob Herring
2012-01-13 14:24 ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 5/7] ARM: imx: " Rob Herring
2012-01-13 14:27 ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 6/7] ARM: highbank: " Rob Herring
2012-01-13 14:29 ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 7/7] ARM: make BSYM macro assembly only Rob Herring
2012-01-13 14:10 ` Dave Martin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).