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.

[参考译文] Linux/DRA750:将控制台更改为 uart9

Guru**** 2589280 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/589092/linux-dra750-change-console-to-uart9

器件型号:DRA750

工具/软件:Linux

大家好、

我们使用 DRA7xx_GLSDK_7.04.00.03开发定制板。

我们的定制板具有需要将控制台从 uart1更改为 uart9的要求。

有可能吗?

以下是我的修改:

1.修改"boards.cfg"

dra7xx_EVM:CONS_index=9、ENV_IS_IN_MMC

2.修改 u-boot 中的"mux_data.h":Board/ti/dra7xx、添加

const struct pad_conf_entry earle_padconf[]={
#if (CONFIG_CONS_INDEX = 1)
{UART1_RXD、(PIN_INPUT_SLEW | M0)}、/* UART1_RXD *
{UART1_TXD、(PIN_INPUT_SLEW | M0)}、/* UART1_TXD *
#endif
+#if (CONFIG_CONS_INDEX = 9)
+{MCASP5_ACLKX、(M3 | PIN_INPUT_PULLUP)}、/* mcasp5_aclkx.uart9_RxD */
+{MCASP5_FSX、(M3 | PIN_INPUT_PULLUP)}、/* mcasp5_FSX.uart9_TXD *
+#endif
{I2C1_SDA、(PIN_INPUT | M0)}、/* I2C1_SDA *
{I2C1_SCL、(PIN_INPUT | M0)}、// I2C1_SCL *
};

3.修改 u-boot 中的"dra7xx_EVM.h":include/configs

#define CONSOLEDEV "ttyO0"
#Elif (CONFIG_CONS_INDEX = 3)
#define CONSOLEDEV "ttyO2"
+#Elif (CONFIG_CONS_INDEX == 9)
+#define CONSOLEDEV "ttyO8"(定义 CONSOLEDEV "ttyO8")
#endif

但是、当我构建 u-boot 时、

在 serial_ns1655.c 中、错误提示它仅支持 uart6  

#if !defined (CONFIG_CONS_INDEX)
#Elif (CONFIG_CONS_INDEX < 1)||(CONFIG_CONS_INDEX > 6)
错误"控制台索引值无效。"
#endif

那么、是否可以将 u-boot 控制台从 uart1更改为 uart9?

能否在 serial_ns1655.c 中添加 uart9支持?

我还应该做些什么来使 uart9作为 u-boot 控制台工作(例如:启用时钟...?)?

非常感谢。

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

    您好、Shawn、

    我没有 DRA7代码库、但看起来硬件中有 UART9。 因此、您可以将 CONFIG_CONS_INDEX > 6)更改为9 (这是6、因为大多数 TI 代码库都是6、并且可能在 DRA7x 中没有像您的 UART9定制板那样的用例)。 PLL 源似乎与 UART9的 UART1相同。 但需要启用时钟、因为 UART1的时钟名称称为 UART1_GFCLK、UART9的时钟名称是 UART9_GFCLK。 因此、您可能需要启用功能时钟。

    此外、确保引脚多路复用器适用于正确的引脚。 UART9_RXD 可采用多个引脚球 G1/ Aa3/E25形式

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Dwarakesh R、
    感谢您的回复、
    这对我来说很困难、因为 u-boot 中似乎没有 uart9的时钟域设置。
    现在、我不得不放弃使用 uart4作为调试端口、因为它位于同一组 uart1中。
    如果您有任何特定的修改建议、以使 uart9在 u-boot 中正常工作、
    您是否愿意与我们分享?
    非常感谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Shawn、

    正如我说的那样、我没有 DRA7x 代码库。 我需要与我的团队成员进行核实。 同时、我想知道您为什么设置了{MCASP5_FSX、(M3 | PIN_INPUT_PULLUP)}、// mcasp5_FSX.uart9_TXD */
    PIN_INPUT_PULLUP? 您能不能像在 UART1中对 TXD 和 RXD 都这么做?

    让我在获取代码后检查 uboot 中的 UART 时钟源。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Dwarakesh、
    是的、
    针对 uart1的已发布 BSP 默认引脚复用定义为:
    const struct pad_conf_entry earle_padconf[]={
    #if (CONFIG_CONS_INDEX = 1)
    {UART1_RXD、(PIN_INPUT_SLEW | M0)}、/* UART1_RXD *
    {UART1_TXD、(PIN_INPUT_SLEW | M0)}、/* UART1_TXD *
    #endif
    {I2C1_SDA、(PIN_INPUT | M0)}、/* I2C1_SDA *
    {I2C1_SCL、(PIN_INPUT | M0)}、// I2C1_SCL *
    };

    PIN_INPUT 意味着接收模式使能。
    我认为这并不意味着配置输入引脚。

    我尝试启用一些时钟寄存器、但它最终导致空穴系统崩溃...

    非常感谢您的善意帮助。