Message ID | 1347887324-22884-1-git-send-email-mvs@tigris.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Sep 17, 2012 at 03:08:44PM +0200, Maximilian Schwerin wrote: > This change allows preventing the message "Uncompressing Linux..." from > being sent to serial port. This is necessary if the primary serial port is > used for something other than kernel debugging (e.g. some external device > controlled by serial commands). Disabling CONFIG_DEBUG_LL doesn't work? Regards, Domenico
> -----Ursprüngliche Nachricht----- > Von: Domenico Andreoli > [mailto:domenico.andreoli.it@gmail.com] Im Auftrag von > Domenico Andreoli > Gesendet: Montag, 17. September 2012 15:17 > An: Maximilian Schwerin > Cc: linux-arm-kernel@lists.infradead.org > Betreff: Re: [PATCH] ARM: Add config option DEBUG_DECOMPRESS_KERNEL > > On Mon, Sep 17, 2012 at 03:08:44PM +0200, Maximilian Schwerin wrote: > > This change allows preventing the message "Uncompressing > Linux..." from > > being sent to serial port. This is necessary if the primary > serial port is > > used for something other than kernel debugging (e.g. some > external device > > controlled by serial commands). > > Disabling CONFIG_DEBUG_LL doesn't work? > > Regards, > Domenico > No (never had that enabled), but that may be a bug or omission in the platform (omap3) code?! Regards, m.
On Mon, 17 Sep 2012, Maximilian Schwerin wrote: > This change allows preventing the message "Uncompressing Linux..." from > being sent to serial port. This is necessary if the primary serial port is > used for something other than kernel debugging (e.g. some external device > controlled by serial commands). > > Signed-off-by: Maximilian Schwerin <mvs@tigris.de> > --- > arch/arm/Kconfig.debug | 9 +++++++++ > arch/arm/boot/compressed/misc.c | 4 ++++ > 2 files changed, 13 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug > index e968a52..96e90dc 100644 > --- a/arch/arm/Kconfig.debug > +++ b/arch/arm/Kconfig.debug > @@ -46,6 +46,15 @@ config OLD_MCOUNT > depends on FUNCTION_TRACER && FRAME_POINTER > default y > > +config DEBUG_DECOMPRESS_KERNEL > + bool "Using serial port during decompressing kernel" > + depends on DEBUG_KERNEL > + default n > + help > + If you say Y here you will confirm the start and the end of > + decompressing Linux seeing "Uncompressing Linux... " and > + " done, booting the kernel.\n" on console. First, "default n" is the default already, so you don't need to provide it. Next, this is going to disable the output by default for everyone which is an unwelcome change. You should make sure that the default behavior is like before, and that the option allows you to disable the output. And then the DEBUG_DECOMPRESS_KERNEL option is a rather bad name. This output has not been considered "debugging" before. What about "INHIBIT_DECOMPRESSOR_OUTPUT" instead? > diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c > index 8e2a8fc..edf4a35 100644 > --- a/arch/arm/boot/compressed/misc.c > +++ b/arch/arm/boot/compressed/misc.c > @@ -144,11 +144,15 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, > > arch_decomp_setup(); > > +#ifdef CONFIG_DEBUG_DECOMPRESS_KERNEL > putstr("Uncompressing Linux..."); > +#endif /* CONFIG_DEBUG_DECOMPRESS_KERNEL */ > ret = do_decompress(input_data, input_data_end - input_data, > output_data, error); > if (ret) > error("decompressor returned an error"); > +#ifdef CONFIG_DEBUG_DECOMPRESS_KERNEL > else > putstr(" done, booting the kernel.\n"); > +#endif /* CONFIG_DEBUG_DECOMPRESS_KERNEL */ That would be cleaner if you simply redefined putstr() to an empty stub. Similarly for error() which still can output to the same UART. Nicolas
On Mon, Sep 17, 2012 at 03:08:44PM +0200, Maximilian Schwerin wrote: > This change allows preventing the message "Uncompressing Linux..." from > being sent to serial port. This is necessary if the primary serial port is > used for something other than kernel debugging (e.g. some external device > controlled by serial commands). You know, it doesn't have to go to the serial port. It can go to anything. We have at least one platform where it goes to the framebuffer instead, but getting access to the framebuffer is a whole new load of platform dependence that we don't want here. In any case, ifdefing out the callsites is not the correct approach. We already have this stuff fairly well abstracted, and there's no reason why this can't be done by defining empty putc() and flush() functions.
> -----Ursprüngliche Nachricht----- > Von: Nicolas Pitre [mailto:nico@fluxnic.net] > Gesendet: Montag, 17. September 2012 19:30 > An: Maximilian Schwerin > Cc: linux-arm-kernel@lists.infradead.org > Betreff: Re: [PATCH] ARM: Add config option DEBUG_DECOMPRESS_KERNEL > > On Mon, 17 Sep 2012, Maximilian Schwerin wrote: > > > This change allows preventing the message "Uncompressing > Linux..." from > > being sent to serial port. This is necessary if the primary > serial port is > > used for something other than kernel debugging (e.g. some > external device > > controlled by serial commands). > > > > Signed-off-by: Maximilian Schwerin <mvs@tigris.de> > > --- > > arch/arm/Kconfig.debug | 9 +++++++++ > > arch/arm/boot/compressed/misc.c | 4 ++++ > > 2 files changed, 13 insertions(+), 0 deletions(-) > > > > diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug > > index e968a52..96e90dc 100644 > > --- a/arch/arm/Kconfig.debug > > +++ b/arch/arm/Kconfig.debug > > @@ -46,6 +46,15 @@ config OLD_MCOUNT > > depends on FUNCTION_TRACER && FRAME_POINTER > > default y > > > > +config DEBUG_DECOMPRESS_KERNEL > > + bool "Using serial port during decompressing kernel" > > + depends on DEBUG_KERNEL > > + default n > > + help > > + If you say Y here you will confirm the start and the end of > > + decompressing Linux seeing "Uncompressing Linux... " and > > + " done, booting the kernel.\n" on console. > > First, "default n" is the default already, so you don't need > to provide > it. Makes sense. > Next, this is going to disable the output by default for > everyone which > is an unwelcome change. You should make sure that the > default behavior > is like before, and that the option allows you to disable the output. > > And then the DEBUG_DECOMPRESS_KERNEL option is a rather bad > name. This > output has not been considered "debugging" before. What about > "INHIBIT_DECOMPRESSOR_OUTPUT" instead? This is something I copied from arch/mn10300/Kconfig.debug (see http://kernel.org/doc/menuconfig/arch-mn10300-Kconfig.debug.html). > > diff --git a/arch/arm/boot/compressed/misc.c > b/arch/arm/boot/compressed/misc.c > > index 8e2a8fc..edf4a35 100644 > > --- a/arch/arm/boot/compressed/misc.c > > +++ b/arch/arm/boot/compressed/misc.c > > @@ -144,11 +144,15 @@ decompress_kernel(unsigned long > output_start, unsigned long free_mem_ptr_p, > > > > arch_decomp_setup(); > > > > +#ifdef CONFIG_DEBUG_DECOMPRESS_KERNEL > > putstr("Uncompressing Linux..."); > > +#endif /* CONFIG_DEBUG_DECOMPRESS_KERNEL */ > > ret = do_decompress(input_data, input_data_end - input_data, > > output_data, error); > > if (ret) > > error("decompressor returned an error"); > > +#ifdef CONFIG_DEBUG_DECOMPRESS_KERNEL > > else > > putstr(" done, booting the kernel.\n"); > > +#endif /* CONFIG_DEBUG_DECOMPRESS_KERNEL */ > > That would be cleaner if you simply redefined putstr() to an > empty stub. > Similarly for error() which still can output to the same UART. > > > Nicolas > Thanks for the feedback both of you. I'll get into contact with the OMAP guys and will try to find a fix on the platform level. Cheers, m.
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index e968a52..96e90dc 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -46,6 +46,15 @@ config OLD_MCOUNT depends on FUNCTION_TRACER && FRAME_POINTER default y +config DEBUG_DECOMPRESS_KERNEL + bool "Using serial port during decompressing kernel" + depends on DEBUG_KERNEL + default n + help + If you say Y here you will confirm the start and the end of + decompressing Linux seeing "Uncompressing Linux... " and + " done, booting the kernel.\n" on console. + config DEBUG_USER bool "Verbose user fault messages" help diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 8e2a8fc..edf4a35 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c @@ -144,11 +144,15 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, arch_decomp_setup(); +#ifdef CONFIG_DEBUG_DECOMPRESS_KERNEL putstr("Uncompressing Linux..."); +#endif /* CONFIG_DEBUG_DECOMPRESS_KERNEL */ ret = do_decompress(input_data, input_data_end - input_data, output_data, error); if (ret) error("decompressor returned an error"); +#ifdef CONFIG_DEBUG_DECOMPRESS_KERNEL else putstr(" done, booting the kernel.\n"); +#endif /* CONFIG_DEBUG_DECOMPRESS_KERNEL */ }
This change allows preventing the message "Uncompressing Linux..." from being sent to serial port. This is necessary if the primary serial port is used for something other than kernel debugging (e.g. some external device controlled by serial commands). Signed-off-by: Maximilian Schwerin <mvs@tigris.de> --- arch/arm/Kconfig.debug | 9 +++++++++ arch/arm/boot/compressed/misc.c | 4 ++++ 2 files changed, 13 insertions(+), 0 deletions(-)