Re: [PATCH v2 -next 00/13] Extensible console matching & direct earlycon

From: Rob Herring
Date: Thu Mar 05 2015 - 11:11:39 EST


On Sun, Mar 1, 2015 at 10:05 AM, Peter Hurley <peter@xxxxxxxxxxxxxxxxxx> wrote:
> Changes from v1:
> * rebased on and requires "console: Fix console name size mismatch"

I plan to pick this one up for 4.0 because I need it for "of: Fix
premature bootconsole disable with 'stdout-path'".

> Hi Greg & Andrew,
>
> This patch series implements:
> 1. console-definable (aka extensible) matching
> 2. generic earlycon-to-console handoff via extensible matching
> 3. arch/prom support for direct earlycon
>
>
> Extensible console matching
>
> Extensible console matching enables the console itself to define the
> conditions for a "command line" match. This mimics the design of
> device matching in the driver model. Two important use-cases which this
> feature enables are generic earlycon-to-console handoff and support
> for driver migration.
>
> Earlycon-to-console handoff was implemented in 2007. Console command
> lines of the form:
> console=uart,io,0x3f8,115200n8
> start an earlycon and later allow the 8250 driver console to takeover.
> Unfortunately this implementation requires direct coupling between
> the earlycon and the console and is facilitated by ugly hacks like
> editing the console command line in-place.
>
> Extensible console matching allows the 8250 driver to directly match
> that console command line instead, and enables other serial drivers
> to trivially support console handoff themselves.
>
> In addition, extensible console matching allows a new driver to
> provide support for a different driver's console. This requirement
> stems from needing to minimize breakage when migrating serial drivers.
> Since many devices are based on the original 8250/16550 designs
> but sometimes have features incompatible with the existing 8250 driver
> support, the initial driver is often standalone. When/if the standalone
> driver is migrated to the 8250 driver, the problem of console names in
> the command line remains. Extensible console matching enables a simple
> migration path.
>
>
> Direct earlycon
>
> This feature enables arches and proms to start an earlycon directly,
> rather than requiring an "earlycon=" command line parameter.
> Devicetree can already do this via the 'linux,stdout-path' property,
> but arch and prom code requires direct coupling to the serial driver.
>
> This support is implemented by judicious refactoring and the same
> construct that devicetree and early_param use: a link table containing
> the necessary information (name and setup() function) to find and
> bind the appropriate earlycon "driver".
>
>
> NB: I combined these two features in this series because their
> implementations heavily overlap in the same source files.
>
> Regards,
>
> Peter Hurley (13):
> serial: earlycon: Refactor parse_options into serial core
> console: Preserve index after console setup()
> console: Add extensible console matching
> serial: core: Fix kernel doc for uart_console_write()
> serial: 8250_early: Remove early_device variable
> serial: earlycon: Move ->uartclk initialize
> serial: 8250_early: Assume uart already initialized if no baud option
> serial: 8250_early: Fix setup() error code
> serial: earlycon: Ignore parse_options() error code
> serial: earlycon: Allow earlycon params with name only
> serial: earlycon: Refactor earlycon registration
> serial: earlycon: Enable earlycon without command line param
> serial: 8250_early: Remove setup_early_serial8250_console()
>
> arch/mips/mti-malta/malta-init.c | 4 +-
> drivers/firmware/pcdp.c | 4 +-
> drivers/tty/serial/8250/8250_core.c | 64 ++++++++++++----
> drivers/tty/serial/8250/8250_early.c | 51 +++----------
> drivers/tty/serial/earlycon.c | 140 ++++++++++++++++++++++++-----------
> drivers/tty/serial/serial_core.c | 48 +++++++++++-
> include/asm-generic/vmlinux.lds.h | 9 +++
> include/linux/console.h | 3 +-
> include/linux/serial_8250.h | 3 -
> include/linux/serial_core.h | 21 ++++--
> kernel/printk/printk.c | 53 +++++--------
> 11 files changed, 246 insertions(+), 154 deletions(-)

For the series:

Acked-by: Rob Herring <robh@xxxxxxxxxx>

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