Axil S/E-ljs070
                                1993.11.4
                               Lee Jin-Soo


SUBJECT:   SCSI 일반 개념



*************  SCSI Periphral Interface  ***************


  SCSI - Small Computer System Interface.
	즉, 고속의 병렬data 전송을 제공하는 표준 interface.

- System들은 SCSI host adapter를 통해 SCSI host adapter 는 cpu b/d 에 존재
  하거나,VME bus와 연결.

- Sun의 첫번째 SCSI controller는 Seagate의 ST506 technology를 이용했는데
  그 controller가 Adaptec 4000 이었음.->71MB only support(Sun2기종),Repair기능없음.

- Sun의 두번째 SCSI controller는 Emulex MD21 (ESDI).-> Repair기능,ST506보다 
  큰 disk들을 handle할수있음.


	- SCSI Connection -

		       sd ( 0 , 18 , 1 )
			|   |    |   |
			|   |    |   |
  controller -----------    |    |   |
 			    |	 |   |	
  field 1    ---------------     |   |
				 |   |
  field 2    --------------------    |
                                     |
  field 3    ------------------------


*** controller : SCSI controller 가 sd임을 명시.

*** field 1 : System의 bus에 있는 SCSI host interface 번호를 표시.
	      현재 Sun 3/60이 한개의 SCSI host interface를 갖는 반면,
	      deskside나 rack에서는 두개의 host adapter 를 지원한다.
              예) sd(0,x,x) or sd(1,x,x)

*** field 2 :   SCSI target ID number * 8 + LUN(logical unit number) 공식으로 계산한 hex 값.
   

     Target ->        0       1       2       3
                     / \     / \     / \     / \
       LUN  ->      0   1   0   1   0   1   0   1
                    |   |   |   |   |   |   |   |

  UNIX sd#  ->      0   1   2   3   4   5   6   7

                            Table 1 - Non-Embedded

       	- External controller : target당 2개의 디스크 를 관장하며,
                                총 8개의 디스크를 지원하는데,kernel 에는 6개를 지원하게 set up 되었다.

 
        Target ->        0       1       2       3
                        / \     / \     / \     / \
           LUN ->      0  na   0  na   0  na   0  na
                       |       |       |       |

      UNIX sd# ->      0       2       4       6

     (Where na = not allowed.)

                              Table 2 - Embedded
	- Embedded controller : target당 한개의 디스크를 지원.
	                        target ID 는  LUN 이 아니라 device에 할당.
	  4개의 디스크를 지원할수 있으며 짝수개의 번호로기술된다.


   * SCSI spec 에서 각 target은 8개의 device를 관장 하므로,
     각  target의 first device 를 위한 실제SCSI number(scsi drive#)는 
     전술한 8보다크다.
     이것이 sd(x,x,x)의 중앙에있는 숫자가 8의배수를이용하는 이유이다.
     booting목적 으로는 이 숫자가 16진수 값으로 표시되고,kernel 에서는
     10진수형으로 표시된다.  




            TARGET ID ->     0        1        2        3        4        5
                            / \      / \      / \      / \      / \      / \
                 LUN  ->   0   1    0   1    0   1    0   1    0   na   0   na
                           |   |    |   |    |   |    |   |    |        |

          scsi drive# ->   0   1    8   9   16  17   24  25   32       40
          (kernel형)       |   |    |   |    |   |    |   |    |        |

            scsi-hex# ->   0   1    8   9   10  11   18  19   20-(0)   28
           (booting목적)   |   |    |   |    |   |    |   |    |        |

             UNIX sd# ->   0   1    2   3    4   5    6   7   st0      st1
 

     controllersi0 at vme24d16 ? csr 0x200000 priority 2 vextor siintr 0x40
          controllersi1 at vme24d16 ? csr 0x204000 priority 2 vector siintr 0x41
          tapest0 at si0 drive 32 flags 1
          tapest1 at si0 drive 40 flags 1
          tapest2 at si1 drive 32 flags 1 <- target 4, host 2
          tapest3 at si1 drive 40 flags 1 <- target 5, host 2
          disksd0 at si0 drive 0 flags 0
          disksd1 at si0 drive 1 flags 0
          disksd2 at si0 drive 8 flags 0
          disksd3 at si0 drive 9 flags 0
          disksd4 at si0 drive 16 flags 0
          disksd6 at si0 drive 24 flags 0

 
-Using sd6 or LUN 0 at target 3, 문제는 다음과 갖이 풀 수 있다: 

  TARGET ID 3 x 8 = 24 + LUN 0 = 24   in HEX it is 18

  따라서, the device sd6 를  sd(0,18,0)로 booting 할 수 있다.

-sd2로부터 booting 하기 위해서는 , 다음 같이 풀 수있다:

  TARGET ID 1 x 8 = 8 + LUN 0 = 8   in HEX it is 8

  따라서, sd2 를  sd(0,8,0)로 booting 할수 있다.

	* Tape drive(target 4,5) 는 st0, st1 으로 기술 된다.

   st0로 booting 할때 st0 의SCSI number 는 20일 지라도 boot PROM 에 조정을 하여
   Tape Drive st0는 st(0,0,0)로 보여진다. 따라서 OS tape 을 >b st(0,0,0) or
   >b st() 로 시작 할 수있다. 그러나 st1 의 경우는 SCSI-hex address로 st(0,28,x)
   로 사용 할 수 있다.




*** field 3 : st or sd(x,x,x) 의 마지막 숫자는 file이나 partition 을 표시한다.
  예) OS tape 에 있는 MUNIX 를 access 하려면 file 5, boot file 은 file 0
      Disk drive 에서는 Partition a = 0,b = 1, c = 3, d = 3, e = 4 등등.
      >b sd(0,9,3)vmunix  -> sd3에 있는 partition d 에서 booting 하고자 할때.
 




 ***** SCSI  Configuration *****


 
** Termination : Termination  은 multi-disk system (external,embedded,mixed controllers)
 layout 에 필요한 요소이다.


-    Sun 은 한 host 에서 embedded 와 non-embedded devices 를 지원 하지 않는다.
    SCSI bus 의 종단은 항상 bus line 의 끝에 있어야 한다.
    만약 external terminator 가 사용되었다면 , bus 의 끝에 있어야 하며
     controller board 에 종단이 없어야 한다.

-   Sun 3/160,Sun 3/260,Sun 4/260 type의 pedestal에서는 terminator 는 보통 
    tape controller 에 있다.  


-   Shoebox - Terminator 는 disk controller 에 존재.

-   Pbox,lunchbox - internal terminator 가 없다.-> external terminator 을
   사용해야함.

-   Sun-3/80 은 2중종단 bus(doubled-ended)를 사용하여internal device 에는 internal termination을
 external device 에는 exterminal terminator를 사용.(internal terminator는 제거.)


-   Sun-3/80 and Sun-4/330 은 다른 기종들과는 다른 suninstall menu 의Disk format  형식을 갖는다.
 즉, root와 swap 은 항상 sd6 에 존재해야 한다.(예,sd(0,18,x) )


****** SCSI Bus and Device Configuration Tables ******


Sun-3/80 Systems
--- - -- -------

-----------------------------------------------------------------------------------
|                  |  Address |   SCSI |   UNIX |    Boot   |        External      |
|Device Description| Selection|  Target|  Device|   Device  |    SCSI Termination  |
|                  |          |        |        |           | ---------------------+
|                  |  Method  |    ID  |    ID  |     ID    |  Type |    Location  |
--------------------------------------------------------------------+---------------
|3/80 Base Unit's  |  Preset  |        |        |           |       |              |
| 1st Internal Disk|  Jumper  |    3   |   sd6  | sd(0,18,0)|  N/A  |  N/A         |
+------------------+----------+--------+--------+-----------+----------------------+
|3/80 Base Unit's  |  Preset  |        |        |           |       |              |
| 2nd Internal Disk|  Jumper  |    1   |   sd2  | sd(0,8,0) |  N/A  |  N/A         |
--------------------------------------------------------------------+---------------
|Base Unit's Floppy|  Preset  |        |        |           |       |              |
| Disk Drive       |  Jumper  |   N/A  |   fd0  |    N/A    |  N/A  |  N/A         |
+------------------+----------+--------+--------+-----------+----------------------+
|1st Desktop Disk  | Selector |        |        |           |  mini-|  unused port |
| Pack             |  Switch  |    0   |   sd0  | sd(0,0,0) |  SCSI |  of any      |
|                  |          |        |        |           |       |  Storage Pack|
--------------------------------------------------------------------+---------------
|2rd Desktop Disk  | Selector |        |        |           |  mini-|  unused port |
| Pack             |  Switch  |    2   |   sd4  | sd(0,10,0)|  SCSI |  of any      |
||                 |          |        |        |           |       |  Storage Pack|
+------------------+----------+--------+--------+-----------+----------------------+
|3nd Desktop Disk  | Selector |        |        |           |  mini-|  unused port |
| Pack             |  Switch  |    1   |   sd2  | sd(0,8,0) |  SCSI |  of any      |
|                  |          |        |        |           |       |  Storage Pack|
--------------------------------------------------------------------+---------------
|4th Desktop Disk  | Selector |        |        |           |  mini-|  unused port |
| Pack             |  Switch  |    3   |   sd6  | sd(0,18,0)|  SCSI |  of any      |
|                  |          |        |        |           |       |  Storage Pack|
+------------------+----------+--------+--------+-----------+----------------------+
|1st Desktop Backup| Selector |        |        |           |  mini-|  unused port |
| Pack             |  Switch  |    4   |   st0  | st(0,0,0) |  SCSI |  of any      |
|                  |          |        |        |           |       |  Storage Pack|
--------------------------------------------------------------------+---------------
|2nd Desktop Backup| Selector |        |        |           |  mini-|  unused port |
| Pack             |  Switch  |    5   |   st1  | st(0,28,0)|  SCSI |  of any      |
|                  |          |        |        |           |       |  Storage Pack|
+------------------+----------+--------+--------+-----------+----------------------+
|ESM's 1st Disk    |  Preset  |        |        |           |  D-   |  ESM's bottom|
| Drive            |  Jumper  |    0   |   sd0  | sd(0,0,0) |  SCSI |  SCSI port   |
--------------------------------------------------------------------+---------------
|ESM's 2nd Disk    |  Preset  |        |        |           |  D-   |  ESM's bottom|
| Drive            |  Jumper  |    2   |   sd4  | sd(0,10,0)|  SCSI |  SCSI port   |
+------------------+----------+--------+--------+-----------+----------------------+
|ESM's 1/4-inch    |  Preset  |        |        |           |  D-   |  ESM's bottom|
| Tape Drive       |  Jumper  |    4   |   st0  | st(0,0,0) |  SCSI |  SCSI port   |
--------------------------------------------------------------------+---------------
|EEM's 1st Disk    |  Preset  |        |        |           |  D-   |  ESM's bottom|
| Drive            |  Jumper  |    1   |   sd2  | sd(0,8,0) |  SCSI |  SCSI port   |
------------------------------------------------------------------------------------

Key to Codes Used
--- -- ----- ----

              
              --------------------------------------------------
             | ESM|  External Storage Module (526G, 530G, 539G)|
             |----+--------------------------------------------+
             | EEM|  External Expansion Module (527G)          |
              --------------------------------------------------
             | N/A|  Not Applicable                            |
              --------------------------------------------------


 *** Sun-3/80 ***
      * SCSI Target ID 값 :         '6' -> Sun 에 의해 미래에 사용하기위해 보존된 값.
( 위 table 에서 사용되지않은 값)    '7' -> SCSI host interface 가 사용하는 값.


      * Sun-3/80 이 지원 하는 SCSI devices 의 최수는 6 이다.
        ( 2개의 tape drive, 4개의 disk drives )

SCSI Subsystem Cable Lengths for the Sun-3/80 System
---- --------- ----- ------- --- --- --- - -- ------
  
    -----------------------------------------------------------------------
   | Length (meters)|               Device/Cable Description              |
   |----------------+-----------------------------------------------------+
   |       0.3      |  Sun-3/80 CPU traces and Base Unit's internal cables|
    -----------------------------------------------------------------------
   |       0.0      |  Desktop Storage Pack internal cable                |
   |----------------+-----------------------------------------------------+
   |       0.8      |  Desktop Storage Pack external cable                |
    -----------------------------------------------------------------------
   |       1.0      |  External Storage Module's internal cable           |
   |----------------+-----------------------------------------------------+
   |       2.0      |  ESM/EEM external cable                             |
    -----------------------------------------------------------------------
   |       1.0      |  External Expansion Module's internal cable         |
   |----------------+-----------------------------------------------------+
   |       0.4      |  ESM daisy-chain cable                              |
    -----------------------------------------------------------------------
Note: Desktop  Storage  Packs  and  External  Storage  Modules 이 같은 system 에 
     연결 될때 Storage Packs들은 system의  SCSI port로 부터 daisy-chain이 되어야하며,
     그다음 External Storage Modules은 사용되지 않은 마지막 Storage Pack의 SCSI port
     로부터 daisy-chain되어야 함.

     SPARCstation 1
     ------------ -

----------------------------------------------------------------------------------
|                  |  Address |  SCSI |   UNIX |   Boot   |        External      |
|Device Description| Selection| Target|  Device|  Device  |    SCSI Termination  |
|                  |          |       |        |          | ---------------------+
|                  |  Method  |   ID  |    ID  |    ID    |  Type |    Location  |
------------------------------------------------------------------+---------------
|SPARCstation 1's  |  Preset  |       |        |          |       |              |
| 1st Internal Disk|  Jumper  |   3   |   sd0  | sd(0,0,0)|  N/A  |  N/A         |
+------------------+----------+-------+--------+----------+----------------------+
|SPARCstation 1's  |  Preset  |       |        |          |       |              |
| 2nd Internal Disk|  Jumper  |   1   |   sd1  | sd(0,1,0)|  N/A  |  N/A         |
------------------------------------------------------------------+---------------
|Base Unit's Floppy|  Preset  |       |        |          |       |              |
| Disk Drive       |  Jumper  |  N/A  |   fd0  |    N/A   |  N/A  |  N/A         |
+------------------+----------+-------+--------+----------+----------------------+
|1st Desktop Disk  | Selector |       |        |          |  mini-|  unused port |
| Pack             |  Switch  |   0   |   sd3  | sd(0,3,0)|  SCSI |  of any      |
|                  |          |       |        |          |       |  Storage Pack|
------------------------------------------------------------------+---------------
|2nd Desktop Disk  | Selector |       |        |          |  mini-|  unused port |
| Pack             |  Switch  |   2   |   sd2  | sd(0,2,0)|  SCSI |  of any      |
|                  |          |       |        |          |       |  Storage Pack|
+------------------+----------+-------+--------+----------+----------------------+
|3rd Desktop Disk  | Selector |       |        |          |  mini-|  unused port |
| Pack             |  Switch  |   1   |   sd1  | sd(0,1,0)|  SCSI |  of any      |
|                  |          |       |        |          |       |  Storage Pack|
------------------------------------------------------------------+---------------
|4th Desktop Disk  | Selector |       |        |          |  mini-|  unused port |
| Pack             |  Switch  |   3   |   sd0  | sd(0,0,0)|  SCSI |  of any      |
|                  |          |       |        |          |       |  Storage Pack|
+------------------+----------+-------+--------+----------+----------------------+
|1st Desktop Backup| Selector |       |        |          |  mini-|  unused port |
  Pack                Switch      4       st0    st(0,0,0)   SCSI |  of any
|                  |          |       |        |          |       |  Storage Pack|
------------------------------------------------------------------+---------------
|2nd Desktop Backup| Selector |       |        |          |  mini-|  unused port |
| Pack             |  Switch  |   5   |   st1  | st(0,1,0)|  SCSI |  of any      |
|                  |          |       |        |          |       |  Storage Pack|
+------------------+----------+-------+--------+----------+----------------------+
|ESM's 1st Disk    |  Preset  |       |        |          |  D-   |  ESM's bottom|
| Drive            |  Jumper  |   0   |   sd3  | sd(0,3,0)|  SCSI |  SCSI port   |
------------------------------------------------------------------+---------------
|ESM's 2nd Disk    |  Preset  |       |        |          |  D-   |  ESM's bottom|
| Drive            |  Jumper  |   2   |   sd2  | sd(0,2,0)|  SCSI |  SCSI port   |
+------------------+----------+-------+--------+----------+----------------------+
|4-inch            |  Preset  |       |        |          |  D-   |  ESM's bottom|
| Tape Drive       |  Jumper  |   4   |   st0  | st(0,0,0)|  SCSI |  SCSI port   |
------------------------------------------------------------------+---------------
|EEM's 1st Disk    |  Preset  |       |        |          |  D-   |  ESM's bottom|
| Drive            |  Jumper  |   1   |   sd1  | sd(0,1,0)|  SCSI |  SCSI port   |
----------------------------------------------------------------------------------

      * SCSI Target ID 값 :         '6' -> Sun 에 의해 미래에 사용하기위해 보존~
된 값.
( 위 table 에서 사용되지않은 값)    '7' -> SCSI host interface 가 사용하는 값.


      * Sun-4/60 이 지원 하는 SCSI devices 의 최수는 6 이다.
        ( 2개의 tape drive, 4개의 disk drives )



          SPARCserver 330
          ----------- ---

 
 ----------------------------------------------------------------------------------
|                   |  Address |  SCSI |  UNIX |    Boot   |       External       |
| Device Description| Selection| Target| Device|   Device  |   SCSI Termination   |
|                   |          |       |       |           |----------------------+
|                   |  Method  |   ID  |   ID  |     ID    |  Type |    Location  |
-------------------------------------------------------------------+---------------
| SPARCsystem 330's |  Preset  |       |       |           | mini- |  330 Unit's  |
|  1st Internal Disk|  Jumper  |   3   |  sd6  | sd(0,18,0)| SCSI  |  SCSI port   |
--------------------+----------+-------+-------+-----------+----------------------+
| SPARCsystem 330's |  Preset  |       |       |           | mini- |  330 Unit's  |
|  2nd Internal Disk|  Jumper  |   1   |  sd2  | sd(0,8,0) | SCSI  |  SCSI port   |
 ------------------------------------------------------------------+---------------
| SPARCsystem 330's |  Preset  |       |       |           | mini-    330 Unit's  |
|  Internal Tape    |  Jumper  |   4   |  st0  | st(0,0,0) | SCSI  |  SCSI port   |
|-------------------+----------+-------+-------+-----------+----------------------+
| 1st Desktop Backup| Selector |       |       |           | mini- |  unused port |
|  Pack             |  Switch  |   4   |  st0  | st(0,0,0) | SCSI  |  of any      |
|                   |          |       |       |           |       |  Storage Pack|
 ------------------------------------------------------------------+---------------
| 2nd Desktop Backup| Selector |       |       |           | mini- |  unused port |
|  Pack             |  Switch  |   5   |  st1  | st(0,28,0)| SCSI  |  of any      |
|                   |          |       |       |           |       |  Storage Pack|
|-------------------+----------+-------+-------+-----------+----------------------+
| ESM's 1st Disk    |  Preset  |       |       |           | D-    |  ESM's bottom|
|  Drive            |  Jumper  |   0   |  sd0  | sd(0,0,0) | SCSI  |  SCSI port   |
 ------------------------------------------------------------------+---------------
| ESM's 2nd Disk    |  Preset  |       |       |           | D-    |  ESM's bottom|
|  Drive            |  Jumper  |   2   |  sd4  | sd(0,10,0)| SCSI  |  SCSI port   |
|-------------------+----------+-------+-------+-----------+----------------------+
| ESM's 1/4-inch    |  Preset  |       |       |           | D-    |  ESM's bottom|
|  Tape Drive       |  Jumper  |   4   |  st0  | st(0,0,0) | SCSI  |  SCSI port   |
 ------------------------------------------------------------------+---------------
| EEM's 1st Disk    |  Preset  |       |       |           | D-    |  ESM's bottom|
|  Drive            |  Jumper  |   1   |  sd2  | sd(0,8,0) | SCSI  |  SCSI port   |
 ----------------------------------------------------------------------------------



******* SCSI Tape Device Driver **********


  *  st - driver for SCSI tape devices

**CONFIG - SUN-3, SUN-3/400, SUN-4, SPARCsystem 400 SERIES
     controller si0 at vme24d16 ? csr 0x200000 priority 2 vector siintr 0x40
     controller si1 at vme24d16 ? csr 0x204000 priority 2 vector siintr 0x41
     controller si0 at obio ? csr 0x140000 priority 2
     tape st0 at si0 drive 040 flags 1
     tape st1 at si0 drive 050 flags 1
     tape st2 at si0 drive 030 flags 1
     tape st3 at si0 drive 020 flags 1
     tape st4 at si1 drive 040 flags 1
     tape st5 at si1 drive 050 flags 1
     tape st6 at si1 drive 030 flags 1
     tape st7 at si1 drive 020 flags 1

     controller sc0 at vme24d16 ? csr 0x200000 priority 2 vector scintr 0x40
     tape st0 at sc0 drive 040 flags 1
     tape st1 at sc0 drive 050 flags 1

-  위 에서 첫번째 2 controller line은 Sun-3, Sun-3/400, Sun-4, and
     SPARCsystem 400 VME system 들의 첫번째와 두번째의 SCSI host adapters를 명시 한다.
     세번째의 controller line은  Sun-3/50 and Sun-3/60 system 에있는 첫번째와 유일한
     SCSI host adapters를 명시 한다.
  
-   controller specification line들 뒤에 있는 8개의 line들은 이용할수 있는 tape-driver 
    들을 표시했다(st0 - st7 ).
	첫번째 4개의 tape-device (st0 - st3) 는 첫번째controller ,si0에의해 support.
        다음의 4개의 tape-device( st4 - st7) 는 두번째controller,si1에의해 support된다.

        flags field는  SCSI device type을 host adapter에 명시하기위해 사용된다.
	tape device -> 1   disk device -> 0
       
        
-       drive value는  8*target + lun : target은 SCSI target.
					lun 은 SCSI logical Unit Number.  



**CONFIG - SPARCsystem 300 SERIES
     controller sm0 at obio ? csr 0x66000000 priority 2
     controller si1 at vme24d16 ? csr 0x204000 priority 2 vector siintr 0x41
     tape st0 at sm0 drive 040 flags 1
     tape st1 at sm0 drive 050 flags 1
     tape st2 at sm0 drive 030 flags 1
     tape st3 at sm0 drive 020 flags 1
     tape st4 at si1 drive 040 flags 1
     tape st5 at si1 drive 050 flags 1
     tape st6 at si1 drive 030 flags 1
     tape st7 at si1 drive 020 flags 1



**CONFIG - Desktop SPARCsystems
     scsibus0 at esp
     scsibus1 at esp
     tape st0 at scsibus0 target 4 lun 0
     tape st1 at scsibus0 target 5 lun 0
     tape st2 at scsibus1 target 4 lun 0
     tape st3 at scsibus1 target 5 lun 0
     
- device driver가 esp임을 표해주고 첫번째와 두번째 tape device가 scsibus0 에 붙어있음을 알수 있다.

**CONFIG - SPARCsystem 600MP SERIES
     scsibus0 at esp
     tape st0 at scsibus0 target 4 lun 0
     tape st1 at scsibus0 target 5 lun 0
     tape st2 at scsibus0 target 1 lun 0
     tape st3 at scsibus0 target 0 lun 0

     scsibus1 at esp
     tape st4 at scsibus1 target 4 lun 0
     tape st5 at scsibus1 target 5 lun 0

     scsibus2 at esp

     scsibus3 at esp
     tape st6 at scsibus3 target 4 lun 0
     tape st7 at scsibus3 target 5 lun 0

     scsibus4 at esp


**CONFIG - SUN-3/80 SYSTEMS
     controller sm0 at obio ? csr 0x66000000 priority 2
     tape st0 at sm0 drive 040 flags 1
     tape st1 at sm0 drive 050 flags 1
     tape st3 at sm0 drive 030 flags 1
     tape st4 at sm0 drive 020 flags 1

    
 -  Sun-3/80 system은 on-board  SCSI  host  adapter,sm0 를 사용한다.


**CONFIG - SUN-4/110 SYSTEMS
     controller sw0 at obio 2 csr 0xa000000 priority 2
     tape st0 at sw0 drive 040 flags 1
     tape st1 at sw0 drive 050 flags 1


**CONFIG - SUN-3/E SYSTEMS
     controller se0 at vme24d16 ? csr 0x300000 priority 2 vector se_intr 0x40
     tape st0 at se0 drive 040 flags 1
     tape st1 at se0 drive 050 flags 1


 -  Sun-3/E 은 VME-based SCSI host adapter,  se0 를 사용한다.


**CONFIG - Sun386i SYSTEMS
     controller wds0 at obmem ? csr 0xFB000000 dmachan 7 irq 16 priority 2
     tape st0 at wds0 drive 32 flags 1



*** st device driver 는 다양한 SCSI tape devices와 interface를 한다.
  - 1/4"  cartridge를 지원하는 devices는 Archive Viper QIC-150 streaming tape drive와
       the Emulex MT-02 tape  controller 와  Sysgen  SC4000  tape controller를 지원한다.
       (desktop SPARCsystems and SPARCsystem 600MP series machines 에서는 제외 )
  - 1/2"  and  8mm 를 지원하는 devices는 HP-88780 1/2" tape drive 와 
 Exabyte  EXB-8200/8500  8mm cartridge  tape subsyste 을 지원한다.




***** Read Operation *****
 
- 만약  tape drive가 tape 이 write 된 format 과 다른 format 으로read를 한다면, 
 driver는 사용자가 선택한 format을 무시한다.
 예) 1/4" cartridge  tape을 QIC-24 format으로 write한 후 QIC-11 format으로 read 하려하면
      driver 는 첫번째 read 에서 read 실패를 검출할 것이며,자동적으로 data를 recover하기
     위해  QIC-24 format 으로 switch 할 것이다.


***** Write Operation *****

-  tape 의 처음부터 user가 설정한 format 으로 Write를 수행한다.

-  original tape format은 이전에  Write된 tape들 위에 append하는데 사용된다.
  
-  warning  message는 driver가 user가 명시한 format 을 무시해야만 할때 야기된다.

***** EOT Handling *****

-Emulex and Sysgen drives 은 하나의 physical  end  of tape (PEOT)을 갖는다. 그리하여
 EOT를 지나서는 write가 불가능하게 되어있다.

-다른 모든 drives는  PEOT 이전에  a logical end of tape (LEOT)를 갖는데, 이는 tape위에
 있는 data를 넘치지 않게 하기위함이다.
 LEOT 와 PEOT 사이의 storage 양은 tape drive 에 따라  20  megabytes 이하로 다양하게
 설정되어 있다.




**** FILES ****

- For 1/2" reel tape devices (HP-88780):

     /dev/rst[0-7]
                         800 BPI density
     /dev/rst[8-15]
                         1600 BPI density
     /dev/rst[16-23]
                         6250 BPI density
     /dev/rst[24-31]
                         data compression
     /dev/nrst[0-7]
                         non-rewinding 800 BPI density
     /dev/nrst[8-15]
                         non-rewinding 1600 BPI density
     /dev/nrst[16-23]
                         non-rewinding 6250 density
     /dev/nrst[24-31]
                         non-rewinding data compression


- For helical-scan tape devices (Exabyte):


     /dev/rst[0-7]
                         Standard EXB-8200 (2GB) Format
     /dev/rst[8-15]
                         EXB-8500 (5GB) Format
     /dev/rst[16-23]
                         Compressed Format (EXB-8500 only)
     /dev/rst[24-31]
                         Compressed Format (EXB-8500 only)
     /dev/nrst[0-7]
                         non-rewinding     Standard      EXB-8200
                         (2GB)Format
     /dev/nrst[8-15]
                         non-rewinding EXB-8500 (5GB) Format
     /dev/nrst[16-23]
                         non-rewinding  Compressed  Format  (EXB-
                         8500 only)
     /dev/nrst[24-31]
                         non-rewinding  Compressed  Format  (EXB-
                         8500 only)



- For QIC-150 tape devices (Archive Viper):

     /dev/rst[0-7]
                         QIC-150 Format
     /dev/rst[8-15]
                         QIC-150 Format
     /dev/rst[16-23]
                         QIC-150 Format
     /dev/rst[24-31]
                         QIC-150 Format
     /dev/nrst[0-7]
                         non-rewinding QIC-150 Format
     /dev/nrst[8-15]
                         non-rewinding QIC-150 Format
     /dev/nrst[16-23]
                         non-rewinding QIC-150 Format
     /dev/nrst[24-31]
                         non-rewinding QIC-150 Format
     Note: The drive will  automatically  read  both  QIC-11  and
     QIC-24 formats too.


-  For QIC-24 tape devices (Emulex MT-02 and Sysgen SC4000):

     /dev/rst[0-7]
                         QIC-11 Format
     /dev/rst[8-15]
                         QIC-24 Format
     /dev/rst[16-23]
                         QIC-24 Format
     /dev/rst[24-31]
                         QIC-24 Format
     /dev/nrst[0-7]
                         non-rewinding QIC-11 Format
     /dev/nrst[8-15]
                         non-rewinding QIC-24 Format
     /dev/nrst[16-23]
                         non-rewinding QIC-24 Format
     /dev/nrst[24-31]
                         non-rewinding QIC-24 Format
     Note: QIC-24 is the preferred format for all systems  except
     Sun-2's.  For Sun-2 systems, QIC-11 is preferred.


******* SCSI Disk Device Driver ********

 -  sd - driver for SCSI disk devices

**CONFIG - SUN-3, SUN-3x, and SUN-4 SYSTEMS

     controller si0 at vme24d16 ? csr 0x200000 priority 2 vector siintr 0x40
     controller si0 at obio ? csr 0x140000 priority 2
     disk sd0 at si0 drive 0 flags 0
     disk sd1 at si0 drive 1 flags 0
     disk sd2 at si0 drive 8 flags 0
     disk sd3 at si0 drive 9 flags 0
     disk sd4 at si0 drive 16 flags 0
     disk sd6 at si0 drive 24 flags 0

     controller sc0 at vme24d16 ? csr 0x200000 priority 2 vector scintr 0x40
     disk sd0 at sc0 drive 0 flags 0
     disk sd1 at sc0 drive 1 flags 0
     disk sd2 at sc0 drive 8 flags 0
     disk sd3 at sc0 drive 9 flags 0
     disk sd4 at sc0 drive 16 flags 0
     disk sd6 at sc0 drive 24 flags 0


**CONFIG - SPARCsystem 330 and SUN-3/80 SYSTEMS

     controller sm0 at obio ? csr 0xfa000000 priority 2
     disk sd0 at sm0 drive 0 flags 0
     disk sd1 at sm0 drive 1 flags 0
     disk sd2 at sm0 drive 8 flags 0
     disk sd3 at sm0 drive 9 flags 0
     disk sd4 at sm0 drive 16 flags 0
     disk sd6 at sm0 drive 24 flags 0


**CONFIG - SUN-4/110 SYSTEM

     controller sw0 at obio 2 csr 0xa000000 priority 2
     disk sd0 at sw0 drive 0 flags 0
     disk sd1 at sw0 drive 1 flags 0
     disk sd2 at sw0 drive 8 flags 0
     disk sd3 at sw0 drive 9 flags 0
     disk sd4 at sw0 drive 16 flags 0
     disk sd6 at sw0 drive 24 flags 0


**CONFIG - SUN-3/E SYSTEM

     controller se0 at vme24d16 ? csr 0x300000 priority 2 vector se_intr 0x40
     disk sd0 at se0 drive 0 flags 0
     disk sd1 at se0 drive 1 flags 0
     disk sd2 at se0 drive 8 flags 0
     disk sd3 at se0 drive 9 flags 0


**CONFIG - Sun386i

     controller wds0 at obmem ? csr 0xFB000000 dmachan 7 irq 16 priority 2
     disk sd0 at wds0 drive 0 flags 0
     disk sd1 at wds0 drive 8 flags 0
     disk sd2 at wds0 drive 16 flags 0


**CONFIG - Desktop SPARCsystems

     device-driver esp
     scsibus0 at esp
     disk sd0 at scsibus0 target 3 lun 0
     disk sd1 at scsibus0 target 1 lun 0
     disk sd2 at scsibus0 target 2 lun 0
     disk sd3 at scsibus0 target 0 lun 0


**CONFIG - SPARCsystem 600MP SERIES

     device-driver esp
     scsibus0 at esp
     disk sd0 at scsibus0 target 3 lun 0
     disk sd1 at scsibus0 target 1 lun 0
     disk sd2 at scsibus0 target 2 lun 0
     disk sd3 at scsibus0 target 0 lun 0
     disk sd16 at scsibus0 target 5 lun 0

     scsibus1 at esp
     disk sd4 at scsibus1 target 3 lun 0
     disk sd5 at scsibus1 target 1 lun 0
     disk sd6 at scsibus1 target 2 lun 0
     disk sd7 at scsibus1 target 0 lun 0

     scsibus2 at esp
     disk sd8 at scsibus2 target 3 lun 0
     disk sd9 at scsibus2 target 1 lun 0
     disk sd10 at scsibus2 target 2 lun 0
     disk sd11 at scsibus2 target 0 lun 0

     scsibus3 at esp
     disk sd12 at scsibus3 target 3 lun 0
     disk sd13 at scsibus3 target 1 lun 0
     disk sd14 at scsibus3 target 2 lun 0
     disk sd15 at scsibus3 target 0 lun 0

     scsibus4 at esp
     disk sd16 at scsibus4 target 3 lun 0
     disk sd17 at scsibus4 target 1 lun 0
     disk sd18 at scsibus4 target 2 lun 0
     disk sd19 at scsibus4 target 0 lun 0


*** DESCRIPTION ***

- minor device numbers 0 부터 7 까지로된 Fil은 drive 0의 여러 부분에 관해 언급
하고 있다.

- 표준 device 이름들은 "sd"로 시작하며, drive number와  a-h 문자(partitions  0-7)로 표시된다.

- 문자 ? 는 0-20 까지의 drive number 를 의미한다.

- block-files은 system 의 normal buffering  mechanism 을 이용하여 disk를 access. 
  또한 물리적인 disk 기록이 없이 read와 write가 수행된다.

- disk 와  user's read or write buffer 사이의 직접적인 transmission을 제공하기
  위해 "raw"  interface가 존재한다.

-  A  single  read 나 write  call 은 한 I/O 동작을 야기시켜준다.
  그러므로 raw I/O는 많은 bytes 들이 전송될때 보다 효과적이다.
  
  편리하게 raw files들의 이름은 `r.'로 시작한다.

-  SCSI disk에 대한  I/O requests들은  하나의  offset 을 소유해야 하는데 이는 512 bytes (DEV_BSIZE)의 배수로 되어있다.
   그렇지않으면 EINVAL error 를 return하게된다.

-만약 전송길이(transfer  length)가 512  bytes의 배수가 아니면 transfer count는
 driver에의해 처리된다.


**** Disk Support ****

- 이driver(esp)는 ST-506  drives를 Adaptec ACB-4000 disk controller가 Handling하고
               ESDI drives,embedded, CCS-compatible SCSI disk drives 를 Emulex                          MD21  disk controller가 handling한다.
	       
- Sun386i 와 Desktop SPARCsystems에서 이 driver는   CDC  Wren III half-height를
   지원하고,Wren IV full-height SCSI disk drives  를 지원한다.

- SPARCsystem 600MP series 는 또한 Seagate Elite SCSI drive를 지원한다.    


- disk drive 의 type 은  SCSI  inquiry command ( SCSI 조회 명령어)을 사용하여
  결정되거나, drive의 block 0에 저장 되어있는 volume label을 reading하여 결정된다.

- volume label은 disk geometry 와 partitioning에 관해 기술하고 있는데
 이는 반드시 있어야하며,  disk의 이영역은 system에 의해 mount될 수 없다.