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.

[参考译文] AM5728:AM572XEVM_PM /无法在 SPL U-Boot 中进行早期 UART 调试

Guru**** 2539500 points
Other Parts Discussed in Thread: AM5728, CCSTUDIO

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/866925/am5728-am572xevm_pm-unable-early-uart-debug-in-spl-u-boot

器件型号:AM5728
Thread 中讨论的其他器件: CCStudio

您好!

我正在使用 TI EVM 板 AM572XEVM_PM (AM5728处理器)。

我使用的是 Processor SDK 2019.01

在./configs/am57xx_evm_defconfig 中、我已激活 UART 调试

CONFIG_DEBUG_UART=y
CONFIG_DEBUG_UART_OMAP-y
CONFIG_DEBUG_UART_BASE=0x48020000
CONFIG_DEBUG_UART_CLOCK_48000000
CONFIG_DEBUG_UART_SHIFT = 2
CONFIG_DEBUT_UART_Announcy=y

我在/board/ti/am57xx/board.c 中添加了一些输出

void EMIF_get_reg_dump (u32 EMIF_nr、 const 结构 EMIF_regs **注册)
   printf ("测试输出__HR__    %s 之后的 SPL\n"、 __func____);
    开关 (EMIF_nr) {
(笑声)

这很好。

如果 我在早期 SPL 中添加输出

#ifdef CONFIG_SPL_Build
/* 没有 设置    SPL 的参数 */
静态 内联 void setup_board_EEPROM_env (void) { }

/* 覆盖 读取   EEPROM 信息的函数 */
void do 板检测(void)
    内部 RC;
printf ("测试输出_HR__    %s 早期 SPL\n"、 __func__);
 

系统无法引导。

有什么想法、这里可能会有什么问题或要检查什么?

此致、

Herbert Ranzinger

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

    赫伯特、您好!

    如果您使用 debug ()而不是 printf (),您会得到更好的结果吗? 有关详细信息、请查看以下 e2e 主题:

    https://e2e.ti.com/support/processors/f/791/t/830008

    此致、
    帕维尔

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

    您好、Pavel、

    要激活日志记录,我添加了.../configs/am57xx_evm_defconfig

    CONFIG_LOC=y
    CONFIG_LOG_MAX_LEVEL=10
    CONFIG_LOG_CONSOLE=y
    CONFIG_LOG_DEFAULT_LEVEL=1
    CONFIG_LogLevel = 1
    CONFIG_SPL_LogLevel = 1.
    CONFIG_SPL_MAX_LOG_LEVEL=10

    在...board/ti/am57xx/board.c 中

    我在开头添加了

    #define LOG_CATEGORY LOG_NONE

    我添加了多个函数 debug(.. 和 log (..)

    void EMIF_get_reg_dump (u32 EMIF_nr、 const 结构 EMIF_regs **注册)
        调试("测试 调试 _HR__  %s  "、 __func__);
        log (LOGC_NONE、 LOGL_DEBUG、 "Test lof __HR_%s\n" 、 __func__);
    (笑声)

    在控制台上看不到调试信息。

    此致、
    Herbert

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

    赫伯特、您好!

    当您尝试从控制台的 SPL 打印内容时、需要检查是否已设置 UART 模块和 pinmux。 第一个 SPL 消息是"U-Boot SPL 2019.01-...... "、从以下文件和函数中打印:

    u-boot/common/spl/spl.c

    #ifdef CONFIG_SPL_serial_support
    /*
     *这需要启用 UART 时钟。  为了使其正常工作
     *调用方必须确保 gd 指针有效。
     *
    void preloader_console_init (void)

       gD->baudate = CONFIG_BAUDRATE;

       serial_init();      /*串行通信设置*/

       gD->have 控制台= 1;

    #if CONFIG_IT_ENABLED (banner_print)
       PUT ("\Nu-Boot " SPL_TPL_name "" plain_version "(" U_boot_date "-")
           U_BOOT_TIME "" U_BOOT_TZ ")\n");
    #endif

     

    检查 SPL DO_BOARD_DETECT () 和 EMIF_GET_REG_Dump ()是否在 preloader_console_init ()之后执行。

    您可以使用 CCStudio 和 JTAG 进行该检查。 有关详细信息、请查看以下培训:

    https://training.ti.com/linux-board-porting-series-module-7-debugging-u-boot-jtag-ccs

    https://e2e.ti.com/support/processors/f/791/t/710134

    此致、
    帕维尔