编辑: bingyan8 | 2019-07-16 |
s nonvolatile storage. OS Layer (NT, Linux, etc) Transport Mechanism and Messaging Protocol Fusion-MPT Hardware Layer (FC, SCSI, InfiniBand) Fusion-MPT OS Level Drivers Fusion-MPT MPI API Fusion-MPT Firmware (FC, SCSI firmware) Fusion-MPT Hardware LSI SAS控制器驱动报告Invalid Page原因分析 http://www.ilinuxkernel.com 第5页共22 页FW_UPLOAD 0x12 Upload a firmware, BIOS, or related image from the IOC'
s nonvolatile storage. SCSI_IO_REQUEST 0x00 Initiate a SCSI I/O on a target device. SCSI_TASK_MGMT 0x01 Send a task management command to a target device. SCSI_ENCLOSURE_PROCESSOR 0x18 Communicate with an SES device. RAID_ACTION 0x15 Perform an action on or receive status information from an Integrated RAID volume. RAID_SCSI_IO_PASSTHROUGH 0x16 Send an I/O to the hidden physical disk of Integrated RAID volume. TARGET_CMD_BUF_BASE_POST 0x24 Post base address of command buffer pool to the IOC. TARGET_CMD_BUF_LIST_POST 0x25 Repost an IoIndex to the IOC after it has been used. TARGET_ASSIST 0x0B Continue an I/O as a SCSI target. TARGET_STATUS_SEND 0x0C Send status for an I/O as a SCSI target. TARGET_MODE_ABORT 0x0D Abort a target mode request message. SMP_PASSTHROUGH 0x1A Send SMP functions to a SAS expander. SATA_PASSTHROUGH 0x1C Send SATA commands to an attached SATA device. SAS_IO_UNIT_CONTROL 0x1B Control the SAS IO Unit. CONFIG 0x04 Access or modify operational parameters of the IOC. TOOLBOX 0x17 Send a non-I/O tool request to the IOC. DIAG_BUFFER_POST 0x1D Post a diagnostic buffer to the IO Unit. DIAG_RELEASE 0x1E Request the IO Unit to release a diagnostic buffer. RAID_ACCELERATOR 0x2C Initiate a RAID Accelerator operation. HOST_BASED_DISCOVERY_ ACTION 0x2F Perform an action on a device instance during Host Based Discovery. PWR_MGMT_CONTROL 0x30 Control power management features on the IOC. MIN_PRODUCT_SPECIFIC 0xF0 Beginning of the product-specific range of function codes. Values 0xF0 to 0xFF are reserved for product-specific use. See product-specific documentation for details. MAX_PRODUCT_SPECIFIC 0xFF End of the product-specific range of function codes. Values 0xF0 to 0xFF are reserved for product-specific use. See product-specific documentation for details. 2.2.2 消息配置功能 通过消息机制,可以对IO单元进行配置,也可以进行不同的设置.主机(在OS中)可以使用配置请 求消息(Configuration Request Message)来访问IOC的可操作参数.这些可操作参数分成多个逻辑组,称 之为Pages.这些page根据不能操作范围,进而划分不同page类型,如IO Unit Pages、IOC Pages等,且通 过不同的page号码访问. 所有的参数都必须基于page方式来访问.如果主机只想修改page中的某一个域,必须先page读出, 再修改,最后回写.每个page都有属性,如只读等. 下表为配置请求消息(Configuration Request Message)格式. LSI SAS控制器驱动报告Invalid Page原因分析 http://www.ilinuxkernel.com 第6页共22 页31
24 23
16 15
8 7
0 Byte Function ChainOffset SGLFlags Action 0x00 MsgFlags ExtPageType ExtPageLength 0x04 Reserved VF_ID VP_ID 0x08 Reserved ProxyVF_ID Reserved 0x0C Reserved 0x10 PageType PageNumber PageLength PageVersion 0x14 PageAddress 0x18 PageBufferSGE 0x1C 下表为配置响应消息(Configuration Reply Message)格式.
31 24
23 16
15 8
7 0 Byte Function MsgLength SGLFlags Action 0x00 MsgFlags ExtPageType ExtPageLength 0x04 Reserved VF_ID VP_ID 0x08 IOCStatus Reserved 0x0C IOCLogInfo 0x10 PageType PageNumber PageLength PageVersion 0x14 2.2.3 页面号与页面类型 在请求和响应消息格式中,PageNumber和PageType域的含义如下: PageNumber [23:16] The page number being accessed for the specified page type. PageType [31:24] The type of page being accessed. The two 4-bit fields are as follows: 页面类型如下表: LSI SAS控制器驱动报告Invalid Page原因分析 http://www.ilinuxkernel.com 第7页共22 页Bits Description [7:4] PageAttribute The host should set this to zero or to match the value from the header of the specified page. [3:0] PageType (all values not listed are reserved) 0x0 = IO Unit pages 0x1 = IOC pages 0x2 = BIOS pages 0x8 = RAID Volume pages 0x9 = Manufacturing pages 0xA = RAID Physical Disk pages 0xF = Extended Page Type