[U-Boot] [PATCH 1/4] armv8/ls1043aqds: added lpuart support

From: Shaohui Xie shaohui.xie@nxp.com
Signed-off-by: Shaohui Xie shaohui.xie@nxp.com Signed-off-by: Mingkai Hu mingkai.hu@nxp.com --- board/freescale/ls1043aqds/ls1043aqds.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/board/freescale/ls1043aqds/ls1043aqds.c b/board/freescale/ls1043aqds/ls1043aqds.c index d6696ca..1da3fe1 100644 --- a/board/freescale/ls1043aqds/ls1043aqds.c +++ b/board/freescale/ls1043aqds/ls1043aqds.c @@ -40,6 +40,9 @@ enum { #define CFG_SD_MUX3_MUX4 0x1 /* MUX4 */ #define CFG_SD_MUX4_SLOT3 0x0 /* SLOT3 TX/RX1 */ #define CFG_SD_MUX4_SLOT1 0x1 /* SLOT1 TX/RX3 */ +#define CFG_UART_MUX_MASK 0x6 +#define CFG_UART_MUX_SHIFT 1 +#define CFG_LPUART_EN 0x1
int checkboard(void) { @@ -218,7 +221,19 @@ void board_retimer_init(void)
int board_early_init_f(void) { +#ifdef CONFIG_LPUART + u8 uart; +#endif fsl_lsch2_early_init_f(); +#ifdef CONFIG_LPUART + /*FIXME: need to check which lpuart is enabled in rcw, for now + * we use lpuart1. + */ + uart = QIXIS_READ(brdcfg[14]); + uart &= ~CFG_UART_MUX_MASK; + uart |= CFG_LPUART_EN << CFG_UART_MUX_SHIFT; + QIXIS_WRITE(brdcfg[14], uart); +#endif
return 0; }

--- configs/ls1043aqds_lpuart_defconfig | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 configs/ls1043aqds_lpuart_defconfig
diff --git a/configs/ls1043aqds_lpuart_defconfig b/configs/ls1043aqds_lpuart_defconfig new file mode 100644 index 0000000..ca06abe --- /dev/null +++ b/configs/ls1043aqds_lpuart_defconfig @@ -0,0 +1,8 @@ +CONFIG_SYS_EXTRA_OPTIONS="SYS_FSL_DDR4,LPUART" +CONFIG_ARM=y +CONFIG_TARGET_LS1043AQDS=y +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1043a-qds" +CONFIG_OF_CONTROL=y +CONFIG_DM=y +CONFIG_SPI_FLASH=y +CONFIG_DM_SPI=y

Hi Wenbin,
On Tue, Jan 19, 2016 at 2:48 PM, Wenbin Song wenbin.song@nxp.com wrote:
Please include a commit message and SoB here.
configs/ls1043aqds_lpuart_defconfig | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 configs/ls1043aqds_lpuart_defconfig
diff --git a/configs/ls1043aqds_lpuart_defconfig b/configs/ls1043aqds_lpuart_defconfig new file mode 100644 index 0000000..ca06abe --- /dev/null +++ b/configs/ls1043aqds_lpuart_defconfig @@ -0,0 +1,8 @@ +CONFIG_SYS_EXTRA_OPTIONS="SYS_FSL_DDR4,LPUART" +CONFIG_ARM=y +CONFIG_TARGET_LS1043AQDS=y +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1043a-qds" +CONFIG_OF_CONTROL=y +CONFIG_DM=y +CONFIG_SPI_FLASH=y
+CONFIG_DM_SPI=y
Please use the driver model LPUART driver in this series (http://patchwork.ozlabs.org/patch/567250/).
Regards, Bin

Hi: Bin,
Could you tell me which tree your patches have been merged into ?
Regards
Wenbin Song
-----Original Message----- From: Bin Meng [mailto:bmeng.cn@gmail.com] Sent: Tuesday, January 19, 2016 4:03 PM To: Wenbin Song wenbin.song@nxp.com Cc: York Sun yorksun@freescale.com; Mingkai Hu mingkai.hu@nxp.com; Qianyu Gong qianyu.gong@nxp.com; Shaohui Xie shaohui.xie@nxp.com; U-Boot Mailing List u-boot@lists.denx.de Subject: Re: [U-Boot] [PATCH 2/4] armv8/ls1043aqds: Add lpuart defconfig
Hi Wenbin,
On Tue, Jan 19, 2016 at 2:48 PM, Wenbin Song wenbin.song@nxp.com wrote:
Please include a commit message and SoB here.
configs/ls1043aqds_lpuart_defconfig | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 configs/ls1043aqds_lpuart_defconfig
diff --git a/configs/ls1043aqds_lpuart_defconfig b/configs/ls1043aqds_lpuart_defconfig new file mode 100644 index 0000000..ca06abe --- /dev/null +++ b/configs/ls1043aqds_lpuart_defconfig @@ -0,0 +1,8 @@ +CONFIG_SYS_EXTRA_OPTIONS="SYS_FSL_DDR4,LPUART" +CONFIG_ARM=y +CONFIG_TARGET_LS1043AQDS=y +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1043a-qds" +CONFIG_OF_CONTROL=y +CONFIG_DM=y +CONFIG_SPI_FLASH=y
+CONFIG_DM_SPI=y
Please use the driver model LPUART driver in this series (http://patchwork.ozlabs.org/patch/567250/).
Regards, Bin

Hi Wenbin,
On Wed, Jan 20, 2016 at 12:29 PM, Wenbin Song wenbin.song@nxp.com wrote:
Hi: Bin,
Could you tell me which tree your patches have been merged into ?
I believe it will be merged via u-boot-dm, cc Simon to confirm.
Regards
Wenbin Song
[snip]
Regards, Bin

Hi,
On 19 January 2016 at 22:32, Bin Meng bmeng.cn@gmail.com wrote:
Hi Wenbin,
On Wed, Jan 20, 2016 at 12:29 PM, Wenbin Song wenbin.song@nxp.com wrote:
Hi: Bin,
Could you tell me which tree your patches have been merged into ?
I believe it will be merged via u-boot-dm, cc Simon to confirm.
Regards
Wenbin Song
[snip]
Regards, Bin
This should be in u-boot-dm now.
Regards, Simon

From: songwenbin Wenbin.Song@freescale.com
If configured CONFIG_LPUART, should undefine the NS16550
Signed-off-by: Wenbin Song wenbin.song@nxp.com --- include/configs/ls1043aqds.h | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h index 398f1c3..88f4bc0 100644 --- a/include/configs/ls1043aqds.h +++ b/include/configs/ls1043aqds.h @@ -88,6 +88,17 @@ unsigned long get_board_ddr_clk(void); #define CONFIG_SYS_FSL_PBL_RCW board/freescale/ls1043aqds/ls1043aqds_rcw_sd_ifc.cfg #endif
+/* + * LPUART + */ +#ifdef CONFIG_LPUART +#define CONFIG_FSL_LPUART +#define CONFIG_LPUART_32B_REG +#undef CONFIG_CONS_INDEX +#undef CONFIG_SYS_NS16550_SERIAL +#undef CONFIG_SYS_NS16550_CLK +#endif + /* SATA */ #define CONFIG_LIBATA #define CONFIG_SCSI_AHCI

-----Original Message----- From: Wenbin Song [mailto:wenbin.song@nxp.com] Sent: Tuesday, January 19, 2016 2:48 PM To: yorksun@freescale.com; Mingkai Hu; Qianyu Gong; Shaohui Xie; Wenbin Song; u-boot@lists.denx.de Cc: songwenbin Subject: [PATCH 3/4] armv8/ls1043aqds: Fix CONFIG_LPUART
From: songwenbin Wenbin.Song@freescale.com
If configured CONFIG_LPUART, should undefine the NS16550
Signed-off-by: Wenbin Song wenbin.song@nxp.com
include/configs/ls1043aqds.h | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h index 398f1c3..88f4bc0 100644 --- a/include/configs/ls1043aqds.h +++ b/include/configs/ls1043aqds.h @@ -88,6 +88,17 @@ unsigned long get_board_ddr_clk(void); #define CONFIG_SYS_FSL_PBL_RCW board/freescale/ls1043aqds/ls1043aqds_rcw_sd_ifc.cfg #endif
+/*
- LPUART
- */
+#ifdef CONFIG_LPUART +#define CONFIG_FSL_LPUART +#define CONFIG_LPUART_32B_REG +#undef CONFIG_CONS_INDEX +#undef CONFIG_SYS_NS16550_SERIAL +#undef CONFIG_SYS_NS16550_CLK +#endif
/* SATA */ #define CONFIG_LIBATA
#define CONFIG_SCSI_AHCI
2.1.0.27.g96db324
It's better to rephrase tile to "armv8/ls1043aqds: add LPUART support"?
And give more information about "undefine the NS16550" in commit message.
Thanks, Mingkai

Hi Wenbin,
On Tue, Jan 19, 2016 at 2:48 PM, Wenbin Song wenbin.song@nxp.com wrote:
From: songwenbin Wenbin.Song@freescale.com
If configured CONFIG_LPUART, should undefine the NS16550
Signed-off-by: Wenbin Song wenbin.song@nxp.com
include/configs/ls1043aqds.h | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h index 398f1c3..88f4bc0 100644 --- a/include/configs/ls1043aqds.h +++ b/include/configs/ls1043aqds.h @@ -88,6 +88,17 @@ unsigned long get_board_ddr_clk(void); #define CONFIG_SYS_FSL_PBL_RCW board/freescale/ls1043aqds/ls1043aqds_rcw_sd_ifc.cfg #endif
+/*
- LPUART
- */
+#ifdef CONFIG_LPUART +#define CONFIG_FSL_LPUART +#define CONFIG_LPUART_32B_REG +#undef CONFIG_CONS_INDEX +#undef CONFIG_SYS_NS16550_SERIAL +#undef CONFIG_SYS_NS16550_CLK +#endif
Please update board defconfig instead #define / #undef in the configuration header. The NS16550 and LPUART are now both Kconfig options.
Regards, Bin

From: Wenbin Song Wenbin.Song@freescale.com
Need to initialize ns16550 to support earlycon on kernel.
Signed-off-by: Wenbin Song Wenbin.Song@freescale.com Signed-off-by: Mingkai Hu Mingkai.Hu@freescale.com --- board/freescale/ls1043aqds/ls1043aqds.c | 12 ++++++++++++ configs/ls1043aqds_lpuart_defconfig | 1 + include/configs/ls1043aqds.h | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/board/freescale/ls1043aqds/ls1043aqds.c b/board/freescale/ls1043aqds/ls1043aqds.c index 1da3fe1..fcbd95c 100644 --- a/board/freescale/ls1043aqds/ls1043aqds.c +++ b/board/freescale/ls1043aqds/ls1043aqds.c @@ -21,6 +21,7 @@ #include <fsl_esdhc.h> #include <fsl_ifc.h> #include <spl.h> +#include <ns16550.h>
#include "../common/qixis.h" #include "ls1043aqds_qixis.h" @@ -219,6 +220,17 @@ void board_retimer_init(void) i2c_write(I2C_RETIMER_ADDR, 0x64, 1, ®, 1); }
+int board_early_init_r(void) +{ +#ifdef CONFIG_LPUART + /* Initialize ns16500 for earlycon on kernel.*/ + NS16550_init((NS16550_t)CONFIG_SYS_NS16550_COM1, + DIV_ROUND_CLOSEST(CONFIG_SYS_NS16550_CLK, + 16 * CONFIG_BAUDRATE)); +#endif + return 0; +} + int board_early_init_f(void) { #ifdef CONFIG_LPUART diff --git a/configs/ls1043aqds_lpuart_defconfig b/configs/ls1043aqds_lpuart_defconfig index ca06abe..26f7b36 100644 --- a/configs/ls1043aqds_lpuart_defconfig +++ b/configs/ls1043aqds_lpuart_defconfig @@ -1,6 +1,7 @@ CONFIG_SYS_EXTRA_OPTIONS="SYS_FSL_DDR4,LPUART" CONFIG_ARM=y CONFIG_TARGET_LS1043AQDS=y +CONFIG_SYS_NS16550=y CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1043a-qds" CONFIG_OF_CONTROL=y CONFIG_DM=y diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h index 88f4bc0..d66d8f9 100644 --- a/include/configs/ls1043aqds.h +++ b/include/configs/ls1043aqds.h @@ -30,6 +30,8 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_LAYERSCAPE_NS_ACCESS
+#define CONFIG_BOARD_EARLY_INIT_R + #define CONFIG_DIMM_SLOTS_PER_CTLR 1 /* Physical Memory Map */ #define CONFIG_CHIP_SELECTS_PER_CTRL 4 @@ -96,7 +98,6 @@ unsigned long get_board_ddr_clk(void); #define CONFIG_LPUART_32B_REG #undef CONFIG_CONS_INDEX #undef CONFIG_SYS_NS16550_SERIAL -#undef CONFIG_SYS_NS16550_CLK #endif
/* SATA */

Hi Wenbin,
On Tue, Jan 19, 2016 at 2:48 PM, Wenbin Song wenbin.song@nxp.com wrote:
From: Wenbin Song Wenbin.Song@freescale.com
Need to initialize ns16550 to support earlycon on kernel.
Signed-off-by: Wenbin Song Wenbin.Song@freescale.com Signed-off-by: Mingkai Hu Mingkai.Hu@freescale.com
board/freescale/ls1043aqds/ls1043aqds.c | 12 ++++++++++++ configs/ls1043aqds_lpuart_defconfig | 1 + include/configs/ls1043aqds.h | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/board/freescale/ls1043aqds/ls1043aqds.c b/board/freescale/ls1043aqds/ls1043aqds.c index 1da3fe1..fcbd95c 100644 --- a/board/freescale/ls1043aqds/ls1043aqds.c +++ b/board/freescale/ls1043aqds/ls1043aqds.c @@ -21,6 +21,7 @@ #include <fsl_esdhc.h> #include <fsl_ifc.h> #include <spl.h> +#include <ns16550.h>
#include "../common/qixis.h" #include "ls1043aqds_qixis.h" @@ -219,6 +220,17 @@ void board_retimer_init(void) i2c_write(I2C_RETIMER_ADDR, 0x64, 1, ®, 1); }
+int board_early_init_r(void) +{ +#ifdef CONFIG_LPUART
- /* Initialize ns16500 for earlycon on kernel.*/
NS16550_init((NS16550_t)CONFIG_SYS_NS16550_COM1,
DIV_ROUND_CLOSEST(CONFIG_SYS_NS16550_CLK,
16 * CONFIG_BAUDRATE));
+#endif
This change does not make a lot sense to me. Since U-Boot is using LPUART as its system console, why do you want to load a kernel that uses the NS16550 as the system console? IMHO we should ask kernel to use LPUART as well, IOW keep in sync with the underlying bootloader.
return 0;
+}
int board_early_init_f(void) { #ifdef CONFIG_LPUART diff --git a/configs/ls1043aqds_lpuart_defconfig b/configs/ls1043aqds_lpuart_defconfig index ca06abe..26f7b36 100644 --- a/configs/ls1043aqds_lpuart_defconfig +++ b/configs/ls1043aqds_lpuart_defconfig @@ -1,6 +1,7 @@ CONFIG_SYS_EXTRA_OPTIONS="SYS_FSL_DDR4,LPUART" CONFIG_ARM=y CONFIG_TARGET_LS1043AQDS=y +CONFIG_SYS_NS16550=y CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1043a-qds" CONFIG_OF_CONTROL=y CONFIG_DM=y diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h index 88f4bc0..d66d8f9 100644 --- a/include/configs/ls1043aqds.h +++ b/include/configs/ls1043aqds.h @@ -30,6 +30,8 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_LAYERSCAPE_NS_ACCESS
+#define CONFIG_BOARD_EARLY_INIT_R
#define CONFIG_DIMM_SLOTS_PER_CTLR 1 /* Physical Memory Map */ #define CONFIG_CHIP_SELECTS_PER_CTRL 4 @@ -96,7 +98,6 @@ unsigned long get_board_ddr_clk(void); #define CONFIG_LPUART_32B_REG #undef CONFIG_CONS_INDEX #undef CONFIG_SYS_NS16550_SERIAL -#undef CONFIG_SYS_NS16550_CLK #endif
/* SATA */
Regards, Bin

Hi: Bin, Because we use the ns16550 as the early console when booting kernel , and the earlycon driver on kernel cannot initialize port->uartclk rightly, So if we want to use it, we must initialize ns16550 on uboot, and use the bootargs as follow : "console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,0x21c0500 "
int __init early_serial8250_setup(struct earlycon_device *device, const char *options) { if (!(device->port.membase || device->port.iobase)) return -ENODEV;
if (!device->baud) { struct uart_port *port = &device->port; unsigned int ier;
/* assume the device was initialized, only mask interrupts */ ier = serial8250_early_in(port, UART_IER); serial8250_early_out(port, UART_IER, ier & UART_IER_UUE); } else init_port(device);
device->con->write = early_serial8250_write; return 0; }
Regards
Wenbin Song
-----Original Message----- From: Bin Meng [mailto:bmeng.cn@gmail.com] Sent: Tuesday, January 19, 2016 4:08 PM To: Wenbin Song wenbin.song@nxp.com Cc: York Sun yorksun@freescale.com; Mingkai Hu mingkai.hu@nxp.com; Qianyu Gong qianyu.gong@nxp.com; Shaohui Xie shaohui.xie@nxp.com; U-Boot Mailing List u-boot@lists.denx.de; Wenbin Song Wenbin.Song@freescale.com Subject: Re: [U-Boot] [PATCH 4/4] armv8/ls1043aqds: Initizlize NS16550 if enalbed LPUART
Hi Wenbin,
On Tue, Jan 19, 2016 at 2:48 PM, Wenbin Song wenbin.song@nxp.com wrote:
From: Wenbin Song Wenbin.Song@freescale.com
Need to initialize ns16550 to support earlycon on kernel.
Signed-off-by: Wenbin Song Wenbin.Song@freescale.com Signed-off-by: Mingkai Hu Mingkai.Hu@freescale.com
board/freescale/ls1043aqds/ls1043aqds.c | 12 ++++++++++++ configs/ls1043aqds_lpuart_defconfig | 1 + include/configs/ls1043aqds.h | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/board/freescale/ls1043aqds/ls1043aqds.c b/board/freescale/ls1043aqds/ls1043aqds.c index 1da3fe1..fcbd95c 100644 --- a/board/freescale/ls1043aqds/ls1043aqds.c +++ b/board/freescale/ls1043aqds/ls1043aqds.c @@ -21,6 +21,7 @@ #include <fsl_esdhc.h> #include <fsl_ifc.h> #include <spl.h> +#include <ns16550.h>
#include "../common/qixis.h" #include "ls1043aqds_qixis.h" @@ -219,6 +220,17 @@ void board_retimer_init(void) i2c_write(I2C_RETIMER_ADDR, 0x64, 1, ®, 1); }
+int board_early_init_r(void) +{ +#ifdef CONFIG_LPUART
- /* Initialize ns16500 for earlycon on kernel.*/
NS16550_init((NS16550_t)CONFIG_SYS_NS16550_COM1,
DIV_ROUND_CLOSEST(CONFIG_SYS_NS16550_CLK,
16 * CONFIG_BAUDRATE)); #endif
This change does not make a lot sense to me. Since U-Boot is using LPUART as its system console, why do you want to load a kernel that uses the NS16550 as the system console? IMHO we should ask kernel to use LPUART as well, IOW keep in sync with the underlying bootloader.
return 0;
+}
int board_early_init_f(void) { #ifdef CONFIG_LPUART diff --git a/configs/ls1043aqds_lpuart_defconfig b/configs/ls1043aqds_lpuart_defconfig index ca06abe..26f7b36 100644 --- a/configs/ls1043aqds_lpuart_defconfig +++ b/configs/ls1043aqds_lpuart_defconfig @@ -1,6 +1,7 @@ CONFIG_SYS_EXTRA_OPTIONS="SYS_FSL_DDR4,LPUART" CONFIG_ARM=y CONFIG_TARGET_LS1043AQDS=y +CONFIG_SYS_NS16550=y CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1043a-qds" CONFIG_OF_CONTROL=y CONFIG_DM=y diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h index 88f4bc0..d66d8f9 100644 --- a/include/configs/ls1043aqds.h +++ b/include/configs/ls1043aqds.h @@ -30,6 +30,8 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_LAYERSCAPE_NS_ACCESS
+#define CONFIG_BOARD_EARLY_INIT_R
#define CONFIG_DIMM_SLOTS_PER_CTLR 1 /* Physical Memory Map */ #define CONFIG_CHIP_SELECTS_PER_CTRL 4 @@ -96,7 +98,6 @@ unsigned long get_board_ddr_clk(void); #define CONFIG_LPUART_32B_REG #undef CONFIG_CONS_INDEX #undef CONFIG_SYS_NS16550_SERIAL -#undef CONFIG_SYS_NS16550_CLK #endif
/* SATA */
Regards, Bin

Hi Wenbin,
On Tue, Jan 19, 2016 at 6:21 PM, Wenbin Song wenbin.song@nxp.com wrote:
Hi: Bin, Because we use the ns16550 as the early console when booting kernel , and the earlycon driver on kernel cannot initialize port->uartclk rightly, So if we want to use it, we must initialize ns16550 on uboot, and use the bootargs as follow : "console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,0x21c0500 "
I understand this. My question was: U-Boot was booted using LPUART as its serial console, why do you bother loading a kernel with another serial port as the early console?
int __init early_serial8250_setup(struct earlycon_device *device, const char *options) { if (!(device->port.membase || device->port.iobase)) return -ENODEV;
if (!device->baud) { struct uart_port *port = &device->port; unsigned int ier; /* assume the device was initialized, only mask interrupts */ ier = serial8250_early_in(port, UART_IER); serial8250_early_out(port, UART_IER, ier & UART_IER_UUE); } else init_port(device); device->con->write = early_serial8250_write; return 0;
}
[snip]
Regards, Bin

Hi:Bin Thanks for your advice! I realize that I can use the lpuart as earlycon on kernel . So I will remove this patch on next vesion.
Thanks
Wenbin Song
Sent from my iPhone
On Jan 19, 2016, at 18:42, Bin Meng bmeng.cn@gmail.com wrote:
Hi Wenbin,
On Tue, Jan 19, 2016 at 6:21 PM, Wenbin Song wenbin.song@nxp.com wrote: Hi: Bin, Because we use the ns16550 as the early console when booting kernel , and the earlycon driver on kernel cannot initialize port->uartclk rightly, So if we want to use it, we must initialize ns16550 on uboot, and use the bootargs as follow : "console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,0x21c0500 "
I understand this. My question was: U-Boot was booted using LPUART as its serial console, why do you bother loading a kernel with another serial port as the early console?
int __init early_serial8250_setup(struct earlycon_device *device, const char *options) { if (!(device->port.membase || device->port.iobase)) return -ENODEV;
if (!device->baud) { struct uart_port *port = &device->port; unsigned int ier; /* assume the device was initialized, only mask interrupts */ ier = serial8250_early_in(port, UART_IER); serial8250_early_out(port, UART_IER, ier & UART_IER_UUE); } else init_port(device); device->con->write = early_serial8250_write; return 0;
}
[snip]
Regards, Bin

-----Original Message----- From: Wenbin Song [mailto:wenbin.song@nxp.com] Sent: Tuesday, January 19, 2016 2:48 PM To: yorksun@freescale.com; Mingkai Hu; Qianyu Gong; Shaohui Xie; Wenbin Song; u-boot@lists.denx.de Subject: [PATCH 1/4] armv8/ls1043aqds: added lpuart support
From: Shaohui Xie shaohui.xie@nxp.com
Signed-off-by: Shaohui Xie shaohui.xie@nxp.com Signed-off-by: Mingkai Hu mingkai.hu@nxp.com
board/freescale/ls1043aqds/ls1043aqds.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/board/freescale/ls1043aqds/ls1043aqds.c b/board/freescale/ls1043aqds/ls1043aqds.c index d6696ca..1da3fe1 100644 --- a/board/freescale/ls1043aqds/ls1043aqds.c +++ b/board/freescale/ls1043aqds/ls1043aqds.c @@ -40,6 +40,9 @@ enum { #define CFG_SD_MUX3_MUX4 0x1 /* MUX4 */ #define CFG_SD_MUX4_SLOT3 0x0 /* SLOT3 TX/RX1 */ #define CFG_SD_MUX4_SLOT1 0x1 /* SLOT1 TX/RX3 */ +#define CFG_UART_MUX_MASK 0x6 +#define CFG_UART_MUX_SHIFT 1 +#define CFG_LPUART_EN 0x1
int checkboard(void) { @@ -218,7 +221,19 @@ void board_retimer_init(void)
int board_early_init_f(void) { +#ifdef CONFIG_LPUART
- u8 uart;
+#endif fsl_lsch2_early_init_f(); +#ifdef CONFIG_LPUART
- /*FIXME: need to check which lpuart is enabled in rcw, for now
* we use lpuart1.
*/
- uart = QIXIS_READ(brdcfg[14]);
- uart &= ~CFG_UART_MUX_MASK;
- uart |= CFG_LPUART_EN << CFG_UART_MUX_SHIFT;
- QIXIS_WRITE(brdcfg[14], uart);
+#endif
Please use the RCW to check which LPUART is enabled.
Thanks, Mingkai

Hi Wenbin,
On Tue, Jan 19, 2016 at 2:48 PM, Wenbin Song wenbin.song@nxp.com wrote:
From: Shaohui Xie shaohui.xie@nxp.com
Please try to add a commit message.
Signed-off-by: Shaohui Xie shaohui.xie@nxp.com Signed-off-by: Mingkai Hu mingkai.hu@nxp.com
board/freescale/ls1043aqds/ls1043aqds.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/board/freescale/ls1043aqds/ls1043aqds.c b/board/freescale/ls1043aqds/ls1043aqds.c index d6696ca..1da3fe1 100644 --- a/board/freescale/ls1043aqds/ls1043aqds.c +++ b/board/freescale/ls1043aqds/ls1043aqds.c @@ -40,6 +40,9 @@ enum { #define CFG_SD_MUX3_MUX4 0x1 /* MUX4 */ #define CFG_SD_MUX4_SLOT3 0x0 /* SLOT3 TX/RX1 */ #define CFG_SD_MUX4_SLOT1 0x1 /* SLOT1 TX/RX3 */ +#define CFG_UART_MUX_MASK 0x6 +#define CFG_UART_MUX_SHIFT 1 +#define CFG_LPUART_EN 0x1
int checkboard(void) { @@ -218,7 +221,19 @@ void board_retimer_init(void)
int board_early_init_f(void) { +#ifdef CONFIG_LPUART
u8 uart;
+#endif fsl_lsch2_early_init_f(); +#ifdef CONFIG_LPUART
/*FIXME: need to check which lpuart is enabled in rcw, for now
* we use lpuart1.
*/
Please use correct multi-line comment format.
uart = QIXIS_READ(brdcfg[14]);
uart &= ~CFG_UART_MUX_MASK;
uart |= CFG_LPUART_EN << CFG_UART_MUX_SHIFT;
QIXIS_WRITE(brdcfg[14], uart);
+#endif
return 0;
}
Regards, Bin
participants (4)
-
Bin Meng
-
Mingkai Hu
-
Simon Glass
-
Wenbin Song