首页 > 编程知识 正文

pci-e接口,pci输入设备是什么

时间:2023-05-05 18:12:18 阅读:170034 作者:2075

复杂度3/5

机械密度4/5

最后更新2021/04/20

本文以PCI设备为例,介绍了AIX初始化设备的情况。 阅读其他说明后,您应该知道AIXinitializationappliance根据设备关系树从父设备到子设备依次遍历每个节点,具体情况如何? 假设您从某个设备PCI0开始。

pci0在aix中表示pci时隙比特,并且用于初始化pci时隙比特的驱动器(pci总线驱动器)在初始化过程中通过pal ) powerabstrictlayer硬件管理微码操作而在其时隙比特中执行PCI总线驱动load程序在启用总线设备之后,需要顺序地执行询问所谓的子设备的操作。 此操作是将上面获得的信息,特别是设备名称写入ODM CuDv,即生成子设备定义。 当然,只有CuAt (在major和minor number双方中记载了设备名称和序列号)是不够的,之后,为了使与设备对应的初始化驱动器能够与实际对其位置进行初始化的卡对应,CuAt的基本结构) 如果此卡支持SRIOV等功能,则find children可能会生成包含配置参数的多个子设备的定义,但具体如何完全由驱动程序自己决定尚未确定。

PCI总线驱动程序加载程序在退出之前进行最后一项工作。 那就是将上面定义的子设备的设备名称打印在标准输出上。 注意,驱动程序的所有输出信息,包括标准输出和标准错误输出,都不能打印在tty上。 stdout和stderr向tty写入,tty信息用于说明cfgmgr今后需要继续初始化哪些设备。 如果你随便向tty扔东西,那会发生一些找不到奇怪设备的错误。 这是AIX设备驱动开发的共识要求。 尝试记录操作时,aix会提供cfglog进行记录。 具体如何使用,在今后的驱动程序制作介绍中有实例。 下面对查看其他驱动程序的执行信息的方法进行说明。

#Set cfglog environment variable

#cmd=trace commands

#meth=trace methods

# lib=跟踪库

#verbosity:xx(0-9)版本越详细

export CFGLOG=“cmd,meth,lib,verbosity:9”

# filewherethisgetslogged 3360/var/ADM/ras/CFG log

# read CFG日志条目:

alog -t cfg -o

# manuallywriteentriesintoalog (usefultoputdebugstatements )。

echo ' debugsessionstart : date '|alog-tcfg

也就是说,设定CFGLOG这个环境变量后再执行cfgmgr的话,CFGLOG中的内容就会变得丰富,可以挖很多宝物。

cfgmgr监视当前正在运行的load驱动程序的输出。 在此示例中,如果pci0中有FC卡,将打印fcs0。 具体而言,将不再进一步说明是fcs0还是fcs1等。 稍后将详细介绍驱动程序实例。 )

cfgmgr发现fcs0,根据该设备是否能够并行配置,决定是现在立即初始化,还是在同类的其他fcs初始化的执行结束后将fcs0串行初始化。

假设现在开始初始化fcs0。 cfgmgr前往CuDvDr找到此设备的初始化加载程序,然后使用fcs0参数运行此加载程序。 加载程序基于fcs0,通过CuDv、CuDvDr、CuAt、PdAt找到对应于该设备的驱动程序加载程序、该设备的Major、Minor及其默认和修改后的初始化参数获取窗口等信息) )将所有这些集成在一起以初始化fcs0的另一个维进程说明参考:设备管理进程

在fcs0加载程序初始化完成并退出之前,以相同的方式执行find children进程。 显然,该驱动程序会自动定义名为fscsi0的子设备,将此名称打印到tty上,然后继续用cfgmgr枚举进行初始化。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。