SloIODevice.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Created by Neil Gunther, August 14, 1986 2:05:36 pm PDT
Last Edited by: Neil Gunther August 25, 1986 6:46:01 pm PDT
DIRECTORY CoreCreate;
SloIODevice: CEDAR DEFINITIONS
= BEGIN
The following procedures refer to IOPMSI.dale
EthernetController: PUBLIC PROC RETURNS [ct: CoreCreate.CellType]; --Intel82586
HardDiskController: PUBLIC PROC RETURNS [ct: CoreCreate.CellType]; --Am9580
SerialCommController: PUBLIC PROC RETURNS [ct: CoreCreate.CellType]; --Z8530
CounterIOUnit: PUBLIC PROC RETURNS [ct: CoreCreate.CellType]; --Z8036/8536
IOPMicroprocessor: PUBLIC PROC RETURNS [ct: CoreCreate.CellType]; --Intel80186
SloBusArbiter: PUBLIC PROC RETURNS [ct: CoreCreate.CellType]; --Intel8289
SongBoardInterface: PUBLIC PROC RETURNS [ct: CoreCreate.CellType]; --Intel8255A PIA
IOPController: PUBLIC PROC RETURNS [ct: CoreCreate.CellType]; --Standard Cell part
END.
Behavioural Model of Intel 82586 Ethernet Chip
Read:
IOP asserts CA
ENC finishes prior task; drops CA (and INT)
ENC clears internal IIT status
ENC aquires SloBus
IOP asserts READY
ENC performs Read transfer
Check for frame arrival (IIT bit may get set)
ENC releases SloBus
If (internal IIT) then ENC asserts INT else idle
Write:
ENC asserts INT
IOP asserts READY
ENC clears internal IIT status
ENC aquires SloBus
ENC performs Write (byte; "octet") transfer
Check for frame arrival (IIT bit may get set)
ENC releases SloBus until Rx FIFO threshold
If (internal IIT) then ENC asserts INT else idle
SloBus Setup:
Acquire:
ENC asserts HOLD
IOP asserts HLDA
Frame Reception:
Frame received from RU
Post receive frame processing usurps at least 173 CLKs on the SloBus
Release:
ENC deasserts HOLD first
IOP deasserts HLDA
Relinquish:
IOP asserts RESET for minimum of 4 CLKs
ENC relinquishes SloBus within 10 CLKs
If transaction still pending then ENC reasserts HOLD after 1 CLK
Memory Transfers:
Each DMA transfer consists of at least 4 CLKs (t1, t2, t3, t4)
During t1: ENC generates address
During (t2..t3): data transfer occurs
Wait states: If ~READY then insert wait states