|
|
Line 30: |
Line 30: |
| Each time you run echo command the "hello" string should appear on the terminal. | | Each time you run echo command the "hello" string should appear on the terminal. |
|
| |
|
| = Using UART3 for console (instead of UART1) = | | = Disabling UART2 = |
| In the following example we use UART3 for console.<br>
| |
| Other UART ports can be used, similarly.<br>
| |
|
| |
|
| == Changes needed in U-Boot ==
| | To disable UART2 edit arch/arm64/boot/dts/variscite/imx8m-vart-dart-common.dsti under kernel source directory and modify |
|
| |
|
| <syntaxhighlight lang="diff"> | | <pre> |
| Subject: [PATCH] mx6ul_var_dart: Use UART3 for console (instead of UART1)
| | &uart2 { |
| | ... |
| | status = "okay"; |
| | }; |
| | </pre> |
|
| |
|
| ---
| | to |
| board/variscite/mx6ul_var_dart/mx6ul_var_dart.c | 8 ++++----
| |
| include/configs/mx6ul_var_dart.h | 4 ++--
| |
| 2 files changed, 6 insertions(+), 6 deletions(-)
| |
|
| |
|
| diff --git a/board/variscite/mx6ul_var_dart/mx6ul_var_dart.c b/board/variscite/mx6ul_var_dart/mx6ul_var_dart.c
| | <pre> |
| index 63a75ec..9d70851 100755
| | &uart2 { |
| --- a/board/variscite/mx6ul_var_dart/mx6ul_var_dart.c
| | ... |
| +++ b/board/variscite/mx6ul_var_dart/mx6ul_var_dart.c
| | status = "disabled"; |
| @@ -162,9 +162,9 @@ int dram_init(void){
| | }; |
| }
| | </pre> |
|
| |
|
| |
| -static iomux_v3_cfg_t const uart1_pads[] = {
| |
| - MX6_PAD_UART1_TX_DATA__UART1_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
| |
| - MX6_PAD_UART1_RX_DATA__UART1_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
| |
| +static iomux_v3_cfg_t const uart3_pads[] = {
| |
| + MX6_PAD_UART3_TX_DATA__UART3_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
| |
| + MX6_PAD_UART3_RX_DATA__UART3_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
| |
| };
| |
|
| |
| static iomux_v3_cfg_t const usdhc1_pads[] = {
| |
| @@ -253,7 +253,7 @@ static void setup_gpmi_nand(void)
| |
|
| |
| static void setup_iomux_uart(void)
| |
| {
| |
| - imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
| |
| + imx_iomux_v3_setup_multiple_pads(uart3_pads, ARRAY_SIZE(uart3_pads));
| |
| }
| |
|
| |
| static struct fsl_esdhc_cfg usdhc_cfg[2] = {
| |
| diff --git a/include/configs/mx6ul_var_dart.h b/include/configs/mx6ul_var_dart.h
| |
| index 5313d17..88bc1a0 100755
| |
| --- a/include/configs/mx6ul_var_dart.h
| |
| +++ b/include/configs/mx6ul_var_dart.h
| |
| @@ -55,7 +55,7 @@
| |
| #define CONFIG_MXC_GPIO
| |
|
| |
| #define CONFIG_MXC_UART
| |
| -#define CONFIG_MXC_UART_BASE UART1_BASE
| |
| +#define CONFIG_MXC_UART_BASE UART3_BASE
| |
|
| |
| /* MMC Configs */
| |
| #ifdef CONFIG_FSL_USDHC
| |
| @@ -169,7 +169,7 @@
| |
| BOOT_ENV_SETTINGS \
| |
| "script=boot.scr\0" \
| |
| "image=zImage\0" \
| |
| - "console=ttymxc0\0" \
| |
| + "console=ttymxc2\0" \
| |
| "fdt_high=0xffffffff\0" \
| |
| "initrd_high=0xffffffff\0" \
| |
| "var_auto_fdt_file=Y\0" \
| |
| --
| |
| 1.9.1
| |
| | |
| </syntaxhighlight> | |
| | |
| You can follow the "Build U-Boot from source code" guide to get the U-Boot source code and build it.<br>
| |
| | |
| == Changes needed in Yocto ==
| |
| Edit the file: sources/meta-variscite-imx/conf/machine/imx6ul-var-dart.conf<br>
| |
| and change the line:<br>
| |
| SERIAL_CONSOLE = "115200 ttymxc0"<br>
| |
| to:<br>
| |
| SERIAL_CONSOLE = "115200 ttymxc2"<br>
| |
| <br>
| |
| (or you can change it on the target in /etc/inittab)
| |
| | |
| = Disable the console =
| |
| Disabling the serial console completely is not recommended, as it makes it hard or even impossible to analyze errors such as a user interface crash or to get control of the system if it doesn't boot successfully.<br>
| |
| If you need to do it anyway, this is how.<br>
| |
| <br>
| |
| For Debian, the only changes needed are in U-Boot.<br>
| |
| | |
| == Changes needed in U-Boot ==
| |
| Applying the first patch only will still allow you to stop the boot process at U-Boot and get to the U-Boot command line.<br>
| |
| Applying the second patch will eliminate that also.<br>
| |
| | |
| <syntaxhighlight lang="diff">
| |
| Subject: [PATCH 1/2] mx6ul_var_dart: Silence console
| |
| | |
| ---
| |
| board/variscite/mx6ul_var_dart/mx6ul_var_dart.c | 2 ++
| |
| include/configs/mx6ul_var_dart.h | 8 +++++++-
| |
| 2 files changed, 9 insertions(+), 1 deletion(-)
| |
| | |
| diff --git a/board/variscite/mx6ul_var_dart/mx6ul_var_dart.c b/board/variscite/mx6ul_var_dart/mx6ul_var_dart.c
| |
| index 59c4da7f8a..139b5bc216 100755
| |
| --- a/board/variscite/mx6ul_var_dart/mx6ul_var_dart.c
| |
| +++ b/board/variscite/mx6ul_var_dart/mx6ul_var_dart.c
| |
| @@ -966,8 +966,10 @@ void board_init_f(ulong dummy)
| |
| /* setup GP timer */
| |
| timer_init();
| |
|
| |
| +#ifndef CONFIG_SPL_NO_CONSOLE
| |
| /* UART clocks enabled and gd valid - init serial console */
| |
| preloader_console_init();
| |
| +#endif
| |
|
| |
| setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
| |
| setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info2);
| |
| diff --git a/include/configs/mx6ul_var_dart.h b/include/configs/mx6ul_var_dart.h
| |
| index 5313d17c21..abbcb11620 100755
| |
| --- a/include/configs/mx6ul_var_dart.h
| |
| +++ b/include/configs/mx6ul_var_dart.h
| |
| @@ -93,6 +93,11 @@
| |
| #define CONFIG_POWER_PFUZE3000_I2C_ADDR 0x08
| |
| #endif
| |
|
| |
| +#define CONFIG_SYS_DEVICE_NULLDEV
| |
| +#define CONFIG_SILENT_CONSOLE
| |
| +#define CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC
| |
| +#define CONFIG_SPL_NO_CONSOLE
| |
| +
| |
| #define CONFIG_SYS_MMC_IMG_LOAD_PART 1
| |
|
| |
| #define NAND_BOOT_ENV_SETTINGS \
| |
| @@ -169,7 +174,8 @@
| |
| BOOT_ENV_SETTINGS \
| |
| "script=boot.scr\0" \
| |
| "image=zImage\0" \
| |
| - "console=ttymxc0\0" \
| |
| + "silent=1\0" \
| |
| + "console=null\0" \
| |
| "fdt_high=0xffffffff\0" \
| |
| "initrd_high=0xffffffff\0" \
| |
| "var_auto_fdt_file=Y\0" \
| |
| --
| |
| 2.11.0
| |
| </syntaxhighlight>
| |
| | |
| <syntaxhighlight lang="diff">
| |
| Subject: [PATCH 2/2] mx6ul_var_dart: Autoboot with no delay and no check for
| |
| abort
| |
| | |
| ---
| |
| include/configs/mx6ul_var_common.h | 2 +-
| |
| 1 file changed, 1 insertion(+), 1 deletion(-)
| |
| | |
| diff --git a/include/configs/mx6ul_var_common.h b/include/configs/mx6ul_var_common.h
| |
| index 8556b257be..6139ec6d55 100644
| |
| --- a/include/configs/mx6ul_var_common.h
| |
| +++ b/include/configs/mx6ul_var_common.h
| |
| @@ -72,7 +72,7 @@
| |
| #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
| |
|
| |
| #ifndef CONFIG_BOOTDELAY
| |
| -#define CONFIG_BOOTDELAY 1
| |
| +#define CONFIG_BOOTDELAY -2
| |
| #endif
| |
|
| |
| /* allow to overwrite serial and ethaddr */
| |
| --
| |
| 2.11.0
| |
| </syntaxhighlight> | |
| | |
| == Changes needed in Yocto ==
| |
| Edit the file: sources/meta-variscite-imx/conf/machine/imx6ul-var-dart.conf<br>
| |
| and change the line:<br>
| |
| SERIAL_CONSOLE = "115200 ttymxc0"<br>
| |
| to:<br>
| |
| SERIAL_CONSOLE = ""<br>
| |
| <br>
| |
| (or you can change it on the target in /etc/inittab)
| |
DART-MX8M - UART
DART-MX8M UART Overview
All 4 UARTs on DART-MX8M are enabled by default. UART1 is connected to debug console, UART2 and UART3 are connected to header J12 on DART-MX8M carrier board, UART4 is connected to Bluetooth module. On DART-MX8M SoMs without WIFI/BT module UART4 is also connected to J12 header. See carrier board datasheet https://www.variscite.com/wp-content/uploads/2018/04/VAR-DT8MCustomBoard-Datasheet.pdf for the exact pinout. Only UART4 has RTS and CTS lines.
UART naming under Linux
The Linux devices corresponding to UART1 - UART4 are /dev/ttymxc0 - /dev/ttymxc3 respectively.
Testing UART2
Short J12.4 and J12.6 pins and run the following commands:
stty -F /dev/ttymxc1 -echo -onlcr 115200
cat /dev/ttymxc1 &
echo hello > /dev/ttymxc1
Each time you run echo command the "hello" string should appear on the terminal.
Testing UART3
Short J12.11 and J12.13 pins and run the following commands:
stty -F /dev/ttymxc2 -echo -onlcr 115200
cat /dev/ttymxc2 &
echo hello > /dev/ttymxc2
Each time you run echo command the "hello" string should appear on the terminal.
Disabling UART2
To disable UART2 edit arch/arm64/boot/dts/variscite/imx8m-vart-dart-common.dsti under kernel source directory and modify
&uart2 {
...
status = "okay";
};
to
&uart2 {
...
status = "disabled";
};