SylixOS PCI sata 驱动流程

在bsp pci 驱动初始化后,在设备驱动函数中添加PCI sata 控制器初始化代码

    pciStorageAtaInit();                                                /*  ATA 控制器设备初始化        */
    pciStorageSataInit();                                               /*  SATA 控制器设备初始化       */

从pciStorageAtaInit 进行PCI 扫描检测,并进行PCI 设备初始化操作;

INT  pciStorageAtaInit (VOID)
{
    INT                 iRet;                                           /*  操作结果                    */
    PCI_DRV_CB          tPciDrv;                                        /*  驱动控制器用于注册驱动      */
    PCI_DRV_HANDLE      hPciDrv = &tPciDrv;                             /*  驱动控制块句柄              */

    lib_bzero(hPciDrv, sizeof(PCI_DRV_CB));                             /*  复位驱动控制块参数          */
    iRet = pciStorageAtaDevIdTblGet(&hPciDrv->PCIDRV_hDrvIdTable, &hPciDrv->PCIDRV_uiDrvIdTableSize);
    if (iRet != ERROR_NONE) {                                           /*  获取设备 ID 表失败          */
        return  (PX_ERROR);
    }
                                                                        /*  设置驱动名称                */
    lib_strlcpy(&hPciDrv->PCIDRV_cDrvName[0], ATA_PCI_DRV_NAME, PCI_DRV_NAME_MAX);
    hPciDrv->PCIDRV_pvPriv         = LW_NULL;                           /*  设备驱动的私有数据          */
    hPciDrv->PCIDRV_hDrvErrHandler = LW_NULL;                           /*  驱动错误处理                */
    hPciDrv->PCIDRV_pfuncDevProbe  = pciStorageAtaDevProbe;             /*  设备探测函数, 不能为空      */
    hPciDrv->PCIDRV_pfuncDevRemove = pciStorageAtaDevRemove;            /*  驱动移除函数, 不能为空      */

    iRet = API_PciDrvRegister(hPciDrv);                                 /*  注册 PCI 设备驱动           */
    if (iRet != ERROR_NONE) {
        return  (PX_ERROR);
    }

    return  (ERROR_NONE);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值