Skip to contentSkip to conversation

drivers/bus: arm-cci: fix combined ARMv6+v7 build

PATCH In review Arnd Bergmann 2 participants 3 messages Jun 3, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drivers/bus: arm-cci: fix combined ARMv6+v7 build

When we build a kernel with support for both ARMv6 and ARMv7, gas is trying to be helpful by pointing out that the arm-cci driver would not work on ARMv6:

/tmp/ccu1LDeU.s: Assembler messages:
/tmp/ccu1LDeU.s:450: Error: selected processor does not support ARM mode wfi ' /tmp/ccu1LDeU.s:451: Error: selected processor does not support ARM mode wfe ' make[4]: *** [drivers/bus/arm-cci.o] Error 1

We know that the driver will only be used on ARMv7, hence we can annotate the inline assembly listing to allow those instructions.

Cc Nicolas Pitre <[email protected]>
Cc Dave Martin <[email protected]>
drivers/bus/arm-cci.c +1 -1
index 380319e..7332889 100644
@@ -253,7 +253,7 @@ EXPORT_SYMBOL_GPL(cci_disable_port_by_cpu);
 asmlinkage void __naked cci_enable_port_for_self(void)
 {
 	asm volatile ("\n"
-
+"	.arch armv7-a\n"
 "	mrc	p15, 0, r0, c0, c0, 5	@ get MPIDR value \n"
 "	and	r0, r0, #"__stringify(MPIDR_HWID_BITMASK)" \n"
 "	adr	r1, 5f \n"
Acked-by on v1 1/1
#1 lore raw
Quoted 9 lines · Arnd Bergmann

When we build a kernel with support for both ARMv6 and ARMv7, gas is trying to be helpful by pointing out that the arm-cci driver would not work on ARMv6:

/tmp/ccu1LDeU.s: Assembler messages:
/tmp/ccu1LDeU.s:450: Error: selected processor does not support ARM mode wfi ' /tmp/ccu1LDeU.s:451: Error: selected processor does not support ARM mode wfe ' make[4]: *** [drivers/bus/arm-cci.o] Error 1

Quoted 6 lines

We know that the driver will only be used on ARMv7, hence we can annotate the inline assembly listing to allow those instructions.

Cc Nicolas Pitre <[email protected]>
Cc Dave Martin <[email protected]>

Since this code is merged into ARM-SOC, I assume you'll take care of this patch?

Quoted 15 lines
drivers/bus/arm-cci.c +1 -1
index 380319e..7332889 100644
@@ -253,7 +253,7 @@ EXPORT_SYMBOL_GPL(cci_disable_port_by_cpu);
 asmlinkage void __naked cci_enable_port_for_self(void)
 {
 	asm volatile ("\n"
-
+"	.arch armv7-a\n"
 "	mrc	p15, 0, r0, c0, c0, 5	@ get MPIDR value \n"
 "	and	r0, r0, #"__stringify(MPIDR_HWID_BITMASK)" \n"
 "	adr	r1, 5f \n"
#2 lore raw
Quoted 11 lines · On Monday 03 June 2013 09:23:58 Nicolas Pitre wrote:
Quoted 9 lines · Arnd Bergmann

When we build a kernel with support for both ARMv6 and ARMv7, gas is trying to be helpful by pointing out that the arm-cci driver would not work on ARMv6:

/tmp/ccu1LDeU.s: Assembler messages:
/tmp/ccu1LDeU.s:450: Error: selected processor does not support ARM mode wfi ' /tmp/ccu1LDeU.s:451: Error: selected processor does not support ARM mode wfe ' make[4]: *** [drivers/bus/arm-cci.o] Error 1

Quoted 8 lines
Quoted 6 lines

We know that the driver will only be used on ARMv7, hence we can annotate the inline assembly listing to allow those instructions.

Cc Nicolas Pitre <[email protected]>
Cc Dave Martin <[email protected]>

Thanks

Quoted 2 lines

Since this code is merged into ARM-SOC, I assume you'll take care of this patch?

Yes, I applied it on top of the next/soc branch now.

Arnd