All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Murzin <vladimir.murzin@arm.com>
To: arnd@arndb.de, linux@arm.linux.org.uk,
	gregkh@linuxfoundation.org, daniel.lezcano@linaro.org,
	tglx@linutronix.de, u.kleine-koenig@pengutronix.de,
	liviu.dudau@arm.com, sudeep.holla@arm.com,
	lorenzo.pieralisi@arm.com
Cc: mark.rutland@arm.com, pawel.moll@arm.com,
	ijc+devicetree@hellion.org.uk, galak@codeaurora.org,
	jslaby@suse.cz, robh+dt@kernel.org, andy.shevchenko@gmail.com,
	gnomes@lxorguk.ukuu.org.uk, peter@hurleysoftware.com,
	devicetree@vger.kernel.org, linux-serial@vger.kernel.org,
	linux-api@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v4 05/10] serial: mps2-uart: add support for early console
Date: Tue, 23 Feb 2016 14:34:23 +0000	[thread overview]
Message-ID: <1456238068-25079-6-git-send-email-vladimir.murzin@arm.com> (raw)
In-Reply-To: <1456238068-25079-1-git-send-email-vladimir.murzin@arm.com>

This adds support early console for MPS2 UART which can be enabled via
earlycon=mps2,0x40004000

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
---
 drivers/tty/serial/Kconfig     |    1 +
 drivers/tty/serial/mps2-uart.c |   28 ++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 3a248be..4ed6e51 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -1454,6 +1454,7 @@ config SERIAL_MPS2_UART_CONSOLE
 	bool "MPS2 UART console support"
 	depends on SERIAL_MPS2_UART
 	select SERIAL_CORE_CONSOLE
+	select SERIAL_EARLYCON
 
 config SERIAL_MPS2_UART
 	bool "MPS2 UART port"
diff --git a/drivers/tty/serial/mps2-uart.c b/drivers/tty/serial/mps2-uart.c
index 5a4e167..4f42326 100644
--- a/drivers/tty/serial/mps2-uart.c
+++ b/drivers/tty/serial/mps2-uart.c
@@ -439,6 +439,34 @@ static struct console mps2_uart_console = {
 
 #define MPS2_SERIAL_CONSOLE (&mps2_uart_console)
 
+static void mps2_early_putchar(struct uart_port *port, int ch)
+{
+
+	while (readb(port->membase + UARTn_STATE) & UARTn_STATE_TX_FULL)
+		cpu_relax();
+
+	writeb((unsigned char)ch, port->membase + UARTn_DATA);
+}
+
+static void mps2_early_write(struct console *con, const char *s, unsigned n)
+{
+	struct earlycon_device *dev = con->data;
+
+	uart_console_write(&dev->port, s, n, mps2_early_putchar);
+}
+
+static int __init mps2_early_console_setup(struct earlycon_device *device,
+					   const char *opt)
+{
+	if (!device->port.membase)
+		return -ENODEV;
+
+	device->con->write = mps2_early_write;
+
+	return 0;
+}
+OF_EARLYCON_DECLARE(mps2, "arm,mps2-uart", mps2_early_console_setup);
+
 #else
 #define MPS2_SERIAL_CONSOLE NULL
 #endif
-- 
1.7.9.5

WARNING: multiple messages have this Message-ID (diff)
From: Vladimir Murzin <vladimir.murzin@arm.com>
To: arnd@arndb.de, linux@arm.linux.org.uk,
	gregkh@linuxfoundation.org, daniel.lezcano@linaro.org,
	tglx@linutronix.de, u.kleine-koenig@pengutronix.de,
	liviu.dudau@arm.com, sudeep.holla@arm.com,
	lorenzo.pieralisi@arm.com
Cc: mark.rutland@arm.com, gnomes@lxorguk.ukuu.org.uk,
	peter@hurleysoftware.com, pawel.moll@arm.com,
	ijc+devicetree@hellion.org.uk, linux-api@vger.kernel.org,
	linux-kernel@vger.kernel.org, andy.shevchenko@gmail.com,
	robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-serial@vger.kernel.org, galak@codeaurora.org,
	jslaby@suse.cz, devicetree@vger.kernel.org
Subject: [PATCH v4 05/10] serial: mps2-uart: add support for early console
Date: Tue, 23 Feb 2016 14:34:23 +0000	[thread overview]
Message-ID: <1456238068-25079-6-git-send-email-vladimir.murzin@arm.com> (raw)
In-Reply-To: <1456238068-25079-1-git-send-email-vladimir.murzin@arm.com>

This adds support early console for MPS2 UART which can be enabled via
earlycon=mps2,0x40004000

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
---
 drivers/tty/serial/Kconfig     |    1 +
 drivers/tty/serial/mps2-uart.c |   28 ++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 3a248be..4ed6e51 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -1454,6 +1454,7 @@ config SERIAL_MPS2_UART_CONSOLE
 	bool "MPS2 UART console support"
 	depends on SERIAL_MPS2_UART
 	select SERIAL_CORE_CONSOLE
+	select SERIAL_EARLYCON
 
 config SERIAL_MPS2_UART
 	bool "MPS2 UART port"
diff --git a/drivers/tty/serial/mps2-uart.c b/drivers/tty/serial/mps2-uart.c
index 5a4e167..4f42326 100644
--- a/drivers/tty/serial/mps2-uart.c
+++ b/drivers/tty/serial/mps2-uart.c
@@ -439,6 +439,34 @@ static struct console mps2_uart_console = {
 
 #define MPS2_SERIAL_CONSOLE (&mps2_uart_console)
 
+static void mps2_early_putchar(struct uart_port *port, int ch)
+{
+
+	while (readb(port->membase + UARTn_STATE) & UARTn_STATE_TX_FULL)
+		cpu_relax();
+
+	writeb((unsigned char)ch, port->membase + UARTn_DATA);
+}
+
+static void mps2_early_write(struct console *con, const char *s, unsigned n)
+{
+	struct earlycon_device *dev = con->data;
+
+	uart_console_write(&dev->port, s, n, mps2_early_putchar);
+}
+
+static int __init mps2_early_console_setup(struct earlycon_device *device,
+					   const char *opt)
+{
+	if (!device->port.membase)
+		return -ENODEV;
+
+	device->con->write = mps2_early_write;
+
+	return 0;
+}
+OF_EARLYCON_DECLARE(mps2, "arm,mps2-uart", mps2_early_console_setup);
+
 #else
 #define MPS2_SERIAL_CONSOLE NULL
 #endif
-- 
1.7.9.5

WARNING: multiple messages have this Message-ID (diff)
From: vladimir.murzin@arm.com (Vladimir Murzin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 05/10] serial: mps2-uart: add support for early console
Date: Tue, 23 Feb 2016 14:34:23 +0000	[thread overview]
Message-ID: <1456238068-25079-6-git-send-email-vladimir.murzin@arm.com> (raw)
In-Reply-To: <1456238068-25079-1-git-send-email-vladimir.murzin@arm.com>

This adds support early console for MPS2 UART which can be enabled via
earlycon=mps2,0x40004000

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
---
 drivers/tty/serial/Kconfig     |    1 +
 drivers/tty/serial/mps2-uart.c |   28 ++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 3a248be..4ed6e51 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -1454,6 +1454,7 @@ config SERIAL_MPS2_UART_CONSOLE
 	bool "MPS2 UART console support"
 	depends on SERIAL_MPS2_UART
 	select SERIAL_CORE_CONSOLE
+	select SERIAL_EARLYCON
 
 config SERIAL_MPS2_UART
 	bool "MPS2 UART port"
diff --git a/drivers/tty/serial/mps2-uart.c b/drivers/tty/serial/mps2-uart.c
index 5a4e167..4f42326 100644
--- a/drivers/tty/serial/mps2-uart.c
+++ b/drivers/tty/serial/mps2-uart.c
@@ -439,6 +439,34 @@ static struct console mps2_uart_console = {
 
 #define MPS2_SERIAL_CONSOLE (&mps2_uart_console)
 
+static void mps2_early_putchar(struct uart_port *port, int ch)
+{
+
+	while (readb(port->membase + UARTn_STATE) & UARTn_STATE_TX_FULL)
+		cpu_relax();
+
+	writeb((unsigned char)ch, port->membase + UARTn_DATA);
+}
+
+static void mps2_early_write(struct console *con, const char *s, unsigned n)
+{
+	struct earlycon_device *dev = con->data;
+
+	uart_console_write(&dev->port, s, n, mps2_early_putchar);
+}
+
+static int __init mps2_early_console_setup(struct earlycon_device *device,
+					   const char *opt)
+{
+	if (!device->port.membase)
+		return -ENODEV;
+
+	device->con->write = mps2_early_write;
+
+	return 0;
+}
+OF_EARLYCON_DECLARE(mps2, "arm,mps2-uart", mps2_early_console_setup);
+
 #else
 #define MPS2_SERIAL_CONSOLE NULL
 #endif
-- 
1.7.9.5

  parent reply	other threads:[~2016-02-23 14:39 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-23 14:34 [PATCH v4 00/10] Support for Cortex-M Prototyping System Vladimir Murzin
2016-02-23 14:34 ` Vladimir Murzin
2016-02-23 14:34 ` [PATCH v4 01/10] dt-bindings: document the MPS2 timer bindings Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 14:34 ` [PATCH v4 02/10] clockevents/drivers: add MPS2 Timer driver Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 14:34 ` [PATCH v4 03/10] dt-bindings: document the MPS2 UART bindings Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 14:34 ` [PATCH v4 04/10] serial: mps2-uart: add MPS2 UART driver Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 15:28   ` Peter Hurley
2016-02-23 15:28     ` Peter Hurley
2016-02-23 14:34 ` Vladimir Murzin [this message]
2016-02-23 14:34   ` [PATCH v4 05/10] serial: mps2-uart: add support for early console Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 15:32   ` Peter Hurley
2016-02-23 15:32     ` Peter Hurley
2016-02-23 15:32     ` Peter Hurley
2016-02-23 14:34 ` [PATCH v4 06/10] ARM: vexpress/mps2: introduce MPS2 platform Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 14:34 ` [PATCH v4 07/10] ARM: configs: add MPS2 defconfig Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 14:34 ` [PATCH v4 08/10] ARM: dts: introduce MPS2 AN385/AN386 Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 14:34 ` [PATCH v4 09/10] ARM: dts: introduce MPS2 AN399/AN400 Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin
2016-02-23 14:34 ` [PATCH v4 10/10] MAINTAINERS: Update ARM Versatile Express platform entry Vladimir Murzin
2016-02-23 14:34   ` Vladimir Murzin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1456238068-25079-6-git-send-email-vladimir.murzin@arm.com \
    --to=vladimir.murzin@arm.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=arnd@arndb.de \
    --cc=daniel.lezcano@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=gregkh@linuxfoundation.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=jslaby@suse.cz \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=liviu.dudau@arm.com \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=peter@hurleysoftware.com \
    --cc=robh+dt@kernel.org \
    --cc=sudeep.holla@arm.com \
    --cc=tglx@linutronix.de \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.