; Olivetti EISA SCSI Controller (EFP2) 1.00

BOARD
  ID = "OLI1051"
  NAME = "Olivetti EISA Dual SCSI Disk Controller (EFP2)"
  MFR = "OLIVETTI"
  CATEGORY = "MSD"
  SLOT = EISA
  AMPERAGE = 4000
  SKIRT = YES
  READID = YES
  BUSMASTER = 01
  IOCHECK = INVALID
  DISABLE = UNSUPPORTED
  COMMENTS = "The EISA SCSI controller EFP2 supports up to
     twelve SCSI disks with MIRRORING and DUAL HOST
     capabilities."


IOPORT(1) = 0zC90h			; Configuration Register 00h
  INITVAL = xx000000b			; AT compatible disk channels


IOPORT(2) = 0zC91h			; Configuration Register 01h
  INITVAL = 0xxxxxxxb			; SCSI ID for the AT compatibles disks

IOPORT(3) = 0zC92h			; Configuration Register 02h
  INITVAL = 000000xxb			; Interrupt level

IOPORT(4) = 0zC93h			; Configuration Register 03h
  INITVAL = 0000000xb			; ROM BIOS access mode

IOPORT(5) = 0zC8Dh			; Doorbell Register (must be last)
  INITVAL = 000x0000b


GROUP = "Hard Disk Controller"
  TYPE = "MSD"

  FUNCTION = "AT Compatible Disk Controller"
    CHOICE = "Disabled"
      free
	INIT = IOPORT(2) LOC(0) 0
    CHOICE = "Enabled"
      link
	IRQ  = 14
	PORT = 1F0h-1F7h
	INIT = IOPORT(2) LOC(0) 1

  FUNCTION= "SCSI ID Selection for the AT Compatible Disks"
    SUBFUNCTION= "AT Compatible Drive #0 Channel"
      CHOICE = "channel #1"
	free
	  INIT = IOPORT(1) LOC(6) 0
      CHOICE = "channel #2"
	free
	  INIT = IOPORT(1) LOC(6) 1
    SUBFUNCTION= "AT Compatible Drive #1 Channel"
      CHOICE = "channel #1"
	free
	  INIT = IOPORT(1) LOC(7) 0
      CHOICE = "channel #2"
	free
	  INIT = IOPORT(1) LOC(7) 1

    SUBFUNCTION= "AT Compatible Drive #0"
      CHOICE = "SCSI ID = 0"
	free
	  INIT = IOPORT(2) LOC(3 2 1) 000
      CHOICE = "SCSI ID = 1"
	free
	  INIT = IOPORT(2) LOC(3 2 1) 001
      CHOICE = "SCSI ID = 2"
	free
	  INIT = IOPORT(2) LOC(3 2 1) 010
      CHOICE = "SCSI ID = 3"
	free
	  INIT = IOPORT(2) LOC(3 2 1) 011
      CHOICE = "SCSI ID = 4"
	free
	  INIT = IOPORT(2) LOC(3 2 1) 100
      CHOICE = "SCSI ID = 5"
	free
	  INIT = IOPORT(2) LOC(3 2 1) 101
      CHOICE = "SCSI ID = 6"
	free
	  INIT = IOPORT(2) LOC(3 2 1) 110
      CHOICE = "Not Present"            ; Drive 0 not present
	free
	  INIT = IOPORT(2) LOC(3 2 1) 111


    SUBFUNCTION= "AT Compatible Drive #1"
      CHOICE = "Not Present"            ; Drive 1 not present (default)
	free
	  INIT = IOPORT(2) LOC(6 5 4) 111
      CHOICE = "SCSI ID = 0"
	free
	  INIT = IOPORT(2) LOC(6 5 4) 000
      CHOICE = "SCSI ID = 1"
	free
	  INIT = IOPORT(2) LOC(6 5 4) 001
      CHOICE = "SCSI ID = 2"
	free
	  INIT = IOPORT(2) LOC(6 5 4) 010
      CHOICE = "SCSI ID = 3"
	free
	  INIT = IOPORT(2) LOC(6 5 4) 011
      CHOICE = "SCSI ID = 4"
	free
	  INIT = IOPORT(2) LOC(6 5 4) 100
      CHOICE = "SCSI ID = 5"
	free
	  INIT = IOPORT(2) LOC(6 5 4) 101
      CHOICE = "SCSI ID = 6"
	free
	  INIT = IOPORT(2) LOC(6 5 4) 110

ENDGROUP

SWITCH(1) = 8		;1st switch--8 positions
  NAME = "Generic capabilities"
  STYPE = DIP
  VERTICAL = NO
  REVERSE = NO
  FACTORY = LOC(8-1) 00000111
  COMMENTS = "
  #1 - ID on ch #1 | on = 7		   | off = 6\n
  #2 - ID on ch #2 | on = 7		   | off = 6\n
  #3 - environment | on = single mirroring | off = dual mirroring\n\n
  \tif the environment is single mirroring\n
  \t\t#4-#5 - number of mirrored disk pairs on ch #1\n
  \t\t#6-#7 - number of mirrored disk pairs on ch #2\n
  \t\t1st (ID=4,5); 2nd (ID=2,3); 3rd (ID=0,1);\n\n
  \tif the environment is dual mirroring\n
  \t\t#4..#6 - number of mirrored disk pairs\n
  \t\t1st ID=5; 2nd ID=4; ...; 5th ID=1; 6th ID=0\n\n
  \t\t#7     - must be off\n\n
  #8 - mode	   | on = diagnostic	   | off = user"

FUNCTION = "EFP2 SCSI disk controller"
  CHOICE = "Enabled"
    link
      IRQ = 05 | 11 | 10 | 15		; Interrupt level
      SHARE = YES
      TRIGGER = LEVEL
      INIT = IOPORT(3) LOC (1 0) 10 | 00 | 01 | 11
    free
      INIT = SWITCH(1) LOC(8-1) 00000111
      INIT = IOPORT(5) LOC(4) 1 	; Ring Doorbell (must be last)
