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

Linux 6.18.37 · SCSI

g_NCR5380 Driver

NCR5380/53C400 mapping, IRQ, card type과 신·구 module parameter를 설명합니다.

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

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

1. 요약·해설

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

요약·해설

g_NCR5380.rst:1-93

NCR5380/53C400 mapping, IRQ, card type과 신·구 module parameter를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2 .. include:: <isonum.txt>
3
4 ================
5 g_NCR5380 driver
6 ================
7
8 Copyright |copy| 1993 Drew Eckhard
9
10 NCR53c400 extensions Copyright |copy| 1994,1995,1996 Kevin Lentin
11
12 This file documents the NCR53c400 extensions by Kevin Lentin and some
13 enhancements to the NCR5380 core.
14
15 This driver supports NCR5380 and NCR53c400 and compatible cards in port or
16 memory mapped modes.
17
18 Use of an interrupt is recommended, if supported by the board, as this will
19 allow targets to disconnect and thereby improve SCSI bus utilization.
20
21 If the irq parameter is 254 or is omitted entirely, the driver will probe
22 for the correct IRQ line automatically. If the irq parameter is 0 or 255
23 then no IRQ will be used.
24
25 The NCR53c400 does not support DMA but it does have Pseudo-DMA which is
26 supported by the driver.
27
28 This driver provides some information on what it has detected in
29 /proc/scsi/g_NCR5380/x where x is the scsi card number as detected at boot
30 time. More info to come in the future.
31
32 This driver works as a module.
33 When included as a module, parameters can be passed on the insmod/modprobe
34 command line:
35
36 ============= ===============================================================
37 irq=xx[,...] the interrupt(s)
38 base=xx[,...] the port or base address(es) (for port or memory mapped, resp.)
39 card=xx[,...] card type(s):
40
41 == ======================================
42 0 NCR5380,
43 1 NCR53C400,
44 2 NCR53C400A,
45 3 Domex Technology Corp 3181E (DTC3181E)
46 4 Hewlett Packard C2502
47 == ======================================
48 ============= ===============================================================
49
50 These old-style parameters can support only one card:
51
52 ============= =================================================
53 ncr_irq=xx the interrupt
54 ncr_addr=xx the port or base address (for port or memory
55 mapped, resp.)
56 ncr_5380=1 to set up for a NCR5380 board
57 ncr_53c400=1 to set up for a NCR53C400 board
58 ncr_53c400a=1 to set up for a NCR53C400A board
59 dtc_3181e=1 to set up for a Domex Technology Corp 3181E board
60 hp_c2502=1 to set up for a Hewlett Packard C2502 board
61 ============= =================================================
62
63 E.g. Trantor T130B in its default configuration::
64
65 modprobe g_NCR5380 irq=5 base=0x350 card=1
66
67 or alternatively, using the old syntax::
68
69 modprobe g_NCR5380 ncr_irq=5 ncr_addr=0x350 ncr_53c400=1
70
71 E.g. a port mapped NCR5380 board, driver to probe for IRQ::
72
73 modprobe g_NCR5380 base=0x350 card=0
74
75 or alternatively::
76
77 modprobe g_NCR5380 ncr_addr=0x350 ncr_5380=1
78
79 E.g. a memory mapped NCR53C400 board with no IRQ::
80
81 modprobe g_NCR5380 irq=255 base=0xc8000 card=1
82
83 or alternatively::
84
85 modprobe g_NCR5380 ncr_irq=255 ncr_addr=0xc8000 ncr_53c400=1
86
87 E.g. two cards, DTC3181 (in non-PnP mode) at 0x240 with no IRQ
88 and HP C2502 at 0x300 with IRQ 7::
89
90 modprobe g_NCR5380 irq=0,7 base=0x240,0x300 card=3,4
91
92 Kevin Lentin
94

3. 한국어 전문 번역

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

지원 chip, IRQ와 Pseudo-DMA

1-31

이 문서는 NCR53c400 extension과 NCR5380 core 개선을 설명한다. Driver는 NCR5380·NCR53c400 호환 card를 port-mapped 또는 memory-mapped mode로 지원한다.

Board가 지원하면 interrupt 사용을 권장한다. Target disconnect를 허용해 SCSI bus 활용도가 높아진다. `irq=254` 또는 생략은 IRQ 자동 probe, `irq=0`이나 `255`는 IRQ 미사용이다.

NCR53c400은 real DMA가 없지만 Pseudo-DMA를 지원하며 driver도 이를 사용한다. Detection 정보는 `/proc/scsi/g_NCR5380/x`에서 읽고 module로 load할 수 있다.

IRQ selector
irq동작
생략 / 254IRQ 자동 probe
0 / 255IRQ 사용 안 함
그 외지정 IRQ

자동 탐색과 polling mode를 구분합니다.

.. SPDX-License-Identifier: GPL-2.0
.. include:: <isonum.txt>

================
g_NCR5380 driver
================

Copyright |copy| 1993 Drew Eckhard

NCR53c400 extensions Copyright |copy| 1994,1995,1996 Kevin Lentin

This file documents the NCR53c400 extensions by Kevin Lentin and some
enhancements to the NCR5380 core.

This driver supports NCR5380 and NCR53c400 and compatible cards in port or
memory mapped modes.

Use of an interrupt is recommended, if supported by the board, as this will
allow targets to disconnect and thereby improve SCSI bus utilization.

If the irq parameter is 254 or is omitted entirely, the driver will probe
for the correct IRQ line automatically. If the irq parameter is 0 or 255
then no IRQ will be used.

The NCR53c400 does not support DMA but it does have Pseudo-DMA which is
supported by the driver.

This driver provides some information on what it has detected in
/proc/scsi/g_NCR5380/x where x is the scsi card number as detected at boot
time. More info to come in the future.

다중 card와 old-style parameter

32-62

현행 module parameter는 comma list를 받는 `irq`, port 또는 memory base의 `base`, card type의 `card`다. Card type 0은 NCR5380, 1 NCR53C400, 2 NCR53C400A, 3 DTC3181E, 4 HP C2502다.

Old-style `ncr_irq`, `ncr_addr`와 boolean `ncr_5380`, `ncr_53c400`, `ncr_53c400a`, `dtc_3181e`, `hp_c2502`는 card 한 장만 지원한다.

card type
Card
0NCR5380
1NCR53C400
2NCR53C400A
3DTC3181E
4HP C2502

현행 card= selector입니다.

Parameter 세대
형식ParameterCard 수
현행irq, base, card comma list여러 장
Old-stylencr_irq, ncr_addr, boolean type한 장

다중 card 지원 여부가 다릅니다.

This driver works as a module.
When included as a module, parameters can be passed on the insmod/modprobe
command line:

  ============= ===============================================================
  irq=xx[,...]        the interrupt(s)
  base=xx[,...]        the port or base address(es) (for port or memory mapped, resp.)
  card=xx[,...]        card type(s):

                ==  ======================================
                0   NCR5380,
                1   NCR53C400,
                2   NCR53C400A,
                3   Domex Technology Corp 3181E (DTC3181E)
                4   Hewlett Packard C2502
                ==  ======================================
  ============= ===============================================================

These old-style parameters can support only one card:

  ============= =================================================
  ncr_irq=xx    the interrupt
  ncr_addr=xx   the port or base address (for port or memory
                mapped, resp.)
  ncr_5380=1    to set up for a NCR5380 board
  ncr_53c400=1  to set up for a NCR53C400 board
  ncr_53c400a=1 to set up for a NCR53C400A board
  dtc_3181e=1   to set up for a Domex Technology Corp 3181E board
  hp_c2502=1    to set up for a Hewlett Packard C2502 board
  ============= =================================================

Port·memory mapping 구성 예제

63-93

Trantor T130B 기본 구성은 `modprobe g_NCR5380 irq=5 base=0x350 card=1`이다. Port-mapped NCR5380이 IRQ를 자동 probe하도록 하려면 `base=0x350 card=0`만 준다.

Memory-mapped NCR53C400을 IRQ 없이 쓰려면 `irq=255 base=0xc8000 card=1`이다. Old syntax는 각각 `ncr_irq`, `ncr_addr`와 card boolean을 사용한다.

두 card 예제는 IRQ 없는 DTC3181 at `0x240`과 IRQ 7인 HP C2502 at `0x300`을 `irq=0,7 base=0x240,0x300 card=3,4`로 같은 index 순서에 맞춘다.

g_NCR5380 예제
HardwareIRQBaseCard
Trantor T130B50x350 port1
NCR5380Auto0x350 port0
NCR53C400None0xc8000 memory1
DTC3181 + HP C25020,70x240,0x3003,4

Mapping·IRQ·card type 조합입니다.

E.g. Trantor T130B in its default configuration::

        modprobe g_NCR5380 irq=5 base=0x350 card=1

or alternatively, using the old syntax::

        modprobe g_NCR5380 ncr_irq=5 ncr_addr=0x350 ncr_53c400=1

E.g. a port mapped NCR5380 board, driver to probe for IRQ::

        modprobe g_NCR5380 base=0x350 card=0

or alternatively::

        modprobe g_NCR5380 ncr_addr=0x350 ncr_5380=1

E.g. a memory mapped NCR53C400 board with no IRQ::

        modprobe g_NCR5380 irq=255 base=0xc8000 card=1

or alternatively::

        modprobe g_NCR5380 ncr_irq=255 ncr_addr=0xc8000 ncr_53c400=1

E.g. two cards, DTC3181 (in non-PnP mode) at 0x240 with no IRQ
and HP C2502 at 0x300 with IRQ 7::

        modprobe g_NCR5380 irq=0,7 base=0x240,0x300 card=3,4

Kevin Lentin
[email protected]