mpt2sas-19.00.00.00_rhel6.5驱动笔记系列1-函数初始化

再次说明,下面有加入一些网上达人的观点和自己的想法,作成笔记供自己记录


1.Fusion MPT简介:
   Fusion-MPT为LSI Logic开发,可以实现scsi和Fiber Channel的解决方案。这种架构具有高IO特性,降低产品的验证时间和推广时间。
       Fusion-MPT在硬件层上构建独有的Fimrware层,不同的Firmware为上层SCSI 和 FC驱动层提供支持,Firmware将驱动与硬件隔离,对上层程序提供统一的MPI(Message Passing Interface)接口,使同一驱动可以在不同的硬件上起作用。
       驱动对上层程序提供函数接口,上层通过调用驱动,经过MPI访问固件。MPI提供了一个消息传输框架,定义了主机和LSi Fusion-MPT芯片通信接口。


2.驱动分析:
    驱动mpt2sas-19.00.00.00_rhel6.5 C文件包括,mpt2sas_base.c ,mpt2sas_config.c ,mpt2sas_ctl.c ,mpt2sas_scsih.c ,mpt2sas_transport.c,mpt2sas_trigger_diag.c 文件
 2.1模块初始化
     模块初始化mpt2sas_scsih.c 中,加载驱动通过module_init(_scsih_init)调用_scsih_init函数。_scsih_init函数为main entry point for this driver.如果返回0则表示驱动加载正常,其它表示错误。
     在_scsih_init函数中通过printk(KERN_INFO "%s version %s loaded\n", MPT2SAS_DRIVER_NAME,MPT2SAS_DRIVER_VERSION); 将驱动的NAME和版本号打印出来。
      然后继续做了以下工作:


       2.1 .1设置scsi_transport_template模版
      mpt2sas_transport_template = sas_attach_transport(&mpt2sas_transport_functions);
       调用sas_attach_transport完成模板的初始化。
      调用raid_class_attach完成mpt2sas_raid_template
      
      
     2.1.2 初始化部分函数
     调用mpt2sas_base_initialize_callback_handler初始化mpt_callbacks[MPT_MAX_CALLBACKS]成员为NULL
     反复调用mpt2sas_base_register_callback_handler初始化部分函数,并将函数指针存在mpt_callbacks[]数组中。
     
   2.1.3 注册设备
  调用 mpt2sas_ctl_init完成mpt2sas作为一个miscellaneous注册,在/dev下生成对应的设备
  调用pci_register_driver将mpt2sas作为一个PCIE设备注册
         
         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值