am5728 uboot console到uart8

隨意的標題一

最近碰到個需求,原來am5728的console是在uart3上面的,然後需要改到uart8,一般來說這個並沒有什麼難度,但是看了下,有點懵逼,因爲麻煩的是uboot串口默認1-6是隨意切換的,但是後面7往後就沒有那麼簡單了.於是還是寫下來記錄一下.撿一些重要的說一下.

主要參照的是ti論壇內的一個回覆修改的,但是當前寫博客的時候,我已經懶得去找那個鏈接了…

代碼

  1. 修改dtb切換輸出串口,並使能串口8
diff --git a/arch/arm/dts/am57xx-beagle-x15-common.dtsi b/arch/arm/dts/am57xx-beagle-x15-common.dtsi
index 49aeecd..6af99c3 100644
--- a/arch/arm/dts/am57xx-beagle-x15-common.dtsi
+++ b/arch/arm/dts/am57xx-beagle-x15-common.dtsi
@@ -24,7 +24,7 @@
 	};
 
 	chosen {
-		stdout-path = &uart3;
+		stdout-path = &uart8;
 	};
 
 	memory@0 {
@@ -587,3 +587,7 @@
 		status = "okay";
 	};
 };
+
+&uart8 {
+	status = "okay";
+};

diff --git a/arch/arm/dts/am57xx-idk-common.dtsi b/arch/arm/dts/am57xx-idk-common.dtsi
index fa5a078..561fe30 100644
--- a/arch/arm/dts/am57xx-idk-common.dtsi
+++ b/arch/arm/dts/am57xx-idk-common.dtsi
@@ -15,7 +15,7 @@
 	};
 
 	chosen {
-		stdout-path = &uart3;
+		stdout-path = &uart8;
 	};
 
 	vmain: fixedregulator-vmain {
@@ -416,6 +416,9 @@
 	no-1-8-v;
 	/delete-property/ mmc-hs200-1_8v;
 };
+&uart8 {
+	status = "okay";
+};
 
 &dcan1 {
 	status = "okay";

當初沒有仔細看是哪個dts文件,所以索性都改了.

  1. 不瞭解
 	reg-shift = <2>;
 };
 
-&uart3 {
+&uart8 {
 	u-boot,dm-spl;
 	reg-shift = <2>;
 };

這裏並不是很瞭解,待我完了之後去看下代碼理解一下.

  1. 打開串口時鐘
diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
index 5710136..b96c1bf 100644
--- a/arch/arm/include/asm/omap_common.h
+++ b/arch/arm/include/asm/omap_common.h
@@ -284,6 +284,7 @@ struct prcm_regs {
 	u32 cm_l4per_i2c5_clkctrl;
 	u32 cm_l4per_uart5_clkctrl;
 	u32 cm_l4per_uart6_clkctrl;
+	u32 cm_l4per_uart8_clkctrl;
 	u32 cm_l4sec_clkstctrl;
 	u32 cm_l4sec_staticdep;
 	u32 cm_l4sec_dynamicdep;
diff --git a/arch/arm/mach-omap2/clocks-common.c b/arch/arm/mach-omap2/clocks-common.c
index 93c4c6f..8d68962 100644
--- a/arch/arm/mach-omap2/clocks-common.c
+++ b/arch/arm/mach-omap2/clocks-common.c
@@ -805,7 +805,7 @@ static void setup_clocks_for_console(void)
 			MODULE_CLKCTRL_MODULEMODE_SW_EXPLICIT_EN <<
 			MODULE_CLKCTRL_MODULEMODE_SHIFT);
 
-	clrsetbits_le32((*prcm)->cm_l4per_uart3_clkctrl,
+	clrsetbits_le32((*prcm)->cm_l4per_uart8_clkctrl,
 			MODULE_CLKCTRL_MODULEMODE_MASK,
 			MODULE_CLKCTRL_MODULEMODE_SW_EXPLICIT_EN <<
 			MODULE_CLKCTRL_MODULEMODE_SHIFT);
diff --git a/arch/arm/mach-omap2/omap5/prcm-regs.c b/arch/arm/mach-omap2/omap5/prcm-regs.c
index b5f1d70..aff2896 100644
--- a/arch/arm/mach-omap2/omap5/prcm-regs.c
+++ b/arch/arm/mach-omap2/omap5/prcm-regs.c
@@ -970,6 +970,7 @@ struct prcm_regs const dra7xx_prcm = {
 	.cm_l4per_uart3_clkctrl			= 0x4a009850,
 	.cm_l4per_uart4_clkctrl			= 0x4a009858,
 	.cm_l4per_uart5_clkctrl			= 0x4a009870,
+	.cm_l4per_uart8_clkctrl			= 0x4a0098e0,
 	.cm_l4sec_clkstctrl			= 0x4a009880,
 	.cm_l4sec_staticdep			= 0x4a009884,
 	.cm_l4sec_dynamicdep			= 0x4a009888,
  1. 切換cmdline裏面傳給kernel的參數讓kernel也在uart8輸出
diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h
index cf5cacd..b59a139 100644
--- a/include/configs/am57xx_evm.h
+++ b/include/configs/am57xx_evm.h
@@ -27,7 +27,7 @@
 #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
 #define CONFIG_SYS_REDUNDAND_ENVIRONMENT
 
-#define CONSOLEDEV			"ttyO2"
+#define CONSOLEDEV			"ttyO7"
 #define CONFIG_SYS_NS16550_COM1		UART1_BASE	/* Base EVM has UART0 */
 #define CONFIG_SYS_NS16550_COM2		UART2_BASE	/* UART2 */
 #define CONFIG_SYS_NS16550_COM3		UART3_BASE	/* UART3 */
-- 

大概是這麼一個節奏.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章