← Documents Documentation/scsi/smartpqi.rst GitHub 원문 ↗

Linux 6.18.37 · SCSI

SMARTPQI Microchip Smart Storage SCSI driver

Microchip PQI controller 지원, sysfs host·SAS attribute와 cciss 호환 ioctl을 설명합니다.

Source pathDocumentation/scsi/smartpqi.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

smartpqi.rst:1-78

Microchip PQI controller 지원, sysfs host·SAS attribute와 cciss 호환 ioctl을 설명합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ==============================================
4 SMARTPQI - Microchip Smart Storage SCSI driver
5 ==============================================
6
7 This file describes the smartpqi SCSI driver for Microchip
8 (http://www.microchip.com) PQI controllers. The smartpqi driver
9 is the next generation SCSI driver for Microchip Corp. The smartpqi
10 driver is the first SCSI driver to implement the PQI queuing model.
11
12 The smartpqi driver will replace the aacraid driver for Adaptec Series 9
13 controllers. Customers running an older kernel (Pre-4.9) using an Adaptec
14 Series 9 controller will have to configure the smartpqi driver or their
15 volumes will not be added to the OS.
16
17 For Microchip smartpqi controller support, enable the smartpqi driver
18 when configuring the kernel.
19
20 For more information on the PQI Queuing Interface, please see:
21
22 - http://www.t10.org/drafts.htm
23 - http://www.t10.org/members/w_pqi2.htm
24
25 Supported devices
26 =================
27 <Controller names to be added as they become publicly available.>
28
29 smartpqi specific entries in /sys
30 =================================
31
32 smartpqi host attributes
33 ------------------------
34 - /sys/class/scsi_host/host*/rescan
35 - /sys/class/scsi_host/host*/driver_version
36
37 The host rescan attribute is a write only attribute. Writing to this
38 attribute will trigger the driver to scan for new, changed, or removed
39 devices and notify the SCSI mid-layer of any changes detected.
40
41 The version attribute is read-only and will return the driver version
42 and the controller firmware version.
43 For example::
44
45 driver: 0.9.13-370
46 firmware: 0.01-522
47
48 smartpqi sas device attributes
49 ------------------------------
50 HBA devices are added to the SAS transport layer. These attributes are
51 automatically added by the SAS transport layer.
52
53 /sys/class/sas_device/end_device-X:X/sas_address
54 /sys/class/sas_device/end_device-X:X/enclosure_identifier
55 /sys/class/sas_device/end_device-X:X/scsi_target_id
56
57 smartpqi specific ioctls
58 ========================
59
60 For compatibility with applications written for the cciss protocol.
61
62 CCISS_DEREGDISK, CCISS_REGNEWDISK, CCISS_REGNEWD
63 The above three ioctls all do exactly the same thing, which is to cause the driver
64 to rescan for new devices. This does exactly the same thing as writing to the
65 smartpqi specific host "rescan" attribute.
66
67 CCISS_GETPCIINFO
68 Returns PCI domain, bus, device and function and "board ID" (PCI subsystem ID).
69
70 CCISS_GETDRIVVER
71 Returns driver version in three bytes encoded as::
72
73 (DRIVER_MAJOR << 28) | (DRIVER_MINOR << 24) | (DRIVER_RELEASE << 16) | DRIVER_REVISION;
74
75 CCISS_PASSTHRU
76 Allows "BMIC" and "CISS" commands to be passed through to the Smart Storage Array.
77 These are used extensively by the SSA Array Configuration Utility, SNMP storage
78 agents, etc.
79

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

PQI queuing model과 Series 9 전환

1-24

`smartpqi`는 Microchip PQI controller용 차세대 SCSI driver이며 PQI queuing model을 처음 구현한 SCSI driver다. Microchip 정보는 `http://www.microchip.com`에서 확인한다.

Adaptec Series 9 controller에서는 `smartpqi`가 `aacraid`를 대체한다. 4.9 이전 kernel에서 Series 9를 사용하는 고객은 `smartpqi`를 설정해야 volume이 OS에 추가된다. Microchip smartpqi controller 지원이 필요하면 kernel 구성에서 이 driver를 활성화한다.

PQI Queuing Interface에 관한 추가 정보는 `http://www.t10.org/drafts.htm`과 `http://www.t10.org/members/w_pqi2.htm`을 참고한다.

.. SPDX-License-Identifier: GPL-2.0

==============================================
SMARTPQI - Microchip Smart Storage SCSI driver
==============================================

This file describes the smartpqi SCSI driver for Microchip
(http://www.microchip.com) PQI controllers. The smartpqi driver
is the next generation SCSI driver for Microchip Corp. The smartpqi
driver is the first SCSI driver to implement the PQI queuing model.

The smartpqi driver will replace the aacraid driver for Adaptec Series 9
controllers. Customers running an older kernel (Pre-4.9) using an Adaptec
Series 9 controller will have to configure the smartpqi driver or their
volumes will not be added to the OS.

For Microchip smartpqi controller support, enable the smartpqi driver
when configuring the kernel.

For more information on the PQI Queuing Interface, please see:

- http://www.t10.org/drafts.htm
- http://www.t10.org/members/w_pqi2.htm

지원 장치 목록 상태

25-28

지원 controller 이름은 공개되는 대로 문서에 추가될 예정이다.

Supported devices
=================
<Controller names to be added as they become publicly available.>

Host rescan과 version attribute

29-47

Smartpqi host는 `/sys/class/scsi_host/host*/rescan`과 `/sys/class/scsi_host/host*/driver_version` attribute를 제공한다. `rescan`은 write-only이며 값을 쓰면 driver가 새 장치, 변경된 장치, 제거된 장치를 scan하고 발견한 변경을 SCSI mid-layer에 알린다.

Version attribute는 read-only이며 driver version과 controller firmware version을 반환한다. 예시 출력은 `driver: 0.9.13-370`, `firmware: 0.01-522`다.

smartpqi host attribute
경로Access내용
host*/rescanWrite-only장치 변경 scan 후 SCSI mid-layer 통지
host*/driver_versionRead-onlyDriver·firmware version

접근 방향과 효과를 구분한다.

smartpqi specific entries in /sys
=================================

smartpqi host attributes
------------------------
  - /sys/class/scsi_host/host*/rescan
  - /sys/class/scsi_host/host*/driver_version

  The host rescan attribute is a write only attribute. Writing to this
  attribute will trigger the driver to scan for new, changed, or removed
  devices and notify the SCSI mid-layer of any changes detected.

  The version attribute is read-only and will return the driver version
  and the controller firmware version.
  For example::

              driver: 0.9.13-370
              firmware: 0.01-522

SAS transport가 추가하는 device attribute

48-56

HBA 장치는 SAS transport layer에 추가되며 transport layer가 SAS device attribute를 자동으로 만든다. 경로는 `/sys/class/sas_device/end_device-X:X/sas_address`, `enclosure_identifier`, `scsi_target_id`다.

SAS device attribute
Attribute의미
sas_addressSAS address
enclosure_identifierEnclosure identifier
scsi_target_idSCSI target ID

SAS transport가 자동 생성하는 세 값이다.

smartpqi sas device attributes
------------------------------
  HBA devices are added to the SAS transport layer. These attributes are
  automatically added by the SAS transport layer.

  /sys/class/sas_device/end_device-X:X/sas_address
  /sys/class/sas_device/end_device-X:X/enclosure_identifier
  /sys/class/sas_device/end_device-X:X/scsi_target_id

cciss 호환 ioctl

57-78

Smartpqi 전용 ioctl은 `cciss` protocol용 application과의 호환성을 제공한다. `CCISS_DEREGDISK`, `CCISS_REGNEWDISK`, `CCISS_REGNEWD`는 모두 같은 동작을 한다. Driver에 새 장치를 다시 scan하게 하며 host `rescan` attribute에 쓰는 것과 정확히 같다.

`CCISS_GETPCIINFO`는 PCI domain, bus, device, function과 board ID인 PCI subsystem ID를 반환한다. `CCISS_GETDRIVVER`는 driver version을 세 byte로 반환하며 `(DRIVER_MAJOR << 28) | (DRIVER_MINOR << 24) | (DRIVER_RELEASE << 16) | DRIVER_REVISION`으로 encode한다.

`CCISS_PASSTHRU`는 `BMIC`과 `CISS` 명령을 Smart Storage Array로 전달한다. SSA Array Configuration Utility와 SNMP storage agent 등이 이 기능을 광범위하게 사용한다.

smartpqi ioctl
ioctl동작
CCISS_DEREGDISK / REGNEWDISK / REGNEWD장치 rescan
CCISS_GETPCIINFOPCI 위치와 subsystem ID 반환
CCISS_GETDRIVVEREncode된 driver version 반환
CCISS_PASSTHRUBMIC·CISS command pass-through

cciss 호환 command별 효과다.

smartpqi specific ioctls
========================

  For compatibility with applications written for the cciss protocol.

  CCISS_DEREGDISK, CCISS_REGNEWDISK, CCISS_REGNEWD
        The above three ioctls all do exactly the same thing, which is to cause the driver
        to rescan for new devices.  This does exactly the same thing as writing to the
        smartpqi specific host "rescan" attribute.

  CCISS_GETPCIINFO
        Returns PCI domain, bus, device and function and "board ID" (PCI subsystem ID).

  CCISS_GETDRIVVER
        Returns driver version in three bytes encoded as::

          (DRIVER_MAJOR << 28) | (DRIVER_MINOR << 24) | (DRIVER_RELEASE << 16) | DRIVER_REVISION;

  CCISS_PASSTHRU
        Allows "BMIC" and "CISS" commands to be passed through to the Smart Storage Array.
        These are used extensively by the SSA Array Configuration Utility, SNMP storage
        agents, etc.