watchdog使用方法介绍
watchdog简介与使用方法介绍
本文介绍飞腾平台(简称FT)watchdog相关知识,以及如何在uefi固件下和操作系统下配置使用watchdog的方法。
实验环境:D2000+FT uefi +kylin
FT watchdog符合 ARM规范的watchdog 参考链接: SBSA (Arm Server Base System Architecture) 因此在寄存器配置上,是兼容的。小编对比过相关寄存器,也就是基址不一样,所以在使用方法上和标准linux uefi是一样的。
linux上源码 在上文链接中有详细介绍,我在这里阐述一下自己的理解, watchdog中的操作主要涉及到初始化寄存器、是指超时时间、使能看门狗、第一次超时 ws0寄存器被置1,上报中断,第二次超时 ws1寄存器置1,芯片将会进入热复位,芯片内部重新上电相当于重新开机。在看门狗计时器件,可以重新填入超时时间,此时将重新计数。参考文档 《腾锐D2000软件编程手册》
UEFI watchdog介绍
在ft uefi中,已经添加了watchdot相关的支持
其中dsc中已经描述了飞腾通用寄存器与中断寄存器基址与偏移,
且开源uefi中已经集成arm watchdog驱动路径:ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.c
因此在整个uefi DXE阶段之后,都是可以直接使用watchdog功能的。
具体使用方法:第一个参数为设置秒数 ,设置为0将会主动关闭看门狗功能。
uefi中,将watchdog驱动注册,提供了中断支持,关闭、重设时间等功能。整个uefi代码中也多次使用了watchdog。在标准驱动中,进入uefishell 进入gurb代码都会主动关闭看门狗功能。
kernen watchdog 介绍
内核想要使用watchdog功能,固件提供相应支持
在ACPI表的GTDT中需要有看门狗的相关描述,汇报给操作系统PhytiumPkg/Phytium2004Pkg/Drivers/AcpiTables/Gtdt.aslc
操作系统会在开机过程中匹配相关字符串,若成功匹配,则会在系统中有watchdog的字符设备:/dev/watchdog0,1,2,若成功出现该字符设备,说明系统下看门狗功能就可以使用了。
系统下测试看门狗方法:
(没想好该不该介绍,毕竟用到了别人开发的程序)
飞腾平台Can总线验证方法
介绍飞腾平台下如何验证与使用can总线的方法
验证环境:D2000平台、 CAN协议分析仪
1 安装can命令
apt-get update && apt-get install git
cd /tmp
git clone https://github.com/linux-can/can-utils.git
cd can-utils/
make
make install
2 can 接口验证方法
1. 先配置复用寄存器为CAN0、CAN1、CAN2总线功能
2. 设置总线波特率,并开启CAN总线
3. 飞腾CAN0接收数据,CAN分析仪CAN1发送数据
系统下使用Canutils软件测试CAN总线,接收数据时执行./candump can0指令
4. 飞腾CAN0发送数据,CAN分析仪CAN1接收数据
系统下使用Canutils软件测试CAN总线,接收数据时执行./candump can0指令
1. 飞腾CAN0发送数据,CAN分析仪CAN1接收数据
系统下使用Canutils软件测试CAN总线,接收数据时执行./candump can0指令
飞腾平台下访问GMAC-PHY的方法
linux 系统下操作PHY读写方式
本文简单介绍使用源码编译,通过mdio方式操作PHY寄存器
1 获取源码
代码已经上传,可自行下载,另外可以下载我已经编译好的文件直接使用。
2 编译源码
编译命令:gcc mdio.c -o mdio
3赋予权限
chmod a+x mdio
4 查看网口
通过ifconfig -a命令查看你想要操作的网口,保存网口名,在后续会使用到
5读取phy ID示例
./mdio
mdio:
read operation: mdio reg_addr
write operation: mdio reg_addr value
For example:
mdio eth0 1
mdio eth0 0 0x12
例如要查看phy id
./mdio enaphyt4i0 3
将会返回获取的值
介绍操作裕泰PHY的方法:
首先读取查看phy手册,可以指导PHY访问有多种方式