工具/软件:
尊敬的专家:
我们必须使用 UART2 作为 u-boot(和 Linux)的控制台。
默认情况下、UART8 在 am68a/j721s2 中使用。 简单地将器件树更改为 UART2 无法正常工作。 任何人都能描述我们为在 UART2 上获取控制台而必须进行的更改吗?
谢谢、
Frank。
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.
您好 Frank、
您是否可以按照此处概述的步骤操作: (+)【常见问题解答】TDA4VM:J721e:/J7200:如何将控制台切换到不同的 UART 实例 — 处理器论坛-处理器 — TI E2E 支持论坛
器件不同、但步骤仍应适用。
此致、
Jared
在线程 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1490510/j784s4xevm-tda4ap-q1-changing-u-boot-console-from-uart8-to-uart3-no-clock-defined 中 已声明、必须启用新 UART 的时钟。 在查看 u-boot 源时、似乎只有 UART5 和 UART8 时钟被启用。 是否也应出于我们的目的启用 UART2 时钟?
Frank
您好 Frank、
我已经根据 你链接的线程中所做的更改编写了一个补丁: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1490510/j784s4xevm-tda4ap-q1-changing-u-boot-console-from-uart8-to-uart3-no-clock-defined
这些更改基本上只是为 UART2 添加时钟标识符和电源域。
从 Ctrl MMRS、时钟标识符和电源域中获取魔术值。 Ctrl MMR 地址可在 TRM 中找到、时钟标识符和电源域可在 j721s2-main.dtsi 中找到。
路径文件:
文本:
From a0cd31e78227e798ebdd4e4a18ffff2b71a141f9 Mon Sep 17 00:00:00 2001
From: Jared McArthur <j-mcarthur@ti.com>
Date: Wed, 2 Jul 2025 11:48:17 -0500
Subject: [PATCH 1/1] arm: mach-k3: r5: *-data: Add UART2 clock and dev
definitions
Signed-off-by: Jared McArthur <j-mcarthur@ti.com>
---
arch/arm/mach-k3/r5/j721s2/clk-data.c | 3 +++
arch/arm/mach-k3/r5/j721s2/dev-data.c | 1 +
2 files changed, 4 insertions(+)
diff --git a/arch/arm/mach-k3/r5/j721s2/clk-data.c b/arch/arm/mach-k3/r5/j721s2/clk-data.c
index 0130c9c4b86..b8fab099350 100644
--- a/arch/arm/mach-k3/r5/j721s2/clk-data.c
+++ b/arch/arm/mach-k3/r5/j721s2/clk-data.c
@@ -279,6 +279,7 @@ static const struct clk_data clk_list[] = {
CLK_MUX("emmcsd1_lb_clksel_out0", emmcsd1_lb_clksel_out0_parents, 2, 0x1080b4, 16, 1, 0),
CLK_MUX("mcu_clkout_mux_out0", mcu_clkout_mux_out0_parents, 2, 0x40f08010, 0, 1, 0),
CLK_DIV_DEFFREQ("usart_programmable_clock_divider_out0", "hsdiv4_16fft_main_1_hsdivout0_clk", 0x1081c0, 0, 2, 0, 0, 48000000),
+ CLK_DIV("usart_programmable_clock_divider_out2", "hsdiv4_16fft_main_1_hsdivout0_clk", 0x1081c8, 0, 2, 0, 0),
CLK_DIV("usart_programmable_clock_divider_out5", "hsdiv4_16fft_main_1_hsdivout0_clk", 0x1081d4, 0, 2, 0, 0),
CLK_DIV("usart_programmable_clock_divider_out8", "hsdiv4_16fft_main_1_hsdivout0_clk", 0x1081e0, 0, 2, 0, 0),
CLK_DIV("hsdiv0_16fft_main_12_hsdivout0_clk", "pllfracf2_ssmod_16fft_main_12_foutvcop_clk", 0x68c080, 0, 7, 0, 0),
@@ -436,6 +437,8 @@ static const struct dev_clk soc_dev_clk_data[] = {
DEV_CLK(223, 3, "gluelogic_hfosc0_clkout"),
DEV_CLK(223, 4, "k3_pll_ctrl_wrap_wkup_0_chip_div1_clk_clk"),
DEV_CLK(223, 5, "board_0_wkup_i2c0_scl_out"),
+ DEV_CLK(351, 2, "k3_pll_ctrl_wrap_main_0_chip_div1_clk_clk"),
+ DEV_CLK(351, 3, "usart_programmable_clock_divider_out2"),
DEV_CLK(354, 2, "k3_pll_ctrl_wrap_main_0_chip_div1_clk_clk"),
DEV_CLK(354, 3, "usart_programmable_clock_divider_out5"),
DEV_CLK(357, 2, "k3_pll_ctrl_wrap_main_0_chip_div1_clk_clk"),
diff --git a/arch/arm/mach-k3/r5/j721s2/dev-data.c b/arch/arm/mach-k3/r5/j721s2/dev-data.c
index b78550707c5..b27c3fcb098 100644
--- a/arch/arm/mach-k3/r5/j721s2/dev-data.c
+++ b/arch/arm/mach-k3/r5/j721s2/dev-data.c
@@ -69,6 +69,7 @@ static struct ti_dev soc_dev_list[] = {
PSC_DEV(99, &soc_lpsc_list[12]),
PSC_DEV(98, &soc_lpsc_list[13]),
PSC_DEV(146, &soc_lpsc_list[14]),
+ PSC_DEV(351, &soc_lpsc_list[15]),
PSC_DEV(354, &soc_lpsc_list[15]),
PSC_DEV(357, &soc_lpsc_list[15]),
PSC_DEV(4, &soc_lpsc_list[16]),
--
2.34.1
此致、
Jared
u-boot 版本为 10.00.00.08、我们应用了您的补丁。
多个器件
/ { chosen { stdout-path = "serial2:115200n8"; }; aliases { serial0 = &wkup_uart0; serial1 = &mcu_uart0; serial2 = &main_uart2; };
...
};
并且在 devicetree-u-boot.dtsi 中、我们启用了 UART2
&main_uart2 { bootph-all;};
并删除了相应的 MAIN_uart8 条目。
对于 OPTEE 和 ATF、我们 在构建过程中没有刚刚更改 UART 配置值 (CFG_CONSOLE_UART 和 K3_USART) 的补丁。
Frank
您好 Frank、
您是否进行了常见问题解答中反映的更改: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/988278/faq-tda4vm-j721e-j7200-how-to-switch-console-to-a-different-uart-instance?
此致、
Jared