请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: AM620-Q1
您好专家、
我正在使用最初编写于 2019/2020 年左右的 RTI_WDT_DRIVER (DRIVERS/WATCHDOG_WDT_c)。
`// SPDX-License-Identifier:GPL-2.0
/*
*用于 K3 RTI 模块的看门狗驱动程序
*
*(c) 版权所有 2019-2020 Texas Instruments Inc.
保留所有权利。
*/`
我有几个关切和问题:
*目标上的行为:
我编写了一个小程序来查询上次重新启动是看门狗使用选项 WDIOC_GETBOOTSTATUS (ioctl) 的值引起的。
`μ s
INT BOOTSTATUS = 0;
IF (WDG_FD < 0)
返回 false;
if (ioctl (WDG_FD、WDIOC_GETBOOTSTATUS、&bootstatus)== 0){
如果 (bootstatus !=0){
printf(“上次引导由看门狗引起 (bootstatus=0x%x)“、bootstatus);
返回 true;
}
printf(“上次引导不是由看门狗引起的 (bootstatus=0x%x)“、bootstatus);
返回 false;
}`
但它始终返回 0、即使系统由于看门狗而实际重新启动。
因此、为了进行调查、我尝试检查驱动程序提供了哪些选项。
我写了一个小的测试程序,交叉编译它,并在我的目标 板上运行:
例如:
`μ s
`μ s
我对本文档中的所有选项都做了同样的工作: https://www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt
该计划报告 :
`===看门狗信息===
身份 : K3 RTI 看门狗
固件版本 :0
选项 (RAW) :0x00008000
支持的选项:
WDIOF_KEEPALIVEPING
`μ s
我不确定这是否是此版本的驱动程序的正常行为、或者是否表示需要添加/修补程序。
*在查看 RTI_WDT.c 时,我发现只有 KEEPALIVEPING 选项可用。
`μ s
但它始终返回 0、即使系统由于看门狗而实际重新启动。
因此、为了进行调查、我尝试检查驱动程序提供了哪些选项。
我写了一个小的测试程序,交叉编译它,并在我的目标 板上运行:
例如:
`μ s
if (OPTs & WDIOF_MAGICCLOSE) printf(“ WDIOF_MAGICCLOSE\n“);
IF (OPTS & WDIOF_KEEPALIVEPING) printf(“ WDIOF_KEEPALIVEPING \n“);
if (OPTs & WDIOF_PRETIMEOUT) printf(“ WDIOF_PRETIMEOUT \n“);
if (OPTs & WDIOC_GETBOOTSTATUS) printf(“ WDIOC_GETBOOTSTATUS\n“);
该计划报告 :
`===看门狗信息===
身份 : K3 RTI 看门狗
固件版本 :0
选项 (RAW) :0x00008000
支持的选项:
WDIOF_KEEPALIVEPING
`μ s
我不确定这是否是此版本的驱动程序的正常行为、或者是否表示需要添加/修补程序。
*在查看 RTI_WDT.c 时,我发现只有 KEEPALIVEPING 选项可用。
`μ s
静态常量结构体 WATCHDOG_INFO RTI_WDT_INFO ={
.OPTIONS = WDIOF_KEEPALIVEPING、
.identity =“K3 RTI 看门狗“、
};
`μ s
`μ s
我想知道这些功能是否在本版本中被故意忽略、或者是否在以后的版本中可用。
*我正在考虑在 RTI_WDT.c 中添加一个补丁来公开其他选项,但它们是否会被内核正确识别并对用户空间可见?
*输入:
`target :“ linux am62xx-evm 6.1.80-rt26-ti-rt-g3c08dbfd7bfd #1 smp preempt_rt Wed Mar20 14:44:35 UTC 2024 AArch64 GNU/linux“ 显示所有可用的驱动程序选项。
在 DTS 中、我修改了 rti0@主节点、添加了 STATUS =“oke";“; 兼容=“ti、j7-RTI-WDT“;
发行版 =“阿拉戈“
DISTRO_VERSION =“2023.10"</s>“
BB_VERSION =“2.0.0"</s>“
*我正在考虑在 RTI_WDT.c 中添加一个补丁来公开其他选项,但它们是否会被内核正确识别并对用户空间可见?
*输入:
`target :“ linux am62xx-evm 6.1.80-rt26-ti-rt-g3c08dbfd7bfd #1 smp preempt_rt Wed Mar20 14:44:35 UTC 2024 AArch64 GNU/linux“ 显示所有可用的驱动程序选项。
在 DTS 中、我修改了 rti0@主节点、添加了 STATUS =“oke";“; 兼容=“ti、j7-RTI-WDT“;
发行版 =“阿拉戈“
DISTRO_VERSION =“2023.10"</s>“
BB_VERSION =“2.0.0"</s>“