* [PATCH v3 0/2] serial: samsung: add support for early console @ 2014-10-20 11:28 ` Marek Szyprowski 0 siblings, 0 replies; 10+ messages in thread From: Marek Szyprowski @ 2014-10-20 11:28 UTC (permalink / raw) To: linux-samsung-soc, linux-arm-kernel Cc: Marek Szyprowski, Alim Akhtar, thomas.ab, Tomasz Figa, Kyungmin Park, Rob Herring This patchset adds support for early console defined in device tree. As an example, DTS files for all Exynos4 based machines are updated with the correct value for common chosen/sdtout property. To get it fully functional on ARM architecture, additional improvements (support for early_ioremap) are needed in early console code. Best regards Marek Szyprowski Samsung R&D Institute Poland Change log: v3: - rebased onto v3.18-rc1 - removed options from documentation (they are not yet supported) v2: http://www.spinics.net/lists/linux-samsung-soc/msg37278.html - added support for command line based initialization v1: http://www.spinics.net/lists/linux-samsung-soc/msg37094.html - initial version Tomasz Figa (2): serial: samsung: Add support for early console ARM: dts: exynos4: Add stdout-path properties Documentation/kernel-parameters.txt | 12 +++ arch/arm/boot/dts/exynos4210-origen.dts | 1 + arch/arm/boot/dts/exynos4210-smdkv310.dts | 1 + arch/arm/boot/dts/exynos4210-trats.dts | 1 + arch/arm/boot/dts/exynos4210-universal_c210.dts | 1 + arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 4 + arch/arm/boot/dts/exynos4412-origen.dts | 1 + arch/arm/boot/dts/exynos4412-smdk4412.dts | 1 + arch/arm/boot/dts/exynos4412-tiny4412.dts | 4 + arch/arm/boot/dts/exynos4412-trats2.dts | 1 + drivers/tty/serial/Kconfig | 1 + drivers/tty/serial/samsung.c | 103 ++++++++++++++++++++++++ 12 files changed, 131 insertions(+) -- 1.9.2 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 0/2] serial: samsung: add support for early console @ 2014-10-20 11:28 ` Marek Szyprowski 0 siblings, 0 replies; 10+ messages in thread From: Marek Szyprowski @ 2014-10-20 11:28 UTC (permalink / raw) To: linux-arm-kernel This patchset adds support for early console defined in device tree. As an example, DTS files for all Exynos4 based machines are updated with the correct value for common chosen/sdtout property. To get it fully functional on ARM architecture, additional improvements (support for early_ioremap) are needed in early console code. Best regards Marek Szyprowski Samsung R&D Institute Poland Change log: v3: - rebased onto v3.18-rc1 - removed options from documentation (they are not yet supported) v2: http://www.spinics.net/lists/linux-samsung-soc/msg37278.html - added support for command line based initialization v1: http://www.spinics.net/lists/linux-samsung-soc/msg37094.html - initial version Tomasz Figa (2): serial: samsung: Add support for early console ARM: dts: exynos4: Add stdout-path properties Documentation/kernel-parameters.txt | 12 +++ arch/arm/boot/dts/exynos4210-origen.dts | 1 + arch/arm/boot/dts/exynos4210-smdkv310.dts | 1 + arch/arm/boot/dts/exynos4210-trats.dts | 1 + arch/arm/boot/dts/exynos4210-universal_c210.dts | 1 + arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 4 + arch/arm/boot/dts/exynos4412-origen.dts | 1 + arch/arm/boot/dts/exynos4412-smdk4412.dts | 1 + arch/arm/boot/dts/exynos4412-tiny4412.dts | 4 + arch/arm/boot/dts/exynos4412-trats2.dts | 1 + drivers/tty/serial/Kconfig | 1 + drivers/tty/serial/samsung.c | 103 ++++++++++++++++++++++++ 12 files changed, 131 insertions(+) -- 1.9.2 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/2] serial: samsung: Add support for early console 2014-10-20 11:28 ` Marek Szyprowski @ 2014-10-20 11:28 ` Marek Szyprowski -1 siblings, 0 replies; 10+ messages in thread From: Marek Szyprowski @ 2014-10-20 11:28 UTC (permalink / raw) To: linux-samsung-soc, linux-arm-kernel Cc: Marek Szyprowski, Alim Akhtar, thomas.ab, Tomasz Figa, Kyungmin Park, Rob Herring From: Tomasz Figa <t.figa@samsung.com> This patch adds support for early console initialized from device tree and kernel command line to all variants of Samsung serial driver. Signed-off-by: Tomasz Figa <t.figa@samsung.com> [mszyprow: added support for command line based initialization, fixed comments, added documentation] Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> Tested-by: Alim Akhtar <alim.akhtar@samsung.com> --- Documentation/kernel-parameters.txt | 12 +++++ drivers/tty/serial/Kconfig | 1 + drivers/tty/serial/samsung.c | 103 ++++++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+) diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 7dbe5ec9d9cd..24f363108ab3 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -961,6 +961,18 @@ bytes respectively. Such letter suffixes can also be entirely omitted. smh Use ARM semihosting calls for early console. + s3c2410,<addr> + s3c2412,<addr> + s3c2440,<addr> + s3c6400,<addr> + s5pv210,<addr> + exynos4210,<addr> + Use early console provided by serial driver available + on Samsung SoCs, requires selecting proper type and + a correct base address of the selected UART port. The + serial port must already be setup and configured. + Options are not yet supported. + earlyprintk= [X86,SH,BLACKFIN,ARM,M68k] earlyprintk=vga earlyprintk=efi diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig index 649b784081c7..50997be6cf6d 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig @@ -241,6 +241,7 @@ config SERIAL_SAMSUNG tristate "Samsung SoC serial support" depends on PLAT_SAMSUNG || ARCH_EXYNOS select SERIAL_CORE + select SERIAL_EARLYCON help Support for the on-chip UARTs on the Samsung S3C24XX series CPUs, providing /dev/ttySAC0, 1 and 2 (note, some machines may not diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index c78f43a481ce..8ad453a5d845 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c @@ -1856,6 +1856,109 @@ static struct platform_driver samsung_serial_driver = { module_platform_driver(samsung_serial_driver); +/* + * Early console. + */ + +struct samsung_early_console_data { + u32 txfull_mask; +}; + +static void samsung_early_busyuart(struct uart_port *port) +{ + while (!(readl(port->membase + S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXFE)) + ; +} + +static void samsung_early_busyuart_fifo(struct uart_port *port) +{ + struct samsung_early_console_data *data = port->private_data; + + while (readl(port->membase + S3C2410_UFSTAT) & data->txfull_mask) + ; +} + +static void samsung_early_putc(struct uart_port *port, int c) +{ + if (readl(port->membase + S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) + samsung_early_busyuart_fifo(port); + else + samsung_early_busyuart(port); + + writeb(c, port->membase + S3C2410_UTXH); +} + +static void samsung_early_write(struct console *con, const char *s, unsigned n) +{ + struct earlycon_device *dev = con->data; + + uart_console_write(&dev->port, s, n, samsung_early_putc); +} + +static int __init samsung_early_console_setup(struct earlycon_device *device, + const char *opt) +{ + if (!device->port.membase) + return -ENODEV; + + device->con->write = samsung_early_write; + return 0; +} + +/* S3C2410 */ +static struct samsung_early_console_data s3c2410_early_console_data = { + .txfull_mask = S3C2410_UFSTAT_TXFULL, +}; + +static int __init s3c2410_early_console_setup(struct earlycon_device *device, + const char *opt) +{ + device->port.private_data = &s3c2410_early_console_data; + return samsung_early_console_setup(device, opt); +} +OF_EARLYCON_DECLARE(s3c2410, "samsung,s3c2410-uart", + s3c2410_early_console_setup); +EARLYCON_DECLARE(s3c2410, s3c2410_early_console_setup); + +/* S3C2412, S3C2440, S3C64xx */ +static struct samsung_early_console_data s3c2440_early_console_data = { + .txfull_mask = S3C2440_UFSTAT_TXFULL, +}; + +static int __init s3c2440_early_console_setup(struct earlycon_device *device, + const char *opt) +{ + device->port.private_data = &s3c2440_early_console_data; + return samsung_early_console_setup(device, opt); +} +OF_EARLYCON_DECLARE(s3c2412, "samsung,s3c2412-uart", + s3c2440_early_console_setup); +OF_EARLYCON_DECLARE(s3c2440, "samsung,s3c2440-uart", + s3c2440_early_console_setup); +OF_EARLYCON_DECLARE(s3c6400, "samsung,s3c6400-uart", + s3c2440_early_console_setup); +EARLYCON_DECLARE(s3c2412, s3c2440_early_console_setup); +EARLYCON_DECLARE(s3c2440, s3c2440_early_console_setup); +EARLYCON_DECLARE(s3c6400, s3c2440_early_console_setup); + +/* S5PV210, EXYNOS */ +static struct samsung_early_console_data s5pv210_early_console_data = { + .txfull_mask = S5PV210_UFSTAT_TXFULL, +}; + +static int __init s5pv210_early_console_setup(struct earlycon_device *device, + const char *opt) +{ + device->port.private_data = &s5pv210_early_console_data; + return samsung_early_console_setup(device, opt); +} +OF_EARLYCON_DECLARE(s5pv210, "samsung,s5pv210-uart", + s5pv210_early_console_setup); +OF_EARLYCON_DECLARE(exynos4210, "samsung,exynos4210-uart", + s5pv210_early_console_setup); +EARLYCON_DECLARE(s5pv210, s5pv210_early_console_setup); +EARLYCON_DECLARE(exynos4210, s5pv210_early_console_setup); + MODULE_ALIAS("platform:samsung-uart"); MODULE_DESCRIPTION("Samsung SoC Serial port driver"); MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); -- 1.9.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 1/2] serial: samsung: Add support for early console @ 2014-10-20 11:28 ` Marek Szyprowski 0 siblings, 0 replies; 10+ messages in thread From: Marek Szyprowski @ 2014-10-20 11:28 UTC (permalink / raw) To: linux-arm-kernel From: Tomasz Figa <t.figa@samsung.com> This patch adds support for early console initialized from device tree and kernel command line to all variants of Samsung serial driver. Signed-off-by: Tomasz Figa <t.figa@samsung.com> [mszyprow: added support for command line based initialization, fixed comments, added documentation] Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> Tested-by: Alim Akhtar <alim.akhtar@samsung.com> --- Documentation/kernel-parameters.txt | 12 +++++ drivers/tty/serial/Kconfig | 1 + drivers/tty/serial/samsung.c | 103 ++++++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+) diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 7dbe5ec9d9cd..24f363108ab3 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -961,6 +961,18 @@ bytes respectively. Such letter suffixes can also be entirely omitted. smh Use ARM semihosting calls for early console. + s3c2410,<addr> + s3c2412,<addr> + s3c2440,<addr> + s3c6400,<addr> + s5pv210,<addr> + exynos4210,<addr> + Use early console provided by serial driver available + on Samsung SoCs, requires selecting proper type and + a correct base address of the selected UART port. The + serial port must already be setup and configured. + Options are not yet supported. + earlyprintk= [X86,SH,BLACKFIN,ARM,M68k] earlyprintk=vga earlyprintk=efi diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig index 649b784081c7..50997be6cf6d 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig @@ -241,6 +241,7 @@ config SERIAL_SAMSUNG tristate "Samsung SoC serial support" depends on PLAT_SAMSUNG || ARCH_EXYNOS select SERIAL_CORE + select SERIAL_EARLYCON help Support for the on-chip UARTs on the Samsung S3C24XX series CPUs, providing /dev/ttySAC0, 1 and 2 (note, some machines may not diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index c78f43a481ce..8ad453a5d845 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c @@ -1856,6 +1856,109 @@ static struct platform_driver samsung_serial_driver = { module_platform_driver(samsung_serial_driver); +/* + * Early console. + */ + +struct samsung_early_console_data { + u32 txfull_mask; +}; + +static void samsung_early_busyuart(struct uart_port *port) +{ + while (!(readl(port->membase + S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXFE)) + ; +} + +static void samsung_early_busyuart_fifo(struct uart_port *port) +{ + struct samsung_early_console_data *data = port->private_data; + + while (readl(port->membase + S3C2410_UFSTAT) & data->txfull_mask) + ; +} + +static void samsung_early_putc(struct uart_port *port, int c) +{ + if (readl(port->membase + S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) + samsung_early_busyuart_fifo(port); + else + samsung_early_busyuart(port); + + writeb(c, port->membase + S3C2410_UTXH); +} + +static void samsung_early_write(struct console *con, const char *s, unsigned n) +{ + struct earlycon_device *dev = con->data; + + uart_console_write(&dev->port, s, n, samsung_early_putc); +} + +static int __init samsung_early_console_setup(struct earlycon_device *device, + const char *opt) +{ + if (!device->port.membase) + return -ENODEV; + + device->con->write = samsung_early_write; + return 0; +} + +/* S3C2410 */ +static struct samsung_early_console_data s3c2410_early_console_data = { + .txfull_mask = S3C2410_UFSTAT_TXFULL, +}; + +static int __init s3c2410_early_console_setup(struct earlycon_device *device, + const char *opt) +{ + device->port.private_data = &s3c2410_early_console_data; + return samsung_early_console_setup(device, opt); +} +OF_EARLYCON_DECLARE(s3c2410, "samsung,s3c2410-uart", + s3c2410_early_console_setup); +EARLYCON_DECLARE(s3c2410, s3c2410_early_console_setup); + +/* S3C2412, S3C2440, S3C64xx */ +static struct samsung_early_console_data s3c2440_early_console_data = { + .txfull_mask = S3C2440_UFSTAT_TXFULL, +}; + +static int __init s3c2440_early_console_setup(struct earlycon_device *device, + const char *opt) +{ + device->port.private_data = &s3c2440_early_console_data; + return samsung_early_console_setup(device, opt); +} +OF_EARLYCON_DECLARE(s3c2412, "samsung,s3c2412-uart", + s3c2440_early_console_setup); +OF_EARLYCON_DECLARE(s3c2440, "samsung,s3c2440-uart", + s3c2440_early_console_setup); +OF_EARLYCON_DECLARE(s3c6400, "samsung,s3c6400-uart", + s3c2440_early_console_setup); +EARLYCON_DECLARE(s3c2412, s3c2440_early_console_setup); +EARLYCON_DECLARE(s3c2440, s3c2440_early_console_setup); +EARLYCON_DECLARE(s3c6400, s3c2440_early_console_setup); + +/* S5PV210, EXYNOS */ +static struct samsung_early_console_data s5pv210_early_console_data = { + .txfull_mask = S5PV210_UFSTAT_TXFULL, +}; + +static int __init s5pv210_early_console_setup(struct earlycon_device *device, + const char *opt) +{ + device->port.private_data = &s5pv210_early_console_data; + return samsung_early_console_setup(device, opt); +} +OF_EARLYCON_DECLARE(s5pv210, "samsung,s5pv210-uart", + s5pv210_early_console_setup); +OF_EARLYCON_DECLARE(exynos4210, "samsung,exynos4210-uart", + s5pv210_early_console_setup); +EARLYCON_DECLARE(s5pv210, s5pv210_early_console_setup); +EARLYCON_DECLARE(exynos4210, s5pv210_early_console_setup); + MODULE_ALIAS("platform:samsung-uart"); MODULE_DESCRIPTION("Samsung SoC Serial port driver"); MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); -- 1.9.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/2] serial: samsung: Add support for early console 2014-10-20 11:28 ` Marek Szyprowski @ 2014-12-16 0:55 ` Chanwoo Choi -1 siblings, 0 replies; 10+ messages in thread From: Chanwoo Choi @ 2014-12-16 0:55 UTC (permalink / raw) To: Marek Szyprowski Cc: linux-samsung-soc, linux-arm-kernel, Alim Akhtar, thomas.ab, Tomasz Figa, Kyungmin Park, Rob Herring On 10/20/2014 08:28 PM, Marek Szyprowski wrote: > From: Tomasz Figa <t.figa@samsung.com> > > This patch adds support for early console initialized from device tree > and kernel command line to all variants of Samsung serial driver. > > Signed-off-by: Tomasz Figa <t.figa@samsung.com> > [mszyprow: added support for command line based initialization, > fixed comments, added documentation] > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> > Tested-by: Alim Akhtar <alim.akhtar@samsung.com> I tested this patchset with Exynos5 SoC. Tested-by: Chanwoo Choi <cw00.choi@samsung.com> Thanks, Chanwoo Choi > --- > Documentation/kernel-parameters.txt | 12 +++++ > drivers/tty/serial/Kconfig | 1 + > drivers/tty/serial/samsung.c | 103 ++++++++++++++++++++++++++++++++++++ > 3 files changed, 116 insertions(+) > > diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt > index 7dbe5ec9d9cd..24f363108ab3 100644 > --- a/Documentation/kernel-parameters.txt > +++ b/Documentation/kernel-parameters.txt > @@ -961,6 +961,18 @@ bytes respectively. Such letter suffixes can also be entirely omitted. > > smh Use ARM semihosting calls for early console. > > + s3c2410,<addr> > + s3c2412,<addr> > + s3c2440,<addr> > + s3c6400,<addr> > + s5pv210,<addr> > + exynos4210,<addr> > + Use early console provided by serial driver available > + on Samsung SoCs, requires selecting proper type and > + a correct base address of the selected UART port. The > + serial port must already be setup and configured. > + Options are not yet supported. > + > earlyprintk= [X86,SH,BLACKFIN,ARM,M68k] > earlyprintk=vga > earlyprintk=efi > diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig > index 649b784081c7..50997be6cf6d 100644 > --- a/drivers/tty/serial/Kconfig > +++ b/drivers/tty/serial/Kconfig > @@ -241,6 +241,7 @@ config SERIAL_SAMSUNG > tristate "Samsung SoC serial support" > depends on PLAT_SAMSUNG || ARCH_EXYNOS > select SERIAL_CORE > + select SERIAL_EARLYCON > help > Support for the on-chip UARTs on the Samsung S3C24XX series CPUs, > providing /dev/ttySAC0, 1 and 2 (note, some machines may not > diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c > index c78f43a481ce..8ad453a5d845 100644 > --- a/drivers/tty/serial/samsung.c > +++ b/drivers/tty/serial/samsung.c > @@ -1856,6 +1856,109 @@ static struct platform_driver samsung_serial_driver = { > > module_platform_driver(samsung_serial_driver); > > +/* > + * Early console. > + */ > + > +struct samsung_early_console_data { > + u32 txfull_mask; > +}; > + > +static void samsung_early_busyuart(struct uart_port *port) > +{ > + while (!(readl(port->membase + S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXFE)) > + ; > +} > + > +static void samsung_early_busyuart_fifo(struct uart_port *port) > +{ > + struct samsung_early_console_data *data = port->private_data; > + > + while (readl(port->membase + S3C2410_UFSTAT) & data->txfull_mask) > + ; > +} > + > +static void samsung_early_putc(struct uart_port *port, int c) > +{ > + if (readl(port->membase + S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) > + samsung_early_busyuart_fifo(port); > + else > + samsung_early_busyuart(port); > + > + writeb(c, port->membase + S3C2410_UTXH); > +} > + > +static void samsung_early_write(struct console *con, const char *s, unsigned n) > +{ > + struct earlycon_device *dev = con->data; > + > + uart_console_write(&dev->port, s, n, samsung_early_putc); > +} > + > +static int __init samsung_early_console_setup(struct earlycon_device *device, > + const char *opt) > +{ > + if (!device->port.membase) > + return -ENODEV; > + > + device->con->write = samsung_early_write; > + return 0; > +} > + > +/* S3C2410 */ > +static struct samsung_early_console_data s3c2410_early_console_data = { > + .txfull_mask = S3C2410_UFSTAT_TXFULL, > +}; > + > +static int __init s3c2410_early_console_setup(struct earlycon_device *device, > + const char *opt) > +{ > + device->port.private_data = &s3c2410_early_console_data; > + return samsung_early_console_setup(device, opt); > +} > +OF_EARLYCON_DECLARE(s3c2410, "samsung,s3c2410-uart", > + s3c2410_early_console_setup); > +EARLYCON_DECLARE(s3c2410, s3c2410_early_console_setup); > + > +/* S3C2412, S3C2440, S3C64xx */ > +static struct samsung_early_console_data s3c2440_early_console_data = { > + .txfull_mask = S3C2440_UFSTAT_TXFULL, > +}; > + > +static int __init s3c2440_early_console_setup(struct earlycon_device *device, > + const char *opt) > +{ > + device->port.private_data = &s3c2440_early_console_data; > + return samsung_early_console_setup(device, opt); > +} > +OF_EARLYCON_DECLARE(s3c2412, "samsung,s3c2412-uart", > + s3c2440_early_console_setup); > +OF_EARLYCON_DECLARE(s3c2440, "samsung,s3c2440-uart", > + s3c2440_early_console_setup); > +OF_EARLYCON_DECLARE(s3c6400, "samsung,s3c6400-uart", > + s3c2440_early_console_setup); > +EARLYCON_DECLARE(s3c2412, s3c2440_early_console_setup); > +EARLYCON_DECLARE(s3c2440, s3c2440_early_console_setup); > +EARLYCON_DECLARE(s3c6400, s3c2440_early_console_setup); > + > +/* S5PV210, EXYNOS */ > +static struct samsung_early_console_data s5pv210_early_console_data = { > + .txfull_mask = S5PV210_UFSTAT_TXFULL, > +}; > + > +static int __init s5pv210_early_console_setup(struct earlycon_device *device, > + const char *opt) > +{ > + device->port.private_data = &s5pv210_early_console_data; > + return samsung_early_console_setup(device, opt); > +} > +OF_EARLYCON_DECLARE(s5pv210, "samsung,s5pv210-uart", > + s5pv210_early_console_setup); > +OF_EARLYCON_DECLARE(exynos4210, "samsung,exynos4210-uart", > + s5pv210_early_console_setup); > +EARLYCON_DECLARE(s5pv210, s5pv210_early_console_setup); > +EARLYCON_DECLARE(exynos4210, s5pv210_early_console_setup); > + > MODULE_ALIAS("platform:samsung-uart"); > MODULE_DESCRIPTION("Samsung SoC Serial port driver"); > MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/2] serial: samsung: Add support for early console @ 2014-12-16 0:55 ` Chanwoo Choi 0 siblings, 0 replies; 10+ messages in thread From: Chanwoo Choi @ 2014-12-16 0:55 UTC (permalink / raw) To: linux-arm-kernel On 10/20/2014 08:28 PM, Marek Szyprowski wrote: > From: Tomasz Figa <t.figa@samsung.com> > > This patch adds support for early console initialized from device tree > and kernel command line to all variants of Samsung serial driver. > > Signed-off-by: Tomasz Figa <t.figa@samsung.com> > [mszyprow: added support for command line based initialization, > fixed comments, added documentation] > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> > Tested-by: Alim Akhtar <alim.akhtar@samsung.com> I tested this patchset with Exynos5 SoC. Tested-by: Chanwoo Choi <cw00.choi@samsung.com> Thanks, Chanwoo Choi > --- > Documentation/kernel-parameters.txt | 12 +++++ > drivers/tty/serial/Kconfig | 1 + > drivers/tty/serial/samsung.c | 103 ++++++++++++++++++++++++++++++++++++ > 3 files changed, 116 insertions(+) > > diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt > index 7dbe5ec9d9cd..24f363108ab3 100644 > --- a/Documentation/kernel-parameters.txt > +++ b/Documentation/kernel-parameters.txt > @@ -961,6 +961,18 @@ bytes respectively. Such letter suffixes can also be entirely omitted. > > smh Use ARM semihosting calls for early console. > > + s3c2410,<addr> > + s3c2412,<addr> > + s3c2440,<addr> > + s3c6400,<addr> > + s5pv210,<addr> > + exynos4210,<addr> > + Use early console provided by serial driver available > + on Samsung SoCs, requires selecting proper type and > + a correct base address of the selected UART port. The > + serial port must already be setup and configured. > + Options are not yet supported. > + > earlyprintk= [X86,SH,BLACKFIN,ARM,M68k] > earlyprintk=vga > earlyprintk=efi > diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig > index 649b784081c7..50997be6cf6d 100644 > --- a/drivers/tty/serial/Kconfig > +++ b/drivers/tty/serial/Kconfig > @@ -241,6 +241,7 @@ config SERIAL_SAMSUNG > tristate "Samsung SoC serial support" > depends on PLAT_SAMSUNG || ARCH_EXYNOS > select SERIAL_CORE > + select SERIAL_EARLYCON > help > Support for the on-chip UARTs on the Samsung S3C24XX series CPUs, > providing /dev/ttySAC0, 1 and 2 (note, some machines may not > diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c > index c78f43a481ce..8ad453a5d845 100644 > --- a/drivers/tty/serial/samsung.c > +++ b/drivers/tty/serial/samsung.c > @@ -1856,6 +1856,109 @@ static struct platform_driver samsung_serial_driver = { > > module_platform_driver(samsung_serial_driver); > > +/* > + * Early console. > + */ > + > +struct samsung_early_console_data { > + u32 txfull_mask; > +}; > + > +static void samsung_early_busyuart(struct uart_port *port) > +{ > + while (!(readl(port->membase + S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXFE)) > + ; > +} > + > +static void samsung_early_busyuart_fifo(struct uart_port *port) > +{ > + struct samsung_early_console_data *data = port->private_data; > + > + while (readl(port->membase + S3C2410_UFSTAT) & data->txfull_mask) > + ; > +} > + > +static void samsung_early_putc(struct uart_port *port, int c) > +{ > + if (readl(port->membase + S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) > + samsung_early_busyuart_fifo(port); > + else > + samsung_early_busyuart(port); > + > + writeb(c, port->membase + S3C2410_UTXH); > +} > + > +static void samsung_early_write(struct console *con, const char *s, unsigned n) > +{ > + struct earlycon_device *dev = con->data; > + > + uart_console_write(&dev->port, s, n, samsung_early_putc); > +} > + > +static int __init samsung_early_console_setup(struct earlycon_device *device, > + const char *opt) > +{ > + if (!device->port.membase) > + return -ENODEV; > + > + device->con->write = samsung_early_write; > + return 0; > +} > + > +/* S3C2410 */ > +static struct samsung_early_console_data s3c2410_early_console_data = { > + .txfull_mask = S3C2410_UFSTAT_TXFULL, > +}; > + > +static int __init s3c2410_early_console_setup(struct earlycon_device *device, > + const char *opt) > +{ > + device->port.private_data = &s3c2410_early_console_data; > + return samsung_early_console_setup(device, opt); > +} > +OF_EARLYCON_DECLARE(s3c2410, "samsung,s3c2410-uart", > + s3c2410_early_console_setup); > +EARLYCON_DECLARE(s3c2410, s3c2410_early_console_setup); > + > +/* S3C2412, S3C2440, S3C64xx */ > +static struct samsung_early_console_data s3c2440_early_console_data = { > + .txfull_mask = S3C2440_UFSTAT_TXFULL, > +}; > + > +static int __init s3c2440_early_console_setup(struct earlycon_device *device, > + const char *opt) > +{ > + device->port.private_data = &s3c2440_early_console_data; > + return samsung_early_console_setup(device, opt); > +} > +OF_EARLYCON_DECLARE(s3c2412, "samsung,s3c2412-uart", > + s3c2440_early_console_setup); > +OF_EARLYCON_DECLARE(s3c2440, "samsung,s3c2440-uart", > + s3c2440_early_console_setup); > +OF_EARLYCON_DECLARE(s3c6400, "samsung,s3c6400-uart", > + s3c2440_early_console_setup); > +EARLYCON_DECLARE(s3c2412, s3c2440_early_console_setup); > +EARLYCON_DECLARE(s3c2440, s3c2440_early_console_setup); > +EARLYCON_DECLARE(s3c6400, s3c2440_early_console_setup); > + > +/* S5PV210, EXYNOS */ > +static struct samsung_early_console_data s5pv210_early_console_data = { > + .txfull_mask = S5PV210_UFSTAT_TXFULL, > +}; > + > +static int __init s5pv210_early_console_setup(struct earlycon_device *device, > + const char *opt) > +{ > + device->port.private_data = &s5pv210_early_console_data; > + return samsung_early_console_setup(device, opt); > +} > +OF_EARLYCON_DECLARE(s5pv210, "samsung,s5pv210-uart", > + s5pv210_early_console_setup); > +OF_EARLYCON_DECLARE(exynos4210, "samsung,exynos4210-uart", > + s5pv210_early_console_setup); > +EARLYCON_DECLARE(s5pv210, s5pv210_early_console_setup); > +EARLYCON_DECLARE(exynos4210, s5pv210_early_console_setup); > + > MODULE_ALIAS("platform:samsung-uart"); > MODULE_DESCRIPTION("Samsung SoC Serial port driver"); > MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 2/2] ARM: dts: exynos4: Add stdout-path properties 2014-10-20 11:28 ` Marek Szyprowski @ 2014-10-20 11:28 ` Marek Szyprowski -1 siblings, 0 replies; 10+ messages in thread From: Marek Szyprowski @ 2014-10-20 11:28 UTC (permalink / raw) To: linux-samsung-soc, linux-arm-kernel Cc: Marek Szyprowski, Alim Akhtar, thomas.ab, Tomasz Figa, Kyungmin Park, Rob Herring From: Tomasz Figa <t.figa@samsung.com> This patch adds stdout-path property to chosen nodes of Exynos4 boards to enable use of earlycon feature without the need to hardcode port number in kernel itself. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- arch/arm/boot/dts/exynos4210-origen.dts | 1 + arch/arm/boot/dts/exynos4210-smdkv310.dts | 1 + arch/arm/boot/dts/exynos4210-trats.dts | 1 + arch/arm/boot/dts/exynos4210-universal_c210.dts | 1 + arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 4 ++++ arch/arm/boot/dts/exynos4412-origen.dts | 1 + arch/arm/boot/dts/exynos4412-smdk4412.dts | 1 + arch/arm/boot/dts/exynos4412-tiny4412.dts | 4 ++++ arch/arm/boot/dts/exynos4412-trats2.dts | 1 + 9 files changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts index f767c425d0b5..b81146141402 100644 --- a/arch/arm/boot/dts/exynos4210-origen.dts +++ b/arch/arm/boot/dts/exynos4210-origen.dts @@ -31,6 +31,7 @@ chosen { bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; + stdout-path = &serial_2; }; regulators { diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts index 676e6e0c8cf3..86216fff1b4f 100644 --- a/arch/arm/boot/dts/exynos4210-smdkv310.dts +++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts @@ -27,6 +27,7 @@ chosen { bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; + stdout-path = &serial_1; }; sdhci@12530000 { diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts index f516da9e8b3a..b351c7bddf2d 100644 --- a/arch/arm/boot/dts/exynos4210-trats.dts +++ b/arch/arm/boot/dts/exynos4210-trats.dts @@ -28,6 +28,7 @@ chosen { bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5"; + stdout-path = &serial_2; }; regulators { diff --git a/arch/arm/boot/dts/exynos4210-universal_c210.dts b/arch/arm/boot/dts/exynos4210-universal_c210.dts index d50eb3aa708e..e65ee3cb36c3 100644 --- a/arch/arm/boot/dts/exynos4210-universal_c210.dts +++ b/arch/arm/boot/dts/exynos4210-universal_c210.dts @@ -26,6 +26,7 @@ chosen { bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rw rootwait earlyprintk panic=5 maxcpus=1"; + stdout-path = &serial_2; }; sysram@02020000 { diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi index c697ff01ae8d..7c49bddf44b6 100644 --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi @@ -11,6 +11,10 @@ #include "exynos4412.dtsi" / { + chosen { + stdout-path = &serial_1; + }; + firmware@0204F000 { compatible = "samsung,secure-firmware"; reg = <0x0204F000 0x1000>; diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts index de15114fd07c..bd8b73077d41 100644 --- a/arch/arm/boot/dts/exynos4412-origen.dts +++ b/arch/arm/boot/dts/exynos4412-origen.dts @@ -26,6 +26,7 @@ chosen { bootargs ="console=ttySAC2,115200"; + stdout-path = &serial_2; }; firmware@0203F000 { diff --git a/arch/arm/boot/dts/exynos4412-smdk4412.dts b/arch/arm/boot/dts/exynos4412-smdk4412.dts index ded0b70f7644..b9256afbcc68 100644 --- a/arch/arm/boot/dts/exynos4412-smdk4412.dts +++ b/arch/arm/boot/dts/exynos4412-smdk4412.dts @@ -25,6 +25,7 @@ chosen { bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; + stdout-path = &serial_1; }; g2d@10800000 { diff --git a/arch/arm/boot/dts/exynos4412-tiny4412.dts b/arch/arm/boot/dts/exynos4412-tiny4412.dts index ea6929d9c621..d46fd4c2aeaa 100644 --- a/arch/arm/boot/dts/exynos4412-tiny4412.dts +++ b/arch/arm/boot/dts/exynos4412-tiny4412.dts @@ -18,6 +18,10 @@ model = "FriendlyARM TINY4412 board based on Exynos4412"; compatible = "friendlyarm,tiny4412", "samsung,exynos4412", "samsung,exynos4"; + chosen { + stdout-path = &serial_0; + }; + memory { reg = <0x40000000 0x40000000>; }; diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts index 5e066cd87f66..c8b38359d54e 100644 --- a/arch/arm/boot/dts/exynos4412-trats2.dts +++ b/arch/arm/boot/dts/exynos4412-trats2.dts @@ -30,6 +30,7 @@ chosen { bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5"; + stdout-path = &serial_2; }; firmware@0204F000 { -- 1.9.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/2] ARM: dts: exynos4: Add stdout-path properties @ 2014-10-20 11:28 ` Marek Szyprowski 0 siblings, 0 replies; 10+ messages in thread From: Marek Szyprowski @ 2014-10-20 11:28 UTC (permalink / raw) To: linux-arm-kernel From: Tomasz Figa <t.figa@samsung.com> This patch adds stdout-path property to chosen nodes of Exynos4 boards to enable use of earlycon feature without the need to hardcode port number in kernel itself. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- arch/arm/boot/dts/exynos4210-origen.dts | 1 + arch/arm/boot/dts/exynos4210-smdkv310.dts | 1 + arch/arm/boot/dts/exynos4210-trats.dts | 1 + arch/arm/boot/dts/exynos4210-universal_c210.dts | 1 + arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 4 ++++ arch/arm/boot/dts/exynos4412-origen.dts | 1 + arch/arm/boot/dts/exynos4412-smdk4412.dts | 1 + arch/arm/boot/dts/exynos4412-tiny4412.dts | 4 ++++ arch/arm/boot/dts/exynos4412-trats2.dts | 1 + 9 files changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts index f767c425d0b5..b81146141402 100644 --- a/arch/arm/boot/dts/exynos4210-origen.dts +++ b/arch/arm/boot/dts/exynos4210-origen.dts @@ -31,6 +31,7 @@ chosen { bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; + stdout-path = &serial_2; }; regulators { diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts index 676e6e0c8cf3..86216fff1b4f 100644 --- a/arch/arm/boot/dts/exynos4210-smdkv310.dts +++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts @@ -27,6 +27,7 @@ chosen { bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; + stdout-path = &serial_1; }; sdhci at 12530000 { diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts index f516da9e8b3a..b351c7bddf2d 100644 --- a/arch/arm/boot/dts/exynos4210-trats.dts +++ b/arch/arm/boot/dts/exynos4210-trats.dts @@ -28,6 +28,7 @@ chosen { bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5"; + stdout-path = &serial_2; }; regulators { diff --git a/arch/arm/boot/dts/exynos4210-universal_c210.dts b/arch/arm/boot/dts/exynos4210-universal_c210.dts index d50eb3aa708e..e65ee3cb36c3 100644 --- a/arch/arm/boot/dts/exynos4210-universal_c210.dts +++ b/arch/arm/boot/dts/exynos4210-universal_c210.dts @@ -26,6 +26,7 @@ chosen { bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rw rootwait earlyprintk panic=5 maxcpus=1"; + stdout-path = &serial_2; }; sysram at 02020000 { diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi index c697ff01ae8d..7c49bddf44b6 100644 --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi @@ -11,6 +11,10 @@ #include "exynos4412.dtsi" / { + chosen { + stdout-path = &serial_1; + }; + firmware at 0204F000 { compatible = "samsung,secure-firmware"; reg = <0x0204F000 0x1000>; diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts index de15114fd07c..bd8b73077d41 100644 --- a/arch/arm/boot/dts/exynos4412-origen.dts +++ b/arch/arm/boot/dts/exynos4412-origen.dts @@ -26,6 +26,7 @@ chosen { bootargs ="console=ttySAC2,115200"; + stdout-path = &serial_2; }; firmware at 0203F000 { diff --git a/arch/arm/boot/dts/exynos4412-smdk4412.dts b/arch/arm/boot/dts/exynos4412-smdk4412.dts index ded0b70f7644..b9256afbcc68 100644 --- a/arch/arm/boot/dts/exynos4412-smdk4412.dts +++ b/arch/arm/boot/dts/exynos4412-smdk4412.dts @@ -25,6 +25,7 @@ chosen { bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; + stdout-path = &serial_1; }; g2d at 10800000 { diff --git a/arch/arm/boot/dts/exynos4412-tiny4412.dts b/arch/arm/boot/dts/exynos4412-tiny4412.dts index ea6929d9c621..d46fd4c2aeaa 100644 --- a/arch/arm/boot/dts/exynos4412-tiny4412.dts +++ b/arch/arm/boot/dts/exynos4412-tiny4412.dts @@ -18,6 +18,10 @@ model = "FriendlyARM TINY4412 board based on Exynos4412"; compatible = "friendlyarm,tiny4412", "samsung,exynos4412", "samsung,exynos4"; + chosen { + stdout-path = &serial_0; + }; + memory { reg = <0x40000000 0x40000000>; }; diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts index 5e066cd87f66..c8b38359d54e 100644 --- a/arch/arm/boot/dts/exynos4412-trats2.dts +++ b/arch/arm/boot/dts/exynos4412-trats2.dts @@ -30,6 +30,7 @@ chosen { bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5"; + stdout-path = &serial_2; }; firmware at 0204F000 { -- 1.9.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* RE: [PATCH v3 0/2] serial: samsung: add support for early console 2014-10-20 11:28 ` Marek Szyprowski @ 2014-12-15 6:47 ` Chanho Park -1 siblings, 0 replies; 10+ messages in thread From: Chanho Park @ 2014-12-15 6:47 UTC (permalink / raw) To: 'Marek Szyprowski', linux-samsung-soc, linux-arm-kernel, kgene Cc: 'Tomasz Figa', 'Kyungmin Park', thomas.ab, 'Alim Akhtar' Hi, I found this patchset was not merget even 3.19 merge window. As you know, there is no support of legacy early_printk on arm64. I need this patchset to support exynos arm64 board properly. Dear Kukjin, Could you pick up this patchset in your tree? Best Regards, Chanho Park > -----Original Message----- > From: linux-arm-kernel [mailto:linux-arm-kernel- > bounces@lists.infradead.org] On Behalf Of Marek Szyprowski > Sent: Monday, October 20, 2014 8:28 PM > To: linux-samsung-soc@vger.kernel.org; linux-arm- > kernel@lists.infradead.org > Cc: Tomasz Figa; Kyungmin Park; thomas.ab@samsung.com; Alim Akhtar; > Marek Szyprowski > Subject: [PATCH v3 0/2] serial: samsung: add support for early console > > This patchset adds support for early console defined in device tree. As > an example, DTS files for all Exynos4 based machines are updated with > the correct value for common chosen/sdtout property. > > To get it fully functional on ARM architecture, additional improvements > (support for early_ioremap) are needed in early console code. > > Best regards > Marek Szyprowski > Samsung R&D Institute Poland > > Change log: > > v3: > - rebased onto v3.18-rc1 > - removed options from documentation (they are not yet supported) > > v2: http://www.spinics.net/lists/linux-samsung-soc/msg37278.html > - added support for command line based initialization > > v1: http://www.spinics.net/lists/linux-samsung-soc/msg37094.html > - initial version > > Tomasz Figa (2): > serial: samsung: Add support for early console > ARM: dts: exynos4: Add stdout-path properties > > Documentation/kernel-parameters.txt | 12 +++ > arch/arm/boot/dts/exynos4210-origen.dts | 1 + > arch/arm/boot/dts/exynos4210-smdkv310.dts | 1 + > arch/arm/boot/dts/exynos4210-trats.dts | 1 + > arch/arm/boot/dts/exynos4210-universal_c210.dts | 1 + > arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 4 + > arch/arm/boot/dts/exynos4412-origen.dts | 1 + > arch/arm/boot/dts/exynos4412-smdk4412.dts | 1 + > arch/arm/boot/dts/exynos4412-tiny4412.dts | 4 + > arch/arm/boot/dts/exynos4412-trats2.dts | 1 + > drivers/tty/serial/Kconfig | 1 + > drivers/tty/serial/samsung.c | 103 > ++++++++++++++++++++++++ > 12 files changed, 131 insertions(+) > > -- > 1.9.2 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 0/2] serial: samsung: add support for early console @ 2014-12-15 6:47 ` Chanho Park 0 siblings, 0 replies; 10+ messages in thread From: Chanho Park @ 2014-12-15 6:47 UTC (permalink / raw) To: linux-arm-kernel Hi, I found this patchset was not merget even 3.19 merge window. As you know, there is no support of legacy early_printk on arm64. I need this patchset to support exynos arm64 board properly. Dear Kukjin, Could you pick up this patchset in your tree? Best Regards, Chanho Park > -----Original Message----- > From: linux-arm-kernel [mailto:linux-arm-kernel- > bounces at lists.infradead.org] On Behalf Of Marek Szyprowski > Sent: Monday, October 20, 2014 8:28 PM > To: linux-samsung-soc at vger.kernel.org; linux-arm- > kernel at lists.infradead.org > Cc: Tomasz Figa; Kyungmin Park; thomas.ab at samsung.com; Alim Akhtar; > Marek Szyprowski > Subject: [PATCH v3 0/2] serial: samsung: add support for early console > > This patchset adds support for early console defined in device tree. As > an example, DTS files for all Exynos4 based machines are updated with > the correct value for common chosen/sdtout property. > > To get it fully functional on ARM architecture, additional improvements > (support for early_ioremap) are needed in early console code. > > Best regards > Marek Szyprowski > Samsung R&D Institute Poland > > Change log: > > v3: > - rebased onto v3.18-rc1 > - removed options from documentation (they are not yet supported) > > v2: http://www.spinics.net/lists/linux-samsung-soc/msg37278.html > - added support for command line based initialization > > v1: http://www.spinics.net/lists/linux-samsung-soc/msg37094.html > - initial version > > Tomasz Figa (2): > serial: samsung: Add support for early console > ARM: dts: exynos4: Add stdout-path properties > > Documentation/kernel-parameters.txt | 12 +++ > arch/arm/boot/dts/exynos4210-origen.dts | 1 + > arch/arm/boot/dts/exynos4210-smdkv310.dts | 1 + > arch/arm/boot/dts/exynos4210-trats.dts | 1 + > arch/arm/boot/dts/exynos4210-universal_c210.dts | 1 + > arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 4 + > arch/arm/boot/dts/exynos4412-origen.dts | 1 + > arch/arm/boot/dts/exynos4412-smdk4412.dts | 1 + > arch/arm/boot/dts/exynos4412-tiny4412.dts | 4 + > arch/arm/boot/dts/exynos4412-trats2.dts | 1 + > drivers/tty/serial/Kconfig | 1 + > drivers/tty/serial/samsung.c | 103 > ++++++++++++++++++++++++ > 12 files changed, 131 insertions(+) > > -- > 1.9.2 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-12-16 0:55 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-10-20 11:28 [PATCH v3 0/2] serial: samsung: add support for early console Marek Szyprowski 2014-10-20 11:28 ` Marek Szyprowski 2014-10-20 11:28 ` [PATCH v3 1/2] serial: samsung: Add " Marek Szyprowski 2014-10-20 11:28 ` Marek Szyprowski 2014-12-16 0:55 ` Chanwoo Choi 2014-12-16 0:55 ` Chanwoo Choi 2014-10-20 11:28 ` [PATCH v3 2/2] ARM: dts: exynos4: Add stdout-path properties Marek Szyprowski 2014-10-20 11:28 ` Marek Szyprowski 2014-12-15 6:47 ` [PATCH v3 0/2] serial: samsung: add support for early console Chanho Park 2014-12-15 6:47 ` Chanho Park
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.