Ibm system storage san volume controller (110 pages)
Summary of Contents for IBM CPC700
Page 1
CPC700 Memory Controller and PCI Bridge User’s Manual Version 1.1 Issue Date: 3/22/00 Preliminary...
Page 2
Nothing in this document shall operate as an express or implied license or indemnity under the intellectual property rights of IBM or third parties. The products described in this document are not intended for use in implantation or other direct life-support applications where malfunction may result in physical harm or injury to persons.
3.12 PLB Slave Interface to Memory (PCI to Memory) .......3-17 3.13 CPC700 Response for PCI to Memory Accesses .......3-18 3.14 Processor to DCR/Configuration Space .
• Byte swapping supported for bi-endian operation. With versions that support processor bus speeds up to 66 MHz and 83 MHz, the CPC700 allows the Pow- erPC to realize its full potential. To complement this operation, the CPC700 memory subsystem keeps up with the processor by providing an optimized memory controller.
Page 18
For mission critical, zero down time operations, the CPC700 incorporates Error Correction Code (ECC) cir- cuitry with the ability to correct data errors as well as detect address errors. The device also supports the processor’s address and data parity scheme. If processor data parity is not required, the unused pins can be configured to provide PCI arbitration.
The block diagram illustrates the internal and external bus frequencies of the CPC700, given a 66MHz pro- cessor bus. Each of the blocks in the diagram represents a core from the IBM Blue Logic core library. The architecture is based on two primary busses, the Processor Local Bus (PLB) and the On Chip Peripheral Bus (OPB).
Page 21
Processor to PLB Interface The CPC700 provides an interface to attach a 60x or 7xx processor to the internal PLB and to provide the processor with a low latency access path to local memory. Through this interface, the processor may access the PCI bus, local memory, external peripherals, and internal peripherals (UARTs, I2Cs, Timers, and interrupt controller).
- Single-beat PCI configuration reads and writes (type 0 and type 1) - PCI interrupt acknowledge - PCI special cycle • Buffering between PLB and PCI: - PCI target 32-byte write post buffer - PCI target 32-byte read prefetch buffer - PCI master 32-byte write post buffer CPC700 User’s Manual—Preliminary...
Page 23
33MHz PCI bus operation. Memory Controller The CPC700 Memory Controller provides the local PowerPC processor with a low latency access path to local memory and external peripherals. In addition, it supports hardware coherent accesses to the proces- sor’s local memory from the PCI bus.
Page 24
• Peripheral Device pacing with external “Ready”. The CPC700 generates, checks, and corrects ECC bits on their way to and from the memory controller. Write cycles to memory that are less than a word in width require the ECC controller to generate a read cycle to fetch the appropriate word, modify that word, generate the ECC bits, and write the word back out to memory.
Page 25
The CPC700 UARTs are functionally identical to NS16450 in character mode (on power up they will be in this mode). The UARTs can be put into FIFO mode to relieve the processor of excessive software over- head. Here internal FIFOs are activated, allowing 16 bytes (plus three bits per byte of error data in the RCVR FIFO) to be stored in both receive and transmit modes.
The CPC700 clocking is controlled by two PLLs that minimize clock skew between the internal latches of the CPC700 and the external devices in the system. PLL1 is only used when the PCI interface is used in asynchronous mode. When in synchronous mode, PLL1 is placed in bypass mode via pin strappings, and the PCI clock input pin must be pulled to ground.
Page 27
JTAG The IEEE 11.49.1 (JTAG) Boundary scan is included to facilitate tester requirements as well as for the support of board level testing and debug. The following JTAG commands are supported by the CPC700 JTAG TAP controller: EXTEST SAMPLE/PRELOAD BYPASS...
AP1 - [A8 - A15] AP2 - [A16 - A23] AP3 - [A24 - A31] A[0:31] High Address Bus: Input: Represents the physical address of the data to be transferred. Output: Represents the physical address of a snoop operation. CPC700 User’s Manual—Preliminary...
Page 30
Transfer Size: Indicates the data transfer size for the current operation. ARTRY_N Address Retry: This signal is asserted by either the processor or the CPC700 to indicate that the current address tenure needs to be rerun at a later time. TBST_N Transfer Burst: Indicates a burst transfer of four 64-bit double-words on the processor bus.
RST_N PCI RESET: This output may be used as the reset to PCI bus slots when the CPC700 is used as the primary host bridge. This signal will be asserted during three scenarios: Power on Reset: Following the deasertion of SYS_RESET_N, RST_N will remain active for a period of 500us while the internal PLLs lock after which, this signal will be deaserted.
Page 32
GNT_N functions as the Request[0] input from another PCI master device. When the internal PCI arbiter is disabled and an external arbiter is employed, this signal is the Grant input for the CPC700 from the external arbiter. REQ1_N Request[1]: When the internal PCI arbiter is enabled, this signal functions as the Request[1] input from another PCI master device.
DQM inputs of all DIMMs if ECC is used in the system. If ECC is not used, then ECC/DQM[1:7] lines make up the remainder of the 8-bit DQM bus. DQM[0] corresponds to Memory Data Lane 0. During reads, the CPC700 asserts DQM high to cause the SDRAM to tristate the SDRAM output. If DQM is low, the SDRAM drives the data onto the output.
ROM_ALE High ROM Address Latch Enable: When accessing a bank which is programmed for ROM, SRAM, or peripheral devices, the 24-bit memory address bus is provided in two cycles. The 12-bit address on pins MA[12,11,9:0] bus must be latched on the first cycle in order capture and hold the higher order address bits of the ROM / peripheral address.
System Clock Input: The system clock input must be one half the frequency and in phase with the local processor and SDRAM clocks. SYS_RESET_N System Reset Input: Resets the CPC700 to its initial default state. The internal reset will remain active for 500us after the SYS_RESET_N signal is deasserted.
Page 36
JTAG probe). Because the boundary scan function of the JTAG port does not work in dd 1.1 of the CPC700, we strongly recommend that this signal be brought out from the solder ball to at least a via, so that a board tester can drive the signal.
Chapter 3. Processor Interface The processor interface is the portion of the CPC700 that attaches a PowerPC 60x or 7xx processor to the internal PLB and the local memory controller. Through this interface, the processor may access the PCI bus, local memory, and the CPC700’s internal peripherals (UARTs, I C ports, timers, and interrupt control- ler).
3.4 Processor Interface to Memory, PCI, and Peripherals The CPC700 supports 1 full level of addressing pipelining on the processor bus and decodes the target of processor accesses based on the address range of the transfer. All of the processor accesses are decoded as one of the following: •...
3.5 Supported Processor Transfer Types Based on signals TT[0:3] (see Table 7), the CPC700 responds to processor initiated transfers by generat- ing a read transaction, a write transaction, or an address-only response. The CPC700 ignores TT[4] when evaluating processor initiated transfers.
Table 7. Supported Processor Transfer Type Encodings/Response (Continued) Processor Proc Bus CPC700 Response for CPC700 Response for TT[0:3] Operation Transaction Proc to Memory Proc to PLB 1100 TLB invalidate Address only Assert AACK_N, No other response, No PLB transaction 1101...
The following table corresponds to the state of the processor address bus for a given cycle (which may or may not be pipelined) and the corresponding response from CPC700. NOTE: For any of the transactions listed, the internal memory controller interface may be idle or busy (servicing a processor to memory write buffer flush or finishing the data tenure of a previous PCI or processor access to system memory).
3.7 Processor to PLB Master (PCI or Internal Peripherals) The CPC700 supports single beat (8 bytes or less) and burst (32 byte cache line) read and write accesses to the PLB. Processor requests that target PLB space are forwarded to the PLB Master interface which ini- tiates a request on the PLB bus for the associated cycle.
Page 45
Table 11. CPC700 Response to Processor Transactions to the PLB (Continued) Proc-PLB Proc-PLB Proc Read Write Slave Buffer Buffer (Snoop) Response PLB Rd Deallocated Deallocated Snoop ABORT PLB read cycle, ARTRY_N CPU, grant to snooper Pending PLB Rd Deallocated Allocated...
The CPC700 supports all processor generated Address Only cycles. In response to a processor Address Only cycle, CPC700 acknowledges the cycle and takes no other action. As a result, CPC700 does not prop- agate any Address Only cycles beyond the processor bus interface.
D.C. - Don’t Care 3.9 Processor Bus Arbiter The CPC700’s processor interface logic contains the processor bus arbiter which controls access to the local processor bus. It arbitrates between processor requests and the internal snoop engine (PCI to mem- ory) requests.
3.10 Broadcast Snoop Cycles The CPC700 supports PCI accesses to system memory via the PLB Slave interface. Memory coherency is maintained by the internal snoop engine. PCI requests which address system memory are accepted and snooped in the processor's L1 cache before allowing the access. Snoop cycles to the processor are gener- ated on behalf of the PCI interface by the internal snooper.
3.11 Byte Swapping CPC700 includes support which is designed to ease the use of a Big Endian processor operating in a Little-Endian system. This support includes the ability to swap bytes during read and write accesses to the internal PLB bus from the processor. This mechanism can be used when accessing the PCI bus from the processor.
32-bit data as seen from both the PowerPC processor and the PCI bus. As in the default method, bit ordering within bytes is preserved: PCI_BYTE3[31:24] corresponds to CPU/MEM_BYTE0[0:7] and PCI[31:0] = CPU/MEM[0:31] CPC700 User’s Manual—Preliminary 3-15...
Figure 7. Alternative Byte Swapping Method Note: As indicated, this swapping occurs only on PCI to local memory accesses. Even if this byte swapping mechanism is enabled, PCI accesses to CPC700 internal PCI configuration registers are not affected. 3.11.2.3 PCI to Memory Byte Swapping Examples To illustrate the two methods of byte swapping which may be used for local memory accesses from the PCI bus, assume the local processor has written a 32-bit value of x’12345678’...
1 prior to MC request 8W Line 1 x Quad DW (wrap) 1 prior to MC request W Burst DW(s) and/or Quad DW(s) 1 per 32 byte boundary crossed W - Word, DW - Double Word CPC700 User’s Manual—Preliminary 3-17...
3.14 Processor to DCR/Configuration Space Access to the CPC700 processor interface and the memory controller is through a dedicated on chip bus called the Device Configuration Register Bus (DCR Bus). DCR access uses an indirect addressing method whereby a configuration address register and a configuration data register are used to address all of the configuration registers in the processor interface and the memory controller.
Page 55
Memory Controller Config data register xFF50_000C DCR configuration bus cycles unpipeline the processor bus interface and trigger the flushing of all CPC700 processor interface write buffers (Processor-PLB and Processor-Memory) before completing. Furthermore, DCR configuration cycles are required to be 4 byte, aligned accesses.
3.15 Error Handling and Reporting 3.15.1 Processor transfer type errors The processor interface may be enabled to detect and report processor transfer attribute errors. On a processor read, if a transfer attribute error is detected, the processor interface will complete the access and return all 1’s (that is, each bit in the processor data bus will be set to 1) with the transfer acknowledge assertion.
If detection is enabled via ERREN1[6], the error will be logged by setting ERRDET1[5], the associated pro- cessor address and transfer attributes will not be logged, and if enabled via PRIFOPT1[1], MCP_N will be asserted for a minimum of two clock cycles. CPC700 User’s Manual—Preliminary 3-21...
PLB_MErr will be asserted into the 60x-PLB master (by the targeted PLB slave) on any 60x-PLB transfer for which the responding PLB slave encounters an error. In the CPC700, the only PLB slave targets that could assert PLB_MErr into the 60x-PLB master are the PCI interface and the OPB.
• There are no internal registers associated with MCP_REQ. The external logic that asserts MCP_REQ to CPC700 must provide mask and status information. • The MCP_REQ input contains no edge detection logic. The CPC700 has no memory of any previous state of MCP_REQ.
• CPC700 will not assert MCP_N while MCP_REQ is active unless MCP_N assertion is enabled. If MCP_REQ is active when MCP_N assertion is enabled, then MCP_N will be asserted. • Unlike other processor bus related error sources, when CPC700 samples MCP_REQ asserted, it does NOT disable further error detection.
PLBM_PRI Processor Interface - PLB Master Request Priority This field indicates the PLB request priority associated with 60x to PLB transfers. This field is currently hardcoded to b’11’ indicating the highest priority and is read only. CPC700 User’s Manual—Preliminary 3-25...
Enables use of PLBSWRINT region. When the PLB address falls within the 16KB region as programmed into the PLB- SWRINT register, an interrupt will be generated to the CPC700 interrupt controller. System software may separately program the interrupt controller to generate an interrupt to the processor based on this condition or not.
This bit enables the detection of memory select errors associ- ated with a PLB Master access to system memory. It enables the assertion of Merr by a PLB slave, and the trap- ping of address information in the BESR and BEAR registers. CPC700 User’s Manual—Preliminary 3-27...
3.16.7 PLBMTLSA1 - PLB Master Byte Swap Region 1 Starting Address PLBMTLSA1 contains the starting address of byte swapping region 1. This starting address identifies the beginning of a region with a 16KB granularity. Address Offset: Width: Reset Value: x0000_0000 Access: Read/Write Name...
PLBMTLEA2 contains the ending address of byte swapping region 2. This ending address identifies the ending of a byte swapping translation region with a 16KB granularity. Address Offset: Width: Reset Value: x0000_0000 Access: Read/Write Name Reset Description Value 0:17 XLR_2_EA Processor-PLB Byte Swap Region 2 Ending Address 18:31 Reserved CPC700 User’s Manual—Preliminary 3-31...
3.16.11 PLBMTLSA3 - PLB Master Byte Swap Region 3 Starting Address PLBMTLSA3 contains the starting address of byte swapping region 3. This starting address identifies the beginning of a region with a 16KB granularity. Address Offset: Width: Reset Value: x0000_0000 Access: Read/Write Name...
PLBSNSEA0 identifies the ending address of the no-snooping region with a 16KB granularity. Reserved bits are "don’t cares" for address decoding purposes. Address Offset: Width: Reset Value: x7FFF_C000 Access: Read/Write Name Reset Description Value 0:17 NSEA0 7FFFC Snoop Disable Ending Address 18:31 Reserved CPC700 User’s Manual—Preliminary 3-33...
PCI accesses to system memory. Only Master 1 which corresponds to the PCI interface is used in the CPC700. Master 0 corresponds to the processor interface o itself which will never access its own slave port through the PLB.
This register is logically part of the PLB Slave interface within the processor interface and contains the ad- dress associated with any errors encountered during PLB Master accesses to system memory. In the CPC700 the only PLB Master which accesses the system memory via the PLB is the PCI interface. Name...
Bank 0 is typically used for the boot ROM. 4.1 Features Synchronous DRAM: • Memory bus operates at the same frequency as the processor bus (up to 66 MHz with CPC700-66 or up to 83 MHz with CPC700-83) • Up to 4 banks (Bank 0 defaults to ROM) •...
• Support for mixing ECC and Non-ECC DIMMs in the same system • ECC checking may be disabled 4.2 Memory Controller Block Diagram A block diagram of the CPC700 memory controller is shown in Figure 8. DCR Bus register outputs...
32 byte aligned address transferring a four doubleword line. 4.5 SDRAM The CPC700 memory controller supports both dual and quad internal bank SDRAMs in 32-bit and 64-bit configurations (40-bit and 72-bit if using ECC) with fully programmable timing parameters. Both standard and pipelined architecture SDRAMs are supported and the memory controller provides a mechanism to enable/disable read and write with auto-precharge.
System: After Reset is deactivated, pause the amount of time indicated in the SDRAM specification. - Example: IBM 16MB SDRAM requires 100us pause and 64MB SDRAM requires 200us. Configure SDRAM related configuration registers (may occur during pause period). Set DC_EN = 1 in the MCOPT1 register to enable the SDRAM controller Step 3 automatically causes the SDRAM Controller to: Issue Precharge command to all banks.
PCI to memory accesses when using SDRAM. This mapping of the processor’s physical ad- dress to the CPC700’s Bank Address (BA[1:0]) and Memory Address (MA[12:0]) pins is done by the CPC700 on a per bank basis based on the mode settings in the DRAM Addressing Mode (DAM) registers. 4.5.5.1 32-Bit Memory Mapping The following tables specify the organization of the SDRAM as follows: ROW x COLUMN (INTERNAL BANKS).
Page 81
13 x 9 (2) Column *Enables support of 13 x 9 (2). Mode 2 12 x 10 (4) 13 x 10 (2) A7** Column A7** **Enables support of 13 x 10 (2) Mode 3 13 x 9 (4) Column CPC700 User’s Manual—Preliminary...
Mode 3 13 x 10 (4) Column Mode 3 13 x 11 (4) Column # Column address bit 10 sent out on M11 for 13 x 11 (4) parts. This bit is driven by the SDRAM controller. Mode 4 12 x 8 (2) 13 x 8 (2) 12 x 8 (2) Column...
Page 83
*Enables support of 13 x 9 (2). Mode 2 12 x 10 (4) 13 x 10 (2) A6** Column A6** **Enables support of 13 x 10 (2) Mode 3 13 x 9 (4) Column Mode 3 13 x 10 (4) Column CPC700 User’s Manual—Preliminary 4-11...
Mode 3 13 x 11 (4) Column # Column address bit 10 sent out on M11 for 13 x 11 (4) parts. Mode 4 12 x 8 (4) 13 x 8 (2) 12 x 8 (4) Column 4.5.6 Precharge Command Issuing the Precharge Command instructs the SDRAM to precharge all banks and is generated by the SDRAM controller as needed when Auto-Precharge is disabled as configured by register bit SD_APGE.
32 or 64-bit width (as set via the SD_WDTH bit in the ECCCF register) and configures the SDRAM for burst of 8 or burst of 4 respectively. Table 26. Mode Set Command Vector 64-bit bus SD_CASL 32-bit bus SD_CASL CPC700 User’s Manual—Preliminary 4-13...
4.5.9 Timing Parameters 4.5.9.1 SDRAM Timing Diagrams The following timing diagrams are included to illustrate the SDRAM programmable timing parameters only. CLOCK BA(1:0) MA(12) MA(11:7) 00000 MA(6:5) MA(4) SD_CASL MA(3) MA(2:0) RAS_/SD_CS_ SD_PTA min. satisfied Min. of 4 CLKs SD_RAS_ SD_CAS_ CAS_/SD_DQM Figure 10.
Bit 0 of the peripheral address bus is the low order bit for the device width programmed for the active CPC700 bank. If the width is programmed as byte, then the address bus carries byte addresses. If the width is programmed as doubleword (8 byte), then the address bus carries doubleword addresses (bit 0, the LSb of the peripheral bus, references a doubleword, and no byte address exists on the bus).
programmed as a doubleword device, any byte may be accessed with only one read occurring on the bus, but valid data exists only at the bytes on doubleword boundaries. Thus, when programmed as doubleword, instruction fetching cannot occur from the NVRAM. 4.6.2 Reads The internal memory data interface to the ROM controller is 64 bits wide independent of the ROM device width.
4.6.5 Device Attachment Devices must be attached left justified with bit 0 as the MSB on the ROM/Peripheral bus as indicated in Table 30. CPC700 User’s Manual—Preliminary 4-31...
The CPC700 ROM controller has programmable timings that allow for ROM, SRAM, and peripheral sup- port. An external READY input is provided to allow for device-paced transfers on both READs and WRITEs.
The CPC700 is inherently a Big-Endian system. ROM and peripherals which are typically specified as litttle endian should be connected with their MSB of their data bus attached to the CPC700’s MSB. That is for a 64-bit ROM, CPC700 M_DATA(0) should connect to ROM(63) and CPC700(63) connects to ROM(0).
clock READ# WRITE# R_DATA READY Figure 37. Burst Mode Read, Asynchronous Ready Enabled 4.7 ECC The ECC module uses a 64 bit SEC/DED code which has been modified to support detection of single bit address errors. The module supports a 64 data bit / 8 check bit interface, as well as a dual 32 data bit / 8 check bit interface (the dual 32-bit interface is used when the memory controller has an external 32 data bit memory interface).
The ECC Configuration register is used to configure the various modes of the ECC controller. If ECC is implemented in a system, then the CPC700 will provide eight ECC bits and a single DQM output since all memory transactions will be full 64-bit transfers (or 32-bit if 32-bit mode is selected). Write transactions of less than the full data width will generate a read-modify-write cycle in order to generate ECC across the entire data width.
MCP enable bit (bit 1) of the PRIFOPT1 register is set. Correctable ECC errors will be reported to the CPC700’s interrupt controller via IRQ 0. System software may seperately program the interrupt controller to generate an interrupt to the processor based on this condition or not. See Section Chapter 10., “Interrupt Controller”...
The dataflow for local processor to PCI in Table 37. assumes that byte swapping is disabled. See Section 3.11, “Byte Swapping” for a discussion on how byte swapping affects dataflow between the processor and the PCI bus as well as between the PCI bus and local memory. Table 37.
Note: In the tables of register field descriptions throughout this specification, some bits are shown shaded. Those bits are reserved in the CPC700. Reading of reserved bits will produce unpredictable values. Soft- ware must use appropriate masks to extract the desired bits. Writes must preserve the values of reserved bit positions by first reading the register, merging the new values, and writing the result back.
Page 116
4.9.1.1 MCOPT1 - Memory Controller Options 1 Address Offset: Width: Reset Value: x0000_0001 Access: Read/Write This register sets the options for the memory controller. Name Reset Description Value DC_EN SDRAM Controller enable: 0 - Disable 1 - Enable This bit enables the portion of the memory controller which ac- cesses SDRAM.
Memory bank 4 enable. 0 - Disable 1 - Enable 5:31 Reserved 4.9.1.3 MEMTYPE - Installed Memory Type Address Offset: Width: Reset Value: x0000_0000 Access: Read/Write This register must be configured for each memory bank that is enabled. CPC700 User’s Manual—Preliminary 4-45...
Name Reset Description Value MT_0 Bank 0 Memory: 00 - ROM 01 - DRAM 1x - RESERVED These bits default to 00 to enable boot ROM in bank 0. MT_1 Bank 1 Memory: 00 - ROM 01 - DRAM 1x - RESERVED MT_2 Bank 2 Memory: 00 - ROM...
Name Reset Description Value 0:11 MBxEA Memory Bank x ending address. Bit 0 corresponds to CPU A0, bit 11 corresponds to CPU A11. 12:31 Reserved 4.9.2 SDRAM Specific Configuration Registers 4.9.2.1 SDTR1 - SDRAM Timing Register 1 Address Offset: Width: Reset Value: x0004_9C0A Access:...
Page 121
110 - 10 CLK 111- Reserved 30:31 SD_RCD SDRAM RAS to CAS delay. Indicates the number of clock cycles from Activate Command to Read or Write Command. 0x - Reserved 10 - 2 CLK 11 - 3 CLK CPC700 User’s Manual—Preliminary 4-49...
4.9.2.2 RWD - Bank Active Watchdog Timer Address Offset: Width: Reset Value: xFF00_0000 Access: Read/Write This register limits the maximum internal bank active time for SDRAM. This register represents the maxi- mum amount of time in units of eight processor bus clock cycles. Name Reset Description...
4.9.3 ROM Specific Configuration Registers 4.9.3.1 RPBxP - ROM/Peripheral Bank Parameters Address Offset: xE0, E4, E8, EC, F0 Width: Reset Value: xFC03_F8F0 Access: Read/Write These configuration registers consist of one register per bank with each register being used to configure the access modes and timings on a per-bank basis. The controller has programmable timings that allow for ROM, SRAM, and peripheral support.
Page 125
Initial wait states on subsequent accesses of all burst trans- fers. The number of cycles from address valid to the next address valid including the time for latching the ROM/Peripheral ad- dress is 1+FWT for the first access to a bursting device. 28:31 Reserved CPC700 User’s Manual—Preliminary 4-53...
4.9.3.2 RBW - ROM Bank Width Address Offset: Width: Reset Value: x0000_0000 Access: Read/Write This register must be configured to indicate the width of the installed ROM or external peripheral in each bank. Name Reset Description Value 64N8_0 ROM Bank 0 width. 00 - 8 bit 01 - 16 bit 10 - 32 bit...
When a BANKn enable is set to 0, the con- troller will use the byte selects (DQMs) to perform the write. This capability allows the CPC700 to support mixing of ECC and non-ECC banks. In systems which support ECC and therefore have a single DQM output, less than 8-byte writes to non-ECC banks will result in a read-modify-write operation.
MCP enable bit (bit 1) of the PRIFOPT1 register is set. Correctable ECC errors will be reported to the CPC700’s interrupt controller via IRQ 0. System software may seperately program the interrupt controller to generate an interrupt to the processor based on this condition or not. See Section Chapter 10., “Interrupt Controller”...
Page 131
1 - Error Occurred in Bank 2 BNK3ERR Bank 3 Error 0 - No Error 1 - Error Occurred in Bank 3 BNK4ERR Bank 4 Error 0 - No Error 1 - Error Occurred in Bank 4 21:31 Reserved CPC700 User’s Manual—Preliminary 4-59...
This interface is fully compliant with version 2.1 of the PCI Specification. The PCI Interface communicates with the 6xx/7xx processor and local memory via the Processor Local Bus (PLB) which is internal to the CPC700. The PCI Interface is both a slave and a master on the PLB. 5.2 Features •...
PCI Memory - Range 0 h0000_0000_0000_0000 hFFFF_FFFF_FFFF_FFFF hF7FF_FFFF PMM 0 registers map a region in PLB space to a region in PCI memory space. The address ranges are fully program- mable and support both 32-bit and 64-bit PCI addresses. CPC700 User’s Manual—Preliminary...
Table 41. PLB Address Map (Continued) PLB Address Range Description PCI Address h8000_0000- PCI Memory - Range 1 h0000_0000_0000_0000 hFFFF_FFFF_FFFF_FFFF hF7FF_FFFF PMM 1 registers map a region in PLB space to a region in PCI memory space. The address ranges are fully program- mable and support both 32-bit and 64-bit PCI addresses.
The size of each PTM is programmable, using the Memory Size/Attribute registers. The size is a power of two, and is a minimum of 4KB and a maximum of 4GB. The PLB and PCI address spaces for each PTM are aligned to this size. CPC700 User’s Manual—Preliminary...
This section describes how the CPC700 handles read and write requests from a PCI master device. The CPC700 responds as a PCI target to PCI Memory transactions when the PCI address in within one of the two PTM ranges and the Memory Access bit of the PCI Command Register is enabled. The CPC700 responds by claiming the PCI cycle, and mastering a cycle on the PLB.
5.6.2 Handling of Reads from PCI Masters The CPC700 responds to PCI Memory Read, Memory Read Line and Memory Read Multiple commands. The PCI interface initiates all PLB reads as single-beat or word burst transfers. Memory Read generates a PLB single-beat read while Memory Read Line and Memory Read Multiple generate PLB word bursts. In the case of Memory Read Line, the PCI interface encodes a burst length on the M[x]_BE pins of the PLB, which corresponds to the number of words from the start address to the end of a 32-byte boundary.
The PCI interface responds to Memory Write and Memory Write and Invalidate commands. All PCI master writes are posted. A 32 byte write buffer is used for this purpose (in the CPC700, the memory controller also has a 32-byte write post buffer, thus a total of 64 bytes can be write posted). The write buffer accepts up to two separate PCI write transactions.
2 bytes because that is the maximum size possible for a PCI data phase with non-contiguous byte enables. • When a PCI data phase with contiguous (but not all active) byte enables is detected, the CPC700 con- tinues accepting data, but that data phase is converted into one single beat, 1-3 byte PLB write, inde- pendent of previous PCI data phases.
Page 144
Table 43.PCI Interface Responses to PCI Requests (Continued) PCI Transaction PLB Size PCI, PLB Bus PLB Response PCI Interface Action Action memory read single-beat read PCI: DEVSEL_ PLB_M[x]Rearbi- retry PCI trate PLB: request bus memory read line word burst read PCI: DEVSEL_ PLB_M[x]AddrAck transfer PCI burst...
The term “single beat” or “1-4 byte” in reference to PLB transfers refers to the M[x]_size=0000b transac- tion type. The CPC700 initiates the following commands as a PCI master: • I/O Read and I/O Write This command is generated in response to PLB 1-4 byte read or write requests that decode to one of the two PCI I/O spaces.
This command is generated in response to a PLB 1-4 byte write to address FED0_0000h. As PCI target the CPC700 accepts Memory Write and Invalidate (MWI) on incoming transactions. But as PCI master it never initiates Memory Write and Invalidate (MWI) transactions. All PCI memory writes are performed with Memory Writes.
(Note that in the CPC700, the CPU interface logic also contains a two-entry, write post buffer. Thus a total of four writes can be posted between the CPU and the PCI bus.) The buffers are not snooped, and are always completed on the PCI bus in the same order as they are received on the PLB bus.
Rearb PLB master 5.8.2 Completion Ordering The CPC700 implements the following completion ordering rules: PCI master writes are accepted if there is room in the PCI write post buffer. New PCI master reads are accepted if there is no delayed read (DRR or DRC) in progress: If PCI write post buffer is empty, then begin a connected tenure read, resulting in: Read completes connectedly.
Various options are available for selecting PCI operating frequencies through the use of strapping pins where pullup or pulldown resistors on certain CPC700 I/O signals are read during system reset. The strapping pins and the corresponding frequency modes are indicated in Table 46.
20%. Also, disconnects occur more frequently. 5.9 Bridge Configuration The CPC700 has two sets of configuration registers for configuring the PCI interface, handling errors, and reporting status. The Local Configuration Registers control PLB related functions, and can only be accessed by the processor.
Note: The Little-Endian to Big-Endian conversion may also be accomplished through the use of the byte swapping region registers of the CPC700’s processor interface. See Section 3.11 “Byte Swapping” and Section 3.16.6 “PLBMIFOPT - PLB Master Interface Options” for information on using the CPC700’s byte swapping capabilities.
(least significant) bits of the PCI address are passed through from the PLB address. Only bits 31:12 are writable; bits 11:0 are always zero. 5.9.1.4 PMM 0 PCI High Address PLB Address: FF40_000Ch Width: 32 bits Reset Value: Undefined CPC700 User’s Manual—Preliminary 5-21...
This register defines the high 32 bits of the PCI address that is generated in response to PLB access to range 0. If this register is greater than zero the CPC700 generates a Dual Address cycle, using the value in this register as the high 32 bits of the PCI address.
32 bits Reset Value: Undefined Access: Read/Write This register defines the high 32 bits of the PCI address that is generated in response to PLB access to range 2. See PMM 0 PCI High Address for details. CPC700 User’s Manual—Preliminary 5-23...
5.9.1.13 PTM 1 Memory Size/Attribute PLB Address: FF40_0030h Width: 32 bits Reset Value: Undefined Access: Read/Write This register defines the size and attributes of the region of PCI Memory space that is mapped to local (PLB) space through PTM 1 (see Table 48.). It affects the way PCI Configuration register PTM 1 BAR works.
PTM 2. See PTM 1 Local Address for details. 5.9.2 PCI Configuration Register and Cycles The processor can generate Configuration cycles on the PCI bus and access the CPC700 PCI configura- tion registers using the PCICFGADR and PCICFGDATA registers that are found in PLB address space.
5.9.3 PCI Interface Configuration Registers These registers can be accessed by both the processor and the PCI (if enabled). They are accessed by the PCI with Configuration Type 0 cycles when the IDSEL input of the CPC700 is active. 5-26...
The vendor ID register is a 16-bit register used to identify the manufacturer of the PCI device. This register is 1014h (index 00h = 14h, index 01h = 10h) at reset. This is the vendor ID assigned for all IBM-produced PCI devices.
0 when read. Memory Access Controls the CPC700’s response as a PCI Memory target. A value of 1 enables the CPC700 to respond as a target. This bit is 0 (disabled) at reset. PCI Master Enable Enables the CPC700 to master cycles on the PCI bus.
Indicates that the device is capable of running at 66 MHz. The CPC700 can be configured to run at 33MHz or 66MHz. This bit is a 0 at reset. The local processor should write this bit to 1 if the CPC700 is configured for 66MHz PCI operation.
The revision ID register is an 8-bit register used to hold the current incremental revision numberof the PCI interface. The reset value is the version of the PCI interface as well as the revision level of the CPC700. Tthe local CPU (PLB master) has read/write access to this register.
Reset Value: Access: Read The PCI cache line size register determines the size of a PCI cache line. The CPC700 does not support a PCI cache, therefore this register is read-only and returns 00h when read. 5.9.3.8 PCI Latency Timer...
Reset Value: Access: Read The PCI BIST register is used for control and status of BIST. The CPC700 does not implement BIST, there- fore this register is read-only and returns 00h when read. 5.9.3.11 PCI Base Address Register 0 (PCIBAR0)
The subsystem ID register is a 16-bit register used to hold the device ID of the subsystem or add-in board. Note: the Device ID register holds the device ID for the CPC700, which can be used in many different designs.
Address offset: 3Dh Width: Reset Value: Access: Read The PCI interrupt pin register tells which PCI interrupt line the device uses.The CPC700 does not generate PCI interrupts, therefore this register is read-only and returns 00h. 5.9.3.21 PCI MIN_GNT Address offset: 3Eh Width:...
Access: Read The PCI bus number register is used to identify the number of the PCI bus controlled by the CPC700. The CPC700 is not a PCI to PCI bridge, therefore this register is read-only and returns 00h when read.
Access: Read/Write The CPC700 PCI arbiter provides arbitration for up to 6 devices at PCI speeds up to 33Mhz. It is enabled/ disabled based on the boot strapping of the CPC700 TT[4] signal. See Section 6.4 “Power on Reset Pin Strapping Options”...
This bit enables the detection of master aborts when the CPC700 Enable is the master during an error condition. If this bit is 1, the CPC700 is enabled to drive Sl[x]_MErr on the PLB bus in response to a master abort. If this bit is 0, driving of Sl[x]_Merr in response to master abort is masked.
SERR# Asserted on This bit is set when the CPC700 asserts PCI_SERR# on the PCI Received MErr bus in response to the PCI interface receiving PLB_MErr while PLB master.
fields for that master until the MxFL field is cleared. If the PLB_lockerr signal is low for the above situation, the error will be reported and the MxFL field will not be set. Additional errors will also be reported. CPC700 User’s Manual—Preliminary 5-39...
Name Description 19:0 Reserved M1AL Master 1 (the PCI interface in the CPC700) SEAR Address Lock 0 - SEAR1 Unlocked 1 - SEAR1 Locked M1FL Master 1 (the PCI interface in the CPC700) SESR Field Lock 0 - SESR Unlocked...
PCI Bridge are NOT reset by this bit. External Write to PCI When an external PCI master writes to the PCI Command register, Command Interrupt this bit is set and an interrupt is generated to the CPC700 interrupt controller (IRQ 2). 15:14 Reserved Reserved, always read as 0.
5.10 Error Handling 5.10.1 Introduction The CPC700’s PCI Interface supports the detection and reporting of several types of errors. The errors are reported to the PLB or the PCI and status information is saved in the configuration register set so that error type determination can be done.
0011 16-word line read/write Memory Upon detection of this error, the CPC700 will set the PLB Unsupported Transfer Type bit of the Error Status Register (bit 0). 5.10.3.2 PCI Master Abort This error is generated by the CPC700’s PCI master when no target responds with PCI_DEVSEL# within the required time-out window and error detection is enabled.
5.10.3.4 PCI Target Data Bus Parity Error Detection This error is generated when the CPC700’s PCI target detects a data bus parity error on write data from a PCI master doing a write cycle to PLB memory. PCI uses even parity.
This error is generated when a data bus parity error is detected on the PCI bus during a cycle which is mastered by the CPC700’s PCI master. The CPC700’s PCI master will check parity on read cycles and sample PCI_PERR# on write cycles. The bridge PCI master may assert PCI_PERR# if it detects a parity error on a read as explained below.
PLB_MErr detection. If bit 5 is set, the bridge PCI target will execute a target abort. If bit 4 is set, the CPC700 PCI target will assert PCI_SERR# and allow the transaction to continue. If both bits 4 and 5 are set, the bridge PCI target will both target abort and assert PCI_SERR#.
Figure 43. shows the desired address map. System memory resides from 0 to 0FFF_FFFFh in the CPU/ PLB address space. It is accessible from the PCI in the same address space (the CPC700 as a memory target) as defined by PTM1/BAR1. PTM2/BAR2 is not used and disabled in this example. The CPU/PLB master has two spaces in which to access PCI Memory space.
5.11.1.4 Target Bridge Initialization The CPC700 can also respond as a config target; however, it only responds as a config target when its ID- SEL pin is attached (rather than pulled inactive). This is done when the CPC700 is not the primary (host) PCI bridge.
Page 183
Config Enable bit: • The address map (see Section 5.11.1.1 “Address Map Initialization” ) • PCI Vendor ID • PCI Device ID • PCI Revision ID • PCI Class • PCI Subsystem ID • PCI Subsystem Vendor ID. CPC700 User’s Manual—Preliminary 5-51...
See Section 6.3.2, “Internal Peripheral Reset Control”. The system designer must ensure that the RESET_OUT_N output from the CPC700 does not cause the SYS_RESET_N input to the CPC700 to be driven low. This would cause the tuning bits to be reset to their factory defaults.
6.5.5, “PLL Tuning Control Register (CPRPLLTUNE)” for details. • RST_N is intended to be used as the PCI reset when the CPC700 is the main system host bridge. In addition to being activated during power-on reset, it may also be activated by writing to bit 12 of the...
As shown in Figure 45, a typical reset system is composed of several elements. The reset resources (push-button, power supply supervisor, power-on reset, etc.) drive an active low signal into the SYS_RESET_N input of the CPC700. The CPC700 activates the RESET_OUT_N signal from the asser- tion of SYS_RESET_N until 500 µsec. after the deassertion of SYS_RESET_N.
The RESET_OUT_N signal is ANDed with the HRESET# output of the RISCWatch probe, allowing either the CPC700 or the RISCWatch probe to reset the CPU. Since the CPC700 is not reset by a RISCWatch HRESET#, there is no need to extend HRESET# to the CPU.
Async 49 - 67 MHz pulldown pullup pullup Sync (2:1) 25 - 35 MHz pullup don’t care pulldown The status of the pin strapping may be read through the register shown in Table 69.. CPC700 User’s Manual—Preliminary...
Read/Write This register can be used to reset the CPC700’s UART, IIC, and GPT internal peripherals. Note that setting a peripheral’s reset bit in the CPRRESET register will hold the peripheral in a reset state until its reset bit is cleared (written to a logic 0).
Timers” for additional information. After triggering an event, these bits must be reset to their non-active val- ues before another capture event can be triggered. When enabled in the CPC700’s interrupt controller, these events can be used to interrupt the processor.
22:25 PLL1_MULT 0001 0001 PLL 1 Multiplication Factor 26:31 PLL1_TUNE 001111 001111 PLL 1 Tuning Bits Note: If changes from the default values are required, contact your IBM representative for proper values for this register. Clock, Power Management, and Reset...
The frequency of the UART serial clock is the CPC700’s SYS_CLOCK divided by 4. For example, if the CPC700’s SYS_CLOCK is 33.33 MHz, then the UART serial clock is 8.33 MHz. A programmable baud rate...
-1) and generates the 16x clock. Baud rate (bits/s) = (CPC700 SYS_CLOCK / 4) / (16 x Decimal Divisor) • Receiver uses 5-way oversampling as follows: it samples each serial bit five times, and if at least three of the samples are 1’s, the bit is determined to be a 1, otherwise it is a 0 •...
The DLAB (Divisor Latch Access Bit) bit of the UARTxLCR controls the function accessed through registers FF60_0X00 and FF60_0X01. When DLAB is 0 access is enabled to the Receiver/Transmitter registers and the Interrupt Enable register. When DLAB is a 1 access is enabled to the Divisor Latch registers. CPC700 User’s Manual—Preliminary...
7.2.1 UART Register Summary The system programmer may access any of the UART registers summarized in Table 71. via the processor. These registers control the UART operations including transmission and reception of data. Each register bit in the table has its name and reset state shown. Table 71.
Bit 6 = 1 specifies seven bits as length for each transmitted or received serial character. Bit 7 = 0 Bit 6 = 1 specifies eight bits as length for each transmitted or received serial character. Bit 7 = 1 CPC700 User’s Manual—Preliminary...
When the THRE enable (bit 6 in the IER) is set to logic 1, the UART will issue an interrupt to the CPC700 interrupt controller. This bit is set to logic 1 when a character is transferred from the THR to the transmitter shift register.
Transmitter FIFO reset. The 1 that is written into this position is self-clearing. Transmitter FIFO reset. A logic 1 written here will clear all bytes in the transmitter FIFO and reset all of its counter logic to 0. The transmitter shift register is not cleared by this bit. CPC700 User’s Manual—Preliminary...
When the processor accesses the IIR, the UART records new interrupts, but does not change its current contents until the access by the processor is complete. The UART indicates the highest priority interrupt pending to the CPC700 interrupt controller via the IIR. Table 75. Interrupt Identification Register Description...
Three types of UART interrupts are enabled via the interrupt enable register (IER). Any of the three interrupt types can be used to surface a UART interrupt to the CPC700 interrupt controller. Each interrupt type can be enabled by setting its appropriate bit. Resetting bits 4 through 7 of the IER totally disables the UART interrupt system.
Baud rate (bits/s) = (CPC700 SYS_CLOCK / 4) / (16 x Decimal Divisor) For example, if the CPC700 SYS_CLOCK = 33.33 MHz and a baud rate of 9600 bits/sec is required: Decimal Divisor = (CPC700 SYS_CLOCK / 4) / (16 x Baud rate)
FIFO while servicing this interrupt. The transmitter FIFO empty indications are delayed by one character time minus the last stop bit time whenever the following event occurs: THRE = 1 and there were less than two bytes simultaneously present CPC700 User’s Manual—Preliminary 7-11...
7.4 UART Reset and Sleep Mode Both UARTs are reset upon a reset of the CPC700. They can also be reset individually by software via the UART reset bits in the CPRRESET register. They can also be placed in sleep mode via the UART sleep bits in the CPRPMCTRL register.
C Specification, dated 1995. The IIC bus is a two wire, bidirectional, open-drain, low-speed serial interface. Both the serial clock (SCL) and the serial data (SDA) lines are bidirectional to support multiple bus masters, and to mix “fast” and “slow” devices on the same bus. The CPC700’s IIC ®...
IIC registers are accessed via memory locations 0xFF6X_000Y, where X=2 for the IIC0 interface and X=3 for the IIC1 interface. Y designates the register within the IIC0 or IIC1 interface to be accessed. Table 78. IIC Registers CPC700 Addres Affected by...
When a master transfer is requested, the IIC interface handles this latency. When the buffer is written with two bytes via one double-byte access, and the FIFO is empty, byte 0, the most significant byte CPC700 User’s Manual—Preliminary...
of the halfword written, is put into the first stage and byte 1, the least significant byte of the halfword writ- ten, is put into the second stage. In this case, byte 0, is sent out to the IIC bus first and byte 1, is sent out second.
During the transfer, and when the transfer is complete, the status and extended status registers can be read by the program to determine the state of the IIC interface and the IIC bus. See Table 78 “IIC Registers” on page 8-2. CPC700 User’s Manual—Preliminary...
Table 83. Control Register Register ‘FF6X_0006’ - Control bit 0 Halt master transfer. When set to a logic 1, the halt function is performed. If IIC was performing a requested master transfer, it will issue the STOP signal at the earliest possible point on the IIC bus.
1. bit 5 Enable interrupt. When set to a logic 1, allows an interrupt to be generated to the CPC700 interrupt controller when an event occurs and the event is enabled in the interrupt mask register.
Table 85. Mode Control Register (Continued) Register ‘FF6X_0007’ - Mode Control bit 6 Exit unknown IIC bus state. When set to a logic 1, the bus control state machine will exit the unknown bus state, if IIC is currently in this state. If IIC is not in the unknown bus state, then setting this bit to a logic 1 has no effect.
6 IRQ active. When set to a logic 1, an IIC interrupt has been sent to the CPC700 interrupt controller. The extended status and extended control and slave status registers can be read to see why the interrupt was set. The interrupt is cleared by writing a logic 1 to this bit. If interrupts are disabled, bit 5 in the mode control register is logic 0, then this bit, IRQ active, will not be set.
or if none was present at the time the pending interrupt went to the on-deck state, the on-deck interrupt is moved into the active state. Note that an active interrupt remains in the active state until it is cleared by the program.
8.4.9 Clock Divide Register This register is used to divide the CPC700 SYS_CLOCK signal to form the base clock that is used for inter- facing to the IIC bus. This register must be programmed before the mode control register. The IIC state machines will not be activated until this register is programmed.
Table 91. IIC Clock Divide Programming CPC700 SYS_CLOCK Frequency Range (MHz) N (Hex) = 20 20 < ƒ ≤ 30 30 < ƒ ≤ 40 40 < ƒ ≤ 50 50 < ƒ ≤ 60 8.4.10 Interrupt Mask Register This register should be set before interrupts are enabled in the mode control register.
Care must be used when changing the setting of bit 6, enable pulsed IRQ. If this bit is changed from a logic 1 to a logic 0 while an interrupt is active, the IIC interrupt signal to the CPC700’s interrupt controller will go active.
This is a read-only bit. bit 6 Enable pulsed IRQ. When set to a logic 1, the IIC_IRQ signal to the CPC700 interrupt controller goes active for one clock period. When set to a logic 0, the IIC_IRQ signal stays active until the IRQ active bit, bit 1 of the status register is cleared.
IIC interface registers. All IIC interrupts are capable of triggering an interrupt request to the CPC700’s interrupt controller. If enabled properly in the interrupt controller, an IIC interrupt can be used to interrupt the processor. See Chapter 10., “Interrupt Controller” for additional information.
extended control and slave status register when the first interrupt occurred. Then, sometime later, the rou- tine wishes to clear this status by writing 0x10 back to the register. If the slave write operation completes in between the time the register is read and written, the register will contain a 0x30 when the 0x10 is written. Since writing a bit to logic 0 has no effect once it is logic 1, the slave write complete status is not lost.
Page 223
If this were to occur, the first master would issue a STOP while the second master was sending the MSB of its second data byte. The soft reset bit in the extended control and slave status register should be set if the direct control register is to be used. CPC700 User’s Manual—Preliminary 8-17...
The General Purpose Timer (GPT) provides a separate time base counter and system timers for the CPC700. Five capture timers and five compare timers are implemented in the GPT macro. The following sections include a list of major features, an overview, supported configurability, and register descriptions of the General Purpose Timer core.
The TBC may be read and written by software using its memory mapped address. The TBC is synchronously reset to zero upon a CPC700 reset or when either the GPT_RST or GPT_TBC_RST bits are set in the CPRRESET register. Refer to Section 6.5.2, “Peripheral Reset Control Register (CPRRESET)”...
Note that the CPRCAPTEVNT register is implemented in the Clock, Power Management, and Reset (CPR) logic of the CPC700. The bits in the CPRCAPTEVNT register can be made falling-edge active (set to 0 to trigger) or rising-edge active (set to 1 to trigger) via the GPT Edge Detection Control (GPTEC) register.
• The corresponding Interrupt Enable bit must be set (1) in the GPT Interrupt Enable (GPTIE) Register. • The corresponding capture event must occur (set via the CPRCAPTEVNT register). • If enabled in the CPC700 interrupt controller, the capture timer interrupt will be sent to the processor. 9.2.3 Compare Timers Each of the five compare timers (GPTCOMP0-4) is 32 bits wide and provides a reference value which is...
• The Time Base Counter must increment to the same value programmed in the corresponding Com- pare Timer (COMPx) Register, excluding Compare Mask (MASKx) Register bits. • If enabled in the CPC700 interrupt controller, the compare timer interrupt will be sent to the processor. 9.2.4 Interrupt Generation The capture and compare interrupts are implemented as ten separate interrupt lines to the CPC700 inter- rupt controller, one for each of the five capture and five compare timers.
9.3 GPT Detailed Register Description The following sections provide a complete bit description of the GPT registers. All registers are accessed using their memory mapped addresses as shown in Table 96. The Capture Timer Registers (CAPTx) are read-only. The GPT Interrupt Status (GPTIS) Register bits are either set or cleared when written depend- ing upon which one of two addresses used.
Bits [0:4] map to the corresponding capture timer and capture event signal as defined in the CPR- CAPTEVNT register (see Figure 52). Bits [5:31] are reserved. When zero (0), the non-synchronized path is selected and when one (1), the synchronized path is selected. Using the synchronized path causes an additional cycle delay. CPC700 User’s Manual—Preliminary...
Bits in this register mask both the setting of the corresponding GPTIS bits and the interrupt output signals to the CPC700 interrupt controller. If masked, GPTIS bits are not set and interrupt signals are not gener- ated (even if the GPTIE bits are enabled).
[16:20], correspond to the compare timer interrupt enable bits (see Figure 55). In order for interrupt signals to be sent to the CPC700 interrupt controller, the interrupt mask (GPTIM) bits must be reset (not masked) and the interrupt enable (GPTIE) bits must be enabled.
0 = A comparison is performed 1 = No Comparison is performed. A valid compare is forced for the bit. 9.3.11 GPT Capture Event Generation Register This register is provided to signal events that will cause the capture timers to trigger. System software may set and reset these bits as desired to time certain system events.
Chapter 10. Interrupt Controller 10.1 Introduction The CPC700’s Universal Interrupt Controller (UIC) provides the control, status, and communications nec- essary between the various sources of interrupts and the system microprocessor. Features of the UIC include: • 29 interrupts sources - 12 External Interrupts...
Note that the spacing required between interrupt service routines (512 bytes) when using the generated vector address, is not programmable and can not be changed for the CPC700 UIC. Vectors will only be generated for interrupts programmed as INT, that is, programmed to generate an external interrupt to the processor.
CPC700’s IRQ[0:11] input signals. For example, an active external interrupt connected to the CPC700’s IRQ[0] input pin would be registered as IRQ 20 in the UIC status register. Sensitivity and polarity for the external interrupt inputs are system dependent and should be initialized accordingly.
CPC700’s IRQ_OUT_N output signal to trigger an external interrupt to the processor. MCP pro- grammed interrupts, when properly enabled and when the MCP enable bit (bit 1) of the PRIFOPT1 register is set, will drive the CPC700’s MCP_N output signal to trigger a machine check exception to the processor. 10.4.5 Polarity Each bit of this register is used for determining whether a single interrupt input will be positive active or negative active.
MCP programmed interrupts, when properly enabled and when the MCP enable bit (bit 1) of the PRIFOPT1 register is set, will drive the CPC700’s MCP_N output signal to trigger a machine check exception to the processor. The MCP enable bit of the PRIFOPT1 register must be set to enable MCP_N output.
UICPR will cause an interrupt to be detected on a rising edge. Refer to Section 10.3, “Interrupt Assign- ments” for important information on how to program the edge/level trigger register for the CPC700. 10.5.6 UICTR — UIC Trigger Register...
A high priority interrupt goes active — the vector changes to the high priority interrupt. The software resets the high priority interrupt — the vector changes to the low priority interrupt. The software resets the enable bit for the low priority interrupt — the vector goes to all 0s. CPC700 User’s Manual—Preliminary 10-9...
Chapter 11. JTAG IEEE 1149.1 (JTAG) Boundary scan is included to facilitate tester requirements as well as for the support of board level testing and debug. The following JTAG commands are supported by the CPC700 JTAG TAP controller: EXTEST SAMPLE / PRELOAD...
Access to the PLB is granted through a central arbitration mechanism that enables masters to compete for bus ownership. This arbitration mechanism provides for the implementation of several priority schemes. Table 100 lists the PLB masters provided in the CPC700. Table 100. CPC700 PLB Master Assignments Master ID...
Chapter 14. Register Summary 14.1 CPC700 Registers Registers within the CPC700 are located according to the following tables. Detailed descriptions may be found in the individual chapters. 14.1.1 Processor Interface Registers Processor interface registers are accessed through an indirect method employing a configuration address register, PIFCFGADR, and a configuration data register, PIFCFGDATA.
Table 103. Offsets for Processor Interface Registers (Continued) Register Offset Description BESRSET PLB Bus Error Syndrome Register Set (for test/verification use) Reserved BEAR PLB Bus Master Error Address Register Reserved Reserved PLBSWRINT Write Interrupt Region Base Address 14.1.2 Memory Controller Registers The Memory controller registers are accessed similar to the processor interface registers through an indi- rect address mechanism.
Page 268
States of America February, 2000. All Rights Reserved. IBM Microelectronics, PowerPC, PowerPC 603e, RiscWatch, and AIX are trade- marks of the IBM corporation. IBM and the IBM logo are registered trademarks of the IBM corporation. Other company names and product identifiers are trade- marks of the respective companies.