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

Linux 6.18.37 · SCSI

AdvanSys 드라이버 참고 사항

AdvanSys adapter와 CDB queue, assertion·debug·통계 option, ISA/VL port 탐지와 이식 기여를 설명합니다.

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

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

1. 요약·해설

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

요약·해설

advansys.rst:1-272

AdvanSys adapter와 CDB queue, assertion·debug·통계 option, ISA/VL port 탐지와 이식 기여를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 =====================
4 AdvanSys Driver Notes
5 =====================
6
7 AdvanSys (Advanced System Products, Inc.) manufactures the following
8 RISC-based, Bus-Mastering, Fast (10 Mhz) and Ultra (20 Mhz) Narrow
9 (8-bit transfer) SCSI Host Adapters for the ISA, EISA, VL, and PCI
10 buses and RISC-based, Bus-Mastering, Ultra (20 Mhz) Wide (16-bit
11 transfer) SCSI Host Adapters for the PCI bus.
12
13 The CDB counts below indicate the number of SCSI CDB (Command
14 Descriptor Block) requests that can be stored in the RISC chip
15 cache and board LRAM. A CDB is a single SCSI command. The driver
16 detect routine will display the number of CDBs available for each
17 adapter detected. The number of CDBs used by the driver can be
18 lowered in the BIOS by changing the 'Host Queue Size' adapter setting.
19
20 Laptop Products:
21 - ABP-480 - Bus-Master CardBus (16 CDB)
22
23 Connectivity Products:
24 - ABP510/5150 - Bus-Master ISA (240 CDB)
25 - ABP5140 - Bus-Master ISA PnP (16 CDB)
26 - ABP5142 - Bus-Master ISA PnP with floppy (16 CDB)
27 - ABP902/3902 - Bus-Master PCI (16 CDB)
28 - ABP3905 - Bus-Master PCI (16 CDB)
29 - ABP915 - Bus-Master PCI (16 CDB)
30 - ABP920 - Bus-Master PCI (16 CDB)
31 - ABP3922 - Bus-Master PCI (16 CDB)
32 - ABP3925 - Bus-Master PCI (16 CDB)
33 - ABP930 - Bus-Master PCI (16 CDB)
34 - ABP930U - Bus-Master PCI Ultra (16 CDB)
35 - ABP930UA - Bus-Master PCI Ultra (16 CDB)
36 - ABP960 - Bus-Master PCI MAC/PC (16 CDB)
37 - ABP960U - Bus-Master PCI MAC/PC Ultra (16 CDB)
38
39 Single Channel Products:
40 - ABP542 - Bus-Master ISA with floppy (240 CDB)
41 - ABP742 - Bus-Master EISA (240 CDB)
42 - ABP842 - Bus-Master VL (240 CDB)
43 - ABP940 - Bus-Master PCI (240 CDB)
44 - ABP940U - Bus-Master PCI Ultra (240 CDB)
45 - ABP940UA/3940UA - Bus-Master PCI Ultra (240 CDB)
46 - ABP970 - Bus-Master PCI MAC/PC (240 CDB)
47 - ABP970U - Bus-Master PCI MAC/PC Ultra (240 CDB)
48 - ABP3960UA - Bus-Master PCI MAC/PC Ultra (240 CDB)
49 - ABP940UW/3940UW - Bus-Master PCI Ultra-Wide (253 CDB)
50 - ABP970UW - Bus-Master PCI MAC/PC Ultra-Wide (253 CDB)
51 - ABP3940U2W - Bus-Master PCI LVD/Ultra2-Wide (253 CDB)
52
53 Multi-Channel Products:
54 - ABP752 - Dual Channel Bus-Master EISA (240 CDB Per Channel)
55 - ABP852 - Dual Channel Bus-Master VL (240 CDB Per Channel)
56 - ABP950 - Dual Channel Bus-Master PCI (240 CDB Per Channel)
57 - ABP950UW - Dual Channel Bus-Master PCI Ultra-Wide (253 CDB Per Channel)
58 - ABP980 - Four Channel Bus-Master PCI (240 CDB Per Channel)
59 - ABP980U - Four Channel Bus-Master PCI Ultra (240 CDB Per Channel)
60 - ABP980UA/3980UA - Four Channel Bus-Master PCI Ultra (16 CDB Per Chan.)
61 - ABP3950U2W - Bus-Master PCI LVD/Ultra2-Wide and Ultra-Wide (253 CDB)
62 - ABP3950U3W - Bus-Master PCI Dual LVD2/Ultra3-Wide (253 CDB)
63
64 Driver Compile Time Options and Debugging
65 =========================================
66
67 The following constants can be defined in the source file.
68
69 1. ADVANSYS_ASSERT - Enable driver assertions (Def: Enabled)
70
71 Enabling this option adds assertion logic statements to the
72 driver. If an assertion fails a message will be displayed to
73 the console, but the system will continue to operate. Any
74 assertions encountered should be reported to the person
75 responsible for the driver. Assertion statements may proactively
76 detect problems with the driver and facilitate fixing these
77 problems. Enabling assertions will add a small overhead to the
78 execution of the driver.
79
80 2. ADVANSYS_DEBUG - Enable driver debugging (Def: Disabled)
81
82 Enabling this option adds tracing functions to the driver and the
83 ability to set a driver tracing level at boot time. This option is
84 very useful for debugging the driver, but it will add to the size
85 of the driver execution image and add overhead to the execution of
86 the driver.
87
88 The amount of debugging output can be controlled with the global
89 variable 'asc_dbglvl'. The higher the number the more output. By
90 default the debug level is 0.
91
92 If the driver is loaded at boot time and the LILO Driver Option
93 is included in the system, the debug level can be changed by
94 specifying a 5th (ASC_NUM_IOPORT_PROBE + 1) I/O Port. The
95 first three hex digits of the pseudo I/O Port must be set to
96 'deb' and the fourth hex digit specifies the debug level: 0 - F.
97 The following command line will look for an adapter at 0x330
98 and set the debug level to 2::
99
100 linux advansys=0x330,0,0,0,0xdeb2
101
102 If the driver is built as a loadable module this variable can be
103 defined when the driver is loaded. The following insmod command
104 will set the debug level to one::
105
106 insmod advansys.o asc_dbglvl=1
107
108 Debugging Message Levels:
109
110
111 ==== ==================
112 0 Errors Only
113 1 High-Level Tracing
114 2-N Verbose Tracing
115 ==== ==================
116
117 To enable debug output to console, please make sure that:
118
119 a. System and kernel logging is enabled (syslogd, klogd running).
120 b. Kernel messages are routed to console output. Check
121 /etc/syslog.conf for an entry similar to this::
122
123 kern.* /dev/console
124
125 c. klogd is started with the appropriate -c parameter
126 (e.g. klogd -c 8)
127
128 This will cause printk() messages to be displayed on the
129 current console. Refer to the klogd(8) and syslogd(8) man pages
130 for details.
131
132 Alternatively you can enable printk() to console with this
133 program. However, this is not the 'official' way to do this.
134
135 Debug output is logged in /var/log/messages.
136
137 ::
138
139 main()
140 {
141 syscall(103, 7, 0, 0);
142 }
143
144 Increasing LOG_BUF_LEN in kernel/printk.c to something like
145 40960 allows more debug messages to be buffered in the kernel
146 and written to the console or log file.
147
148 3. ADVANSYS_STATS - Enable statistics (Def: Enabled)
149
150 Enabling this option adds statistics collection and display
151 through /proc to the driver. The information is useful for
152 monitoring driver and device performance. It will add to the
153 size of the driver execution image and add minor overhead to
154 the execution of the driver.
155
156 Statistics are maintained on a per adapter basis. Driver entry
157 point call counts and transfer size counts are maintained.
158 Statistics are only available for kernels greater than or equal
159 to v1.3.0 with the CONFIG_PROC_FS (/proc) file system configured.
160
161 AdvanSys SCSI adapter files have the following path name format::
162
163 /proc/scsi/advansys/{0,1,2,3,...}
164
165 This information can be displayed with cat. For example::
166
167 cat /proc/scsi/advansys/0
168
169 When ADVANSYS_STATS is not defined the AdvanSys /proc files only
170 contain adapter and device configuration information.
171
172 Driver LILO Option
173 ==================
174
175 If init/main.c is modified as described in the 'Directions for Adding
176 the AdvanSys Driver to Linux' section (B.4.) above, the driver will
177 recognize the 'advansys' LILO command line and /etc/lilo.conf option.
178 This option can be used to either disable I/O port scanning or to limit
179 scanning to 1 - 4 I/O ports. Regardless of the option setting EISA and
180 PCI boards will still be searched for and detected. This option only
181 affects searching for ISA and VL boards.
182
183 Examples:
184 1. Eliminate I/O port scanning:
185
186 boot::
187
188 linux advansys=
189
190 or::
191
192 boot: linux advansys=0x0
193
194 2. Limit I/O port scanning to one I/O port:
195
196 boot::
197
198 linux advansys=0x110
199
200 3. Limit I/O port scanning to four I/O ports:
201
202 boot::
203
204 linux advansys=0x110,0x210,0x230,0x330
205
206 For a loadable module the same effect can be achieved by setting
207 the 'asc_iopflag' variable and 'asc_ioport' array when loading
208 the driver, e.g.::
209
210 insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330
211
212 If ADVANSYS_DEBUG is defined a 5th (ASC_NUM_IOPORT_PROBE + 1)
213 I/O Port may be added to specify the driver debug level. Refer to
214 the 'Driver Compile Time Options and Debugging' section above for
215 more information.
216
217 Credits (Chronological Order)
218 =============================
219
220 Bob Frey <bfrey@turbolinux.com.cn> wrote the AdvanSys SCSI driver
221 and maintained it up to 3.3F. He continues to answer questions
222 and help maintain the driver.
223
224 Nathan Hartwell <mage@cdc3.cdc.net> provided the directions and
225 basis for the Linux v1.3.X changes which were included in the
226 1.2 release.
227
228 Thomas E Zerucha <zerucha@shell.portal.com> pointed out a bug
229 in advansys_biosparam() which was fixed in the 1.3 release.
230
231 Erik Ratcliffe <erik@caldera.com> has done testing of the
232 AdvanSys driver in the Caldera releases.
233
234 Rik van Riel <H.H.vanRiel@fys.ruu.nl> provided a patch to
235 AscWaitTixISRDone() which he found necessary to make the
236 driver work with a SCSI-1 disk.
237
238 Mark Moran <mmoran@mmoran.com> has helped test Ultra-Wide
239 support in the 3.1A driver.
240
241 Doug Gilbert <dgilbert@interlog.com> has made changes and
242 suggestions to improve the driver and done a lot of testing.
243
244 Ken Mort <ken@mort.net> reported a DEBUG compile bug fixed
245 in 3.2K.
246
247 Tom Rini <trini@kernel.crashing.org> provided the CONFIG_ISA
248 patch and helped with PowerPC wide and narrow board support.
249
250 Philip Blundell <philb@gnu.org> provided an
251 advansys_interrupts_enabled patch.
252
253 Dave Jones <dave@denial.force9.co.uk> reported the compiler
254 warnings generated when CONFIG_PROC_FS was not defined in
255 the 3.2M driver.
256
257 Jerry Quinn <jlquinn@us.ibm.com> fixed PowerPC support (endian
258 problems) for wide cards.
259
260 Bryan Henderson <bryanh@giraffe-data.com> helped debug narrow
261 card error handling.
262
263 Manuel Veloso <veloso@pobox.com> worked hard on PowerPC narrow
264 board support and fixed a bug in AscGetEEPConfig().
265
266 Arnaldo Carvalho de Melo <acme@conectiva.com.br> made
267 save_flags/restore_flags changes.
268
269 Andy Kellner <AKellner@connectcom.net> continued the Advansys SCSI
270 driver development for ConnectCom (Version > 3.3F).
271
272 Ken Witherow for extensive testing during the development of version 3.4.
273

3. 한국어 전문 번역

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

Adapter 계열과 CDB queue

1-63

AdvanSys는 ISA, EISA, VL, PCI bus용 RISC 기반 bus-master Fast 10MHz와 Ultra 20MHz Narrow 8-bit SCSI host adapter, 그리고 PCI용 Ultra 20MHz Wide 16-bit adapter를 제조했다.

제품 옆 CDB 수는 RISC chip cache와 board LRAM에 저장할 수 있는 SCSI Command Descriptor Block request 수다. CDB 하나가 SCSI command 하나다. Detect routine은 adapter별 가용 CDB를 표시하며 BIOS의 `Host Queue Size`로 driver가 사용하는 수를 낮출 수 있다.

Laptop ABP-480은 16 CDB CardBus 제품이다. Connectivity 제품은 ISA·ISA PnP·PCI와 MAC/PC 변형으로 주로 16 CDB지만 ABP510/5150은 240 CDB다. Single-channel 제품은 대체로 240 CDB이고 Ultra-Wide/LVD 제품은 253 CDB다. Multi-channel 제품은 channel당 240 또는 253 CDB이며 일부 ABP980UA/3980UA는 channel당 16 CDB다.

AdvanSys 제품군
계열대표 bus/폭CDB
LaptopCardBus narrow16
ConnectivityISA/PCI narrow주로 16, 일부 240
Single channelISA/EISA/VL/PCI, narrow/wide240 또는 253
Multi-channelEISA/VL/PCI, 최대 4 channelchannel당 16/240/253

Bus 폭, channel 수와 queue capacity를 함께 봅니다.

.. SPDX-License-Identifier: GPL-2.0

=====================
AdvanSys Driver Notes
=====================

AdvanSys (Advanced System Products, Inc.) manufactures the following
RISC-based, Bus-Mastering, Fast (10 Mhz) and Ultra (20 Mhz) Narrow
(8-bit transfer) SCSI Host Adapters for the ISA, EISA, VL, and PCI
buses and RISC-based, Bus-Mastering, Ultra (20 Mhz) Wide (16-bit
transfer) SCSI Host Adapters for the PCI bus.

The CDB counts below indicate the number of SCSI CDB (Command
Descriptor Block) requests that can be stored in the RISC chip
cache and board LRAM. A CDB is a single SCSI command. The driver
detect routine will display the number of CDBs available for each
adapter detected. The number of CDBs used by the driver can be
lowered in the BIOS by changing the 'Host Queue Size' adapter setting.

Laptop Products:
  - ABP-480 - Bus-Master CardBus (16 CDB)

Connectivity Products:
   - ABP510/5150 - Bus-Master ISA (240 CDB)
   - ABP5140 - Bus-Master ISA PnP (16 CDB)
   - ABP5142 - Bus-Master ISA PnP with floppy (16 CDB)
   - ABP902/3902 - Bus-Master PCI (16 CDB)
   - ABP3905 - Bus-Master PCI (16 CDB)
   - ABP915 - Bus-Master PCI (16 CDB)
   - ABP920 - Bus-Master PCI (16 CDB)
   - ABP3922 - Bus-Master PCI (16 CDB)
   - ABP3925 - Bus-Master PCI (16 CDB)
   - ABP930 - Bus-Master PCI (16 CDB)
   - ABP930U - Bus-Master PCI Ultra (16 CDB)
   - ABP930UA - Bus-Master PCI Ultra (16 CDB)
   - ABP960 - Bus-Master PCI MAC/PC (16 CDB)
   - ABP960U - Bus-Master PCI MAC/PC Ultra (16 CDB)

Single Channel Products:
   - ABP542 - Bus-Master ISA with floppy (240 CDB)
   - ABP742 - Bus-Master EISA (240 CDB)
   - ABP842 - Bus-Master VL (240 CDB)
   - ABP940 - Bus-Master PCI (240 CDB)
   - ABP940U - Bus-Master PCI Ultra (240 CDB)
   - ABP940UA/3940UA - Bus-Master PCI Ultra (240 CDB)
   - ABP970 - Bus-Master PCI MAC/PC (240 CDB)
   - ABP970U - Bus-Master PCI MAC/PC Ultra (240 CDB)
   - ABP3960UA - Bus-Master PCI MAC/PC Ultra (240 CDB)
   - ABP940UW/3940UW - Bus-Master PCI Ultra-Wide (253 CDB)
   - ABP970UW - Bus-Master PCI MAC/PC Ultra-Wide (253 CDB)
   - ABP3940U2W - Bus-Master PCI LVD/Ultra2-Wide (253 CDB)

Multi-Channel Products:
   - ABP752 - Dual Channel Bus-Master EISA (240 CDB Per Channel)
   - ABP852 - Dual Channel Bus-Master VL (240 CDB Per Channel)
   - ABP950 - Dual Channel Bus-Master PCI (240 CDB Per Channel)
   - ABP950UW - Dual Channel Bus-Master PCI Ultra-Wide (253 CDB Per Channel)
   - ABP980 - Four Channel Bus-Master PCI (240 CDB Per Channel)
   - ABP980U - Four Channel Bus-Master PCI Ultra (240 CDB Per Channel)
   - ABP980UA/3980UA - Four Channel Bus-Master PCI Ultra (16 CDB Per Chan.)
   - ABP3950U2W - Bus-Master PCI LVD/Ultra2-Wide and Ultra-Wide (253 CDB)
   - ABP3950U3W - Bus-Master PCI Dual LVD2/Ultra3-Wide (253 CDB)

Compile-time 진단과 통계

64-171

`ADVANSYS_ASSERT`는 기본 활성화이며 assertion logic을 추가한다. 실패하면 console에 message를 내지만 system은 계속 동작한다. 발견한 assertion은 driver 담당자에게 보고해야 하며 문제를 조기에 찾는 대신 작은 실행 overhead가 생긴다.

기본 비활성인 `ADVANSYS_DEBUG`는 tracing function과 boot-time tracing level을 추가한다. 실행 image와 overhead가 늘어난다. 전역 `asc_dbglvl`은 0에서 시작하고 값이 클수록 출력이 많다. Built-in driver와 LILO option에서는 다섯째 pseudo I/O port를 `0xdebN`으로 주어 level 0-F를 지정하고, module은 `insmod advansys.o asc_dbglvl=1`처럼 설정한다.

Debug level 0은 error만, 1은 high-level trace, 2 이상은 verbose trace다. Console 출력을 보려면 syslogd와 klogd가 동작하고 `/etc/syslog.conf`가 `kern.*`을 `/dev/console`로 보내며 klogd의 `-c` level도 알맞아야 한다. 비공식적으로 syscall 103을 호출해 printk console level을 바꿀 수 있고, 출력은 `/var/log/messages`에도 기록된다. `LOG_BUF_LEN`을 약 40960으로 늘리면 더 많은 message를 buffering할 수 있다.

기본 활성인 `ADVANSYS_STATS`는 adapter별 driver entry call count와 transfer size를 수집해 `/proc/scsi/advansys/{0,1,2,...}`에 표시한다. Kernel v1.3.0 이상과 `CONFIG_PROC_FS`가 필요하며 image 크기와 작은 overhead가 추가된다. 통계를 끄면 같은 proc file에는 adapter와 device configuration만 남는다.

AdvanSys build option
Option기본값효과비용
ADVANSYS_ASSERTEnabledAssertion 실패 보고작은 실행 overhead
ADVANSYS_DEBUGDisabledTracing과 runtime levelImage와 실행 overhead
ADVANSYS_STATSEnabled/proc 성능 통계Image와 작은 overhead

진단 효과와 비용을 함께 비교합니다.

Debug message가 console에 도달하는 경로
ADVANSYS_DEBUG compileasc_dbglvl 설정printk messageklogd -c levelsyslog.conf kern.* route/dev/console 및 /var/log/messages

Driver level과 system logging을 모두 맞춰야 합니다.

Driver Compile Time Options and Debugging
=========================================

The following constants can be defined in the source file.

1. ADVANSYS_ASSERT - Enable driver assertions (Def: Enabled)

   Enabling this option adds assertion logic statements to the
   driver. If an assertion fails a message will be displayed to
   the console, but the system will continue to operate. Any
   assertions encountered should be reported to the person
   responsible for the driver. Assertion statements may proactively
   detect problems with the driver and facilitate fixing these
   problems. Enabling assertions will add a small overhead to the
   execution of the driver.

2. ADVANSYS_DEBUG - Enable driver debugging (Def: Disabled)

   Enabling this option adds tracing functions to the driver and the
   ability to set a driver tracing level at boot time.  This option is
   very useful for debugging the driver, but it will add to the size
   of the driver execution image and add overhead to the execution of
   the driver.

   The amount of debugging output can be controlled with the global
   variable 'asc_dbglvl'. The higher the number the more output. By
   default the debug level is 0.

   If the driver is loaded at boot time and the LILO Driver Option
   is included in the system, the debug level can be changed by
   specifying a 5th (ASC_NUM_IOPORT_PROBE + 1) I/O Port. The
   first three hex digits of the pseudo I/O Port must be set to
   'deb' and the fourth hex digit specifies the debug level: 0 - F.
   The following command line will look for an adapter at 0x330
   and set the debug level to 2::

      linux advansys=0x330,0,0,0,0xdeb2

   If the driver is built as a loadable module this variable can be
   defined when the driver is loaded. The following insmod command
   will set the debug level to one::

      insmod advansys.o asc_dbglvl=1

   Debugging Message Levels:


      ==== ==================
      0    Errors Only
      1    High-Level Tracing
      2-N  Verbose Tracing
      ==== ==================

   To enable debug output to console, please make sure that:

   a. System and kernel logging is enabled (syslogd, klogd running).
   b. Kernel messages are routed to console output. Check
      /etc/syslog.conf for an entry similar to this::

           kern.*                  /dev/console

   c. klogd is started with the appropriate -c parameter
      (e.g. klogd -c 8)

   This will cause printk() messages to be displayed on the
   current console. Refer to the klogd(8) and syslogd(8) man pages
   for details.

   Alternatively you can enable printk() to console with this
   program. However, this is not the 'official' way to do this.

   Debug output is logged in /var/log/messages.

   ::

     main()
     {
             syscall(103, 7, 0, 0);
     }

   Increasing LOG_BUF_LEN in kernel/printk.c to something like
   40960 allows more debug messages to be buffered in the kernel
   and written to the console or log file.

3. ADVANSYS_STATS - Enable statistics (Def: Enabled)

   Enabling this option adds statistics collection and display
   through /proc to the driver. The information is useful for
   monitoring driver and device performance. It will add to the
   size of the driver execution image and add minor overhead to
   the execution of the driver.

   Statistics are maintained on a per adapter basis. Driver entry
   point call counts and transfer size counts are maintained.
   Statistics are only available for kernels greater than or equal
   to v1.3.0 with the CONFIG_PROC_FS (/proc) file system configured.

   AdvanSys SCSI adapter files have the following path name format::

      /proc/scsi/advansys/{0,1,2,3,...}

   This information can be displayed with cat. For example::

      cat /proc/scsi/advansys/0

   When ADVANSYS_STATS is not defined the AdvanSys /proc files only
   contain adapter and device configuration information.

ISA/VL I/O port 검색 제한

172-216

`init/main.c`가 과거 추가 지침대로 수정되어 있으면 built-in driver는 `advansys` LILO command line과 `/etc/lilo.conf` option을 인식한다. ISA와 VL board의 I/O port scanning을 끄거나 1개에서 4개 port로 제한할 수 있다. EISA와 PCI board 탐지에는 영향을 주지 않는다.

`advansys=` 또는 `advansys=0x0`은 I/O port scan을 없앤다. `advansys=0x110`은 한 port만, `advansys=0x110,0x210,0x230,0x330`은 네 port만 검사한다.

Loadable module은 `asc_iopflag`와 `asc_ioport` array로 같은 효과를 낸다. 예를 들어 `insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330`이다. `ADVANSYS_DEBUG`가 정의되면 다섯째 pseudo port에 앞 절의 debug level을 지정할 수 있다.

I/O port scan 설정
설정동작
advansys= 또는 0x0Port scanning 비활성
advansys=0x110한 port 검사
네 주소 목록최대 네 port 검사
asc_iopflag + asc_ioportModule에서 같은 범위 설정
다섯째 0xdebNDebug level 지정

ISA/VL 탐지 범위를 명시적으로 제한합니다.

Driver LILO Option
==================

If init/main.c is modified as described in the 'Directions for Adding
the AdvanSys Driver to Linux' section (B.4.) above, the driver will
recognize the 'advansys' LILO command line and /etc/lilo.conf option.
This option can be used to either disable I/O port scanning or to limit
scanning to 1 - 4 I/O ports. Regardless of the option setting EISA and
PCI boards will still be searched for and detected. This option only
affects searching for ISA and VL boards.

Examples:
  1. Eliminate I/O port scanning:

     boot::

        linux advansys=

     or::

        boot: linux advansys=0x0

  2. Limit I/O port scanning to one I/O port:

     boot::

        linux advansys=0x110

  3. Limit I/O port scanning to four I/O ports:

     boot::

        linux advansys=0x110,0x210,0x230,0x330

For a loadable module the same effect can be achieved by setting
the 'asc_iopflag' variable and 'asc_ioport' array when loading
the driver, e.g.::

      insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330

If ADVANSYS_DEBUG is defined a 5th (ASC_NUM_IOPORT_PROBE + 1)
I/O Port may be added to specify the driver debug level. Refer to
the 'Driver Compile Time Options and Debugging' section above for
more information.

개발과 이식 기여

217-272

Bob Frey가 driver를 작성해 3.3F까지 유지했고 이후에도 질문과 유지보수를 도왔다. Nathan Hartwell은 Linux v1.3.X 변경 기반, Thomas E Zerucha는 `advansys_biosparam()` bug, Erik Ratcliffe는 Caldera release 시험, Rik van Riel은 SCSI-1 disk용 `AscWaitTixISRDone()` patch를 제공했다.

Mark Moran은 3.1A Ultra-Wide, Doug Gilbert는 개선과 광범위한 시험, Ken Mort는 3.2K DEBUG compile bug, Tom Rini는 `CONFIG_ISA`와 PowerPC wide/narrow, Philip Blundell은 `advansys_interrupts_enabled`, Dave Jones는 `CONFIG_PROC_FS`가 없을 때 3.2M warning에 기여했다.

Jerry Quinn은 wide card의 PowerPC endian 문제를 고쳤다. Bryan Henderson은 narrow card error handling, Manuel Veloso는 PowerPC narrow 지원과 `AscGetEEPConfig()` bug, Arnaldo Carvalho de Melo는 `save_flags/restore_flags` 변경을 맡았다. Andy Kellner는 ConnectCom에서 3.3F 이후 개발을 이어갔고 Ken Witherow는 3.4 개발을 폭넓게 시험했다.

이식과 안정화 축
영역대표 기여
초기 개발Bob Frey, Nathan Hartwell
SCSI 호환성Rik van Riel, Bryan Henderson
PowerPC/endianTom Rini, Jerry Quinn, Manuel Veloso
진단과 buildKen Mort, Dave Jones
시험과 후속 개발Doug Gilbert, Ken Witherow, Andy Kellner

기여 내역을 기능 영역별로 묶어 봅니다.

Credits (Chronological Order)
=============================

Bob Frey <bfrey@turbolinux.com.cn> wrote the AdvanSys SCSI driver
and maintained it up to 3.3F. He continues to answer questions
and help maintain the driver.

Nathan Hartwell <mage@cdc3.cdc.net> provided the directions and
basis for the Linux v1.3.X changes which were included in the
1.2 release.

Thomas E Zerucha <zerucha@shell.portal.com> pointed out a bug
in advansys_biosparam() which was fixed in the 1.3 release.

Erik Ratcliffe <erik@caldera.com> has done testing of the
AdvanSys driver in the Caldera releases.

Rik van Riel <H.H.vanRiel@fys.ruu.nl> provided a patch to
AscWaitTixISRDone() which he found necessary to make the
driver work with a SCSI-1 disk.

Mark Moran <mmoran@mmoran.com> has helped test Ultra-Wide
support in the 3.1A driver.

Doug Gilbert <dgilbert@interlog.com> has made changes and
suggestions to improve the driver and done a lot of testing.

Ken Mort <ken@mort.net> reported a DEBUG compile bug fixed
in 3.2K.

Tom Rini <trini@kernel.crashing.org> provided the CONFIG_ISA
patch and helped with PowerPC wide and narrow board support.

Philip Blundell <philb@gnu.org> provided an
advansys_interrupts_enabled patch.

Dave Jones <dave@denial.force9.co.uk> reported the compiler
warnings generated when CONFIG_PROC_FS was not defined in
the 3.2M driver.

Jerry Quinn <jlquinn@us.ibm.com> fixed PowerPC support (endian
problems) for wide cards.

Bryan Henderson <bryanh@giraffe-data.com> helped debug narrow
card error handling.

Manuel Veloso <veloso@pobox.com> worked hard on PowerPC narrow
board support and fixed a bug in AscGetEEPConfig().

Arnaldo Carvalho de Melo <acme@conectiva.com.br> made
save_flags/restore_flags changes.

Andy Kellner <AKellner@connectcom.net> continued the Advansys SCSI
driver development for ConnectCom (Version > 3.3F).

Ken Witherow for extensive testing during the development of version 3.4.