Subject: (fwd) [linux-mac68k] IIfx Stuff (MegaInfo)
To: None <port-mac68k@NetBSD.ORG>
From: Christoph Ewering <eweri@uni-paderborn.de>
List: port-mac68k
Date: 06/10/1997 10:02:59
Hello everybody!

I found some information in the linux-mac68k list.
Maybe someone could help this info.

Christoph Ewering         eweri@uni-paderborn.de
Husarenstrasse 48         Fon: 05254 12555
33104 Paderborn           www.uni-paderborn.de/Admin/eweri/


---------- Forwarded message ----------
Date: Mon, 9 Jun 1997 14:14:35 -0700 (PDT)
From: darknerd@best.com
Reply-To: linux-mac68k@rpelkey.bates.edu
To: linux-mac68k@rpelkey.bates.edu
Subject: [linux-mac68k] IIfx Stuff (MegaInfo)



OK, This is some more details that I'm familiar with (Bit,In/Out,Name,
Description):
   
VIA1 reg A:
  - 6 In   CPU.ID3
  - 4 In   CPU.ID2
  - 2 In   CPU.ID1
  - 1 In   CPU.ID0
VIA1 reg B (as per MacII family*): 
  - 7 In   /Par.Err   0 = parity error
      Out  vSndEnb    0 = sound enable
  - 6 Out  vSyncEnA   0 = vertical sync int enabled
  - 2 Out  rTCEnb     0 = RTC
  - 1 Out  rtcCLK     RTC Data-clock line
  - 0 I/O  rtcData    RTC Serial-data line
  * IIfx is only MacII that uses IOP for ADB.
VIA2 reg A (emulation)
  - 7 Out  v2RAM1     RAM-size bit 1
  - 6 OUt  v2RAM0     RAM-size bit 0
  - 5 In   v2RIQ6     Interupt from expasion slot $E
  - 4 In   v2RIQ5     Interupt from expasion slot $D
  - 3 In   v2RIQ4     Interupt from expasion slot $C
  - 2 In   v2RIQ3     Interupt from expasion slot $B
  - 1 In   v2RIQ2     Interupt from expasion slot $A
  - 0 In   v2RIQ1     Interupt from expasion slot $9
VIA2 reg B (emulation from OSS, BIU30, IOP)
  - 7 Out  v2VBL      60.15Hz interrupt request to VIA1
  - 6 In   v2SNDEXT   0 = plug is inserted into ext. sound jack
  - 5 In   v2TM0A     Transfer mode bit 0 acknowledge NuBus
  - 4 In   v2TM1a     Transfer mode bit 1 acknowledge NuBus
  - 2 Out  v2PowerOff 0 = Shut off power
  - 1 Out  v2BusLk    0 = NuBus transaction of locked out
  - 0 Out  v2CDis     0 = disable main processor's data/inst caches
Here are some other notes:
  There are IOPs for the SCC and SWIM/ADB.  You cannot access ADB through
VIA1 and you must go through the IOPs.  The IOPs registers are not mapped
to the processors memory and use a time-shared static memory accessed
through DMA channels.  Accessing SCC registers from the 68030 causes a bus
error.
  I completely understand ADB (well almost), but I do not understand
circuit diagrams.  I have a circuit diagram of the ADB interface on a IIfx
to the SWIM/ADB IOP.
Features...
  VIA1 functions handled by mutant chips:
   - IOP provides interface to ADB transceiver and computer
   - IOP provides state-control line SEL to floppy drive.
   - IOP controls whether SCC port A is used for sync or async I/O
   - IOP enables software to monitor SCC's Wait/Reqest output so that
     software can detect activity on serial port when interrupts are
     diabled
   - OSS monitors 60.15 Hz interrupt request (/VBLK) and interrupts 
     proccessor as necessary.
  VIA2 functions handled by rogue chips:
   - OSS performs an OR operation on six interrupt lines to generate
     /SLOTIRQ signal.
   - OSS monitors interrrupt lines from expansion slotes and stores in
     register and stores which slot generated interrupt.
   - OSS monitors interrupt lines from ASC (/SNDINT) and SCSI controller
     (SCSIIRQ) and interrrupts the processor as needed.
   - OSS provides power off signal (/POWEROFF) and shuts down processor.
   - OSS monitors signal (/SNDEXT) for external jack plugged into
     computer.
   - OSS checks parity if this is used.
   - OSS monitors Data Request line from SCSI DMA (SCSIDRQ) and can 
     interrupt processor when SCSI DMA is ready to transfer data.
   - BIU30 provides signal (/BUSLOCK) that blocks NuBus cards from 
     accessing main logic board.
   - BUI30 records status signals from NuBus (/TM0A and /TM1A).  The main
     processorcan read value a register in BIU30 to find out the values
     of those two signals    
Really SCSI things (features of SCSI DMA IC)
   - DMA bypass fopr 53C80 compatability.
   - Async 3 meg/sec
   - Automatic SCSI bus arbitration as well as program-controlled
     arbitration.
   - DMA transfers of 32bit longwords
   - support for misaligned data buffer addresses (nozero MOD 4)
   - hardware handshake mode (software-controlled data transfer with no
     polling for available bytes)
   - direct acesses to the whole shebang (32bit address memory lines)
   - block transfers of up to 4 gigs.

   Generally the main process sends control/command bytes one byte at a
   time, but with DMA this can be done 4 bytes at a time.

This is all the info I can gather up for right now.  Does anyone
understand how to get to the IOP DMA lines to through some bits in that
direction?  I can imagine that ADB is going to be a pain in the rear on
this machine.  SCSI should be easy because there's a compatability mode
for non-handshaking tranactions.

enjoy,
  Joaquin