From: Guenter Roeck on
On Tue, 2010-04-06 at 16:17 -0400, H. Peter Anvin wrote:
[...]
> Therefore, the only sensible way to get the early messages out is really
> to push setup_early_printk() as early as possible.
>
I agree. I am already testing a patch which does exactly that. I should
have it ready for review either later today or tomorrow.

On the plus side, it shows several additional early messages on the
serial console, including the linux version and the command line.

On the downside, I removed the "Kernel alive" message. I don't think
that really makes a difference, though, since I do not see how
console_loglevel can be 10 or higher by the time the message is supposed
to be generated.

Guenter


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Guenter Roeck on
On Wed, 2010-03-31 at 14:31 -0400, H. Peter Anvin wrote:
> On 03/31/2010 07:41 AM, Guenter Roeck wrote:
> > Current early_printk code writes into VGA memory space even
> > if CONFIG_VGA_CONSOLE is undefined. This can cause problems
> > if there is no VGA device in the system, especially if the memory
> > is used by another device.
> >
> > Fix problem by redirecting output to early_serial_console
> > if CONFIG_VGA_CONSOLE is undefined.
> >
> > Signed-off-by: Guenter Roeck <guenter.roeck(a)ericsson.com>
> >
> > asmlinkage void early_printk(const char *fmt, ...)
> > @@ -216,7 +224,7 @@ static int __init setup_early_printk(char *buf)
> > early_serial_init(buf + 4);
> > early_console_register(&early_serial_console, keep);
> > }
> > - if (!strncmp(buf, "vga", 3) &&
> > + if (have_vga_console && !strncmp(buf, "vga", 3) &&
> > boot_params.screen_info.orig_video_isVGA == 1) {
> > max_xpos = boot_params.screen_info.orig_video_cols;
> > max_ypos = boot_params.screen_info.orig_video_lines;
>
> I'm confused in a big way about how you could end up with a system where:
>
> a) there is no VGA;
> b) VGA memory is used by another device(!!!);
> c) boot_params.screen_info.orig_video_isVGA == 1?
>
> -hpa

Look for
early_printk("Kernel alive");

That function is called prior to early_console_register(). Even though
the call is now conditional, it can still happen if the log level is
high enough. There are a couple of other early_printk() calls which can
be executed before early_console_register() as well. The value of isVGA
is thus irrelevant.

Regarding a) and b), we have hardware which does not have VGA and does
use the same memory space for another device. This was actually how the
problem was found.

Guenter


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/