LSI SAS控制器芯片Firmware加载

    Fusion-MPT是由LSI Logic公司开发的,目的是为了使客户能更为容易的实现SCSI和Fibre Channel的解决方案。这种开放式的Fusion-MPT架构具有最高的I/O性能,同时Fusion MPT架构支持Ultra320 SCSI、光纤通道和SAS,MPT是Message Passing Technology的缩写。
    拿最常用的标准芯片LSI SAS1068E来说,    LSISAS1068E是8端口3 Gb/s串行SCSI(SAS)控制器,该控制器基于Fusion-MPT架构并提供8路PCI Express接口。后端可以接SAS磁盘或者SATA磁盘,支持2,3,4宽端口。

    Linux内核下drivers/message/fusion里面包含基于Fusion-MPT开放架构的LSI SAS FC SPI控制器的Initiator端驱动程序,当然如果用户需要加载该驱动程序需要配置下内核,选择该驱动程序编译到内核。也可以在网上下载驱动,编译成内核模块加载驱动。该驱动需要PCI驱动和SCSI驱动的支持。

    LSI对一般的控制器提供Firmware,使用Linux下驱动程序不会自动加载Firmware,因此用户需要修改驱动程序让控制器加载所需要的Firmware,加载步骤按照Fusion-MPT Specification上说的使用DownloadBoot Message,针对Linux驱动来说,用户只需要准备一个大的数组存放Firmware,然后告诉驱动程序在该数组中加载控制器的Firmware即可,具体需要在mpt_diag_reset函数中对该变量ioc->cached_fw=buffer即可,其中buffer中存放的是Firmware数组的首地址,这样驱动程序会自动在cache_fw中使用downloadboot消息重新加载Firmware。

    针对不同的应用LSI提供了一个共同的Firmware,用户需要根据不同的场合使用LSI提供的工具和配置文件重新生成符合自己应用的Firmware,可以使用LSIUTIL工具生成。

    用户可以在驱动程序或者Firmware中配置SAS芯片的工作方式,如宽端口或者窄端口工作,也可以绑定端口为2,3,4等。

你可能感兴趣的:(设备驱动开发)