Palmer Dabbelt <[email protected]> writes:
>
...
> +#ifdef CONFIG_EARLY_PRINTK
> +static void sbi_console_write(struct console *co, const char *buf,
> +                           unsigned int n)
> +{
> +     int i;
> +
> +     for (i = 0; i < n; ++i) {
> +             if (buf[i] == '\n')
> +                     sbi_console_putchar('\r');
> +             sbi_console_putchar(buf[i]);
> +     }
> +}
> +
> +static struct console early_console_dev __initdata = {
> +     .name   = "early",
> +     .write  = sbi_console_write,
> +     .flags  = CON_PRINTBUFFER | CON_BOOT,

AFAICS you could add CON_ANYTIME here, which would mean this console
would print output before the CPU is online.

I think it doesn't currently matter because you call parse_early_param()
from setup_arch(), at which point the boot CPU has been marked online.

But if this console can actually work earlier then you might be better
off just registering it unconditionally very early.

cheers

> +static int __init setup_early_printk(char *str)
> +{
> +     if (early_console == NULL) {
> +             early_console = &early_console_dev;
> +             register_console(early_console);
> +     }
> +     return 0;
> +}
> +early_param("earlyprintk", setup_early_printk);
> +#endif
> -- 
> 2.13.0

Reply via email to