Thread (21 messages) flat view 21 messages, 5 authors, 2013-02-08
STALE4965d

[PATCH v2 2/2] ARM: uncompress debug support for multiplatform build

From: Stephen Warren <hidden>
Date: 2013-02-07 16:36:22

On 02/06/2013 10:04 PM, Shawn Guo wrote:
On Wed, Feb 06, 2013 at 12:04:19PM -0700, Stephen Warren wrote:
quoted
On 02/06/2013 02:32 AM, Russell King - ARM Linux wrote:
quoted
On Mon, Feb 04, 2013 at 04:01:33PM +0000, Russell King - ARM Linux wrote:
quoted
On Fri, Jan 18, 2013 at 10:45:20AM +0800, Shawn Guo wrote:
quoted
Instead of giving zero support of uncompress debug for multiplatform
build, the patch turns uncompress debug into one part of DEBUG_LL
support.  When DEBUG_LL is turned on for a particular platform,
uncompress debug works too for that platform.

It reuses the platform DEBUG_LL macros by creating a simple
arch/arm/boot/compressed/debug.S with CONFIG_DEBUG_LL_INCLUDE
included there, and implements a generic putc() using those macros.
Ok, I've applied this on the previso that _no one_ in future whinges if
the debug infrastructure doesn't quite meet their expectation.  The
debug infrastructure remains first and foremost that: a simple debug
infrastructure suitable for use in the early assembly and the like.

That is its primary concern and trumps any requirements from consoles,
early printk, decompressor output, and the like.
... and now I've dropped the two patches because it causes build failures
for all OMAP and PXA platforms.
It also breaks tegra_defconfig. For reference, the (or perhaps just a)
reason here is that arch/arm/include/debug/tegra.S references symbol
tegra_uart_config, which is declared in arch/arm/mach-tegra/common.c,
which isn't part of the decompressor build. Tegra's uncompress.h doesn't
touch this symbol, hence avoids this problem.
Thanks for the info, Stephen.

From what I see, the patch breaks omap, pxa and tegra build by
different causes.
...
quoted hunk ↗ jump to hunk
quoted
Perhaps the patch can be re-cast to only affect multi-platform kernels,
and leave unconverted platforms using uncompress.h (at least, I assume
that must be the problem).
Indeed.  The arch/arm/boot/compressed/debug.S shouldn't be part of
traditional build but only multiplatform.  Let's force that with the
change below.

8<---
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index c9865f6..13bdd10 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -24,9 +24,11 @@ endif
 AFLAGS_head.o += -DTEXT_OFFSET=$(TEXT_OFFSET)
 HEAD   = head.o
 OBJS   += misc.o decompress.o
+ifeq ($(CONFIG_ARCH_MULTIPLATFORM),y)
 ifeq ($(CONFIG_DEBUG_LL),y)
 OBJS   += debug.o
 endif
+endif
 FONTC  = $(srctree)/drivers/video/console/font_acorn_8x8.c

 # string library code (-Os is enforced to keep it much smaller)
--->8
Yes, that patch fixes the build problem for me, and all decompressor
output and earlyprintk works. Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help