备注:这里使用的AMI的开发环境MegaRAC进行AST2500软件开发,并非openlinux版本。
1、添加上电后自动执行的任务
在PDKAccess.c中列出了系统启动过程中的所有任务,若需要添加功能,在相应的任务中添加自定义线程。一般在两个任务里面添加,一个是PDK_AfterCreatingTasks,该任务为系统启动后执行的任务。另一个是PDK_PlatformInit,该任务为系统上电时候执行的任务。


PDK_PlatformInit函数中可以进行GPIO的一些控制命令(例如控制其他器件上电),创建自定义任务,如下:

Run_cpld_info_task就是创建的自定义任务,这里实现的是通过2500的UART与CPLD进行数据传输,用来设置2500的ipmb地址。


系统启动后的任务放在PDK_AfterCreateTasks

这里创建了一个run_hot_protect任务,用来针对主芯片过温保护

2、添加自定义IPMI任务
除了上电自启动任务外,用户也可以添加自定义IPMI任务,这些任务不需要放在启动列表里面,2500可以自动响应添加的IPMI任务。
在PDKCmds.c中定义netfun为NET_OEM(0x2E)的处理函数接口,这就是IPMI协议里面给用户自定义的控制命令。

然后可以添加两个文件,实现NET_OEM中的自定义IPMI控制命令

在c代码中定义所有的OEM控制命令,通过cmd来进行区分就行

.h中定义cmd

其中定义的函数在c代码中实现
