我的存储第一战:PM8001驱动分析(一)

本文介绍了Linux内核中的PM8001 SAS HBA驱动,作为初学者的视角,从驱动的结构、初始化、关键文件的功能等方面进行了详细阐述,包括pm8001_init、pm8001_sas、pm8001_hwi和pm8001_ctl.c的主要职责。驱动在SCSI子系统三层架构中属于Lower level,与HBA直接通信,同时对PCI子系统和中断处理进行了初步讲解。文章还强调了pm8001_8001_dispatch结构体在底层通信中的重要性,并表达了期待讨论和改进的愿望。
摘要由CSDN通过智能技术生成

前言

PM8001驱动是linux内核自带的开源SAS HBA驱动,有关SAS协议相关内容可以到www.t10.org上看标准文档,这里不做介绍;HBA相关介绍请自行百度。由于本人刚刚接触这个行业,之前也未从事过驱动开发,所以从一个初学者的角度谈一下对PM8001驱动的理解,如有不足之处欢迎各种意见和建议以及探讨。第一次写博客正式开始....

1.介绍

PM8001是PMC公司的一款SAS/SATA 6Gbits/s 8端口芯片,能支持1.5G/3G/6Gbit设备,支持SSP/STP/SMP,支持1024个SAS地址....

PM8001驱动属于SCSI子系统三层架构中的Lower level,直接负责和HBA通信,并包含一些最基本的逻辑功能。由于SCSI子系统设计上的特点,虽然其划分了层次并有明确的分层架构设计特点,但这里的Mid level实际上承担的是通常意义上Midware的角色。Mid level本身逻辑有点复杂,并且分别和Upper level | Lower level之间有着比较强的耦合。但这种设计也的确真正做到了将Upper level与Lower level的耦合解开。

2.结构

PM8001驱动在linux kernel的driver/scsi/pm8001/*路径中,里面有9个源文件,本文重点介绍最为关键的几个.c文件:pm8001_init、pm8001_sas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值