Pci-5565piorc HRM 500-9367855565-000 d.0
Pci-5565piorc HRM 500-9367855565-000 d.0
Abaco Systems is registered with an approved Producer Compliance Scheme (PCS) and, subject
to suitable contractual arrangements being in place, will ensure WEEE is processed in accordance
with the requirements of the WEEE Directive.
Abaco Systems will evaluate requests to take back products purchased by our customers before
August 13, 2005 on a case-by-case basis. A WEEE management fee may apply.
2 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
About This Manual
Conventions
Notices
This manual may use the following types of notice:
WARNING
Warnings alert you to the risk of severe personal injury.
CAUTION
Cautions alert you to system danger or loss of data.
NOTE
Notes call attention to important features or instructions.
TIP
Tips give guidance on procedures that may be tackled in a number of ways.
LINK
Links take you to other documents or websites.
Numbers
All numbers are expressed in decimal, except addresses and memory or register
data, which are expressed in hexadecimal. Where confusion may occur, decimal
numbers have a “D” subscript and binary numbers have a “b” subscript. The
prefix “0x” shows a hexadecimal number, following the ‘C’ programming
language convention. Thus:
One dozen = 12D = 0x0C = 1100b
The multipliers “k”, “M” and “G” have their conventional scientific and
engineering meanings of x103, x106 and x109 respectively. The only exception to
this is in the description of the size of memory areas, when “k”, “M” and “G”
mean x210, x220 and x230 respectively.
NOTE
When describing transfer rates, “k”, “M” and “G” mean x103, x106 and x109 not x210, x220 and x230.
Text
Signal names ending with a tilde (“~”) denote active low signals; all other signals
are active high. “N” and “P” denote the low and high components of a differential
signal respectively.
LINK
www.abaco.com
Abaco Documents
This document is distributed via the Abaco website. You may register for access to
manuals via the website.
LINK
www.abaco.com/products/pci-5565piorc
Third-party Documents
Refer to PCI Local Bus Specification for a detailed explanation of the PCI Local bus from
the following source:
PCI Local Bus Specification, Rev. 2.2
PCI Special Interest Group
P.O. Box 14070
Portland, OR 97214
(800) 433-5177 (U.S.)
(503) 797-4207 (International)
(503) 234-6762 (FAX)
For information on PLD Applications’ PCI-X IP Core, contact them at:
United States
PLD Applications, Inc.
2570 North First St. 2nd floor
San Jose, CA 95131-1036
(408) 273 4530 or (866) 513 0362
Fax: (408) 273 4555
France (Corporate Headquarters)
PLD Applications
Europarc Pichaury A2 - 1330, rue Guillibert
13856 Aix-en-Provence Cedex 3 - France
Tel: +33 442 393 600
Fax: +33 442 394 902
4 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Technical Support Contact Information
You can find technical assistance contact details on the website Embedded
Support page.
LINK
www.abaco.com/embedded-support
Abaco will log your query in the Technical Support database and allocate it a
unique Case number for use in any future correspondence.
LINK
[email protected]
Returns
If you need to return a product, there is a Return Materials Authorization (RMA)
form available via the website Embedded Support page.
LINK
www.abaco.com/embedded-support
Do not return products without first contacting the Abaco Repairs facility.
Additional Notes
The PCI-5565PIORC* is the PCI-based member of Abaco’s family of Reflective
Memory real-time fiber-optic network products. Two or more PCI-5565PIORCs,
along with other members of this family, can be integrated into a network using
standard fiber-optic cables. Each board in the network is referred to as a “node.”
Reflective Memory allows computers, workstations, PLCs and other embedded
controllers with different architectures and dissimilar operating systems to share
data in real-time. The 5565 family of Reflective Memory (referred to as RFM-5565
in this manual) is fast, flexible and easy to operate. Data is transferred by writing
to memory (SDRAM), which appears to reside globally in all boards on the
network. Onboard circuitry automatically performs the data transfer to all other
nodes with little or no involvement of any host processor. A block diagram of the
PCI-5565PIORC is shown in Figure 1.
Features
Features include:
• High speed, easy to use fiber-optic network (2.12 GBaud serially)
• 33MHz 64-bit/32-bit compatible PCI bus, 3.3 V or 5.0V logic level
• 66MHz 64-bit/32-bit compatible PCI bus, 3.3V logic level
• No host processor involvement in the operation of the network
• Selectable Redundant Mode of Operation
6 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Because the two registers groups physically reside in separate devices, they are
accessed through different regions of memory. The PCI-5565PIORC, on the other
hand, contains both groups of registers within the same FPGA. The two groups
could have been combined. However to provide software continuity and
backward compatibility, the two register groups have been maintained separately
as in the classic VMIPCI-5565. Further, the individual bit functions within the
registers, where applicable, are still compatible.
The PCI-5565PIORC does not include a second DMA engine.
Optics
2.125 GHz
SERDES
Rx Tx
FIFO FIFO
32-bit Data
Main FPGA Memory
4-bit Parity
PCI Core 133 MHz
PCI bus
8 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Figure 2Typical Reflective Memory Network
VMIVME-5565
VM
IV
5565ME
PCI-5565PIORC
NODE 0
PCI WorkStation
with
NODE 1
VMEbus Chassis PCI-5565PIORC
with
VMIVME-5565
PMC-5565PIORC
VMEbus Chassis
with NODE 255
PMC-5565PIORC
Up to 300m
between nodes
for multimode
Up to 10km
between nodes
for single mode
10 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Compliance Information
This chapter provides the applicable information regarding regulatory
compliance for the PCI-5565PIORC.
CE
Abaco has evaluated the PCI-5565PIORC has met the requirements for
compliance to the following standards:
• BS EN55024
• BS EN55022, Class A
• IEC61000-4-2
• IEC61000-4-3
International Compliance
It has also met the following international levels.
European Union
• BS EN55024 (1998 w A1:01 & A2: 03)
• CISPR22, EN55022 (Class A)
• CISPR11, EN55011(Class A, Group 1)
United States
• FCC Part 15, Subpart B, Section 109, Class A
• CISPR 22 (1997), Class A
• ANSI C63.4 (2003) method
Australia/New Zealand
• AS/NZS CISPR 22 (2002) Class A using:
• EN55022 (1998) Class A
Japan
• VCCI (April 2005) Class A using:
• CISPR 22 (1997) Class A
• ANSI C63.4 (2003) method
Canada
• ICES-003 Class A using:
• CISPR 22 (1997) Class A
• ANSI C63.4 (2003) Method
FCC Class A
NOTE
This equipment has been tested and found to comply with the limits for a Class A digital device,
pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against
harmful interference when the equipment is operated in a commercial environment. This equipment
generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with
the instruction manual, may cause harmful interference to radio communications. Operation of this
equipment in a residential area is likely to cause harmful interference in which case the user will be
required to correct the interference at his own expense.
CAUTION
Changes or modifications not expressly approved by the party responsible for compliance could void
the user’s authority to operate the equipment.
Canadian Regulations
The PCI-5565PIORC Class A digital apparatus complies with Canadian
ICES-003.
NOTE
Any equipment tested and found compliant with FCC Part 15 for unintentional radiators or EN55022
(previously CISPR 22) satisfy ICES-003.
12 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Table of Contents
14 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
List of Tables
16 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
1 • Handling and Installation
This chapter describes the installation and configuration of the board. Cable
configuration and board layout are illustrated in this chapter.
Switch S2 corresponds to 8 node ID select signal lines. The 8 node ID select lines
permit any binary node ID from 0 to $FF (255 decimal). Switch S2 position 1
corresponds to the least significant node ID line and switch S2 position 8
corresponds to the most significant node ID line. Placing switch S2 in the OFF
position sets the binary node ID line low (0), while placing switch S2 in the ON
position sets the binary node ID line high (1). Table 1-1 provides examples of
possible node IDs.
NOTE
ALL nodes on the ring MUST be configured for the SAME transfer mode: either redundant or non-
redundant transfer mode. A mismatch of this setting will result in certain packets being removed from
the ring, and that data will be lost.
NOTE
No more than one node on the ring should be configured with Rogue Master 0 enabled. Certain packets
will be removed from the ring when two or more nodes are configured with Rogue
Master 0 enabled, and that data will be lost.
NOTE
No more than one node on the ring should be configured with Rogue Master 1 enabled. Certain packets
will be removed from the ring when two or more nodes are configured with Rogue
Master 1 enabled, and that data will be lost.
Prior to installing the RFM-5565 in the host system, switch S1 must be configured
for the appropriate mode of operation. Switch S1 controls six functions on the
board. Settings on Switch S1 should only be changed while power is off.
18 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
NOTE
S1 position 8 should be set in the ON position only when a flash update of the control logic has failed.
After a successful flash update of the control logic, S1 position 8 should be set in the OFF position.
S2 S2 S2 S2 S2 S2 S2 S2 Node ID
Position Position Position Position Position Position Position Position Hex
8 7 6 5 4 3 2 1 (Dec.)
ON ON ON ON ON ON ON ON $FF
(255)
ON OFF OFF OFF OFF OFF OFF OFF $80
(128)
OFF ON OFF OFF OFF OFF OFF OFF $40 (64)
OFF OFF ON OFF OFF OFF OFF OFF $20 (32)
OFF OFF OFF ON OFF OFF OFF OFF $10 (16)
OFF OFF OFF OFF ON OFF OFF OFF $8 (8)
OFF OFF OFF OFF OFF ON OFF OFF $4 (4)
OFF OFF OFF OFF OFF OFF ON OFF $2 (2)
OFF OFF OFF OFF OFF OFF OFF ON $1 (1)
OFF OFF OFF OFF OFF OFF OFF OFF $0 (0)
Factory Default: S2 positions 1 through 8 OFF
20 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
1.4 Physical Installation
CAUTION
Do not install or remove the board while power is applied.
Host PCI compatible sites vary widely in appearance and board installation
procedures. Abaco recommends examining the host system installation
procedures prior to installing this board. The following procedure outlines the
installation of the PCI-5565PIORC onto a suitable motherboard with an available
PCI connector.
1. Open the system chassis. Ensure that the node ID has been set prior to
installation. Also setup the board for the desired mode of operation. See
Section 1.3, ʺSwitch S1 and S2 Configurationʺ.
2. Install the PCI-5565PIORC firmly into the PCI connectors (refer to Figure 1-2
for installation of the PCI-5565PIORC). Install the screw to secure the PCI-
5565PIORC to the chassis.
3. Close the system chassis, apply power.
Figure 1-2 Installing the PCI-5565PIORC
PCI-5565PIORC
PCI-5565PIORC
STATUS
SIG. DET
OWN DAT
A
TX
RX
PCI-556
5
PIORC
Side View
115
Isometric View
NOTE
The PCI-5565PIORC is designed to interface with any suitable PCI compliant motherboard using a direct
PCI bus interface, compliant with V2.2 of the PCI signaling specification as defined by IEEE P1386.1 Draft
2.0.
STATUS
(RED) STATUS
STATU
S
SIGNAL SIG. DET SIG. DE
DETECT T
(YELLOW)
OWN DATA
OWN D
ATA
OWN DATA
(GREEN) TX "TX" TX
Transmitter
Connection
"RX"
RX
Receiver RX
Connection
PCI PCI
5565 5565
PIORC PIOR
C
CAUTION
When fiber-optic cables are not connected, the supplied dust caps need to be installed to keep dust and
dirt out of the optics. Do not power up the PCI-5565PIORC without the fiber-optic cables installed. This
could cause eye injuries.
22 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
1.5.1 LED Description
The status LED’s power-up default state is ON. The status LED is a user defined
board indicator and can be toggled ON or OFF by writing to Bit 31 of the Control
and Status register. The signal detect LED turns ON if the receiver detects light
and can be used as a simple method of checking that the optical network is
properly connected to the receiver. The Own Data LED is turned ON when the
board detects its own data returning over the network. The default setting is OFF.
0.84 (21.23)
(4.5mm)
0.49
(1.25)
TX TX TX
RX RX RX
TX TX TX
RX RX RX
24 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
2 • Theory of Operation
The following sections describe the functionality of the RFM-5565 Reflective
Memory board. A description of the major sub-circuits and their operation is
included. This section will also occasionally mention Control and Status registers
related to operations. To see a detailed description of these Control and Status
registers please refer to Chapter 3, ʺProgrammingʺ of this manual.
The receiver then checks the packet for errors. When the error free data is
received, the receive circuit opens the packet and stores the data in the board’s
receive FIFO. From the receive FIFO, another circuit writes the data into the local
onboard SDRAM at the same relative location in memory as the originating node.
This circuit also simultaneously routes the data into the board’s own transmit
FIFO. From there, the process is repeated until the data returns to the receiver of
the originating node. At the originating node, the data packet is removed from the
network.
Local Configuration Registers – Base Address Register 0 has the starting address
for register memory space accesses and Base Address Register 1 has the starting
address for register IO space accesses. Some Local Configuration Registers
pertinent to the RFM-5565’s operation include the Interrupt Control and Status
Register (INTCSR) and the DMA Control Registers.
RFM Control and Status Registers – The RFM Control and Status Registers
implement the functions unique to the RFM-5565 Reflective Memory board. These
functions include RFM operation status, detailed control of the RFM sources for
the PCI interrupt, and network interrupt access. These registers are accessed at
locations offset from the address contained in Base Address Register 2.
26 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
2.5 Interrupt Circuits
The RFM-5565 has a single interrupt output (INTA#). One or more events on the
RFM-5565 board can cause the interrupt. The sources of the interrupt can be
individually enabled and monitored through several registers.
The interrupt circuitry of the RFM-5565 is arranged in two tiers. The primary tier
of interrupts is enabled and monitored by the Local Configuration Register’s
INTCSR at offset $68. The sources for monitoring the primary tier interrupts
include:
1. DMA Ch 0 Done
2. Local Interrupt Input (LINTi#)
The primary tier interrupt source (1) is used during DMA cycles and must be
configured in the DMA registers.
The other primary tier interrupt source (2) is the Local Interrupt Input (LINTi#).
All secondary tier interrupts are funneled through the LINTi#. Second tier
interrupts include several operational status bits, faults, and network interrupts.
The second tier interrupts are selected and monitored through the two RFM
Control and Status Registers referred to as the Local Interrupt Status Register
(LISR) and the Local Interrupt Enable Register (LIER). For a detailed description
of these two registers refer to Chapter 3, ʺProgrammingʺ. A block diagram of the
main interrupt circuitry is shown in Figure 2-1.
Network
Receiver
Circuitry
Local Interrupt Status Register (LISR) Local Interrupt Enable Register (LIER)
(Offset $10) (Offset $14)
+
Second Tier Interrupts
LINT#
DMA 0 Done
28 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
2.6 Network Interrupts
The RFM-5565 is capable of passing interrupt packets, as well as data packets,
over the network. The network interrupt packets can be directed to a specific node
or broadcast globally to all nodes on the network. Each network interrupt packet
contains the sender’s node ID, the destination node ID, the interrupt type and 32
bits of user defined data.
The types of network interrupts include four general purpose interrupts and a
reset node request interrupt. Node specific interrupts are sent by configuring
three RFM Control and Status registers. Each receiving node evaluates the
interrupt packets as they pass through. If a general purpose interrupt is directed
to that node, then the sender’s node ID is stored in the appropriate Sender ID
FIFO (one of four). Each Sender ID FIFO is 127 locations deep. The accompanying
data will be stored in a companion 127 locations deep data FIFO.
If enabled through the LISR, LIER and INTCSR registers, any of the network
interrupts can also generate a host PCI interrupt at each receiving node.
The reset node request interrupt is not stored in a FIFO like the four general
purpose interrupts. Furthermore, it does not cause an immediate reset of the
board. Instead, it sets a bit in the LISR register, which will result in a PCI interrupt
if enabled. The actual board reset should be performed by the host system in an
orderly fashion. However, the user application could use this network interrupt
for any purpose.
Redundant transfer mode reduces the chance that any data is dropped from the
network. However, the redundant transfer mode also reduces the network data
transfer rate. The single Dword (Double-word = 4 bytes) transfer rate drops from
the non-redundant rate of 43 MByte/s to approximately 20 MByte/s. The
16 Dword (64 bytes) transfer rate drops from the non-redundant rate of
170 MByte/s to the redundant rate of 85 MByte/s.
Rogue packets are extremely rare. A rogue packet could be created when turning
a node’s power on or off while connected to a 5595 Hub. It could also occur when
connecting or disconnecting fiber cables. A rogue packet might be created if any
node in the network overflows a network FIFO. Their existence could indicate a
malfunctioning board due to true component failure, or due to operation in an
overly harsh environment. Normally, the solution is to isolate and replace the
malfunctioning board and/or improve the environment. However, some users
prefer to tolerate sporadic rogue packets rather than halt the system for
maintenance provided the rogue packets are removed from the network.
To provide tolerance for rogue packet faults, the RFM-5565 contains circuitry that
allows it to operate as one of two Rogue Masters. A rogue master marks each
packet as it passes through from another node. If the same packet returns to the
rogue master a second time, the Rogue Master recognizes that it is a rogue packet
and removes it from the network (after the rogue packet has affected every node).
When a rogue packet is detected, a rogue packet fault flag is set in the LISR. The
assertion of the rogue packet fault bit may optionally assert a PCI interrupt to
inform the host that the condition exists.
Two rogue masters, Rogue Master 0 and Rogue Master 1, are provided to cross
check each other. Rogue Master 0 is enabled by placing switch S1 position 5 in the
ON position. Rogue Master 1 is enabled by placing switch S1 position 6 in the ON
position. Just as two boards in a network should not have the same node ID, two
boards in the same network should not be set as the same Rogue Master.
Otherwise, one of the two will erroneously remove packets marked by the other.
30 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
3 • Programming
Basic target write and read operations of the RFM-5565 require little or no
software. The board powers up in a functional mode. The user will need to access
the PCI Configuration registers (Base Address Register 0, 1, 2 and 3) to learn
where the system BIOS has located the other register sets and the Reflective
Memory.
The location of the register sets and the Reflective Memory varies from system to
system, and can even vary from slot to slot within a system. For operations
beyond the basic setup, such as enabling or disabling interrupts or performing
DMA cycles, the user must know the specific bit assignments of the registers
within the three register sets. That information is provided in this chapter.
NOTE
All registers can be accessed as a Byte, Word or Double-word request.
32 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Table 3-3 PCI Command Register
PCI Command: Offset $04
*Value after
Bit Description Read Write
PCI Reset
0 I/O Space. Yes Yes 0
Writing a one (1) allows the device to respond to I/O
Space accesses.
Writing a zero (0) disables the device from
responding to I/O Space accesses.
1 Memory Space. Yes Yes 0
Writing a one (1) allows device to respond to
Memory Space accesses.
Writing a zero (0) disables the device from
responding to Memory Space accesses.
2 Master Enable. Yes Yes 0
Writing a one (1) allows the device to behave as a
bus master.
Writing a zero (0) disables the device from
generating bus master accesses.
3 Special Cycle. Yes No 0
Not Supported
4 Reserved N/A N/A 0
5 VGA Palette Snoop. Yes No 0
Not Supported
6 Parity Error Response. Yes Yes 0
Writing a zero (0) indicates parity error is ignored
and the operation continues.
Writing a one (1) indicates parity checking is
enabled.
7 Wait Cycle Control. Yes No 0
Controls whether a device does address/data
stepping.
A zero (0) indicates the device never does stepping.
A one (1) indicates the device always does stepping.
(NOTE: Hardwired to zero (0).)
8 SERR# Enable. Yes Yes 0
Writing a one (1) enables SERR# driver.
Writing a zero (0) disables SERR# driver.
9 Reserved N/A N/A 0
10 Interrupt Disable: Yes Yes 0
When set (1), this bit disables the Reflective Memory
from asserting its interrupt pin.
When not set (0), interrupts are generated normally.
15:11 Reserved Yes No $0
*NOTE: This register will be altered by the system BIOS during the system boot process (e.g., $0107).
34 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Table 3-5 PCI Revision ID Register
PCI Revision ID: Offset $08
Value after
Bit Description Read Write
PCI Reset
7:0 Revision ID. Revision of board Yes No Current Rev#
PCI Base Address Register 0 contains the starting address for memory mapped
accesses to the Local Configuration Registers, which include the interrupt Control
and Status and the DMA Registers. The value in this register is loaded by the
system BIOS.
Table 3-11 PCI Base Address Register 0 for Access to Local Configuration Registers
PCIBAR0: Offset $10
*Value after
Bit Description Read Write
PCI Reset
0 Memory Space Indicator. Yes No 0
Writing zero (0) indicates the register maps into
Memory Space. Writing a one (1) indicates the register
maps into I/O Space. (NOTE: Hardcoded to zero (0).)
2:1 Register Location. Values: Yes No 00
00 - Locate anywhere in 32-bit Memory Address Space.
01 - Locate below 1-MByte Memory Address Space.
10 - Locate anywhere in 64-bit Memory Address Space.
11 - Reserved
(NOTE: Hardcoded to 00.)
3 Prefetchable. Writing a one (1) indicates there are no Yes No 0
side effects on reads. (NOTE: Hardcoded to zero (0).)
7:4 Memory Base Address. Memory Base Address for Yes No $0
access to Local Configuration registers (requires 256
bytes).
(NOTE: Hardcoded to $0.)
31:8 Memory Base Address. Memory Base Address for Yes Yes $0
access to Local Configuration registers.
*NOTE: This register will be altered by the system BIOS during the system boot process.
PCI Base Address Register 1 contains the starting address for I/O mapped
accesses to Local Configuration Registers. The value in this register is loaded by
the system BIOS.
36 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Table 3-12 PCI Base Address Register 1 for Access to Local Configuration Registers
PCIBAR1: Offset $14
*Value after
Bit Description Read Write
PCI Reset
0 Memory Space Indicator. Yes No 1
A zero (0) indicates the register maps into Memory Space.
A one (1) indicates the register maps into I/O Space.
(NOTE: Hardcoded to one (1).)
1 Reserved. Yes No 0
7:2 I/O Base Address. Base Address for I/O access to Local Yes No $0
Configuration registers (requires 256 bytes).
(NOTE: Hardcoded to $0.)
31:8 I/O Base Address. I/O Base Address for access to Local Yes Yes $0
Configuration registers.
*NOTE: This register will be altered by the system BIOS during the system boot process.
PCI Base Address Register 2 contains the starting address for memory mapped
accesses to the RFM Control and Status Registers. The value in this register is
loaded by the system BIOS.
Table 3-13 PCI Base Address Register 2 for Access to RFM Control and Status Registers
PCIBAR2: Offset $18
*Value
Bit Description Read Write after PCI
Reset
0 Memory Space Indicator. Yes No 0
A zero (0) indicates the register maps into Memory Space.
A one (1) indicates the register maps into I/O Space.
2:1 Register Location. Values: Yes Mem: No I/O: 00
00 - Locate anywhere in 32-bit Memory Address Space. Bit 1 no,
01 - Locate below 1-MByte Memory Address Space. Bit 2 yes
10 - Locate anywhere in 64-bit Memory Address Space.
11 - Reserved
If I/O Space, Bit 1 is always 0 and Bit 2 is included in the
base address.
3 Prefetchable (If Memory Space). Yes Mem: No I/O: 0
A one (1) indicates there are no side effects on reads. Yes
If I/O Space, Bit 3 is included in the base address.
31:4 Memory Base Address. Memory Base Address for access Yes Yes $0
to RFM registers.
*NOTE: This register will be altered by the system BIOS during the system boot process.
Table 3-14 PCI Base Address Register 3 for Access to Reflective Memory
PCIBAR3: Offset $1C
*Value after
Bit Description Read Write
PCI Reset
0 Memory Space Indicator. Writing zero (0) indicates the Yes No 0
register maps into Memory Space. Writing a one (1)
indicates the register maps into I/O Space.
2:1 Register Location. Values: Yes Mem: No I/ 00
00 - Locate anywhere in 32-bit Memory Address Space. O
01 - Locate below 1-MByte Memory Address Space. Bit 1 no,
10 - Locate anywhere in 64-bit Memory Address Space. Bit 2 yes
11 - Reserved
If I/O Space, Bit 1 is always 0 and Bit 2 is included in
the base address.
NOTE
While examining the contents of the PCI Configuration Registers, the user may notice that Base Address
Register 4 contains a non-zero value and may mistakenly believe that this value specifies a set of useful
functions. Actually the registers within Base Address Register 4 are a set of special diagnostic registers
for the PLD Applications PCI-X core. These registers should be considered reserved and remain
unaltered by the user.
38 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Table 3-16 PCI Base Address Register 5
PCIBAR5: Offset $24
Value after
Bit Description Read Write
PCI Reset
31:0 Reserved. Yes No $0
NOTE
The RFM-5565 does not support the optional Power Management, Hot Swap and Vital features of the
40 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
PCI Specification.
NOTE
To ensure software compatibility with other RFM-5565 boards using the PLX 9656 and to ensure
compatibility with future enhancements, write zero (0) to all unused bits.
42 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Table 3-29 Interrupt Control and Status Register
INTCSR: BAR0/1 Offset $68
Value after
Bit Description Read Write
PCI Reset
7:0 Reserved Yes No $00
8 PCI Interrupt Enable. Writing a one (1) enables PCI Yes Yes 1
interrupts.
10:9 Reserved Yes No 0
11 Local Interrupt Input Enable. Yes Yes 0
Writing a one (1) enables a local interrupt (i.e., RFM
interrupts) to assert a host Interrupt.
14:12 Reserved Yes No 0
15 Local Interrupt Input Active. Yes No 0
When set to a one (1), indicates the Local interrupt
input is active.
16 Reserved Yes No 1
17 Reserved Yes No 0
18 Local DMA Channel 0 Interrupt Enable. Yes Yes 0
Writing a one (1) enables DMA Channel 0 interrupts.
Clearing the DMA status bit also clears the interrupt.
20:19 Reserved Yes No 0
21 DMA Channel 0 Interrupt Active. Yes No 0
Reading a one (1) indicates the DMA Channel 0
interrupt is active.
23:22 Reserved Yes No $0
27:24 Reserved Yes No $f
31:28 Reserved Yes No $0
The PCI Interrupt Enable (Bit 8) functions as a global PCI interrupt enable. It must
be set high (1) in addition to other enable bits before any primary or secondary
tier interrupt source will result in a PCI interrupt.
Table 3-30 summarizes the INTCSR Interrupt Enables that pertain to RFM-5565
operation.
Table 3-31 summarizes the INTCSR Interrupt Status bits that pertain to RFM-5565
operation.
44 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Table 3-35 DMA Channel 0 Local Address Register
DMALADR0: BAR0/1 Offset $88
Value after
Bits Description Read Write
PCI Reset
31:0 Local Address Register. Indicates from where Yes Yes $0
in Local Memory space DMA transfers (read or
write) start.
Table 3-39 DMA Channel 0 PCI Dual Address Cycles Upper Address
DMADAC0: BAR0/1 Offset $B4
Value after
Bit Description Read Write
PCI Reset
31:0 Upper 32 Bits of the PCI Dual Address Cycle PCI Yes Yes $0
Address during DMA Channel 0 Cycles. If set to $0, the
DMA performs a 32-bit address DMA Channel 0
access.
Table 3-41 PCI PIO Direct Slave Local Base Address (Remap)
LAS1BA: BAR0/1 Offset $F4
Value after
Bit Description Read Write
PCI Reset
0 Local Address Space 1 Enable. A one (1) enables Yes No 1
decoding of PCI addresses for PIO addresses for PIO
Direct Slave access to Local Address Space 1
(PCIBAR3).
3:1 Reserved Yes No $0
46 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Table 3-41 PCI PIO Direct Slave Local Base Address (Remap) (Continued)
LAS1BA: BAR0/1 Offset $F4
Value after
Bit Description Read Write
PCI Reset
31:4 Remap PCIBAR3 Base Address to Local Address Yes Yes $0
Space 1 Base Address. The PCIBAR3 base address
translates to the Local Address Space 1 Base Address
programmed in this register. A Direct Slave access to
an offset from PCIBAR3 maps to the same offset from
this Local Base Address.
NOTE: Remap Address value must be a multiple of the LAS1RR range.
48 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
3.3.1 Board Revision Register
Board Revision (BRV) BAR2 (Offset $0): An 8-bit register used to represent
revisions or model numbers. This register is read-only.
Bit 31: Status LED – The board contains a user defined RED status
LED. Setting this bit low (0) turns OFF the LED. The default
state of this bit after reset is high (1) and the LED will be ON.
Bit 30: Transmitter Disable – Setting this bit high (1) will manually
turn OFF the board’s transmitter. The default state of this bit
after reset is low (0) and the transmitter is enabled. When
turning the board’s transmitter back ON by setting this bit
back to low (0), an unspecified amount of time must be
allowed to provide for the turn-on time of the optics.
Bit 29: Dark-on-Dark Enable – When this bit is set high (1), the
board’s transmitter will be turned OFF if the board’s receiver
does not detect a signal or if the receiver detects invalid data
patterns. The dark-on-dark feature is useful in hub
configurations.
Bit 28: Loopback Enable – When this bit is set high (1), the fiber
optic transmitter and receiver are disabled and the transmit
signal is looped back to the receiver circuit internally. This
allows basic functional testing with or without an external
cable.
Bit 27: Local Memory Parity Enable – When this bit is set high (1),
parity checking is enabled when reading from the RFM-5565
SDRAM. Note that parity works only on 32-bit and 64-bit
accesses. Byte (8-bit), Word (16-bit), and 24-bit memory write
accesses are inhibited while parity is enabled.
Bit 26: Redundant Mode Enabled – When this bit is set high (1),
redundant mode of network transfers has been enabled. This
bit is read-only. Redundant mode is enabled by setting switch
S1 position 1 in the ON position.
Bit 25: Rogue Master 1 Enabled – When this bit is set high (1), the
board is operating as Rogue Master 1. This bit is read-only.
Rogue Master 1 operation is enabled by setting switch S1
position 6 in the ON position.
Bit 24: Rogue Master 0 Enabled – When this bit is set high (1), the
board is operating as Rogue Master 0. This bit is read-only.
Rogue Master 0 operation is enabled by setting switch S1
position 5 in the ON position.
Bits 22 and 19: Window 1 and Window 0 – The PCI PIO window size is
selected by setting S1 switch positions 3 and 4. Bit 19
(Window 0) is connected to S1 switch position 3 (‘1’ when
ON, ‘0’ when OFF). Bit 22 (Window 1) is connected to S1
switch position 4 (‘1’ when ON, ‘0’ when OFF). These two
bits indicate the memory PCI PIO window size as defined in
the following table. The two bits are read only.
50 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Table 3-44 PCI PIO Window Sizes
0 1 64 MBytes
1 0 16 MBytes
1 1 2 MBytes
Bits 21 and 20: Config 1 and Config 0 – These two bits indicate the installed
memory size as defined in the following table. The two bits
are read-only.
Bit 18: Delay TX from PCI Write – When this bit is set high (1), the
board is operating with reduced PCI write bandwidth. This
bit is read-only. This mode is enabled by setting switch S1
position 2 in the ON position. Data received on the PCI bus
will be delayed before it is written to memory or transmitted
on the network. This prevents the node from using full
network bandwidth. This setting is normally OFF.
Bits 17 and 16: Offset 1 and Offset 0 – When the host PCI system writes to
the onboard memory and initiates a packet over the network,
Offset 1 and Offset 0 will apply an offset to the network
address as it is sent or received over the network. The offset
does not appear on local access to the memory, and the offset
does not alter network packets as they pass through the
board. Offset 1 and Offset 0 provide four possible binary
increments of 64 MBytes each through the 256-MByte
network address range. When the address and offset exceeds
the 256-MByte network address range, the address bits
beyond 256 MBytes will be truncated. This causes the write to
wrap around into a lower memory location. Offsets 1 and 0’s
bits correspond to the network address bits A27 and A26
respectively.
Bit 07: TX FIFO Empty – A logic high (1) indicates the TX FIFO is
currently empty. This bit provides immediate status only (not
latched) and is read-only.
Bit 06: TX FIFO Almost Full – A logic high (1) indicates the TX FIFO
is currently almost full. This bit provides immediate status
only (not latched) and is read-only. Periodic assertion of this
bit is normal.
Bit 05: Latched RX FIFO Full – A logic high (1) indicates the RX
FIFO has experienced a full condition at least once. This bit is
read-only within this register. To clear this condition write to
the corresponding bit within the Local Interrupt Status
Register.
NOTE
The occurrence of the Latched RX FIFO Full signal is a fault condition due to a board malfunction and
indicates that the received data may have been lost.
Bit 04: Latched RX FIFO Almost Full – A logic high (1) indicates the
RX FIFO is operating at the maximum acceptable rate. Under
normal operating conditions, this event should not occur.
This bit is read-only within this register. To clear this
condition, write to the corresponding bit within the Local
Interrupt Status Register.
Bit 03: Latched Sync Loss – A logic high (1) indicates the receiver
circuitry has detected the loss of a valid signal at least once
since the last time the flag has been cleared. Under normal
operating conditions, this event should not occur and may
indicate a loss of data. A logic high may indicate the
receiver’s link was intentionally or unintentionally
disconnected.
Bit 02: RX Signal Detect – A logic high (1) indicates the board
receiver is currently detecting light. This bit provides
immediate status only (not latched) and is read-only.
Bit 01: Bad Data – A logic high (1) indicates the board receiver
circuit has detected bad (invalid) data at least once since
52 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
powerup or since the flag had previously been cleared.
Under normal operating conditions, this event should not
occur and may indicate a loss of data. This bit is read-only
within this register. To clear this condition, write to the
corresponding bit within the Local Interrupt Status Register.
Bit 00: Own Data – A logic high (1) indicates the board has detected
the return of its own data packet at least once since this bit
has previously been cleared. This bit serves as an indicator
that the link is intact. The Own Data bit should be set any
time a write to the onboard memory occurs or any time
network interrupt is initiated. This bit is both read and write
accessible.
Local Interrupt Status Register (LISR) BAR2 (Offset $10): This is a 32-bit register
containing a group of interrupt status flags. The LIER contains a corresponding
group of enables. Before any local interrupt can cause an interrupt on the LINTi#
line, the Status Bit, its Enable and the Global Enable must be asserted.
Bit 14: Global Interrupt Enable – This bit must be set high (1) in
addition to any interrupt flag and its associated enable bit in
the LIER before the LINTi# line is asserted and a PCI interrupt can
result. If the Auto Clear enable bit in the LIER is set high (1),
the Global Interrupt Enable bit will automatically be cleared
as this register (LISR) is being read. This bit is read and write
accessible with this register and thus allows a single read-
modify-write operation to service the local interrupts.
Bit 13: Local Memory Parity Error - When this bit is high (1), one or
more parity errors have been detected on local memory
accesses. This bit is latched. Once set, it must be cleared by
writing a zero to this bit location. Note that Bit 27 of the
LCSR1 must be set high before parity is active. Also note that
parity works only on 32-bit and 64-bit accesses. Word (16-bit)
and byte (8-bit) memory write accesses are inhibited.
Bit 12: Memory Write Inhibited - When this bit is high (1), an 8-bit
byte, a 16-bit word, or a 24-bit write to local memory was
attempted and inhibited while the board was in the parity
enabled mode. This bit is latched. Once set, it must be cleared
by writing a zero to this bit location.
Bit 11: Latched Sync Loss – When this bit is high (1), the receiver
circuit has lost synchronization with the incoming signal one
or more times. This bit is latched. Once set, it must be cleared
by writing a zero to this bit location. The assertion of the
Latched Sync Loss usually indicates the receiver link was or
is disconnected, either intentionally or unintentionally, and
data may have been lost. This event will also occur if the
upstream node tied to the receiver is powered off or is
disabled.
Bit 10: RX FIFO Full – When this bit is high (1), the RX FIFO has
been full one or more times. This bit is latched. Once set, it
must be cleared by writing a zero to this bit location. This is a
fault condition and data may have been lost.
NOTE
This condition should not occur during normal operation. Bit 10 is for diagnostic purposes only.
Bit 09: RX FIFO Almost Full – When this bit is high (1), the RX FIFO
has been almost full one or more times. This bit is latched.
Once set, it must be cleared by writing a zero to this bit
location. The assertion of the RX FIFO Almost Full bit
indicates the receiver circuit is operating at maximum
54 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
capacity. If it does occur, the PCI bus master should
temporarily suspend all write and read operations to the
board.
Bit 08: Bad Data – When this bit is high (1), the receiver circuit has
detected invalid data one or more times. This bit is latched.
Once set, it must be cleared by writing a zero to this bit
location.
Bit 07: Pending Net. Int. 4 – When this bit is high (1), one or more
type 4 network interrupts have been received. To see the
sender data and sender node ID, read the Interrupt Sender
Data 4 (ISD4) FIFO at offset $38 and the Interrupt Sender ID
(SID4) at offset $3C respectively.
Bit 06: Rogue Packet Fault - When this bit is set high (1), the board
is operating as either Rogue Master 1 or 0 and has detected
and removed a rogue packet. This bit is latched. Once set, it
must be cleared by writing a zero (0) to this bit location.
Bit 05: TX FIFO Full - When this bit is high (1), the TX FIFO has
been full one or more times. This bit is latched. Once set, it
must be cleared by writing a zero (0) to this bit location. This
is a fault condition and data may have been lost.
NOTE
This condition should not occur during normal operation. Bit 05 is for diagnostic purposes only.
Bit 03: Reset Node Request – When this bit is high (1), another node
on the network has requested that the local PCI bus master
reset this board. The RFM-5565 does not reset itself
automatically.
Bit 02: Pending Net. Int. 3 – When this bit is high (1), one or more
type 3 network interrupts have been received. To see the
sender data and sender node ID(s), read the Interrupt Sender
Data 3 (ISD3) FIFO at offset $30 and the Interrupt Sender ID
(SID3) FIFO at offset $34 respectively.
Bit 01: Pending Net. Int. 2 – When this bit is high (1), one or more
type 2 network interrupts have been received. To see the
sender data and sender node ID(s), read the Interrupt Sender
Data 2 (ISD2) FIFO at offset $28 and the Interrupt Sender ID
(SID2) FIFO at offset $2C respectively.
Bit 00: Pending Net. Int. 1 – When this bit is high (1), one or more
type 1 network interrupts have been received. To see the
sender data and sender node ID(s), read the Interrupt Sender
Data 1 (ISD1) FIFO at offset $20 and the Interrupt Sender ID
(SID1) FIFO at offset $24 respectively.
Local Interrupt Enable Register (LIER) BAR2 (Offset $14): A 32-bit register
containing a group of interrupt enables corresponding to the status bits in LISR.
56 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Table 3-49 Network Interrupt Command Register
NIC: BAR2 Offset $1D
NIC[3,2,1,0] Function
X000 Reset Node Request (sets LISR Bit 03 only, the user application must perform the
actual reset
X001 Network Interrupt 1 (stored in a 127 deep FIFO at the receiving node)
X010 Network Interrupt 2 (stored in a 127 deep FIFO at the receiving node)
X011 Network Interrupt 3 (stored in a 127 deep FIFO at the receiving node)
X100 Reserved (Setting to this type will only set the OWN DATA bit in the LCSR1)
X101 Reserved (Setting to this type will only set the OWN DATA bit in the LCSR1)
X110 Reserved (Setting to this type will only set the OWN DATA bit in the LCSR1)
X111 Network Interrupt 4 (stored in a 127 deep FIFO at the receiving node)
1XXX Global enable. Send to all nodes regardless of NTN Register
The NTD, NTN and the NIC registers described above are used to generate
network interrupts. Four pairs of registers described below are involved with
receiving those network interrupts.
58 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
Figure 3-1 Block Diagram of the Network Interrupt Reception Circuitry
Host Interrupt
Write $0003 to start the transfer, then poll the same register.
When Bit 4 is high (1), the DMA cycle is complete.
NOTE
Polling read cycles take priority over the DMA cycles. Overly aggressive polling will
slow the DMA transfer. Rather than polling for the DMA done condition, the user can choose to enable
the PCI interrupt on DMA done by setting Bit 18 of the INTCSR at offset $68 to high (1). Once the
interrupt is enabled, the user software routine waits for the interrupt to occur.
4. After the DMA is finished, clear the DMA completion bit with a write to
DMACSR0 as follows. This is necessary when using DMA interrupts.
DMA channel 0 Command/Status register:
60 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
3.5 Example of a Scatter-Gather DMA Operation for RFM-5565
Scatter-Gather DMA transfer is a mode usually used to perform large data
transfers separated into multiple smaller pages or blocks. Note that a data page
must not cross a 4-GByte address boundary. The DMA descriptor pointer is the
address for a chained list of page descriptors.
Each page descriptor defines the address and size of a data block plus a pointer to
the next descriptor block. The descriptors are automatically fetched when needed
and then data is read/written to the corresponding page. The descriptor chain is
processed until the data transfer is finished or the end of the descriptor chain is
reached, whichever comes first.
Page descriptor blocks cannot be mapped in 64-bit addressing space. The first
descriptor must be on a 16-byte boundary. For best performance, each descriptor
block should be aligned on a 16-byte or 8-byte boundary.
A descriptor chain must be created in PCI 32-bit memory space before starting a
Scatter-Gather DMA. Each descriptor in the chain has this format:
1st Dword: Lower 32-bit PCI Address for Data (each page must be aligned
on an 8-byte boundary),
2nd Dword: Upper 32-bit PCI Address for Data ($0 for 32-bit addressing),
3rd Dword: Number of bytes to transfer to/from PCI Address (each page
size must be a multiple of 8 bytes),
4th Dword: PCI Address of Next Descriptor (write $1 in this field to denote
end of chain)
Also, keep a total for the size of all data blocks pointed to by the chain. This total
length value must be written to the DMA transfer size register.
1. Base Address Register 0 stores the starting address of the Local Control and
Configuration registers, which include the DMA Control registers. The value
in this register is PCIBAR0.
2. There are six DMA registers that must be configured to set up the DMA
cycle. These registers will remain unchanged after the DMA cycle.
Write $0003 to start the transfer, then poll the same register.
When Bit 4 is high (1), the DMA cycle is complete.
NOTE
Polling read cycles take priority over the DMA cycles. Overly aggressive polling will slow the DMA
transfer. Rather than polling for the DMA done condition, the user can choose to enable the PCI interrupt
on DMA done by setting Bit 18 of the INTCSR at offset $68 to high (1). Once the interrupt is enabled, the
user software routine waits for the interrupt to occur.
4. After the DMA is finished, clear the DMA completion bit with a write to
DMACSR0 as follows. This is necessary when using DMA interrupts.
DMA channel 0 Command/Status register:
62 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
3.6 Example of a PCI PIO Sliding Window Operation for RFM-5565
RFM-5565 cards are currently available with 128 or 256 MBytes of installed
memory. Under some circumstances, it is useful to reduce the PCI memory
address space window size. For example, a BIOS may have difficulty dividing the
address space into enough windows with appropriate granularity for all of the
installed devices. In another example, the operating system may not be able to
assign resources for all of the drivers loaded. Reducing the PCI window size
allows the RFM-5565 to use a smaller footprint on the PCI bus address space.
However, changing the PCI PIO window size does not affect other functions of
the card. All of the installed memory on the card can be updated by data packets
on the Reflective Memory network. For example, a 256-MByte card will reflect
every value written in the 256-MByte Reflective Memory network address space.
Also, the RFM-5565 DMA engine can be used to access every byte of the memory
installed on the card. It is also possible to move (remap) the PCI PIO window to
access every byte of the memory installed on the card using PIO accesses.
Here is a brief description of selecting the PCI memory window size. There are
four possible choices: 2 MBytes, 16 MBytes, 64 MBytes or use the default full
memory size. Two switches on S1 are used to configure the PCI memory window
size. The switch settings should only be changed while the power is off. Use S1
switch positions 3 and 4 to select one of the four window sizes. Bits 20 and 21 of
RFM register LCSR1 (PCIBAR2 Offset $08) indicate the full installed memory size.
Bit 19 of LCSR1 is connected to S1 switch position 3 and bit 22 of LCSR1 is
connected to S1 switch position 4. Both bits 19 and 22 can be read by software (‘1’
when on, ‘0’ when off). The table below lists the number of PCI PIO window
selections available with various RFM-5565 memory options.
Number of Number of
Number of
PCI PIO LCSR LCSR PIO PCI
Switch S1 Switch S1 PIO Windows
Window 1 bit- 1 bit- Windows Windows
Position 4 Position 3 with 256
Size 22 19 with 64 with 128
MByte
MByte MByte
Default Off Off 0 0 1 1 1
64 MBytes Off On 0 1 1 2 4
16 MBytes On Off 1 0 4 8 16
2 MBytes On On 1 1 32 64 128
Two registers in PCIBAR0 are used to implement the PCI PIO Sliding Windows.
The LAS1BA register (Direct Slave Local Address Space 1 Range, PCIBAR0 Offset
$F0) is read-only. It is determined by switch settings and the installed memory
option. The LAS1RR (Remap) register (Direct Slave Local Address Space 1 Local
Base Address, PCIBAR0 Offset $F4) is writeable in bits 27:21. The 32-bit register
masks off invalid upper and lower bits based on switch and installed memory
settings (defaults to $00000001).
Consider this example with a PCI PIO window set to 2 MBytes. First, the
firmware will set the range register to $FFE00000 to indicate a 2-MByte PCI PIO
window. Next, the system (BIOS) will set the PCI Base Address (PCIBAR3) on a
NOTE
After writing a new value to the LAS1BA remap register, the user application should read the LAS1BA
remap register before accessing the new window. This ensures the new window mapping has taken
effect and subsequent memory accesses will be to the new memory window.
In summary, register LAS1RR is the range register corresponding to the size of the
PCI window and is read-only. Register LAS1BA is the writeable base address
register. It is used to remap or offset the PCI PIO window to access other sections
of the installed memory. The RFM-5565 firmware prevents the user from entering
an invalid Remap Value. The value written must be a multiple of the PCI window
size. For example, using a PCI window size of 2 MBytes with 64 MBytes of
installed memory means there are 32 valid base address settings from $00000000
to $03E00000, incrementing by $00200000 (all other bits are masked off when
written). Also, a 64-MByte card with a 64-MByte window has no valid base
address settings other than the default 0.
Since the PCI window size and the Remap register only affect PCI PIO accesses,
DMA (Local-to-PCI and PCI-to-Local) can be used normally to transfer up to
$7FFFFF bytes with another location on the PCI bus regardless of the Remap
value.
64 PCI-5565PIORC* Ultrahigh Speed Fiber-Optic Reflective Memory with Interrupts Publication No. 500-9367855565-000 Rev. D.0
3.7 Example of Network Interrupt Handling
The following is an example of the steps necessary to set up the RFM-5565 to
generate a PCI interrupt in response to one of the four basic network interrupts.
This example also lists the steps necessary to service that interrupt. When using
this example, it is advisable to examine Figure 2-1 and Figure 3-1 to obtain a
visual sense of the circuitry involved.
3.7.1 Setup
1. Clear any prior unscheduled interrupts in the SID1 FIFO by writing zero (0)
to the SID1 at PCIBAR2 + offset $24.
2. Clear any prior unscheduled interrupts in the SID2 FIFO by writing zero (0)
to the SID2 at PCIBAR2 + offset $2C.
3. Clear any prior unscheduled interrupts in the SID3 FIFO by writing zero (0)
to the SID3 at PCIBAR2 + offset $34.
4. Clear any prior unscheduled interrupts in the SID4 FIFO by writing zero (0)
to the SID4 at PCIBAR2 + offset $3C.
5. Using a read-modify-write operation, set Bit 07, Bit 02, Bit 01 and Bit 00 high
(1) in the LIER register at PCIBAR2 + offset $14. This allows any one of the
four basic network interrupts to assert the onboard signal LINTi#, provided
the global enable in the LISR is also high (1).
6. Write the value $4000 to the LISR register at PCIBAR2 + offset $10. The value
$4000 sets the Global Interrupt Enable (Bit 14) high (1) and clears any
unrelated sources. You may prefer to use a read-modify-write operation if
other sources in the LISR are to remain unchanged.
7. Using a read-modify-write operation, set Bit 8 and Bit 11 high (1) in the
INTCSR register at PCIBAR0 + offset $68. Bit 8 is the PCI Interrupt Enable
and Bit 11 is the Local Interrupt Input (LINTi#) Enable.
Read the LISR register at PCIBAR2 + offset $10. Determine if the Pending
Network Interrupt 4 (Bit 07), the Pending Network Interrupt 3 (Bit 02), the
Pending Network Interrupt 2 (Bit 01), or the Pending Network Interrupt 1
(Bit 00) is high (1).
Read the Interrupt 2 Sender ID FIFO at PCIBAR2 + offset $2C and place the value
in the desired user location. This value is the node ID of the source of the network
interrupt. Provided that there are no additional network interrupts stored in the
Sender ID FIFO, the act of reading this value will de-assert the Pending Network
Interrupt 2 bit (Bit 01) in the LISR, which in turn de-asserts the LINTi# line. De-
asserting the LINTi# line will de-assert the PCI interrupt.