S PCI memory reads and writes.
S PCI configuration reads and writes.
S PCI interrupt acknowledge reads.
PCI Transaction Decoding and PCI Transaction Details in the PCI Bus section discuss the response of the reference design to transactions initiated by a PCI busmaster. See the CPU Bus section for information on accessing the PCI bus from the CPU.
Succeeding sections discuss PCI bus arbitration, configuration transaction, and other PCI topics.
For information on PCI interrupts and MPIC, see the Exceptions section. Also see the MPIC data sheet.
For information the Ethernet and SCSI controllers, see the I/O Subsystems section. Also see the controller data sheets.
For more information on the ISA bridge, see the ISA and X-Bus section. Also see the ISA bridge data sheet.
| Table 1. Reference Design Responses to PCI_C[3:0] Bus Commands
|
||||
| C 3:0
|
PCI Bus Command
|
Can a PCI Bus Master-Initiate this Transaction?
|
660 Bridge Response to the Transaction
|
Can Another PCI
Target Claim the
Transaction?
|
| 0000
|
Interrupt Acknowledge
|
No. Only the 660
Bridge is allowed to
initiate.
|
None
|
Yes. The ISA bridge is
intended to be the
target.
|
| 0001
|
Special Cycle
|
Yes
|
None
|
Yes
|
| 0010
|
I/O Read
|
Yes
|
None
|
Yes
|
| 0011
|
I/O Write
|
Yes
|
None
|
Yes
|
| 0100
|
Reserved
|
No. Reserved
|
None
|
n/a
|
| 0101
|
Reserved
|
No. Reserved
|
None
|
n/a
|
| 0110
|
Memory Read
|
Yes
|
System memory read
|
Yes, if no address
conflict.
|
| 0111
|
Memory Write
|
Yes
|
System memory write
|
Yes, if no address
conflict.
|
| 1000
|
Reserved
|
No. Reserved
|
None
|
n/a
|
| 1001
|
Reserved
|
No. Reserved
|
None
|
n/a
|
| 1010
|
Configuration Read
|
No. Only 660 Bridge.
|
None
|
Yes
|
| 1011
|
Configuration Write
|
No. Only 660 Bridge.
|
None
|
Yes
|
| 1100
|
Memory Read Multiple
|
Yes
|
System memory read
|
Yes, if no address
conflict.
|
| 1101
|
Dual Address Cycle
|
Yes
|
None
|
Yes
|
| 1110
|
Memory Read Line
|
Yes
|
System memory read
|
Yes, if no address
conflict.
|
| 1111
|
Memory Write and
Invalidate
|
Yes
|
System memory write
|
Yes, if no address
conflict.
|
Unless the IGN_PCI_AD31# signal is asserted, PCI memory accesses in the 0 to 2G address range are ignored by the 660 Bridge. There is no system memory access, no snoop cycle, and the 660 Bridge does not claim the transaction. When the IGN_PCI_AD31# signal is asserted, the 660 Bridge maps PCI memory accesses from 0 to 2G directly to system memory at 0 to 2G. PCI memory accesses from 2G to 4G are mapped to system memory from 0 to 2G.
| Table 2. Mapping of PCI Memory Space, Part 1
|
||||
| PCI Bus Address
|
Other Conditions
|
Target Cycle Decoded
|
Target Address
|
Notes
|
| 0 to 2G
|
IGN_PCI_AD31# Deasserted
|
Not Decoded
|
N/A
|
No Response.
|
| IGN_PCI_AD31# Asserted
|
System Memory *
|
0 to 2G
|
Snooped by caches.
|
|
| 2G to 4G
|
|
System Memory *
|
0 to 2G
|
Snooped by caches.
|
| Note: *Memory does not occupy this entire address space. Accesses to unoccupied space are not decoded.
|
||||
Table 3 gives a more detailed breakdown of the reference design response to PCI memory transactions in the 0 to 2G range. Note that the preferred mapping of PCI memory is from 16M to 1G-2M so that it can be accessed by both the CPU and by PCI bus masters.
| Table 3. Mapping of PCI Memory Space, Part 2
|
|||
| PCI Bus Address
|
Target Resource
|
System Memory Address
|
Snoop Address
|
| 2G to 4G
|
System memory (1)
|
0 to 2G
|
0 to 2G
|
| 1G-2M to 2G
|
Reserved (2)
|
No system memory access.
The 660 Bridge ignores
PCI memory transactions in
this range.
|
No snoop.
|
| 16M to 1G-2M
|
PCI Memory
|
||
| 0 to 16M
|
PCI/ISA Memory (3)
|
||
1) The 660 Bridge maps PCI bus master memory transactions in the 2G to 4G range to system memory, and the CPU is unable to initiate PCI memory transactions to this address range, so do not map devices to this PCI memory address range.
2) The CPU (through the 660 Bridge) can not access the 1G-2M to 2G address range, so do not map PCI devices herein unless the CPU will not access them.
3) Transactions initiated on the PCI bus by the ISA bridge on behalf of an ISA bus master only (IGN_PCI_AD31# asserted for an SIO), are forwarded to system memory and broadcast snooped to the CPU bus from 0 to 16M. If this is not an ISA bus master transaction, then the 660 Bridge ignores it. Note that the 660 Bridge will also forward PCI transactions from 16M to 2G if IGN_PCI_AD31# is asserted during an ISA-bridge-mastered transaction, and that this capability is not normally used.
PCI/ISA I/O is mapped to PCI I/O space from 0 to 64K. The ISA bridge subtractively decodes these transactions (and PCI memory transactions from 0 to 16M). Other devices may actively decode and claim these transactions without contention.
PCI I/O is assigned from 16M to 1G-8M.
| Table 4. Mapping of PCI Master I/O Transactions
|
||
| PCI Bus Address
|
Target Resource
|
Other System Activity
|
| 1G-8M to 4G
|
Reserved (1)
|
The 660 Bridge ignores I/O transactions initiated by PCI
bus masters.
|
| 16M to 1G-8M
|
PCI I/O devices
|
|
| 8M to 16M
|
Reserved (1)
|
|
| 64K to 8M
|
Reserved (2)
|
|
| 0 to 64K
|
PCI/ISA I/O
|
|
1) The CPU (through the 660 Bridge) can not access this address range, so do not map PCI devices herein unless the CPU will not access them.
2) In contiguous mode, the CPU (through the 660 Bridge) can create PCI I/O addresses in the 64K to 8M range. In non-contiguous mode, the CPU can only access PCI addresses from 0 to 64K.
If ISA masters are utilized and the SIO is programmed to forward their cycles to the PCI bus, then no other PCI device (e.g., video) is allowed to be mapped at the same addresses because contention would result.
The SIO chip contains registers to control which ranges of ISA addresses are forwarded to the PCI bus.
ISA masters cannot access any PCI memory.
For more information on the handling of ISA bus master operations, see the 660 Bridge User's Manual and the SIO data book.
PCI bus masters are not able to access the boot ROM, the BCRs in the 660 Bridge, or the CPU bus.
During the transaction, the 660 Bridge L2 cache is monitoring the memory addresses. The L2 takes no action on L2 misses and read hits. If there is an L2 write hit, the L2 marks that block as invalid, does not update the block in SRAM, and does not affect the PCI transaction. L2 operations have no effect on PCI to memory bursts.
Single and burst transfers are supported. Bursts are supported without special software restrictions. That is, bursts can start at any byte address and end on any byte address and can be of arbitrary length. Also, the arbitration logic insures that the PCI does not monopolize the PCI bus.
As per the PCI specification, the byte enables are allowed to change on each data phase. This has no practical effect on reads, but is supported on writes. The memory addresses linearly increment by 4 on each beat of the PCI burst. All PCI devices must use only linear burst incrementing.
Table 5 shows which CAS# lines are activated when a PCI master writes memory. Note that CAS[0]# refers to byte addresses 0 mod 8, CAS[1]# refers to byte addresses 1 mod 8, etc. For read cycles, eight bytes of memory data are read on each access, but the master receives only the desired 4 bytes. The bytes are read or written to memory independently of BE or LE mode (the endian mode byte swappers are situated between the CPU and the rest of the system, not between the PCI and the rest of the system).
In ECC mode, PCI to memory transactions that result in less than 8-byte writes, cause the memory controller in the 660 Bridge to execute a read-modify-write operation, during which 8 bytes of memory data are read, the appropriate bytes are modified, the ECC byte is modified, and then the resulting 8 bytes are written to memory.
| Table 5. Active CAS# Lines - PCI to Memory Writes, BE or LE Mode
|
||||||||||||
| PCI_ AD[2]
|
Byte Enables BE[ ]#
|
Column Address Selects CAS[ ]#
|
||||||||||
| 3
|
2
|
1
|
0
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
|
| 0
|
1
|
1
|
1
|
1
|
|
|
|
|
|
|
|
|
| 0
|
1
|
1
|
1
|
0
|
X
|
|
|
|
|
|
|
|
| 0
|
1
|
1
|
0
|
1
|
|
X
|
|
|
|
|
|
|
| 0
|
1
|
1
|
0
|
0
|
X
|
X
|
|
|
|
|
|
|
| 0
|
1
|
0
|
1
|
1
|
|
|
X
|
|
|
|
|
|
| 0
|
1
|
0
|
1
|
0
|
X
|
|
X
|
|
|
|
|
|
| 0
|
1
|
0
|
0
|
1
|
|
X
|
X
|
|
|
|
|
|
| 0
|
1
|
0
|
0
|
0
|
X
|
X
|
X
|
|
|
|
|
|
| 0
|
0
|
1
|
1
|
1
|
|
|
|
X
|
|
|
|
|
| 0
|
0
|
1
|
1
|
0
|
X
|
|
|
X
|
|
|
|
|
| 0
|
0
|
1
|
0
|
1
|
|
X
|
|
X
|
|
|
|
|
| 0
|
0
|
1
|
0
|
0
|
X
|
X
|
|
X
|
|
|
|
|
| 0
|
0
|
0
|
1
|
1
|
|
|
X
|
X
|
|
|
|
|
| 0
|
0
|
0
|
1
|
0
|
X
|
|
X
|
X
|
|
|
|
|
| 0
|
0
|
0
|
0
|
1
|
|
X
|
X
|
X
|
|
|
|
|
| 0
|
0
|
0
|
0
|
0
|
X
|
X
|
X
|
X
|
|
|
|
|
| 1
|
1
|
1
|
1
|
1
|
|
|
|
|
|
|
|
|
| 1
|
1
|
1
|
1
|
0
|
|
|
|
|
X
|
|
|
|
| 1
|
1
|
1
|
0
|
1
|
|
|
|
|
|
X
|
|
|
| 1
|
1
|
1
|
0
|
0
|
|
|
|
|
X
|
X
|
|
|
| 1
|
1
|
0
|
1
|
1
|
|
|
|
|
|
|
X
|
|
| 1
|
1
|
0
|
1
|
0
|
|
|
|
|
X
|
|
X
|
|
| 1
|
1
|
0
|
0
|
1
|
|
|
|
|
|
X
|
X
|
|
| 1
|
1
|
0
|
0
|
0
|
|
|
|
|
X
|
X
|
X
|
|
| 1
|
0
|
1
|
1
|
1
|
|
|
|
|
|
|
|
X
|
| 1
|
0
|
1
|
1
|
0
|
|
|
|
|
X
|
|
|
X
|
| 1
|
0
|
1
|
0
|
1
|
|
|
|
|
|
X
|
|
X
|
| 1
|
0
|
1
|
0
|
0
|
|
|
|
|
X
|
X
|
|
X
|
| 1
|
0
|
0
|
1
|
1
|
|
|
|
|
|
|
X
|
X
|
| 1
|
0
|
0
|
1
|
0
|
|
|
|
|
X
|
|
X
|
X
|
| 1
|
0
|
0
|
0
|
1
|
|
|
|
|
|
X
|
X
|
X
|
| 1
|
0
|
0
|
0
|
0
|
|
|
|
|
X
|
X
|
X
|
X
|
| Note: X = active. Blank = inactive. Byte enables normally represent contiguous addresses. This table shows all cases.
|
||||||||||||
1. (CPUREQ) - 660 Bridge (the SIO normally parks the bus on the 660 Bridge)
2. (REQ1) - PCI slot 2
3. (SIOREQ) - SIO
4. (REQ0) - SCSI
5. (REQ2) - Ethernet
6. (REQ3) - PCI Slot 1.
For more information on arbitration, see the Registers section and the PCI Arbitration Controller section of the SIO data book. See the reference design schematics for the connection of the various PCI requests and grants.
There can be concurrency of cycles on the ISA bus (caused by DMA or ISA masters) with PCI or CPU transactions as long as the ISA bus operations are not forwarded to the PCI bus. Forwarding of ISA bus operations must wait for the ISA bridge to grant the PCI bus access to its ISA interface.
| Table 6. 660 Bridge Address Mapping of CPU Bus Transactions
|
|||
| Device
|
ID Sel Line
|
60X Address*
|
PCI Address
|
| 82378ZB PCI to ISA Bridge
|
A/D 11
|
8080 08XXh
|
0080 08XX
|
| 53C810 SCSI Controller
|
A/D 12
|
8080 10XXh
|
0080 10XX
|
| PCI Slot 1 (lower)
|
A/D 13
|
8080 20XXh
|
0080 20XX
|
| PCI Slot 2 (upper)
|
A/D 14
|
8080 40XXh
|
0080 40XX
|
| Multiprocessor Interrupt Controller
|
A/D 15
|
8080 80XXh
|
0080 80XX
|
| 79C970 Ethernet Controller
|
A/D 16
|
8081 00XXh
|
0081 00XX
|
| Note: * This address is independent of contiguous I/O mode.
|
|||
If it is not possible to use indexed BCRs to generate PCI configuration cycles, they can be generated by an alternate method known as the 650 Bridge compatible method. CPU accesses to the address range 2G+8M to 2G+16M cause the Bridge to arbitrate for the PCI bus and then to execute a type 0 PCI configuration transaction as described in the PowerPC Reference Platform Specification and implemented by the IBM27-82650 PowerPC to PCI Bridge. This is referred to as the 650 compatible configuration method.