Skip to contentSkip to conversation

ARM: compile fix for DEBUG_LL=y && MMU=n

RFC PATCH New Uwe Kleine-König 4 participants 8 messages Jan 16, 2013 – Jan 17, 2013 Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/1 ARM: compile fix for DEBUG_LL=y && MMU=n

debug_ll_addr is only used on machines with an MMU so it can be #ifdef'ed out safely. This fixes:

arch/arm/kernel/debug.S: Assembler messages:
arch/arm/kernel/debug.S:104: Error: too many positional arguments

Cc Rob Herring <[email protected]>
Cc Stephen Warren <[email protected]>
Cc Olof Johansson <[email protected]>

---
The obvious alternative fix is to make addruart on !MMU take 3 arguments, too.

The problem was introduced in

	e5c5f2a (ARM: implement debug_ll_io_init())

which appeared in v3.8-rc1.

---
 arch/arm/kernel/debug.S |    2 ++
 1 file changed, 2 insertions(+)
arch/arm/kernel/debug.S +2 -0
index 6809200..14f7c3b 100644
@@ -100,12 +100,14 @@ ENTRY(printch)
 		b	1b
 ENDPROC(printch)
 
+#ifdef CONFIG_MMU
 ENTRY(debug_ll_addr)
 		addruart r2, r3, ip
 		str	r2, [r0]
 		str	r3, [r1]
 		mov	pc, lr
 ENDPROC(debug_ll_addr)
+#endif
 
 #else
 
Signature · 1 line
1.7.10.4
#1 lore raw

RFC PATCH 1/1 ARM: compile fix for DEBUG_LL=y && MMU=n

Quoted 10 lines · Uwe Kleine-K?nig

debug_ll_addr is only used on machines with an MMU so it can be #ifdef'ed out safely. This fixes:

arch/arm/kernel/debug.S: Assembler messages:
arch/arm/kernel/debug.S:104: Error: too many positional arguments

Cc Rob Herring <[email protected]>
Cc Stephen Warren <[email protected]>
Cc Olof Johansson <[email protected]>
Quoted 7 lines

---
The obvious alternative fix is to make addruart on !MMU take 3 arguments, too.

The problem was introduced in

	e5c5f2a (ARM: implement debug_ll_io_init())

It may be useful to mention that in the commit message.

Sorry for the breakage. Are there any ARM defconfigs for !MMU?

(although should the second copy of debug_ll_addr at the end of the file be ifdef'd away too; the one for CONFIG_DEBUG_SEMIHOSTING)?

#2 lore raw

RFC PATCH 1/1 ARM: compile fix for DEBUG_LL=y && MMU=n

Quoted 15 lines · Stephen Warren
Quoted 14 lines · Uwe Kleine-K?nig

debug_ll_addr is only used on machines with an MMU so it can be #ifdef'ed out safely. This fixes:

arch/arm/kernel/debug.S: Assembler messages:
arch/arm/kernel/debug.S:104: Error: too many positional arguments

Cc Rob Herring <[email protected]>
Cc Stephen Warren <[email protected]>
Cc Olof Johansson <[email protected]>

---
The obvious alternative fix is to make addruart on !MMU take 3 arguments, too.

Quoted 5 lines
Quoted 3 lines

The problem was introduced in

	e5c5f2a (ARM: implement debug_ll_io_init())

It may be useful to mention that in the commit message.

right.

Quoted 1 line

Sorry for the breakage. Are there any ARM defconfigs for !MMU?

I'm not aware of anything in mainline.

Quoted 1 line

thanks

Quoted 2 lines

(although should the second copy of debug_ll_addr at the end of the file be ifdef'd away too; the one for CONFIG_DEBUG_SEMIHOSTING)?

In contrast to the !CONFIG_DEBUG_SEMIHOSTING implementation this one doesn't call addruart and should compile just fine. I don't care much.

Best regards
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
#3 lore raw

RFC PATCH 1/1 ARM: compile fix for DEBUG_LL=y && MMU=n

In reply to Uwe Kleine-König
Quoted 6 lines · Uwe Kleine-K?nig

debug_ll_addr is only used on machines with an MMU so it can be #ifdef'ed out safely. This fixes:

arch/arm/kernel/debug.S: Assembler messages:
arch/arm/kernel/debug.S:104: Error: too many positional arguments

Quoted 7 lines
Cc Rob Herring <[email protected]>
Cc Stephen Warren <[email protected]>
Cc Olof Johansson <[email protected]>

---
The obvious alternative fix is to make addruart on !MMU take 3 arguments, too.

We never envision a need to get the uart address from C code on !MMU?

Either way:

Quoted 30 lines

The problem was introduced in

	e5c5f2a (ARM: implement debug_ll_io_init())

which appeared in v3.8-rc1.

---
 arch/arm/kernel/debug.S |    2 ++
 1 file changed, 2 insertions(+)
arch/arm/kernel/debug.S +2 -0
index 6809200..14f7c3b 100644
@@ -100,12 +100,14 @@ ENTRY(printch)
 		b	1b
 ENDPROC(printch)
 
+#ifdef CONFIG_MMU
 ENTRY(debug_ll_addr)
 		addruart r2, r3, ip
 		str	r2, [r0]
 		str	r3, [r1]
 		mov	pc, lr
 ENDPROC(debug_ll_addr)
+#endif
 
 #else
 
#4 lore raw

RFC PATCH 1/1 ARM: compile fix for DEBUG_LL=y && MMU=n

Quoted 15 lines · Rob Herring
Quoted 6 lines · Uwe Kleine-K?nig

debug_ll_addr is only used on machines with an MMU so it can be #ifdef'ed out safely. This fixes:

arch/arm/kernel/debug.S: Assembler messages:
arch/arm/kernel/debug.S:104: Error: too many positional arguments

Quoted 7 lines
Cc Rob Herring <[email protected]>
Cc Stephen Warren <[email protected]>
Cc Olof Johansson <[email protected]>

---
The obvious alternative fix is to make addruart on !MMU take 3 arguments, too.

Quoted 1 line

We never envision a need to get the uart address from C code on !MMU?

On MMU addruart takes 3 arguments: physical address output, virtual address output and a tmp. On !MMU physical == virtual, so only one register for the address is needed.

(BTW, it was commit 639da5e (ARM: add an extra temp register to the low level debugging addruart macro) that only changed the MMU variants of addruart.)

Best regards
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
#5 lore raw

RFC PATCH 1/1 ARM: compile fix for DEBUG_LL=y && MMU=n

In reply to Uwe Kleine-König
Quoted 14 lines · Uwe Kleine-K?nig

debug_ll_addr is only used on machines with an MMU so it can be #ifdef'ed out safely. This fixes:

arch/arm/kernel/debug.S: Assembler messages:
arch/arm/kernel/debug.S:104: Error: too many positional arguments

Cc Rob Herring <[email protected]>
Cc Stephen Warren <[email protected]>
Cc Olof Johansson <[email protected]>

---
The obvious alternative fix is to make addruart on !MMU take 3 arguments, too.

Quoted 5 lines

The problem was introduced in

	e5c5f2a (ARM: implement debug_ll_io_init())

which appeared in v3.8-rc1.

Since we introduced the breakage in arm-soc, I've picked up the fix (I guess it could have gone through Russell's tree as well though).

I've added the reference to the introducing commit, and the acks/review tags.

Adding a defconfig for a !MMU platform seems like a good idea, since there's several of us who make sure that there is build coverage of the defconfigs and follow up on most of the breakage. Feel free to send one in for 3.9.

-Olof

#6 lore raw

RFC PATCH 1/1 ARM: compile fix for DEBUG_LL=y && MMU=n

Quoted 21 lines · Olof Johansson
Quoted 14 lines · Uwe Kleine-K?nig

debug_ll_addr is only used on machines with an MMU so it can be #ifdef'ed out safely. This fixes:

arch/arm/kernel/debug.S: Assembler messages:
arch/arm/kernel/debug.S:104: Error: too many positional arguments

Cc Rob Herring <[email protected]>
Cc Stephen Warren <[email protected]>
Cc Olof Johansson <[email protected]>

---
The obvious alternative fix is to make addruart on !MMU take 3 arguments, too.

Quoted 5 lines

The problem was introduced in

	e5c5f2a (ARM: implement debug_ll_io_init())

which appeared in v3.8-rc1.

Quoted 8 lines

Since we introduced the breakage in arm-soc, I've picked up the fix (I guess it could have gone through Russell's tree as well though).

I've added the reference to the introducing commit, and the acks/review tags.

Adding a defconfig for a !MMU platform seems like a good idea, since there's several of us who make sure that there is build coverage of the defconfigs and follow up on most of the breakage. Feel free to send one in for 3.9.

Jonny just pointed out in irc that there is at91x40_defconfig.

Best regards
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
#7 lore raw

RFC PATCH 1/1 ARM: compile fix for DEBUG_LL=y && MMU=n

Quoted 4 lines · Uwe Kleine-K?nig
Quoted 3 lines · Olof Johansson
Quoted 2 lines · Uwe Kleine-K?nig

debug_ll_addr is only used on machines with an MMU so it can be #ifdef'ed out safely. This fixes:

...

Quoted 5 lines
Quoted 3 lines

Adding a defconfig for a !MMU platform seems like a good idea, since there's several of us who make sure that there is build coverage of the defconfigs and follow up on most of the breakage. Feel free to send one in for 3.9.

Jonny just pointed out in irc that there is at91x40_defconfig.

Ah. I have built that a few times recently, but since it doesn't enable DEBUG_LL, this problem didn't show up.