This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM625:如何使用 ti sdk 10.x 将默认 Linux 内核控制台从 uart0更改为 uart3

Guru**** 2481465 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1454944/am625-how-to-change-the-default-linux-kernel-console-from-uart0-to-uart3-using-ti-sdk-10-x

器件型号:AM625

工具与软件:

尊敬的 TI 团队:

   我想将默认的 Linux 内核控制台从 uart0更改为 uart3。 u-boot 控制台仍保持 uart0状态。

   我使用 ti SDK 10.x (ti-processor-sdk-linux-rt-am62xx-evm-10.00.07.04-linux-x86-Install)。

   我使用基于 AM6254ATGFHIAMCRQ1的定制电路板。 通过 uart0控制台引导的 Linux 内核没有 propblem。 我用 STTY 测试 uart3和其他系列、所有这些都能正常工作。

   那么、我该怎么做才能将 Linux 内核默认控制台服务器更改为 uart3。 下面的补丁是我之前根据一些相关表单进行更改的方法、但它不起作用。  

   Linux 内核补丁:

diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
index 8be252991..07dfb4dc2 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
@@ -387,7 +387,7 @@ main_uart1: serial@2810000 {
 		power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
 		clocks = <&k3_clks 152 0>;
 		clock-names = "fclk";
-		status = "disabled";
+		status = "okay";
 	};
 
 	main_uart2: serial@2820000 {
@@ -397,7 +397,7 @@ main_uart2: serial@2820000 {
 		power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
 		clocks = <&k3_clks 153 0>;
 		clock-names = "fclk";
-		status = "disabled";
+		status = "okay";
 	};
 
 	main_uart3: serial@2830000 {
@@ -407,7 +407,7 @@ main_uart3: serial@2830000 {
 		power-domains = <&k3_pds 154 TI_SCI_PD_EXCLUSIVE>;
 		clocks = <&k3_clks 154 0>;
 		clock-names = "fclk";
-		status = "disabled";
+		status = "okay";
 	};
 
 	main_uart4: serial@2840000 {
@@ -417,7 +417,7 @@ main_uart4: serial@2840000 {
 		power-domains = <&k3_pds 155 TI_SCI_PD_EXCLUSIVE>;
 		clocks = <&k3_clks 155 0>;
 		clock-names = "fclk";
-		status = "disabled";
+		status = "okay";
 	};
 
 	main_uart5: serial@2850000 {
@@ -427,7 +427,7 @@ main_uart5: serial@2850000 {
 		power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
 		clocks = <&k3_clks 156 0>;
 		clock-names = "fclk";
-		status = "disabled";
+		status = "okay";
 	};
 
 	main_uart6: serial@2860000 {
diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index 57fbcd689..3e60cb371 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -13,6 +13,10 @@
 / {
 	aliases {
 		serial2 = &main_uart0;
+		serial4 = &main_uart2;
+		serial5 = &main_uart3;
+		serial6 = &main_uart4;
+		
 		mmc0 = &sdhci0;
 		mmc1 = &sdhci1;
 		mmc2 = &sdhci2;
@@ -28,7 +32,8 @@ chosen {
 		#size-cells = <2>;
 		ranges;
 
-		stdout-path = "serial2:115200n8";
+		stdout-path = "serial5:115200n8";
+		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02830000";
 
 		framebuffer0: framebuffer@0 {
 			compatible = "simple-framebuffer";
@@ -194,6 +199,27 @@ AM62X_IOPAD(0x1ac, PIN_INPUT, 2) /* (E19/D15) MCASP0_AFSR.UART1_RXD */
 			AM62X_IOPAD(0x1b0, PIN_OUTPUT, 2) /* (A20/D16) MCASP0_ACLKR.UART1_TXD */
 		>;
 	};
+	
+	main_uart2_pins_default: main-uart2-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x224, PIN_INPUT, 3) /* (MMC1_DAT3/C19) UART0_RXD  */
+			AM62X_IOPAD(0x228, PIN_OUTPUT, 3) /* (MMC1_DAT2/B20) UART0_TXD */
+		>;
+	};
+	
+	main_uart3_pins_default: main_uart3-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0234, PIN_INPUT, 3) /* (A20) MMC1_CLK.UART3_RXD */
+			AM62X_IOPAD(0x023c, PIN_OUTPUT, 3) /* (C18) MMC1_CMD.UART3_TXD */
+		>;
+	};
+	
+	main_uart4_pins_default: main_uart4-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0124, PIN_INPUT, 3) /* (D20) MMC2_SDCD.UART4_RXD */
+			AM62X_IOPAD(0x0128, PIN_OUTPUT, 3) /* (C20) MMC2_SDWP.UART4_TXD */
+		>;
+	};
 
 	main_i2c0_pins_default: main-i2c0-default-pins {
 		pinctrl-single,pins = <
@@ -374,12 +400,32 @@ &main_uart0 {
+&main_uart2 {
+	//bootph-pre-ram;
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_uart2_pins_default>;
+};
+
+&main_uart3 {
+	//bootph-pre-ram;
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_uart3_pins_default>;
+};
+
+&main_uart4 {
+	//bootph-pre-ram;
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_uart4_pins_default>;
+};
+

 Uboot 补丁:

diff --git a/board/HOLLYSYS/VM0210/VM0210.env b/board/xxxxx/VM0210/VM0210.env
index 269be870..9bb1a066 100644
--- a/board/xxxx/VM0210/VM0210.env
+++ b/board/xxxx/VM0210/VM0210.env
@@ -8,7 +8,8 @@
 
 name_kern=Image
 console=ttyS2,115200n8
-args_all=setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02800000
+args_all=setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02830000
 	${mtdparts}
 run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}

  我还将 u-boot 引导参数和内核设备树中控制台的引导参数和 env 从 ttyS2更改为 ttyS3、ttyS4和 ttyS5。 一切都不是很好。 启动日志仍然停留在"Starting Kernel ...(正在启动内核...)" "