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/AM5718:WDTimer 在内核启动时停止

Guru**** 2595770 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/642860/linux-am5718-wdtimer-stops-at-kernel-start

器件型号:AM5718

工具/软件:Linux

您好!

我想使用 OMAP 看门狗计时器实现以下方案:

 -U-Boot 启动看门狗计时器,超时为10s

 -U-Boot 引导 Linux 内核

 - Linux 内核看门狗驱动程序使用已启动的看门狗计时器,并在必要时延长计时器

我有一个问题:在 U-Boot 上启动的看门狗计时器在 Linux 看门狗驱动程序执行时停止。

我如何找到 Linux 引导看门狗时间在哪个阶段停止?

如何防止在 Linux 启动期间停止看门狗计时器?

提前感谢。

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

    我将查看此内容、稍后再回来。

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

    似乎 Linux 内核正在停止/禁用看门狗 u-boot 配置。 有关详细信息、请参阅以下 e2e 线程:

    e2e.ti.com/.../287281
    e2e.ti.com/.../495092

    wiki.Dave.eu/.../Deploying _Embedded_Linux_Systems

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

    Pavel、

    感谢您的链接。

    第一个链接提示我正确的方向。 最后、我在 Linux 内核上提供了以下补丁:

    diff -git a/arch/arm/mach-omap2/wd_timer.c b/arch/arm/mach-omap2/wd_timer.c
    index ff0a68c.405f3b8 100644
    -- a/arch/arm/mach-omap2/hwo_timer.c
    +++b/arch/wdic_dimet_m78_ms/tomap2
    (@@@@)*tomapi20_t_mr_mwd/ mwdwdwdr -muat_t_mr.c
    
    
    
    int c = 0;
    -
    /*写入 SOFTRESET 位*/
    - omap_hwmod_softreset (oh);
    -
    /*对 RESETDONE 位的轮询*/
    - omap_test_timeout ((omap_hwmod_read (oh、
    - 哦->分类->sysc->syss_fs)
    - 和 SYSS_RESETDONE_MASK)、
    - MAX_MODULE_SOFTRESET_WAIT、c);
    -
    - 如果(oh->class->sysc->SRST_udelay)
    - udelay (oh->class->sysc->SRST_udelay);
    -
    如果(c = MAX_MODULE_SOFTRESET_WAIT)
    - PR_WARN ("%s":%s:软复位失败(等待%d usec)\n"、
    - __func__,oh->name,MAX_MODULE_SOFTRESET_WAIT);
    - 否则-
    PR_DEBUG ("%s:%s:%d usec\n"、__func__、
    -中的软复位 OH-->NAME、c);
    -
    返回(c =MAX_MODULE_SOFTRESET_WAIT)? ETIMEDOUT:
    - OMAP2_wd_timer_disable (oh);
    + /*由于我们在 u-boot
    +上运行了看门狗,所有代码都被删除 并希望看门狗驱动程序在加载时进行控制*/
    + 返回0;
    }
    

    这不会在 Linux 启动代码中禁用看门狗。