Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1685701

Re: [PATCH 08/17] tty: New RISC-V SBI console driver

From Michael Ellerman <mpe@ellerman.id.au>
Newsgroups linux.kernel
Subject Re: [PATCH 08/17] tty: New RISC-V SBI console driver
Date 2017-07-12 13:10 +0200
Message-ID <u2nGO-7sP-23@gated-at.bofh.it> (permalink)
References <u26cV-4Ed-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Palmer Dabbelt <palmer@dabbelt.com> writes:

> On Mon, 10 Jul 2017 23:21:07 PDT (-0700), mpe@ellerman.id.au wrote:
>> Palmer Dabbelt <palmer@dabbelt.com> 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.
>
> That seems like a good idea.  I'm not familiar with how all this works, but
> from my understanding of this early_initcall() should be sufficient to make
> this work?  The only other driver that sets CON_ANYTIME and supports
> EARLY_PRINTK is hvc_xen, but that installs a header to let init code register
> the console directly.  The early_initcall mechanism seems cleaner if it does
> the right thing.

Unfortunately early_initcall is not very "early" :)  It's earlier than
all the other initcalls, but it's late compared to most of the arch boot
code.

The early_param() will work better, ie. register the console earlier
and increase the chance of you getting output from an early crash, than
early_initcall. But it requires you to put earlyprintk on the command line.

The best option is to just register the console as early as you can, ie.
as soon as it can give you output. So somewhere in your setup_arch(), or
even earlier (I haven't read your boot code).

cheers

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

RISC-V Linux Port v5 Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
  [PATCH 17/17] RISC-V: Build Infastructure Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
    Re: [PATCH 17/17] RISC-V: Build Infastructure Michael Ellerman <mpe@ellerman.id.au> - 2017-07-11 08:40 +0200
      Re: [PATCH 17/17] RISC-V: Build Infastructure Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 18:30 +0200
        Re: [PATCH 17/17] RISC-V: Build Infastructure Michael Ellerman <mpe@ellerman.id.au> - 2017-07-12 12:50 +0200
  [PATCH 06/17] irqchip: RISC-V Local Interrupt Controller Driver Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
  [PATCH 07/17] irqchip: New RISC-V PLIC Driver Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
  [PATCH 02/17] pci: Add a generic, weakly-linked pcibios_align_resource Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
  [PATCH 08/17] tty: New RISC-V SBI console driver Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
    Re: [PATCH 08/17] tty: New RISC-V SBI console driver Michael Ellerman <mpe@ellerman.id.au> - 2017-07-11 08:30 +0200
      Re: [PATCH 08/17] tty: New RISC-V SBI console driver Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 18:30 +0200
        Re: [PATCH 08/17] tty: New RISC-V SBI console driver Michael Ellerman <mpe@ellerman.id.au> - 2017-07-12 13:10 +0200
          Re: [PATCH 08/17] tty: New RISC-V SBI console driver Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-12 18:30 +0200
            Re: [PATCH 08/17] tty: New RISC-V SBI console driver Michael Ellerman <mpe@ellerman.id.au> - 2017-07-13 14:10 +0200
              Re: [PATCH 08/17] tty: New RISC-V SBI console driver James Hogan <james.hogan@imgtec.com> - 2017-07-13 14:40 +0200
                Re: [PATCH 08/17] tty: New RISC-V SBI console driver Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-14 00:00 +0200
                Re: [PATCH 08/17] tty: New RISC-V SBI console driver Michael Ellerman <mpe@ellerman.id.au> - 2017-07-14 07:10 +0200
  [PATCH 12/17] RISC-V: ELF and module implementation Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
  [PATCH 15/17] RISC-V: Paging and MMU Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
  [PATCH 04/17] MAINTAINERS: Add RISC-V Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
  [PATCH 05/17] clocksource: New RISC-V SBI timer driver Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
  [PATCH 03/17] pci: Add a generic, weakly-linked pcibios_fixup_bus Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
    Re: [PATCH 03/17] pci: Add a generic, weakly-linked pcibios_fixup_bus "Luis R. Rodriguez" <mcgrof@kernel.org> - 2017-07-11 21:00 +0200
  [PATCH 01/17] lib: Add shared copies of some GCC library routines Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
    Re: [PATCH 01/17] lib: Add shared copies of some GCC library routines Randy Dunlap <rdunlap@infradead.org> - 2017-07-11 04:10 +0200
    Re: [PATCH 01/17] lib: Add shared copies of some GCC library  routines Stephen Rothwell <sfr@canb.auug.org.au> - 2017-07-11 04:10 +0200
  [PATCH 14/17] RISC-V: Device, timer, IRQs, and the SBI Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 04:00 +0200
  Re: [PATCH 16/17] RISC-V: User-facing API Christoph Hellwig <hch@infradead.org> - 2017-07-11 15:50 +0200
    Re: [PATCH 16/17] RISC-V: User-facing API James Hogan <james.hogan@imgtec.com> - 2017-07-11 16:10 +0200
      Re: [patches] Re: [PATCH 16/17] RISC-V: User-facing API Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 19:30 +0200
  Re: RISC-V Linux Port v5 "Luis R. Rodriguez" <mcgrof@kernel.org> - 2017-07-11 20:40 +0200
    Re: RISC-V Linux Port v5 Palmer Dabbelt <palmer@dabbelt.com> - 2017-07-11 22:00 +0200

csiph-web