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.

[参考译文] AM68A:将 u-boot 控制台从 UART8 更改为 UART2

Guru**** 2419530 points
Other Parts Discussed in Thread: AM68A

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1524085/am68a-changing-u-boot-console-from-uart8-to-uart2

部件号:AM68A


工具/软件:

尊敬的专家:

我们必须使用 UART2 作为 u-boot(和 Linux)的控制台。

默认情况下、UART8 在 am68a/j721s2 中使用。 简单地将器件树更改为 UART2 无法正常工作。 任何人都能描述我们为在 UART2 上获取控制台而必须进行的更改吗?

谢谢、

Frank。

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

    您好 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、

    如果还没有、可以。

    此致、
    Jared

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

    您能告诉我如何操作吗? 或者 u-boot 中是否有一个提交、它用于另一个 UART?

    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 中找到

    路径文件:

    e2e.ti.com/.../0001_2D00_arm_2D00_mach_2D00_k3_2D00_r5_2D00_data_2D00_Add_2D00_UART2_2D00_clock_2D00_and_2D00_dev_2D00_definiti.patch

    文本:

    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 部分和 Linux 内核。

    我仍然从第一个 u-boot 阶段(R5 器件?)、ATF 和 OPTEE 获得 UART8 上的输出。 将 ATF 配置 (K3_USART) 和/或 OPTEE 配置 (CFG_CONSOLE_UART) 从 8 更改为 2 会导致不引导系统。

    Frank

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

    您好 Frank、

    您能否发送您所做更改的补丁、以便我查看一下?

    此致、
    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