2019-12-20 06:14:41

by Peng Fan

[permalink] [raw]
Subject: [PATCH V2 0/3] tty: serial: lpuart: cleanup and improve for earlycon

From: Peng Fan <[email protected]>

V2:
Drop a wrong patch which should not be included in this patchset,
nothing else changed.

EARLYCON_DECLARE could be dropped, since OF_EARLYCON_DECLARE does same.

i.MX8QXP is compatible with i.MX7ULP, no need an extra entry.

When we could not use stdout-path for earlycon for i.MX8QXP,
we need pass mmio32 to earlycon, so update code to support the iotype.

Peng Fan (3):
tty: serial: fsl_lpuart: drop EARLYCON_DECLARE
tty: serial: fsl_lpuart: support UPIO_MEM32 for lpuart32
tty: serial: fsl_lpuart: drop earlycon entry for i.MX8QXP

drivers/tty/serial/fsl_lpuart.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

--
2.16.4


2019-12-20 06:15:53

by Peng Fan

[permalink] [raw]
Subject: [PATCH V2 2/3] tty: serial: fsl_lpuart: support UPIO_MEM32 for lpuart32

From: Peng Fan <[email protected]>

"earlycon" no need to specify the value string since it uses
stdout-path parameters. However when earlycon and normal console
are not using the same uart port, we need specify value string
to earlycon, this is what we need to do when support dual linux
using jailhouse hypervisor. The 2nd linux will use the uart
of the 1st linux as earlycon.

earlycon=lpuart32,mmio32,0x5a060010,115200 not work for i.MX8QXP.
It is because lpuart32_early_console_setup not support little endian.

Since the original code is to support UPIO_MEM32BE, so if not
UPIO_MEM32, we still take it as UPIO_MEM32BE

Acked-by: Fugang Duan <[email protected]>
Signed-off-by: Peng Fan <[email protected]>
---
drivers/tty/serial/fsl_lpuart.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index 54c7735406f8..6ad0af073e62 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -2376,7 +2376,9 @@ static int __init lpuart32_early_console_setup(struct earlycon_device *device,
if (!device->port.membase)
return -ENODEV;

- device->port.iotype = UPIO_MEM32BE;
+ if (device->port.iotype != UPIO_MEM32)
+ device->port.iotype = UPIO_MEM32BE;
+
device->con->write = lpuart32_early_write;
return 0;
}
--
2.16.4

2019-12-20 06:16:20

by Peng Fan

[permalink] [raw]
Subject: [PATCH V2 3/3] tty: serial: fsl_lpuart: drop earlycon entry for i.MX8QXP

From: Peng Fan <[email protected]>

i.MX8QXP lpuart is compatible with i.MX7ULP, so no need
an extra entry for i.MX8QXP.

Signed-off-by: Peng Fan <[email protected]>
---
drivers/tty/serial/fsl_lpuart.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index 6ad0af073e62..00cf72e9e9e8 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -2398,7 +2398,6 @@ static int __init lpuart32_imx_early_console_setup(struct earlycon_device *devic
OF_EARLYCON_DECLARE(lpuart, "fsl,vf610-lpuart", lpuart_early_console_setup);
OF_EARLYCON_DECLARE(lpuart32, "fsl,ls1021a-lpuart", lpuart32_early_console_setup);
OF_EARLYCON_DECLARE(lpuart32, "fsl,imx7ulp-lpuart", lpuart32_imx_early_console_setup);
-OF_EARLYCON_DECLARE(lpuart32, "fsl,imx8qxp-lpuart", lpuart32_imx_early_console_setup);

#define LPUART_CONSOLE (&lpuart_console)
#define LPUART32_CONSOLE (&lpuart32_console)
--
2.16.4