Book.B V2300A_PG1 V2300A PG1
V2300A_PG1 V2300A_PG1
User Manual: V2300A_PG1
Open the PDF directly: View PDF .
Page Count: 292
Download | |
Open PDF In Browser | View PDF |
MVME2300-Series VME Processor Module Programmer’s Reference Guide V2300A/PG1 Notice While reasonable efforts have been made to assure the accuracy of this document, Motorola, Inc. assumes no liability resulting from any omissions in this document, or from the use of the information obtained therein. Motorola reserves the right to revise this document and to make changes from time to time in the content hereof without obligation of Motorola to notify any person of such revision or changes. No part of this material may be reproduced or copied in any tangible medium, or stored in a retrieval system, or transmitted in any form, or by any means, radio, electronic, mechanical, photocopying, recording or facsimile, or otherwise, without the prior written permission of Motorola, Inc. It is possible that this publication may contain reference to, or information about Motorola products (machines and programs), programming, or services that are not announced in your country. Such references or information must not be construed to mean that Motorola intends to announce such Motorola products, programming, or services in your country. Restricted Rights Legend If the documentation contained herein is supplied, directly or indirectly, to the U.S. Government, the following notice shall apply unless otherwise agreed to in writing by Motorola, Inc. Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013. Motorola, Inc. Computer Group 2900 South Diablo Way Tempe, Arizona 85282 Preface The MVME2300-Series VME Processor Module ProgrammerÕs Reference Guide provides brief board level information, complete memory maps, and detailed ASIC chip information including register bit descriptions for the MVME2300 series VME Processor Modules (also called MVME230x in this manual). The information contained in this manual applies to the single board computers built from some of the plug-together components listed in the following table. Model MVME2301 MVME2302 MPC MPC603 @ 200 MHz MVME2303 MVME2306 16MB ECC DRAM 32MB ECC DRAM 64MB ECC DRAM MVME2304 MVME2305 Memory 128MB ECC DRAM MPC604 @ 300 MHz 16MB ECC DRAM 32MB ECC DRAM MVME2307 64MB ECC DRAM MVME2308 128MB ECC DRAM This manual is intended for anyone who wants to program these boards in order to design OEM systems, supply additional capability to an existing compatible system, or work in a lab environment for experimental purposes. A basic knowledge of computers and digital logic is assumed. To use this manual, you should be familiar with the publications listed in Appendix A, Related Documentation. The following conventions are used in this document: bold is used for user input that you type just as it appears. Bold is also used for commands, options and arguments to commands, and names of programs, directories, and files. italic is used for names of variables to which you assign values. Italic is also used for comments in screen displays and examples. courier is used for system output (e.g., screen displays, reports), examples, and system prompts.or represents the carriage return or enter key. CTRL represents the Control key. Execute control characters by pressing the CTRL key and the letter simultaneously, e.g., CTRL-d. The computer programs stored in the Read Only Memory of this device contain material copyrighted by Motorola Inc., Þrst published 1990, and may be used only under a license such as the License for Computer Programs (Article 14) contained in Motorola's Terms and Conditions of Sale, Rev. 1/79. All Motorola PWBs (printed wiring boards) are manufactured by UL-recognized manufacturers, with a ßammability rating of 94V-0. ! WARNING This equipment generates, uses, and can radiate electromagnetic energy. It may cause or be susceptible to electromagnetic interference (EMI) if not installed and used in a cabinet with adequate EMI protection. Motorola¨ and the Motorola symbol are registered trademarks of Motorola, Inc. PowerStackTM, VMEmoduleTM, and VMEsystemTM are trademarks of Motorola, Inc. PowerPCTM, PowerPC 603TM, and PowerPC 604TMare trademarks of IBM Corp, and are used by Motorola, Inc. under license from IBM Corp. AIXTM is a trademark of IBM Corp. TimekeeperTM and ZeropowerTM are trademarks of Thompson Components. All other products mentioned in this document are trademarks or registered trademarks of their respective holders. ©Copyright Motorola 1997 All Rights Reserved Printed in the United States of America October 1997 Safety Summary Safety Depends On You The following general safety precautions must be observed during all phases of operation, service, and repair of this equipment. Failure to comply with these precautions or with speciÞc warnings elsewhere in this manual violates safety standards of design, manufacture, and intended use of the equipment. Motorola, Inc. assumes no liability for the customer's failure to comply with these requirements. The safety precautions listed below represent warnings of certain dangers of which Motorola is aware. You, as the user of the product, should follow these warnings and all other safety precautions necessary for the safe operation of the equipment in your operating environment. Ground the Instrument. To minimize shock hazard, the equipment chassis and enclosure must be connected to an electrical ground. The equipment is supplied with a three-conductor ac power cable. The power cable must be plugged into an approved three-contact electrical outlet. The power jack and mating plug of the power cable meet International Electrotechnical Commission (IEC) safety standards. Do Not Operate in an Explosive Atmosphere. Do not operate the equipment in the presence of ßammable gases or fumes. Operation of any electrical equipment in such an environment constitutes a deÞnite safety hazard. Keep Away From Live Circuits. Operating personnel must not remove equipment covers. Only Factory Authorized Service Personnel or other qualiÞed maintenance personnel may remove equipment covers for internal subassembly or component replacement or any internal adjustment. Do not replace components with power cable connected. Under certain conditions, dangerous voltages may exist even with the power cable removed. To avoid injuries, always disconnect power and discharge circuits before touching them. Do Not Service or Adjust Alone. Do not attempt internal service or adjustment unless another person capable of rendering Þrst aid and resuscitation is present. Use Caution When Exposing or Handling the CRT. Breakage of the Cathode-Ray Tube (CRT) causes a high-velocity scattering of glass fragments (implosion). To prevent CRT implosion, avoid rough handling or jarring of the equipment. Handling of the CRT should be done only by qualiÞed maintenance personnel using approved safety mask and gloves. Do Not Substitute Parts or Modify Equipment. Because of the danger of introducing additional hazards, do not install substitute parts or perform any unauthorized modiÞcation of the equipment. Contact your local Motorola representative for service and repair to ensure that safety features are maintained. Dangerous Procedure Warnings. Warnings, such as the example below, precede potentially dangerous procedures throughout this manual. Instructions contained in the warnings must be followed. You should also employ all other safety precautions which you deem necessary for the operation of the equipment in your operating environment. ! WARNING Dangerous voltages, capable of causing death, are present in this equipment. Use extreme caution when handling, testing, and adjusting. Contents Introduction 1-1 Manual Terminology 1-1 Overview 1-3 Feature Summary 1-3 System Block Diagram 1-5 Functional Description 1-7 Overview 1-7 Programming Model 1-8 Memory Maps 1-8 Processor Memory Maps 1-8 PCI Memory Maps 1-14 VMEbus Mapping 1-21 Falcon-Controlled System Registers 1-27 System Configuration Register (SYSCR) 1-28 Memory Configuration Register (MEMCR) 1-30 System External Cache Control Register (SXCCR) 1-32 Processor 0 External Cache Control Register (P0XCCR) 1-33 Processor 1 External Cache Control Register (P1XCCR) 1-33 CPU Control Register 1-33 ISA Local Resource Bus 1-34 W83C553 PIB Registers 1-34 16550 UART 1-34 General-Purpose Software-Readable Header (J17) 1-35 NVRAM/RTC & Watchdog Timer Registers 1-36 Module ConÞguration and Status Registers 1-36 CPU Configuration Register 1-37 Base Module Feature Register 1-38 Base Module Status Register (BMSR) 1-39 Seven-Segment Display Register 1-40 VME Registers 1-40 LM/SIG Control Register 1-41 LM/SIG Status Register 1-42 Location Monitor Upper Base Address Register 1-43 Location Monitor Lower Base Address Register 1-44 Semaphore Register 1 1-44 Semaphore Register 2 1-45 VME Geographical Address Register (VGAR) 1-45 Emulated Z8536 CIO Registers and Port Pins 1-46 Emulated Z8536 Registers 1-46 Z8536 CIO Port Pins 1-46 ISA DMA Channels 1-47 Introduction 2-1 Overview 2-1 Features 2-1 Block Diagram 2-3 Functional Description 2-4 Architectural Overview 2-4 MPC Bus Interface 2-4 MPC Address Mapping 2-4 MPC Slave 2-6 MPC Write Posting 2-8 MPC Master 2-8 MPC Arbiter 2-10 MPC Bus Timer 2-10 PCI Interface 2-10 PCI Address Mapping 2-11 PCI Slave 2-14 PCI Write Posting 2-17 PCI Master 2-17 Generating PCI Cycles 2-21 Endian Conversion 2-25 When MPC Devices are Big-Endian 2-25 When MPC Devices are Little Endian 2-26 Raven Registers 2-27 Error Handling 2-28 Transaction Ordering 2-29 Registers 2-31 MPC Registers 2-31 Vendor ID/Device ID Registers 2-33 Revision ID Register 2-33 General Control-Status/Feature Registers 2-34 MPC Arbiter Control Register 2-37 Prescaler Adjust Register 2-37 MPC Error Enable Register 2-38 MPC Error Status Register 2-40 MPC Error Address Register 2-42 MPC Error Attribute Register - MERAT 2-43 PCI Interrupt Acknowledge Register 2-45 MPC Slave Address (0,1 and 2) Registers 2-47 MPC Slave Address (3) Register 2-48 MPC Slave Offset/Attribute (0,1 and 2) Registers 2-49 MPC Slave Offset/Attribute (3) Registers 2-50 General Purpose Registers 2-51 PCI Registers 2-51 Vendor ID/ Device ID Registers 2-53 PCI Command/ Status Registers 2-53 Revision ID/ Class Code Registers 2-55 I/O Base Register 2-56 Memory Base Register 2-57 PCI Slave Address (0,1,2 and 3) Registers 2-58 PCI Slave Attribute/ Offset (0,1,2 and 3) Registers 2-59 CONFIG_ADDRESS Register 2-60 CONFIG_DATA Register 2-63 Raven Interrupt Controller Implementation 2-65 Introduction 2-65 The Raven Interrupt Controller (RavenMPIC) Features 2-65 Architecture 2-65 CSRÕs Readability 2-66 Interrupt Source Priority 2-66 ProcessorÕs Current Task Priority 2-66 Nesting of Interrupt Events 2-66 Spurious Vector Generation 2-67 Interprocessor Interrupts (IPI) 2-67 8259 Compatibility 2-67 Raven-Detected Errors 2-68 Timers 2-68 Interrupt Delivery Modes 2-69 Block Diagram Description 2-70 Program Visible Registers 2-71 Interrupt Pending Register (IPR) 2-71 Interrupt Selector (IS) 2-71 Interrupt Request Register (IRR) 2-72 In-Service Register (ISR) 2-72 Interrupt Router 2-72 MPIC Registers 2-74 RavenMPIC Registers 2-74 Feature Reporting Register 2-79 Global Configuration Register 2-80 Vendor Identification Register 2-81 Processor Init Register 2-81 IPI Vector/Priority Registers 2-82 Spurious Vector Register 2-83 Timer Frequency Register 2-83 Timer Current Count Registers 2-84 Timer Basecount Registers 2-84 Timer Vector/Priority Registers 2-85 Timer Destination Registers 2-86 External Source Vector/Priority Registers 2-87 External Source Destination Registers 2-88 Raven-Detected Errors Vector/Priority Register 2-89 Raven-Detected Errors Destination Register 2-90 Interprocessor Interrupt Dispatch Registers 2-90 Interrupt Task Priority Registers 2-91 Interrupt Acknowledge Registers 2-92 End-of-Interrupt Registers 2-92 Programming Notes 2-93 External Interrupt Service 2-93 Reset State 2-94 Operation 2-95 Interprocessor Interrupts 2-95 Dynamically Changing I/O Interrupt Configuration 2-95 EOI Register 2-96 Interrupt Acknowledge Register 2-96 8259 Mode 2-96 Current Task Priority Level 2-96 Architectural Notes 2-97 Introduction 3-1 Overview 3-1 Bit Ordering Convention 3-1 Features 3-1 Block Diagrams 3-2 Functional Description 3-6 Performance 3-6 Four-beat Reads/Writes 3-6 Single-beat Reads/Writes 3-7 DRAM Speeds 3-7 ROM/Flash Speeds 3-11 PowerPC 60x Bus Interface 3-12 Responding to Address Transfers 3-12 Completing Data Transfers 3-12 Cache Coherency 3-12 Cache Coherency Restrictions 3-13 L2 Cache Support 3-13 ECC 3-13 Cycle Types 3-13 Error Reporting 3-14 Error Logging 3-15 DRAM Tester 3-15 ROM/Flash Interface 3-16 Refresh/Scrub 3-20 Blocks A and/or B Present, Blocks C and D Not Present 3-20 Blocks A and/or B Present, Blocks C and/or D present 3-21 DRAM Arbitration 3-22 Chip Defaults 3-22 External Register Set 3-23 CSR Accesses 3-23 Programming Model 3-24 CSR Architecture 3-24 Register Summary 3-29 Detailed Register Bit Descriptions 3-32 Vendor/Device Register 3-33 Revision ID/ General Control Register 3-33 DRAM Attributes Register 3-35 DRAM Base Register 3-37 CLK Frequency Register 3-37 ECC Control Register 3-38 Error Logger Register 3-42 Error_Address Register 3-45 Scrub/Refresh Register 3-45 Refresh/Scrub Address Register 3-46 ROM A Base/Size Register 3-47 ROM B Base/Size Register 3-50 DRAM Tester Control Registers 3-53 32-Bit Counter 3-53 Test SRAM 3-54 Power-Up Reset Status Register 1 3-55 Power-Up Reset Status Register 2 3-55 External Register Set 3-56 Software Considerations 3-57 Parity Checking on the PowerPC Bus 3-57 Programming ROM/Flash Devices 3-57 Writing to the Control Registers 3-57 Sizing DRAM 3-58 ECC Codes 3-61 Data Paths 3-63 General Information 4-1 Introduction 4-1 Product Overview - Features 4-1 Functional Description 4-2 Architectural Overview 4-2 VMEbus Interface 4-4 PCI Bus Interface 4-5 Interrupter and Interrupt Handler 4-6 DMA Controller 4-7 Registers - Universe Control and Status Registers (UCSR) 4-8 Universe Register Map 4-9 Universe Chip Problems after a PCI Reset 4-14 Problem Description 4-14 Examples 4-16 Example 1: MVME2600 Series Board Exhibits Problem 4-16 Example 2: MVME3600 Series Board Acts Differently 4-17 Example 3: Universe Chip is Checked at Tundra 4-19 Introduction 5-1 PCI Arbitration 5-1 Interrupt Handling 5-2 RavenMPIC 5-3 8259 Interrupts 5-4 ISA DMA Channels 5-7 Exceptions 5-8 Sources of Reset 5-8 Soft Reset 5-9 Universe Chip Problems after a PCI Reset 5-9 Error NotiÞcation and Handling 5-10 Endian Issues 5-11 Processor/Memory Domain 5-14 RavenÕs Involvement 5-14 PCI Domain 5-14 PCI-SCSI 5-14 PCI-Ethernet 5-14 PCI-Graphics 5-15 UniverseÕs Involvement 5-15 VMEbus Domain 5-15 ROM/Flash Initialization 5-16 Motorola Computer Group Documents A-1 ManufacturersÕ Documents A-2 Related SpeciÞcations A-5 Abbreviations, Acronyms, and Terms to Know GL-1 List of Figures MVME2300 Series System Block Diagram 1-6 VMEbus Master Mapping 1-22 VMEbus Slave Mapping 1-24 General-Purpose Software-Readable Header 1-35 Raven Block Diagram 2-3 MPC to PCI Address Decoding 2-5 MPC to PCI Address Translation 2-6 PCI to MPC Address Decoding 2-12 PCI to MPC Address Translation 2-13 PCI Spread I/O Address Translation 2-22 Big to Little Endian Data Swap 2-26 RavenMPIC Block Diagram 2-70 Falcon Pair Used with DRAM in a System 3-3 Falcon Internal Data Paths (SimpliÞed) 3-4 Overall DRAM Connections 3-5 Data Path for Reads from the Falcon Internal CSRs 3-24 Data Path for Writes to the Falcon Internal CSRs 3-25 Memory Map for Byte Reads to the CSR 3-26 Memory Map for Byte Writes to the Internal Register Set and Test SRAM 3-27 Memory Map for 4-Byte Reads to the CSR 3-28 Memory Map for 4-Byte Writes to the Internal Register Set and Test SRAM 3-28 PowerPC Data to DRAM Data Correspondence 3-64 Architectural Diagram for the Universe 4-3 UCSR Access Mechanisms 4-8 MVME2300 Series Interrupt Architecture 5-2 PIB Interrupt Handler Block Diagram 5-5 Big-Endian Mode 5-12 Little-Endian Mode 5-13 1Board Description and Memory Maps 1 Introduction This manual provides programming information for the MVME230x VME Processor Modules. Extensive programming information is provided for several Application-Specific Integrated Circuit (ASIC) devices used on the boards. Reference information is included in Appendix A for the Large Scale Integration (LSI) devices used on the boards and sources for additional information are listed. This chapter briefly describes the board level hardware features of the MVME2300-series VME Processor Modules. The chapter begins with a board level overview and features list. Memory maps are next, and are the major feature of this chapter. Programmable registers in the MVME2300-series that reside in ASICs are covered in the chapters on those ASICs. Chapter 2 covers the Raven chip, Chapter 3 covers the Falcon chip set, Chapter 4 covers the Universe chip, and Chapter 5 covers certain programming features, such as interrupts and exceptions. Appendix A lists all related documentation. Manual Terminology Throughout this manual, a convention is used which precedes data and address parameters by a character identifying the numeric format as follows: $ % & dollar percent ampersand speciÞes a hexadecimal character speciÞes a binary number speciÞes a decimal number For example, Ò12Ó is the decimal number twelve, and Ò$12Ó is the decimal number eighteen. 1-1 1 Board Description and Memory Maps Unless otherwise specified, all address references are in hexadecimal. An asterisk (*) following the signal name for signals which are level significant denotes that the signal is true or valid when the signal is low. An asterisk (*) following the signal name for signals which are edge significant denotes that the actions initiated by that signal occur on high to low transition. Note In some places in this document, an underscore (_) following the signal name is used to indicate an active low signal. In this manual, assertion and negation are used to specify forcing a signal to a particular state. In particular, assertion and assert refer to a signal that is active or true; negation and negate indicate a signal that is inactive or false. These terms are used independently of the voltage level (high or low) that they represent. Data and address sizes for MPC60x chips are defined as follows: ❏ A byte is eight bits, numbered 0 through 7, with bit 0 being the least significant. ❏ A half-word is 16 bits, numbered 0 through 15, with bit 0 being the least significant. ❏ A word or single word is 32 bits, numbered 0 through 31, with bit 0 being the least significant. ❏ A double word is 64 bits, numbered 0 through 63, with bit 0 being the least significant. Refer to Chapter 5 for Endian Issues, which covers which parts of the MVME2300 series use big-endian byte ordering, and which use small-endian byte ordering. The terms control bit and status bit are used extensively in this document. The term control bit is used to describe a bit in a register that can be set and cleared under software control. The term true is 1-2 Overview used to indicate that a bit is in the state that enables the function it controls. The term false is used to indicate that the bit is in the state that disables the function it controls. In all tables, the terms 0 and 1 are used to describe the actual value that should be written to the bit, or the value that it yields when read. The term status bit is used to describe a bit in a register that reflects a specific condition. The status bit can be read by software to determine operational or exception conditions. Overview The MVME2300-series VME Processor Module family, hereafter sometimes referred to simply as the MVME230x or the V2300 series, provides many standard features required by a computer system: Ethernet interface, async serial port, boot Flash, and up to 128MB of ECC DRAM. Feature Summary There are many models based on the MVME2300 series architecture. The following table summarizes the major features of the MVME2300 series: Table 1-1. MVME230x Features Feature Microprocessor Form factor ECC DRAM Description 200 MHZ MPC603 PowerPCTM processor (MVME2301 - 2304 models) 300 MHZ MPC604 PowerPCTM processor (MVME2305 - 2308 models) 6U VMEbus Two-way interleaved, ECC-protected 16MB, 32MB, 64MB, or 128MB 1-3 1 1 Board Description and Memory Maps Table 1-1. MVME230x Features (Continued) Feature Flash memory Real-time clock Switches Status LEDs Timers Interrupts VME I/O Serial I/O Ethernet I/O PCI interface VMEbus interface 1-4 Description Bank B consists of two 32-pin PLCC sockets that can be populated with 1MB 8-bit Flash devices Bank A consists of four 16-bit Smart Voltage SMT devices that can be populated with 8Mbit Flash devices (4MB) or 4Mbit (2MB) 8KB NVRAM with RTC and battery backup (SGS-Thomson M48T59/T559) Reset (RST) and abort (ABT) Four: Board fail (BFL), CPU, PMC (one for PMC slot 2, one for slot 1) One 16-bit timer in W83C553 ISA bridge; four 32-bit timers in Raven (MPIC) device) Watchdog timer provided in SGS-Thomson M48T59 Software interrupt handling via Raven (PCI-MPU bridge) and Winbond (PCI-ISA bridge) controllers VMEbus P2 connector One asynchronous debug port via RJ45 connector on front panel 10Base-T/100Base-TX connections via RJ45 connector on front panel Two IEEE P1386.1 PCI Mezzanine Card (PMC) slots for one double-width or two single-width PMCs Front panel and/or VMEbus P2 I/O on both PMC slots One 114-pin Mictor connector for optional PMCspan expansion module VMEbus system controller functions VME64 extension VMEbus-to-local-bus interface (A24/A32, D8/D16/D32/block transfer [D8/D16/D32/D64]) Local-bus-to-VMEbus interface (A16/A24/A32, D8/D16/D32) VMEbus interrupter VMEbus interrupt handler Global Control/Status Register (GCSR) for interprocessor communications DMA for fast local memory/VMEbus transfers (A16/A24/A32, D16/D32/D64) System Block Diagram System Block Diagram The MVME2300 series does not provide any look-aside external cache option. The Falcon chip set controls the boot Flash and the ECC DRAM. The Raven ASIC functions as the 64-bit PCI host bridge and the MPIC interrupt controller. PCI devices include: VME, Ethernet, and two PMC slots. Standard I/O functions are provided by the UART device which resides on the ISA bus. The NVRAM/RTC also resides on the ISA bus. The general system block diagram for MVME2300 series is shown below: 1-5 1 Board Description and Memory Maps CLOCK GENERATOR DEBUG CONNECTOR 66MHz MPC604 PROCESSOR BUS DRAM 16/32/64/128MB PHB & MPIC RAVEN ASIC FLASH 3MB or 5MB SYSTEM REGISTERS MEMORY CONTROLLER FALCON CHIPSET PCI EXPANSION PROCESSOR MPC603/604 64-BIT PMC SLOT 33MHz 32/64-BIT PCI LOCAL BUS 10BT/100BTX PIB W83C553 VME BRIDGE UNIVERSE ETHERNET DEC21140 PC16550 UART BUFFERS ISA REGISTERS FRONT PANEL ISA BUS SERIAL PORT RTC/NVRAM/WD MK48T59/559 PMC FRONT I/O SLOT PMC FRONT I/O SLOT 1 VME P2 VME P1 2067 9708 Figure 1-1. MVME2300 Series System Block Diagram 1-6 Functional Description Functional Description Overview The MVME2300 series is a family of single-slot VME processor modules. It consists of the MPC603/604 processor, the Raven PCI Bridge & Interrupt Controller, the ECC Memory Controller Falcon chipset, 3MB or 5MB of Flash memory, 16MB to 128MB of ECCprotected DRAM, and a rich set of features of I/O peripherals. I/O peripheral devices on the PCI bus are: Ethernet chip, Universe VMEbus interface ASIC, and two PMC slots. Functions provided from the ISA bus are: one asynchronous serial port, a real-time clock, counters/timers, and a software-readable header. The MVME2300 series board interfaces to the VMEbus via the P1 and P2 connectors, which use the new 5-row 160-pin connectors as specified in the proposed VME64 Extension Standard. It also draws +5V, +12V, and -12V power from the VMEbus backplane through these two connectors. 3.3V supply is regulated onboard from the +5V power. Front panel connectors on the MVME2300 series board include: an RJ45 connector for the Ethernet 10Base-T/100Base-TX interface, and an RJ45 connector for the async serial debug port. The MVME2300 series contains two IEEE1386.1 PCI Mezzanine Card (PMC) slots. These PMC slots are 64-bit capable and support both front and rear I/O. Pins 1 through 64 of PMC slot 1 connector J14 are routed to row C and row A of the 5-row DIN P2 connector. Pins 1 through 46 of PMC slot 2 connector J24 are routed to row D and row Z of P2. Additional PCI expansion is supported with a 114-pin Mictor connector. This connection allows stacking of one or two PMCspan dual-PMC carrier boards, to increase the I/O capability. Each PMCspan board requires an additional VME slot. 1-7 1 1 Board Description and Memory Maps Programming Model Memory Maps The following sections describe the memory maps for the MVME2300 series. Processor Memory Maps The Processor memory map is controlled by the Raven ASIC and the Falcon chipset. The Raven ASIC and the Falcon chipset have flexible programming Map Decoder registers to customize the system to fit many different applications. 1-8 Programming Model Default Processor Memory Map After a reset, the Raven ASIC and the Falcon chipset provide the default processor memory map as shown in the following table. Table 1-2. Default Processor Memory Map Size Start DeÞnition End 0000 0000 7FFF FFFF 2G 8000 0000 8001 FFFF 128K 8002 0000 FEF7 FFFF 2G - 16M - 640K FEF8 0000 FEF8 FFFF 64K Falcon Registers FEF9 0000 FEFE FFFF 384K Not mapped FEFF 0000 FEFF FFFF 64K Raven Registers FF00 0000 FFEF FFFF 15M Not mapped FFF0 0000 FFFF FFFF 1M ROM/FLASH Bank A or Bank B Notes Processor Address Not mapped PCI/ISA I/O Space 1 Not mapped 2 Notes: 1. This default map for PCI/ISA I/O space allows software to determine if the system is MPC105-based or Falcon/Ravenbased by examining either the PHB Device ID or the CPU Type Register. 2. The first one Mbyte of ROM/FLASH Bank A appears at this range after a reset if the rom_b_rv control bit is cleared. If the rom_b_rv control bit is set then this address range maps to ROM/FLASH Bank B. 1-9 1 1 Board Description and Memory Maps Processor CHRP Memory Map The following table shows a recommended CHRP memory map from the point of view of the processor. Table 1-3. CHRP Memory Map Example Size Start DeÞnition End Notes Processor Address 0000 0000 top_dram dram_size System Memory (onboard DRAM) 1, 2 4000 0000 FCFF FFFF 3G - 48M PCI Memory Space: 4000 0000 to FCFF FFFF 3,4,8 FD00 0000 FDFF FFFF 16M Zero-Based PCI/ISA Memory Space (mapped to 00000000 to 00FFFFFF) 3,8 FE00 0000 FE7F FFFF 8M Zero-Based PCI/ISA I/O Space (mapped to 00000000 to 007FFFFF) 3,5,8 FE80 0000 FEF7 FFFF 7.5M Reserved FEF8 0000 FEF8 FFFF 64K Falcon Registers FEF9 0000 FEFE FFFF 384K Reserved FEFF 0000 FEFF FFFF 64K Raven Registers FF00 0000 FF7F FFFF 8M ROM/FLASH Bank A 1,7 FF80 0000 FF8F FFFF 1M ROM/FLASH Bank B 1,7 FF50 0000 FFEF FFFF 6M Reserved FFF0 0000 FFFF FFFF 1M ROM/FLASH Bank A or Bank B 9 7 Notes: 1. Programmable via Falcon chipset. For the MVME2300 series, RAM size is limited to 128MB and ROM/FLASH to 4MB. 2. To enable the ÒProcessor-holeÓ area, program the Falcon chipset to ignore 0x000A0000 - 0x000BFFFF address range and program the Raven to map this address range to PCI memory space. 1-10 Programming Model 3. Programmable via Raven ASIC. 4. CHRP requires the starting address for the PCI memory space to be 256MB-aligned. 5. Programmable via Raven ASIC for either contiguous or spread-I/O mode. 6. The actual size of each ROM/FLASH bank may vary. 7. The first one Mbyte of ROM/FLASH Bank A appears at this range after a reset if the rom_b_rv control bit is cleared. If the rom_b_rv control bit is set then this address range maps to ROM/FLASH Bank B. 8. This range can be mapped to the VMEbus by programming the Universe ASIC accordingly. The map shown is the recommended setting which uses the Special PCI Slave Image and two of the four programmable PCI Slave Images. 9. The only method to generate a PCI Interrupt Acknowledge cycle (8259 IACK) is to perform a read access to the RavenÕs PIACK register at 0xFEFF0030. The following table shows the programmed values for the associated Raven MPC registers for the processor CHRP memory map. Table 1-4. Raven MPC Register Values for CHRP Memory Map Address Register Name Register Value FEFF 0040 MSADD0 4000 FCFF FEFF 0044 MSOFF0 & MSATT0 0000 00C2 FEFF 0048 MSADD1 FD00 FDFF FEFF 004C MSOFF1 & MSATT1 0300 00C2 FEFF 0050 MSADD2 0000 0000 FEFF 0054 MSOFF2 & MSATT2 0000 0002 FEFF 0058 MSADD3 FE00 FE7F FEFF 005C MSOFF3 & MSATT3 0200 00C0 1-11 1 1 Board Description and Memory Maps Processor PREP Memory Map The Raven/Falcon chipset can be programmed for PREPcompatible memory map. The following table shows the PREP memory map of the MVME2300 series from the point of view of the processor. Table 1-5. PREP Memory Map Example Processor Address Size Start DeÞnition Notes End 0000 0000 top_dram dram_size System Memory (onboard DRAM) 1 8000 0000 BFFF FFFF 1G Zero-Based PCI I/O Space: 0000 0000 - 3FFFF FFFF 2 C000 0000 FCFF FFFF 1G - 48M FD00 0000 FEF7 FFFF 40.5M FEF8 0000 FEF8 FFFF 64K Falcon Registers FEF9 0000 FEFE FFFF 384K Reserved FEFF 0000 FEFF FFFF 64K Raven Registers FF00 0000 FF7F FFFF 8M ROM/FLASH Bank A 1, 3 FF80 0000 FF8F FFFF 1M ROM/FLASH Bank B 1, 3 FF90 0000 FFEF FFFF 6M Reserved FFF0 0000 FFFF FFFF 1M ROM/FLASH Bank A or Bank B Zero-Based PCI/ISA Memory Space: 0000 0000 - 3CFFFFFF 2, 5 Reserved 6 4 Notes: 1. Programmable via Falcon chipset. For the MVME2300 series, RAM size is limited to 128MB and ROM/FLASH to 4MB. 2. Programmable via Raven ASIC. 3. The actual size of each ROM/FLASH bank may vary. 1-12 Programming Model 4. The first 1 Mbyte of ROM/FLASH Bank A appears at this range after a reset if the rom_b_rv control bit is cleared. If the rom_b_rv control bit is set then this address range maps to ROM/FLASH Bank B. 5. This range can be mapped to the VMEbus by programming the Universe ASIC accordingly. 6. The only method to generate a PCI Interrupt Acknowledge cycle (8259 IACK) is to perform a read access to the RavenÕs PIACK register at 0xFEFF0030. The following table shows the programmed values for the associated Raven MPC registers for the processor PREP memory map. Table 1-6. Raven MPC Register Values for PREP Memory Map Address Register Name Register Value FEFF 0040 MSADD0 C000 FCFF FEFF 0044 MSOFF0 & MSATT0 4000 00C2 FEFF 0048 MSADD1 0000 0000 FEFF 004C MSOFF1 & MSATT1 0000 0002 FEFF 0050 MSADD2 0000 0000 FEFF 0054 MSOFF2 & MSATT2 0000 0002 FEFF 0058 MSADD3 8000 BFFF FEFF 005C MSOFF3 & MSATT3 8000 00C0 PCI ConÞguration Access PCI Configuration accesses are accomplished via the CONFIG_ADD and CONFIG_DAT registers. These two registers are implemented by the Raven ASIC. In the CHRP memory map example, the CONFIG_ADD and CONFIG_DAT registers are located at 0xFE000CF8 and 0xFE000CFC, respectively. With the 1-13 1 1 Board Description and Memory Maps PREP memory map, the CONFIG_ADD register and the CONFIG_DAT register are located at 0x80000CF8 and 0x80000CFC, respectively. PCI Memory Maps The PCI memory map is controlled by the Raven ASIC and the Universe ASIC. The Raven ASIC and the Universe ASIC have flexible programming Map Decoder registers to customize the system to fit many different applications. Default PCI Memory Map After a reset, the Raven ASIC and the Universe ASIC turn all the PCI slave map decoders off. Software must program the appropriate map decoders for a specific environment. PCI CHRP Memory Map The following table shows a PCI memory map of the MVME2300 series that is CHRP-compatible from the point of view of the PCI local bus. Table 1-7. PCI CHRP Memory Map PCI Address Size Start DeÞnition Notes End 0000 0000 top_dram dram_size Onboard ECC DRAM 1 4000 0000 EFFF FFFF 3G - 256M VMEbus A32/D32 (Super/Program) 3 F000 0000 F7FF FFFF 128M VMEbus A32/D16 (Super/Program) 3 F800 0000 F8FE FFFF 16M - 64K VMEbus A24/D16 (Super/Program) 4 F8FF 0000 F8FF FFFF 64K VMEbus A16/D16 (Super/Program) 4 F900 0000 F9FE FFFF 16M - 64K VMEbus A24/D32 (Super/Data) 4 F9FF 0000 F9FF FFFF 64K VMEbus A16/D32 (Super/Data) 4 FA00 0000 FAFE FFFF 16M - 64K VMEbus A24/D16 (User/Program) 4 1-14 Programming Model Table 1-7. PCI CHRP Memory Map (Continued) PCI Address Size Start DeÞnition Notes End FAFF 0000 FAFF FFFF 64K VMEbus A16/D16 (User/Program) 4 FB00 0000 FBFE FFFF 16M - 64K VMEbus A24/D32 (User/Data) 4 FBFF 0000 FBFF FFFF 64K VMEbus A16/D32 (User/Data) 4 FC00 0000 FC03 FFFF 256K RavenMPIC 1 FC04 0000 FCFF FFFF 16M - 256K PCI Memory Space FD00 0000 FDFF FFFF 16M PCI Memory Space or System Memory Alias Space (mapped to 00000000 to 00FFFFFF) FE00 0000 FFFF FFFF 48M Reserved 1 Notes: 1. Programmable via the RavenÕs PCI Configuration registers. For the MVME2300 series, RAM size is limited to 128MB. 2. To enabled the CHRP Òio-holeÓ, program the Raven to ignore the 0x000A0000 - 0x000FFFFF address range. 3. Programmable mapping via the four PCI Slave Images in the Universe ASIC. 4. Programmable mapping via the Special Slave Image (SLSI) in the Universe ASIC. 1-15 1 1 Board Description and Memory Maps The following table shows the programmed values for the associated Raven PCI registers for the PCI CHRP memory map. Table 1-8. Raven PCI Register Values for CHRP Memory Map ConÞguration Address Offset ConÞguration Register Name Register Value (Aliasing OFF) Register Value (Aliasing ON) $14 RavenMPIC MBASE FC00 0000 FC00 0000 $80 PSADD0 0000 3FFF 0100 3FFF $84 PSOFF0 & PSATT0 0000 00FX 0000 00FX $88 PSADD1 0000 0000 FD00 FDFF $8C PSOFF1 & PSATT1 0000 0000 0000 00FX $90 PSADD2 0000 0000 0000 0000 $94 PSOFF2 & PSATT2 0000 0000 0000 0000 $98 PSADD3 0000 0000 0000 0000 $9C PSOFF3 & PSATT3 0000 0000 0000 0000 The next table shows the programmed values for the associated Universe PCI registers for the PCI CHRP memory map. Table 1-9. Universe PCI Register Values for CHRP Memory Map ConÞguration Address Offset 1-16 ConÞguration Register Name Register Value $100 LSI0_CTL C082 5100 $104 LSI0_BS 4000 0000 $108 LSI0_BD F000 0000 $10C LSI0_TO XXXX 0000 $114 LSI1_CTL C042 5100 $118 LSI1_BS F000 0000 Programming Model Table 1-9. Universe PCI Register Values for CHRP Memory Map (Continued) ConÞguration Address Offset ConÞguration Register Name Register Value $11C LSI1_BD F800 0000 $120 LSI1_TO XXXX 0000 $128 LSI2_CTL 0000 0000 $12C LSI2_BS XXXX XXXX $130 LSI2_BD XXXX XXXX $134 LSI2_TO XXXX XXXX $13C LSI3_CTL 0000 0000 $140 LSI3_BS XXXX XXXX $144 LSI3_BD XXXX XXXX $148 LSI3_TO XXXX XXXX $188 SLSI C0A053F8 1-17 1 1 Board Description and Memory Maps PCI PREP Memory Map The following table shows a PCI memory map of the MVME2300 series that is PREP-compatible from the point of view of the PCI local bus. Table 1-10. PCI PREP Memory Map PCI Address Size Start DeÞnition Notes End 0000 0000 00FF FFFF 16M PCI/ISA Memory Space 0100 0000 2FFF FFFF 752M VMEbus A32/D32 (Super/Program) 3 3000 0000 37FF FFFF 128M VMEbus A32/D16 (Super/Program) 3 3800 0000 38FE FFFF 16M - 64K VMEbus A24/D16 (Super/Program) 4 38FF 0000 38FF FFFF 64K VMEbus A16/D16 (Super/Program) 4 3900 0000 39FE FFFF 16M - 64K VMEbus A24/D32 (Super/Data) 4 39FF 0000 39FF FFFF 64K VMEbus A16/D32 (Super/Data) 4 3A00 0000 3AFE FFFF 16M - 64K VMEbus A24/D16 (User/Program) 4 3AFF 0000 3AFF FFFF 64K VMEbus A16/D26 (User/Program) 4 3B00 0000 3BFE FFFF 16M - 64K VMEbus A24/D32 (User/Data) 4 3BFF 0000 3BFF FFFF 64K VMEbus A16/D32 (User/Data) 4 3C00 0000 7FFF FFFF 1G + 64M PCI Memory Space 8000 0000 FBFF FFFF 2G - 64M Onboard ECC DRAM 1 FC00 0000 FC03 FFFF 256K RavenMPIC 1 FC04 0000 FFFF FFFF 64M - 256K PCI Memory Space Notes: 1. Programmable via the RavenÕs PCI Configuration registers. For the MVME2300 series, RAM size is limited to 128MB. 1-18 Programming Model 2. To enabled the CHRP Òio-holeÓ, program the Raven to ignore the 0x000A0000 - 0x000FFFFF address range. 3. Programmable mapping via the four PCI Slave Images in the Universe ASIC. 4. Programmable mapping via the Special Slave Image (SLSI) in the Universe ASIC. The following table shows the programmed values for the associated Raven PCI registers for the PREP-compatible memory map. Table 1-11. Raven PCI Register Values for PREP Memory Map ConÞguration Address Offset ConÞguration Register Name Register Value $14 RavenMPIC MBASE FC00 0000 $80 PSADD0 8000 FBFF $84 PSOFF0 & PSATT0 8000 00FX $88 PSADD1 0000 0000 $8C PSOFF1 & PSATT1 0000 0000 $90 PSADD2 0000 0000 $94 PSOFF2 & PSATT2 0000 0000 $98 PSADD3 0000 0000 $9C PSOFF3 & PSATT3 0000 0000 1-19 1 1 Board Description and Memory Maps The next table shows the programmed values for the associated Universe PCI registers for the PCI PREP memory map. Table 1-12. Universe PCI Register Values for PREP Memory Map ConÞguration Address Offset 1-20 ConÞguration Register Name Register Value $100 LSI0_CTL C082 5100 $104 LSI0_BS 0100 0000 $108 LSI0_BD 3000 0000 $10C LSI0_TO XXXX 0000 $114 LSI1_CTL C042 5100 $118 LSI1_BS 3000 0000 $11C LSI1_BD 3800 0000 $120 LSI1_TO XXXX 0000 $128 LSI2_CTL 0000 0000 $12C LSI2_BS XXXX XXXX $130 LSI2_BD XXXX XXXX $134 LSI2_TO XXXX XXXX $13C LSI3_CTL 0000 0000 $140 LSI3_BS XXXX XXXX $144 LSI3_BD XXXX XXXX $148 LSI3_TO XXXX XXXX $188 SLSI C0A05338 Programming Model VMEbus Mapping Note For the MVME2300 series, RAM size is limited to 128MB. VMEbus Master Map The processor can access any address range in the VMEbus with the help from the address translation capabilities of the Universe ASIC. The recommended mapping is shown in the Processor Memory Map section. The following figure illustrates how the VMEbus master mapping is accomplished. 1-21 1 1 Board Description and Memory Maps PROCESSOR VMEBUS PCI MEMORY ONBOARD MEMORY PROGRAMMABLE SPACE NOTE 2 NOTE 1 PCI MEMORY SPACE VME A24 VME A16 NOTE 3 VME A24 VME A16 NOTE 1 PCI/ISA MEMORY SPACE VME A24 VME A16 PCI I/O SPACE VME A24 VME A16 MPC RESOURCES 11553.00 9609 Figure 1-2. VMEbus Master Mapping Notes: 1. Programmable mapping done by the Raven ASIC. 1-22 Programming Model 2. Programmable mapping via the four PCI Slave Images in the Universe ASIC. 3. Programmable mapping via the Special Slave Image (SLSI) in the Universe ASIC. VMEbus Slave Map The four programmable VME Slave Images in the Universe ASIC allow other VMEbus masters to get to any devices on the MVME2300 series. The combination of the four Universe VME Slave Images and the four Raven PCI Slave Decoders offers a lot of flexibility for mapping the system resources as seen from the VMEbus. In most applications, the VMEbus only needs to see the system memory and, perhaps, the software interrupt registers (SIR1 and SIR2 registers). An example of the VMEbus slave map is shown below: 1-23 1 1 Board Description and Memory Maps PCI Memory Processor VMEbus NOTE 2 Onboard Memory NOTE 1 NOTE 1 ISA Space PCI I/O Space NOTE3 Software INT Registers 1896 9609 Figure 1-3. VMEbus Slave Mapping Notes: 1. Programmable mapping via the four VME Slave Images in the Universe ASIC. 2. Programmable mapping via PCI Slave Images in the Raven ASIC. 3. Fixed mapping via the PIB device. 1-24 Programming Model The following table shows the programmed values for the associated Universe registers for the VMEbus slave function. Table 1-13. Universe PCI Register Values for VMEbus Slave Map Example ConÞguration Address Offset ConÞguration Register Name Register Value (CHRP) Register Value (PREP) $F00 VSI0_CTL C0F2 0001 C0F2 0001 $F04 VSI0_BS 4000 0000 4000 0000 $F08 VSI0_BD 4000 1000 4000 1000 $F0C VSI0_TO C000 1000 C000 1000 $F14 VSI1_CTL E0F2 00C0 E0F2 00C0 $F18 VSI1_BS 1000 0000 1000 0000 $F1C VSI1_BD 2000 0000 2000 0000 $F20 VSI1_TO F000 0000 7000 0000 $F28 VSI2_CTL 0000 0000 0000 0000 $F2C VSI2_BS XXXX XXXX XXXX XXXX $F30 VSI2_BD XXXX XXXX XXXX XXXX $F34 VSI2_TO XXXX XXXX XXXX XXXX $F3C VSI3_CTL 0000 0000 0000 0000 $F40 VSI3_BS XXXX XXXX XXXX XXXX $F44 VSI3_BD XXXX XXXX XXXX XXXX $F48 VSI3_TO XXXX XXXX XXXX XXXX The above register values yield the following VMEbus slave map: 1-25 1 1 Board Description and Memory Maps Table 1-14. VMEbus Slave Map Example VMEbus Address Size Range CHRP Map PREP Map Mode 4000 0000 4000 0FFF A32 U/S/P/D D08/16/32 4K PCI/ISA I/O Space: 0000 1000 - 0000 1FFF PCI/ISA I/O Space: 0000 1000 - 0000 1FFF 1000 0000 1FFF FFFF A32 U/S/P/D D08/16/32/64 RMW 256M PCI/ISA Memory Space (On-board DRAM) 0000 0000 - 0FFF FFFF PCI/ISA Memory Space (On-board DRAM) 8000 0000 - 8FFF FFFF 1-26 Programming Model 1 Falcon-Controlled System Registers The Falcon chipset latches the states of the DRAM data lines onto the PR_STAT1 and PR_STAT2 registers. The MVME2300 series uses these status registers to provide the system configuration information. In addition, the Falcon chipset performs the decode and control for an external register port. This function is utilized by the MVME2300 series to provide the system control registers. Table 1-15. System Register Summary FEF88300 CPU Control Register The following sub-sections describe these system registers in detail. 1-27 31 System External Cache Control Register 30 FEF88000 29 Memory Configuration Register (Lower Falcon’s PR_STAT1) 28 FEF80404 27 System Configuration Register (Upper Falcon’s PR_STAT1) 26 FEF80400 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BIT # ----> 1 Board Description and Memory Maps System Configuration Register (SYSCR) The states of the RD[0:31] DRAM data pins, which have weak internal pull-ups, are latched by the upper Falcon chip at a rising edge of the power-up reset and stored in this System Configuration Register to provide some information about the system. Configuration is accomplished with external pull-down resistors. This 32-bit read-only register is defined as follows: REG System Configuration Register - $FEF80400 BIT 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SYSID SYSCLK SYSXC P0STAT P1STAT FIELD OPER RESET READ ONLY $FD 1111 SYSID 1111 0111 1111 1 1 $F System IdentiÞcation. This Þeld speciÞes the type of the overall system conÞguration so that the software may appropriately handle any software visible differences. For the MVME2300 series, this Þeld returns a value of $FD. SYSCLK System Clock Speed. This Þeld relays the system clock speed and the PCI clock speed information as follows: 1-28 SYSCLK Value System Clock Speed PCI Clock Speed 0b0000 to 0b1100 Reserved Reserved 0b1101 50MHz 25MHz 0b1110 60MHz 30MHz 0b1111 66.66MHz 33.33MHz Programming Model SYSXC System External Cache Size. The MVME2300 series does not offer any external caching options. Reads from this Þeld will always return a hardwired value of 0b1111 indicating the absence of external caching. P0/1STAT Processor 0/1 Status. This Þeld is encoded as follows: P0/1STAT Value Processor 0/1 Present External In-line Cache Size 0b0000 to 0b0011 Reserved Reserved 0b0100 YES 1M 0b0101 YES 512K 0b0110 YES 256K 0b0111 YES None 0b1000 to 0b1111 NO N/A 1-29 1 1 Board Description and Memory Maps Memory Configuration Register (MEMCR) The states of the RD[00:31] DRAM data pins, which have weak internal pull-ups, are latched by the lower Falcon chip at a rising edge of the power-up reset and stored in this Memory Configuration Register to provide some information about the system memory. Configuration is accomplished with external pulldown resistors. This 32-bit read-only register is defined as follows: REG Memory Configuration Register - $FEF80404 BIT 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 FLSHP2FLSHP1_ FLSHP0_ L2_PLL3 L2_PLL2 L2_PLL1 L2_PLL0 L3_TYPE3 L2_TYP2 L2_TYPE1 L2_TYPE0 R_B_TYP2 R_B_TYP1 R_B_TYP0 R_A_TYP2 R_A_TYP1 R_A_TYP0 M_SPD1 M_SPD0 M_FREF M_SIZE1 M_SIZE0 FIELD OPER 1 1 1 X X X 1 1 X X X X X X X X X X X 1 X X X 1 X X 1 1 X 1 X X RESET M_SIZE[0:1] Memory Size. This Þeld is encoded as follows: M_SIZE[0:1] Total Memory On Board 0b00 16 Megabytes 0b01 32 Megabytes 0b10 64 Megabytes 0b11 128 Megabytes M_FREF Block A/B/C/D Fast Refresh. When this bit is set, it indicates that a DRAM block requires faster refresh rate. If any of the four blocks requires faster refresh rate then the ram ref control bit should be set. 1-30 Programming Model M_SPD[0:1] Memory Speed. This Þeld relays the memory speed information as follows: M_SPD[0:1] DRAM Speed DRAM Type 0b00 70ns Past Page 0b01 60ns Fast Page 0b10 Reserved Reserved 0b11 50ns EDO These two bits reßect the combined status of the four blocks of DRAM. Initialization software uses this information to program the ram_spd0 and ram_spd1 control bits in the FalconÕs Chip Revision Register. R_A/B_TYP[0:2] ROM/Flash Type. This Þeld is encoded as follows: ROM_A/B_TYP[0:2] 0b000 to 0b101 ROM/FLASH Type Reserved 0b110 Intel 16-bit wide FLASH with 16K Bottom Boot Block 0b111 Unknown type (i.e. ROM/FLASH Sockets) Note: The device width is different from the width of the FLASH bank. If the bank width is 64-bit and the device width is 16-bit then the FLASH bank consists of four FLASH devices. L2_TYPE[0:3] L2 Memory Type. This Þeld is encoded as follows: L2_TYPE[0:3] ConÞguration 0b0000 Late write Sync 0b0001 Pipelined Sync Burst 0b0010 to 0B1111 Reserved 1-31 1 1 Board Description and Memory Maps L2_PLL[0:3] L2 Core Frequency to L2 Frequency Divider. This Þeld is encoded as follows: PLL Value] Size 0b0000 Disable 0b0001 1 0b0010 1.5 0b0011 2 0b0100 2.5 0b0101 3 0b0110 to 0B1111 Reserved FLSHP[0:2]_ Bank A Flash memory size. This Þeld is encoded as follows: Flash Size FLSHP0_ FLSHP1_ FLSHP2_ 1MB 0 0 0 2MB 0 0 1 4MB 0 1 0 8MB 0 1 1 16MB 1 0 0 32MB 1 0 1 64MB 1 1 0 No Flash 1 1 1 System External Cache Control Register (SXCCR) The MVME2300 series does not implement this register. Writes to this register location ($FEF88000) will have no system effects. Reads from this register location will return undefined data. 1-32 Programming Model Processor 0 External Cache Control Register (P0XCCR) The MVME2300 series does not implement this register. Writes to this register location ($FEF88100) will have no system effects. Reads from this register location will return undefined data. Processor 1 External Cache Control Register (P1XCCR) The MVME2300 series does not implement this register. Writes to this register location ($FEF88200) will have no system effects. Reads from this register location will return undefined data. CPU Control Register The CPU Control Register is accessed via the RD[32:39] data lines of the upper Falcon device. This 8-bit register is defined as follows: REG BIT CPU Control Register - $FEF88300 2 3 OPER R RESET 1 FIELD 4 5 6 7 R R R/W R R R R 0 0 1 X X X X P0_TBEN 1 LEMODE 0 LEMODE Little Endian Mode. This bit must be set in conjunction with the LEND bit in the Raven for little-endian mode. P0_TBEN Processor 0 Time Base Enable. When this bit is cleared, the TBEN pin of the processor will be driven low. 1-33 1 1 Board Description and Memory Maps ISA Local Resource Bus W83C553 PIB Registers The PIB contains ISA Bridge I/O registers for various functions. These registers are actually accessible from the PCI bus. Refer to the W83C553 Data Book for details. 16550 UART The 16550 UART provides the MVME2300 series with an asynchronous serial port. Refer to the 16550 Data Sheet for additional details and programming information. The following table shows the mapping of the 16550 registers within the MVME2300 seriesÕs ISA I/O space beginning at address 0x3f8: Table 1-16. 16550 Access Registers ISA I/O Address 1-34 Function 0000 02f8 Receiver Buffer (Read); Transmitter Holding (Write) 0000 -03f9 Interrupt Enable 0000 03fa Interrupt Identification (Read); FIFO Control (Write) 0000 03fb Line Control 0000 03fc MODEM control 0000 03fd Line Status 0000 03fe MODEM Status 0000 03ff Scratch ISA Local Resource Bus General-Purpose Software-Readable Header (J17) Header J17 provides eight readable jumpers. These jumpers can be read as a register at ISA I/O address $801 (hexadecimal). Bit 0 is associated with header pins 1 and 2; bit 7 is associated with pins 15 and 16. The bit values are read as a 0 when the jumper is installed, and as a 1 when the jumper is removed. The MVME230x is shipped from the factory with J17 set to all 0s (jumpers on all pins), as shown in Figure 1-4. The PowerPC firmware, PPCBug, reserves all bits, SRH0 to SRH7. With the jumper installed between pins 3 and 4 (factory configuration), the debugger uses the current user setup/operation parameters in Flash. When the jumper is removed (making the bit a 1), the debugger uses the default setup/operation parameters in NVRAM instead. Refer to the ENV command description in the MVME2300-Series VME Processor Module Installation and Use manual for the NVRAM defaults. J17 Bit 0 (SRH0) 1 PPCBug INSTALLED 2 Reserved for future use Bit 1 (SRH1) Setup parameter source (In=Flash; Out=NVRAM) Bit 2 (SRH2) Reserved for future use Bit 3 (SRH3) Reserved for future use Bit 4 (SRH4) Reserved for future use Bit 5 (SRH5) Reserved for future use Bit 6 (SRH6) Reserved for future use Bit 7 (SRH7) 15 16 Reserved for future use Figure 1-4. General-Purpose Software-Readable Header 1-35 1 1 Board Description and Memory Maps NVRAM/RTC & Watchdog Timer Registers The MK48T59/559 provides the MVME2300 series with 8K of nonvolatile SRAM, a time-of-day clock, and a watchdog timer. Accesses to the MK48T59559 are accomplished via three registers: The NVRAM/RTC Address Strobe 0 Register, the NVRAM/RTC Address Strobe 1 Register, and the NVRAM/RTC Data Port Register. The NVRAM/RTC Address Strobe 0 Register latches the lower 8 bits of the address and the NVRAM/RTC Address Strobe 1 Register latches the upper 5 bits of the address. Table 1-17. MK48T59/559 Access Registers PCI I/O Address Function 0000 0074 NVRAM/RTC Address Strobe 0 (A7 - A0) 0000 0075 NVRAM/RTC Address Strobe 1 (A15 - A8) 0000 0077 NVRAM/RTC Data Register The NVRAM and RTC is accessed through the above three registers. When accessing a NVRAM/RTC location, follow the following procedure: 1. Write the low address (A7-A0) of the NVRAM to the NVRAM/RTC STB0 register, 2. Write the high address (A15-A8) of the NVRAM to the NVRAM/RTC STB1 register, and 3. Then read or write the NVRAM/RTC Data Port. Refer to the MK48T59 Data Sheet for additional details and programming information. Module Configuration and Status Registers Four registers provide the configuration and status information about the board. These registers are listed in the following table: 1-36 ISA Local Resource Bus Table 1-18. Module Configuration and Status Registers PCI I/O Address Function 0000 0800 CPU Configuration Register 0000 0802 Base Module Feature Register 0000 0803 Base Module Status Register 0000 08C0 - 0000 08C1 Seven-Segment Display Register The following sub sections describe these registers in detail. CPU Configuration Register The CPU Configuration Register is an 8-bit register located at ISA I/O address x0800. This register is defined for the MVME2300 series to provide some backward compatibility with older MVME1600 products. The Base Module Status Register should be used to identify the base module type and the System Configuration Register should be used to obtain information about the overall system. REG BIT Old CPU Configuration Register - $FE000800 SD7 SD6 SD5 SD4 SD3 SD2 SD1 FIELD CPUTYPE OPER R R RESET $E $F SD0 CPUTYPE CPU Type. This Þeld will always read as $E for the MVME2300 series. (The whole register will read $EF.) The System ConÞguration Register should be used for additional information. 1-37 1 1 Board Description and Memory Maps Base Module Feature Register The Base Module Feature Register is an 8-bit register providing the configuration information about the MVME2300-series VME Processor Module. This read-only register is located at ISA I/O address x0802. REG BIT Base Module Feature Register - Offset $0802 SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0 PCIXP_ PMC2P_ PMC1P_ VMEP_ OPER R R R R R R R R RESET X 1 X X X 1 X 1 PCIXP_ LANP_ FIELD PCI Expansion Slot Present. If set, there is no PCIX device installed. If cleared, the PCIX slot contains a PCI Mezzanine Card. PMC2P_ PMC Slot 2 Present. If set, there is no PCI Mezzanine Card installed in the PMC Slot 2. If cleared, the PMC Slot 2 contains a PMC. PMC1P_ PMC Slot 1 Present. If set, there is no PCI Mezzanine Card installed in the PMC Slot 1. If cleared, the PMC Slot 1 contains a PMC. 1-38 VMEP_ VMEbus Present. If set, there is no VMEbus interface. If cleared, VMEbus interface is supported. LANP_ Ethernet Present. If set, there is no Ethernet transceiver interface. If cleared, there is on-board Ethernet support. ISA Local Resource Bus Base Module Status Register (BMSR) The Base Module Status Register is an 8-bit read-only register located at ISA I/O address x0803. REG BIT Base Module Status Register - Offset $0803 SD7 SD6 SD5 SD4 SD3 FIELD SD1 SD0 BASE_TYPE OPER RESET SD2 R 1 1 1 1 N/A BASE_TYPEBase Module Type. This four bit Þeld is used to provide the category of the base module and is deÞned as follows: BASE_TYPE Value Base Module Type $0 to $8 Reserved $9 MVME2300 $A to $F Reserved 1-39 1 1 Board Description and Memory Maps Seven-Segment Display Register Note This register is NOT USED on the MVME2300-series boards. This 16-bit register allows data to be sent to the 4-digit hexadecimal diagnostic display. The register also allows the data to be read back. REG DIG0[3:0] R/W X X X X X X X X X X X X X X X DIG3[3:0] Hexadecimal value of the most signiÞcant digit. DIG2[3:0] Hexadecimal value of the third signiÞcant digit. DIG1[3:0] Hexadecimal value of the second signiÞcant digit. DIG0[3:0] Hexadecimal value of the least signiÞcant digit. VME Registers The following registers provide the following functions for the VMEbus interface: a software interrupt capability, a location monitor function, and a geographical address status. For these registers to be accessible from the VMEbus, the Universe ASIC must be programmed to map the VMEbus Slave Image 0 into the appropriate PCI I/O address range. Refer to the VMEbus Slave Map section for additional details. The following table shows the registers provided for various VME functions: 1-40 SD0 SD1 DIG1[3:0] SD2 SD3 SD4 SD5 SD6 SD7 DIG2[3:0] OPER RESET SD8 SD9 DIG3[3:0] SD10 SD11 SD12 SD13 FIELD SD14 SD15 BIT 7-Segment Display Register - Offset $08C0 X ISA Local Resource Bus Table 1-19. VME Registers PCI I/O Address Function 0000 1000 SIG/LM Control Register 0000 1001 SIG/LM Status Register 0000 1002 VMEbus Location Monitor Upper Base Address 0000 1003 VMEbus Location Monitor Lower Base Address 0000 1004 VMEbus Semaphore Register 1 0000 1005 VMEbus Semaphore Register 2 0000 1006 VMEbus Geographical Address Status These registers are described in the following sub-sections. LM/SIG Control Register The LM/SIG Control Register is an 8-bit register located at ISA I/O address x1000. This register provides a method to generate software interrupts. The Universe ASIC is programmed so that this register can be accessed from the VMEbus to generate software interrupts to the processor(s). REG LM/SIG Control Register - Offset $1000 BIT SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0 FIELD SET SIG1 SET SIG0 SET LM1 SET LM0 CLR SIG1 CLR SIG0 CLR LM1 CLR LM0 0 0 0 OPER RESET WRITE-ONLY 0 0 0 0 0 SET_SIG1 Writing a 1 to this bit will set the SIG1 status bit. SET_SIG0 Writing a 1 to this bit will set the SIG0 status bit. 1-41 1 1 Board Description and Memory Maps SET_LM1 Writing a 1 to this bit will set the LM1 status bit. SET_LM0 Writing a 1 to this bit will set the LM0 status bit. CLR_SIG1Writing a 1 to this bit will clear the SIG1 status bit. CLR_SIG0Writing a 1 to this bit will clear the SIG0 status bit. CLR_LM1 Writing a 1 to this bit will clear the LM1 status bit. CLR_LM0 Writing a 1 to this bit will clear the LM0 status bit. LM/SIG Status Register The LM/SIG Status Register is an 8-bit register located at ISA I/O address x1001. This register, in conjunction with the LM/SIG Control Register, provides a method to generate interrupts. The Universe ASIC is programmed so that this register can be accessed from the VMEbus to provide a capability to generate software interrupts to the onboard processor(s) from the VMEbus. REG LM/SIG Status Register - Offset $1001 BIT SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0 FIELD EN SIG1 EN SIG0 EN LM1 EN LM0 SIG1 SIG0 LM1 LM0 OPER RESET R/W 0 0 READ-ONLY 0 0 0 0 0 0 EN_SIG1 When the EN_SIG1 bit is set, a LM/SIG Interrupt 1 is generated if the SIG1 bit is asserted. EN_SIG0 When the EN_SIG0 bit is set, a LM/SIG Interrupt 0 is generated if the SIG0 bit is asserted. EN_LM1 When the EN_LM1 bit is set, a LM/SIG Interrupt 1 is generated and the LM1 bit is asserted. EN_LM0 When the EN_LM0 bit is set, a LM/SIG Interrupt 0 is generated and the LM0 bit is asserted. 1-42 ISA Local Resource Bus SIG1 SIG1 status bit. This bit can only be set by the SET_LM1 control bit. It can only be cleared by a reset or by writing a 1 to the CLR_LM1 control bit. SIG0 SIG0 status bit. This bit can only be set by the SET_LM0 control bit. It can only be cleared by a reset or by writing a 1 to the CLR_LM0 control bit. LM1 LM1 status bit. This bit can be set by either the location monitor function or the SET_LM1 control bit. LM1 correspond to offset 3 from the location monitor base address. This bit can only be cleared by a reset or by writing a 1 to the CLR_LM1 control bit. LM0 LM0 status bit. This bit can be set by either the location monitor function or the SET_LM0 control bit. LM0 correspond to offset 1 from the location monitor base address. This bit can only be cleared by a reset or by writing a 1 to the CLR_LM0 control bit. Location Monitor Upper Base Address Register The Location Monitor Upper Base Address Register is an 8-bit register located at ISA I/O address x1002. The Universe ASIC is programmed so that this register can be accessed from the VMEbus to provide VMEbus location monitor function. REG Location Monitor Upper Base Address Register - Offset $1002 BIT SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0 FIELD VA15 VA14 VA13 VA12 VA11 VA10 VA9 VA8 0 0 0 0 OPER RESET R/W 0 0 VA[15:8] 0 0 Upper Base Address for the location monitor function. 1-43 1 1 Board Description and Memory Maps Location Monitor Lower Base Address Register The Location Monitor Lower Base Address Register is an 8-bit register located at ISA I/O address x1003. The Universe ASIC is programmed so that this register can be accessed from the VMEbus to provide VMEbus location monitor function. REG Location Monitor Lower Base Address Register - Offset $1003 BIT SD7 SD6 SD5 SD4 SD3 FIELD VA7 VA6 VA5 VA4 LMEN OPER RESET R/W 0 0 0 0 0 SD2 SD1 SD0 R R R 0 0 0 VA[7:4] Lower Base Address for the location monitor function. LMEN This bit must be set to enable the location monitor function. Semaphore Register 1 The Semaphore Register 1 is an 8-bit register located at ISA I/O address x1004. The Universe ASIC is programmed so that this register can be accessible from the VMEbus. This register can only be updated if bit 7 is low or if the new value has the most significant bit cleared. When bit 7 is high, this register will not latch in the new value if the new value has the most significant bit set. REG BIT Semaphore Register 1 - Offset $1004 SD7 SD6 SD5 SD4 FIELD SEM1 OPER R/W RESET 1-44 0 0 0 0 SD3 SD2 SD1 SD0 0 0 0 0 ISA Local Resource Bus Semaphore Register 2 The Semaphore Register 2 is an 8-bit register located at ISA I/O address x1005. The Universe ASIC is programmed so that this register can be accessible from the VMEbus. This register can only be updated if bit 7 is low or if the new value has the most significant bit cleared. When bit 7 is high, this register will not latch in the new value if the new value has the most significant bit set. REG BIT Semaphore Register 2 - Offset $1005 SD7 SD6 SD5 SD4 FIELD SEM2 OPER R/W RESET 0 0 0 0 SD3 SD2 SD1 SD0 0 0 0 0 VME Geographical Address Register (VGAR) The VME Geographical Address Register is an 8-bit read-only register located at ISA I/O address x1006. This register reflects the states of the geographical address pins at the 5-row, 160-pin P1 connector. REG BIT VME Geographical Address Register - Offset $1006 SD7 SD6 FIELD SD5 SD4 SD3 SD2 SD1 SD0 GAP# GA4# GA3# GA2# GA1# GA0# X X X OPER RESET READ ONLY X X X X X 1-45 1 1 Board Description and Memory Maps Emulated Z8536 CIO Registers and Port Pins Although the MVME2300 series does not use a Z8536, there are several functions within this part that are emulated within an ISA Register PLD. These functions are accessed by reading/writing the Port A, B, C Data Registers and Control Register. Note that the Pseudo IACK function is not implemented in the MVME2300 series. Emulated Z8536 Registers The MVME2300 series implements the Z8536 CIO functions according to the following table. Table 1-20. Emulated Z8536 Access Registers PCI I/O Address Function 0000 0844 Port C’s Data Register 0000 0845 Port B’s Data Register 0000 0846 Port A’s Data Register 0000 0847 Control Register Z8536 CIO Port Pins The following table shows the signal function and port mapping for the Z8536 CIO emulation. The direction of these ports are fixed in hardware. Table 1-21. Z8536 CIO Port Pins Assignment Port Pin Signal Name Direction Descriptions PA0 I/O Not used PA1 I/O Not used PA2 I/O Not used PA3 I/O Not used 1-46 ISA Local Resource Bus Table 1-21. Z8536 CIO Port Pins Assignment (Continued) Port Pin Signal Name Direction Descriptions PA4 I/O Not used PA5 I/O Not used PA6 BRDFAIL Output Board Fail: When set will cause BFL LED to be lit. PA7 I/O Not used PB0 I/O Not used PB1 I/O Not used PB2 I/O Not used PB3 I/O Not used PB4 I/O Not used PB5 I/O Not used PB6 I/O Not used PB7 ABORT_ Input Status of ABORT# signal PC0 I/O Not used PC1 I/O Not used PC2 BASETYP0 Input PC3 BASETYP1 Input Genesis Base Module Type: 00b = Genesis II (see Base Module Status Register) 01b = MVME1600-011 10b = Reserved 11b = MVME1600-001 ISA DMA Channels The MVME2300 series does not implement any ISA DMA channels. 1-47 1 1 Board Description and Memory Maps 1-48 2Raven PCI Host Bridge & MultiProcessor Interrupt Controller Chip 2 Introduction Overview This document describes the architecture and usage of the Raven, a PowerPC to PCI Local Bus Bridge ASIC. The Raven is intended to provide PowerPC 60x (MPC60x) compliant devices access to devices residing on the PCI Local Bus. In the remainder of this chapter, the MPC60x bus will be referred to as the MPC bus and the PCI Local Bus as PCI. PCI is a high performance 32-bit or 64-bit, burst mode, synchronous bus capable of transfer rates of 132 MByte/sec in 32-bit mode or 264 MByte/sec in 64-bit mode using a 33 MHz clock. Features ❏ MPC Bus Interface Ð Direct interface to MPC603 or MPC604 processors. Ð 64-bit data bus, 32-bit address bus. Ð Four independent software programmable slave map decoders. Ð Multi-level write post FIFO for writes to PCI. Ð Support for MPC bus clock speeds up to 66 MHz. Ð Selectable big or little endian operation. Ð 3.3 V signal levels ❏ PCI Interface Ð Fully PCI Rev. 2.0 compliant. Ð 32-bit or 64-bit address/data bus. Ð Support for accesses to all four PCI address spaces. 2-1 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip Ð Single-level write posting buffers for writes to the MPC bus. 2 Ð Read-ahead buffer for reads from the MPC bus. Ð Four independent software programmable slave map decoders. ❏ Interrupt Controller Ð MPIC compliant. Ð Support for 16 external interrupt sources and two processors. Ð Multiprocessor interrupt control allowing any interrupt source to be directed to either processor. Ð Multilevel cross processor interrupt control for multiprocessor synchronization. Ð Four 31 bit tick timers. ❏ 2-2 Two 64-bit general purpose registers for cross-processor messaging. MPC Slave PCI Slave Raven MPC Dec Reg MPCADIN Reg PCIADIN PCI Dec Mux Mux MPC Bus MPC Regs Endian Data Path ‘B’ Endian Data Path ‘A’ PCI Regs MPIC PCI Bus FIFO FIFO Reg MPC Master Mux Mux MPC Mux PCI Mux Reg PCI Master Block Diagram Block Diagram 2 1914 9702 Figure 2-1. Raven Block Diagram 2-3 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 Functional Description Architectural Overview A functional block diagram of the Raven is shown in Figure 2-1. The Raven control logic is subdivided into the following functions: PCI slave, PCI master, MPC slave and MPC master. The Raven data path logic is subdivided into the following functions: Data Path ÔAÕ FIFOs/muxes, Data Path ÔBÕ FIFOs/muxes, PCIADIN, MPCADIN, Mux PCI, and Mux MPC. Address decoding is handled in the PCI Decode and MPC Decode blocks. The control register logic is contained in the PCI Registers and MPC Registers blocks. The interrupt controller (RavenMPIC) and the MPC arbiter functions make up the remainder of the Raven design. The data path function imposes some restrictions on access to the RavenMPIC, the PCI Registers, and the MPC Registers. The RavenMPIC and the PCI Registers are only accessible to PCIoriginated transactions. The MPC Registers are only accessible to MPC-originated transactions. MPC Bus Interface The MPC Bus Interface is designed to be coupled directly to up to two MPC603 or MPC604 microprocessors as well as a memory/cache subsystem. It uses a subset of the capabilities of the MPC60x bus protocol. MPC Address Mapping The Raven will map either PCI memory space or PCI I/O space into MPC address space using four programmable map decoders. These decoders provide windows into the PCI bus from the MPC bus. The most significant 16 bits of the MPC address are compared with the address range of each map decoder, and if the address falls within the specified range, the access is passed on to PCI. An example of this is shown in Figure 2-2. 2-4 Functional Description 2 MPC Bus Address 8 0 8 0 1 2 3 4 0 1516 Decode is MSADDx Register >= and 31 <= 7 0 8 0 9 0 0 0 0 1516 31 Figure 2-2. MPC to PCI Address Decoding There are no limits imposed by Raven on how large of an address space a map decoder can represent. There is a lower limit of a minimum of 64 KBytes due to the resolution of the address compare logic. For each map, there is an associated set of attributes. These attributes are used to enable read accesses, enable write accesses, enable write posting, and define the PCI transfer characteristics. 2-5 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip Each map decoder also includes a programmable 16-bit address offset. The offset is added to the 16 most significant bits of the MPC address, and the result is used as the PCI address. This offset allows PCI devices to reside at any PCI address, independent of the MPC address map. An example of this is shown in Figure 2-3. 2 MPC Bus Address 8 0 8 0 1 2 3 4 0 1516 31 + MSOFFx Register 9 0 0 0 0 15 = PCI Bus Address 1 0 8 0 1 2 3 4 31 1615 0 Figure 2-3. MPC to PCI Address Translation Care should be taken to assure that all programmable decoders decode unique address ranges since overlapping address ranges will lead to undefined operation. MPC Slave The MPC slave provides the interface between the MPC bus and the Raven FIFOs. The MPC slave is responsible for tracking and maintaining coherency to the 60x processor bus protocol. The MPC slave divides MPC command types into three categories: address only, write, and read. If a command type is an address only and the address presented at the time of the command is a valid Raven address, the MPC slave will respond immediately. The 2-6 Functional Description Raven will not respond to address only cycles where the address presented is not a Raven address. The response of the MPC slave to command types is listed in Table 2-1. Table 2-1. MPC Slave Response Command Types MPC Transfer Type Transfer Encoding Transaction Clean Block 00000 Addr Only Flush Block 00100 Addr Only SYNC 01000 Addr Only Kill Block 01100 Addr Only EIEIO 10000 Addr Only ECOWX 10100 No Response TLB Invalidate 11000 Addr Only ECIWX 11100 No Response LWARX 00001 Addr Only STWCX 00101 Addr Only TLBSYNC 01001 Addr Only ICBI 01101 Addr Only Reserved 1XX01 No Response Write-with-ßush 00010 Write Write-with-kill 00110 Write Read 01010 Read Read-with-intent-to-modify 01110 Read Write-with-ßush-atomic 10010 Write Reserved 10110 No Response Read-atomic 11010 Read Read-with-intent-to-modify-atomic 11110 Read Reserved 00011 No Response Reserved 00111 No Response Read-with-no-intent-to-cache 01011 Read Reserved 01111 No Response Reserved 1xx11 No Response 2-7 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 MPC Write Posting The MPC write FIFO stores up to eight data beats in any combination of single- and four-beat (burst) transactions. If write posting is enabled, Raven stores the data necessary to complete an MPC write transfer to the PCI bus and immediately acknowledges the transaction on the MPC bus. This frees the MPC bus from waiting for the potentially long PCI arbitration and transfer. The MPC bus may be used for more useful work while the Raven manages the completion of the write posted transaction on PCI. All transactions will be completed on the PCI bus in the same order that they are completed on the MPC bus. A read or a compelled write transaction will force all previously issued write posted transactions to be flushed from the FIFO. All write posted transfers will be completed before a non-write posted read or write is begun, to assure that all transfers are completed in the order issued. All write posted transfers will also be completed before any access to the RavenÕs registers is begun. MPC Master The MPC master will attempt to move data using burst transfers wherever possible. A 64-bit by 16 entry FIFO is used to hold data between the PCI slave and the MPC master to ensure that optimum data throughput is maintained. While the PCI slave is filling the FIFO with one cache line worth of data, the MPC master can be moving another cache line worth onto the MPC bus. This will allow the PCI slave to receive long block transfers without stalling. When programmed in Òread aheadÓ mode (the RAEN bit in the PSATTx register is set) and the PCI slave receives a Memory Read Line or Memory Read Multiple command, the MPC master will fetch data in bursts and store it in the FIFO. The contents of the FIFO will then be used to attempt to satisfy the data requirements for the remainder of the PCI block transaction. If the data requested is not in the FIFO, the MPC master will read another cache line. The contents of the FIFO are ÒinvalidatedÓ at the end of each PCI block transaction. 2-8 Functional Description Notes 1. Read ahead mode should not be used when data coherency may be a problem, as there is no way to snoop all MPC bus transactions and invalidate the contents of the FIFO. 2 2. Accesses near the top of local memory with readahead mode enabled could cause the MPC master to perform reads beyond the top of local memory which could result in an MPC bus timeout error. The MPC bus transfer types generated by the MPC master depend on the PCI command code and the INV/GBL bits in the PSATTx registers. The GBL bit determines whether or not the GBL* signal is asserted for all portions of a transaction, and is fully independent of the PCI command code and INV bit. Table 2-2 shows the relationship between PCI command codes and the INV bit. Table 2-2. MPC Transfer Types PCI Command Code INV MPC Transfer Type MPC Transfer Size TT0-TT4 Memory Read Memory Read Multiple Memory Read Line 0 Read Burst/Single Beat 01010 Memory Read Memory Read Multiple Memory Read Line 1 Read With Intent to Modify Burst/Single Beat 01110 Memory Write Memory Write and Invalidate x Write with Kill Burst 00110 Memory Write Memory Write and Invalidate x Write with Flush Single Beat 00010 The MPC master incorporates an optional operating mode called Bus Hog. When Bus Hog is enabled, the MPC master will continually request the MPC bus for the entire duration of each PCI transfer. When Bus Hog is not enabled, the MPC master will 2-9 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip structure its bus request actions according to the requirements of the FIFO. Caution should be exercised when using this mode since the over-generosity of bus ownership to the MPC master can be detrimental to the host CPUÕs performance. The Bus Hog mode can be controlled by the BHOG bit within the GCSR. The default state for BHOG is disabled. 2 MPC Arbiter The MPC Arbiter is an optional feature in the Raven, and is not used on the MVME2300 series. Arbitration for the MPC bus on the MVME2300 series is performed external to the Raven. MPC Bus Timer The MPC bus timer allows the current bus master to recover from a lock-up condition caused when no slave responds to the transfer request. The time-out length of the bus timer is determined by the MBT field in the Global Control/Status Register. The bus timer starts ticking at the beginning of an address transfer (TS* asserted), and if the address transfer is not terminated (AACK* asserted) before the time-out period has passed, the Raven will assert the MATO bit in the MPC Error Status Register, latch the MPC address in the MPC Error Address Register, and then terminate the cycle. The MATO bit may be configured to generate an interrupt or a machine check through the MEREN register. The timer is disabled if the transfer is intended for PCI. PCI bound transfers will be timed by the PCI master. PCI Interface The Raven PCI Interface is designed to connect directly to a PCI Local Bus, and supports Master and Target transactions within Memory space, I/O Space, and Configuration Space. 2-10 Functional Description The PCI interface may operate at any clock speed up to 33 MHz. The PCLK input must be externally synchronized with the MCLK input, and the frequency of the PCLK input must be exactly half the frequency of the MCLK input. PCI Address Mapping Raven provides three resources to PCI: ❏ Configuration registers mapped into PCI Configuration space ❏ MPC bus address space mapped into PCI Memory space ❏ RavenMPIC control registers mapped into either PCI I/O space or PCI Memory space ConÞguration Registers: The Raven does not have an IDSEL pin. An internal connection is made within the Raven that logically associates the assertion of IDSEL with the assertion of AD31. Raven provides a configuration space that is fully compliant with the PCI Local Bus Specification 2.0 definition for configuration space. There are two base registers within the standard 64 byte header that are used to control the mapping of RavenMPIC. One register is dedicated to mapping RavenMPIC into PCI I/O space, and the other register is dedicated to mapping RavenMPIC into PCI Memory space. The mapping of MPC address space is handled by device specific registers located above the 64 byte header. These control registers support a mapping scheme that is functionally similar to the PCI-to-MPC mapping scheme described in the section on MPC Address Mapping earlier in this chapter. MPC Bus Address Space: The Raven will map MPC address space into PCI Memory space using four programmable map decoders. The most significant 16 bits of the PCI address is compared with the address range of each 2-11 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip map decoder, and if the address falls within the specified range, the access is passed on to the MPC bus. An example of this is shown in Figure 2-4. 2 PCI Bus Address 8 0 8 0 1 2 3 4 31 Decode is PSADDx Register 1615 >= and 0 <= 7 0 8 0 9 0 0 0 31 1615 0 Figure 2-4. PCI to MPC Address Decoding There are no limits imposed by Raven on how large of an address space a map decoder can represent. There is a lower limit of a minimum of 64 KBytes due to the resolution of the address compare logic. For each map, there is an independent set of attributes. These attributes are used to enable read accesses, enable write accesses, enable write posting, and define the MPC bus transfer characteristics. 2-12 Functional Description Each map decoder also includes a programmable 16-bit address offset. The offset is added to the 16 most significant bits of the PCI address, and the result is used as the MPC address. This offset allows devices to reside at any MPC address, independent of the PCI address map. An example of this is shown in Figure 2-5. PCI Bus Address 8 0 8 0 1 2 3 4 31 1615 0 + PSOFFx Register 9 0 0 0 31 16 = MPC Bus Address 1 0 8 0 1 2 3 4 0 1516 31 Figure 2-5. PCI to MPC Address Translation All Raven address decoders are prioritized so that programming multiple decoders to respond to the same address is not a problem. When the PCI address falls into the range of more than one decoder, only the highest priority one will respond. The decoders are prioritized as shown below. Decoder PCI Slave 0 Priority highest PCI Slave 1 PCI Slave 2 PCI Slave 3 lowest 2-13 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip RavenMPIC Control Registers: 2 The RavenMPIC control registers are located within either PCI Memory or PCI I/O space using traditional PCI defined base registers within the predefined 64-byte header. Please see the section on Raven Interrupt Controller Implementation for more information. PCI Slave The PCI slave provides the control logic needed to interface the PCI bus to RavenÕs FIFOs. The PCI slave can accept either 32-bit or 64bit transactions, however it can only accept 32-bit addressing. There is no limit to the length of the transfer that the slave can handle. During posted write cycles, the slave will continue to accept write data until the write post FIFO is full. If the write post FIFO is full, the slave will hold off the master with wait states until there is more room in the FIFO. The slave will not initiate a disconnect. If the write transaction is compelled, the slave will hold off the master with wait states while each beat of data is being transferred. The slave will acknowledge the completion of the transfer only after the data transfer has successfully completed on the MPC bus. If a read transaction is being performed within an address space marked for prefetching, the slave (in conjunction with the MPC master) will attempt to read ahead far enough on the MPC bus to allow for an uninterrupted burst transaction on the PCI bus. Read transactions within address spaces marked for no prefetching will be acknowledged on the PCI bus only after a single beat read has successfully completed on the MPC bus. Each read on the MPC bus will only be started after the previous read has been acknowledged on the PCI bus and there is an indication that the PCI master wishes for more data to be transferred. The following paragraphs identify some associations between the operation of the PCI slave and the PCI 2.0 Local Bus Specification requirements. 2-14 Functional Description Command Types: 2 Table 2-3 shows which types of PCI cycles the slave has been designed to accept. Table 2-3. PCI Slave Response Command Types Command Type Slave Response? Interrupt Acknowledge No Special Cycle No I/O Read Yes I/O Write Yes Reserved No Reserved No Memory Read Yes Memory Write Yes Reserved No Reserved No ConÞguration Read Yes ConÞguration Write Yes Memory Read Multiple Yes Dual Address Cycle No Memory Read Line Yes Memory Write and Invalidate Yes Addressing: The slave will accept any combination of byte enables during read or write cycles. During write cycles, a discontinuity (i.e., a ÔholeÕ) in the byte enables will force the slave to issue a disconnect. During all read cycles, the slave will return an entire word of data regardless of the byte enables. During I/O read cycles, the slave will perform integrity checking of the byte enables against the address being presented and assert SERR* in the event there is an error. 2-15 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip The slave will only honor the Linear Incrementing addressing mode. The slave will perform a disconnect with data if any other mode of addressing is attempted. 2 Device Selection: The PCI slave will always respond valid decoded cycles as a medium responder. Target Initiated Termination: The PCI slave normally strives to complete transactions without issuing disconnects or retries. One exception is where the slave is performing configuration cycles. All configuration cycles will be terminated with a disconnect after one data beat has been transferred. Another exception is the issue of a disconnect when asked to perform a transaction with byte enable ÔholesÕ. Fast Back-to-Back Transactions: The PCI slave supports both of the fundamental target requirements for fast back-to-back transactions. The PCI slave meets the first criteria of being able to successfully track the state of the PCI bus without the existence of an IDLE state between transactions. The second criteria associate with signal turn-around timing is met by default since the slave functions as a medium responder. Latency: The PCI slave does not have any hardware mechanisms in place to guarantee that the initial and subsequent target latency requirements are met. Typically this is not a problem since the bandwidth of the MPC bus far exceeds the bandwidth of the PCI bus. The Raven MPC arbiter has been designed to give the highest priority for its own transactions which further reduces PCI bus latency. Exclusive Access: The PCI slave has no mechanism to support exclusive access. 2-16 Functional Description Parity: 2 The PCI slave supports address parity error detection, data parity generation and data parity error detection. Cache Support: The PCI slave does not participate in the PCI caching protocol. PCI Write Posting If write posting is enabled, the Raven stores the target address, attributes, and up to 128 bytes of data from one PCI write transaction and immediately acknowledges the transaction on the PCI bus. This allows the slower PCI to continue to transfer data at its maximum bandwidth, and the faster MPC bus to accept data in high performance cache-line burst transfers. Only one PCI transaction may be write posted at any given time. If the Raven is busy processing a previous write posted transaction when a new PCI transaction begins, the next PCI transaction will be delayed (TRDY* will not be asserted) until the previous transaction has completed. If during a transaction the write post buffer gets full, subsequent PCI data transfers will be delayed (TRDY* will not be asserted) until the Raven has removed some data from the FIFO. Under normal conditions, the Raven should be able to empty the FIFO faster than the PCI bus can fill it. PCI Configuration cycles intended for internal Raven registers will also be delayed if Raven is busy so that control bits which may affect write posting do not change until all write posted transactions have completed. PCI Master The PCI master, in conjunction with the capabilities of the MPC slave, will attempt to move data in either single beat or four-beat (burst) transactions. All single beat transactions will be subdivided into one or two 32-bit transfers, depending on the alignment and size of the transaction. The PCI master will attempt to transfer all four-beat transactions in 64-bit mode if the PCI bus has 64-bit mode 2-17 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip enabled. If at any time during the transaction the PCI target indicates it can not support 64-bit mode, the PCI master will continue to transfer the remaining data in 32-bit mode. 2 The PCI master can support Critical Word First (CWF) burst transfers. The PCI master will divide this transaction into two parts. The first part will start on the address presented with the CWF transfer request and continue up to the end of the current cache line. The second transfer will start at the beginning of the associated cache line and work its way up to (but not including) the word addressed by the CWF request. It should be noted that even though the master can support burst transactions, a majority of the transaction types handled are singlebeat transfers. Typically PCI space is not configured as cache-able, therefore burst transactions to PCI space would not naturally occur. It must be supported since it is conceivable that bursting could happen. For example, nothing prevents the processor from loading up a cache line with PCI write data and manually flushing the cache line. The following paragraphs identify some associations between the operation of the PCI master and the PCI 2.0 Local Bus Specification requirements. Command Types: The PCI Command Codes generated by the PCI master depend on the type of transaction being performed on the MPC bus. Please refer to the section on the MPC Slave earlier in this chapter for a 2-18 Functional Description further description of MPC bus read and MPC bus write. Table 2-4 summarizes the command types supported and how they are generated. Table 2-4. PCI Master Command Codes Entity Addressed MPC Transfer Type TBST* MEM C/BE PCI Command PIACK Read x x 0000 Interrupt Acknowledge CONADD/CONDAT Write x x 0001 Special Cycle MPC Mapped PCI Space Read x 0 0010 I/O Read Write x 0 0011 I/O Write -- Unsupported -- 0100 Reserved -- Unsupported -- 0101 Reserved MPC Mapped PCI Space Read 1 1 0110 Memory Read Write x 1 0111 Memory Write -- Unsupported -- 1000 Reserved -- Unsupported -- 1001 Reserved CONADD/CONDAT Read x x 1010 ConÞguration Read CONADD/CONDAT Write x x 1011 ConÞguration Write -- Unsupported -- 1100 Memory Read Multiple -- Unsupported -- 1101 Dual Address Cycle 1110 Memory Read Line 1111 Memory Write and Invalidate MPC Mapped PCI Space Read -- Unsupported -- 0 1 Addressing: The PCI master will generate all memory transactions using the linear incrementing addressing mode. Combining, Merging, and Collapsing: The PCI master does not participate in any of these protocols. 2-19 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip Master Initiated Termination: 2 The PCI master can handle any defined method of target retry, target disconnect, or target abort. If the target responds with a retry, the PCI master will wait for the required two clock periods and attempt the transaction again. This will continue indefinitely until the transaction has completed, the transaction is aborted by the target, or if the transaction is aborted due to a Raven detected bridge lock. The same happens if the target responds with a disconnect and there is still data to be transferred. If the PCI master detects a target abort during a read, any untransferred read data will be filled with ones. If the PCI master detects a target abort during a write, any untransferred portions of data will be dropped. The same rule applies if the PCI master generates a Master Abort cycle. Arbitration: The PCI master can support parking on the PCI bus. If the PCI master starts a transaction that is going to take more than one beat, the PCI master will continuously assert its request until the transaction has completed. The one exception is when the PCI master receives a disconnect or a retry. Fast Back-to-Back Transactions: The PCI master does not generate fast back-to-back transactions. Arbitration Latency: Because a bulk of the transactions are limited to single-beat transfers on PCI, the PCI master does not implement a Master Latency Timer. Exclusive Access: The PCI master is not able to initiate exclusive access transactions. 2-20 Functional Description Address/Data Stepping: 2 The PCI master does not participate in the Address/Data Stepping protocol. Parity: The PCI master supports address parity generation, data parity generation, and data parity error detection. Cache Support: The PCI master does not participate in the PCI caching protocol. Generating PCI Cycles There are four basic types of bus cycles that can be generated on the PCI bus: ❏ Memory and I/O ❏ Configuration ❏ Special Cycle ❏ Interrupt Acknowledge Generating PCI Memory and I/O Cycles Each programmable slave may be configured to generate PCI I/O or memory accesses through the MEM and IOM fields in its Attribute register as shown below. : MEM IOM PCI Cycle Type 1 x Memory 0 0 Contiguous I/O 0 1 Spread I/O 2-21 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip If the MEM bit is set, the Raven will perform Memory addressing on the PCI bus. The Raven will take the MPC bus address, apply the offset specified in the MSOFFx register, and map the result directly to the PCI bus. 2 The IBM CHRP specification describes two approaches for handling PCI I/O addressing: contiguous or spread address modes. When the MEM bit is cleared, the IOM bit is used to select between these two modes whenever a PCI I/O cycle is to be performed. The Raven will perform contiguous I/O addressing when the MEM bit is clear and the IOM bit is clear. The Raven will take the MPC address, apply the offset specified in the MSOFFx register, and map the result directly to PCI. The Raven will perform spread I/O addressing when the MEM bit is clear and the IOM bit is set. The Raven will take the MPC address, apply the offset specified in the MSOFFx register, and map the result to PCI as shown in Figure 2-6. . MPC Address + Offset 31 31 12 11 25 24 5 4 0 5 4 0 0 0 00 00 00 00 00 0 PCI Address 1915 9702 Figure 2-6. PCI Spread I/O Address Translation Spread I/O addressing allows each PCI deviceÕs I/O registers to reside on a different MPC memory page, so device drivers can be protected from each other using memory page protection. 2-22 Functional Description All I/O accesses must be performed within natural word boundaries. Any I/O access that is not contained within a natural word boundary will result in unpredictable operation. For example, an I/O transfer of four bytes starting at address $80000010 is considered a valid transfer. An I/O transfer of four bytes starting at address $80000011 is considered an invalid transfer since it crosses the natural word boundary at address $80000013/$80000014. Generating PCI ConÞguration Cycles The Raven uses configuration mechanism #1 as defined in the PCI Local Bus Specification 2.0 to generate configuration cycles. Please refer to this specification for a complete description of this function. Configuration mechanism #1 uses an address register/data register format. Performing a configuration access is a two step process. The first step is to place the address of the configuration cycle within the CONFIG_ADDRESS register. Note that this action does not generate any cycles on the PCI bus. The second step is to either read or write configuration data into the CONFIG_DATA register. If the CONFIG_ADDRESS register has been set up correctly, the Raven will pass this access on to the PCI bus as a configuration cycle. The addresses of the CONFIG_ADDRESS and CONFIG_DATA registers are actually embedded within PCI I/O space. If the CONFIG_ADDRESS register has been set incorrectly or the access to either the CONFIG_ADDRESS or CONFIG_DATA register is not 1,2, or 4 bytes wide, the Raven will pass the access on to PCI as a normal I/O Space transfer. The CONFIG_ADDRESS register is located at offset $CF8 from the bottom of PCI I/O space. The CONFIG_DATA register is located at offset $CFC from the bottom of PCI I/O space. The Raven address decode logic has been designed such that MSADD3 and MSOFF3 must be used for mapping to PCI Configuration (consequently I/O) space. The MSADD3/MSOFF3 register group is initialized at reset to allow PCI I/O access starting at address $80000000. The 2-23 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip powerup location (i.e., Little Endian disabled) of the CONFIG_ADDRESS register is $80000CF8, and the CONFIG_DATA register is located at $80000CFC. 2 The CONFIG_ADDRESS register must be prefilled with four fields: the Register Number, the Function Number, the Device Number, and the Bus Number. The Register Number and the Function Number get passed along to the PCI bus as portion of the lower address bits. When performing a configuration cycle, Raven uses the upper 20 address bits as IDSEL lines. During the address phase of a configuration cycle, only one of the upper address bits will be set. The device that has its IDSEL connected to the address bit being asserted will be selected for a configuration cycle. Raven decodes the Device Number to determine which of the upper address lines to assert. The decoding of the five-bit Device Number is show as follows:. Device Number Address Bit 00000 AD31 00001 - 01010 All Zeros 01011 AD11 01100 AD12 (etc.) (etc.) 11101 AD29 11110 AD30 11111 All Zeros The Bus Number determines which bus is the target for the configuration read cycle. Raven will always host PCI bus #0. Accesses that are to be performed on the PCI bus connected to the Raven must have zero programmed into the Bus Number. If the configuration access is targeted for another PCI bus, then that bus number should be programmed into the Bus Number field. The Raven will detect a non-zero field and convert the transaction to a Type 1 Configuration cycle. 2-24 Functional Description Generating PCI Special Cycles 2 Raven supports the method stated in PCI Local Bus Specification 2.0 using Configuration Mechanism #1 to generate special cycles. To prime Raven for a special cycle, the host processor must write a 32 bit value to the CONFIG_ADDRESS register. The contents of the write are defined later in this chapter under the CONFIG_ADDRESS register definition. After the write to CONFIG_ADDRESS has been accomplished, the next write to the CONFIG_DATA register causes the Raven to generate a special cycle on the PCI bus. The write data is driven onto AD[31:0] during the special cycleÕs data phase. Generating PCI Interrupt Acknowledge Cycles Performing a read from the PIACK register will initiate a single PCI Interrupt Acknowledge cycle. Any single byte or combination of bytes may be read from, and the actual byte enable pattern used during the read will be passed on to the PCI bus. Upon completion of the PCI interrupt acknowledge cycle, the Raven will present the resulting vector information obtained from the PCI bus as read data. Endian Conversion The Raven supports both Big- and Little-Endian data formats. Since the PCI bus is inherently Little-Endian, conversion is necessary if all MPC devices are configured for Big-Endian operation. The Raven may be programmed to perform the Endian conversion described below. When MPC Devices are Big-Endian When all MPC devices are operating in Big-Endian mode, all data to/from the PCI bus must be swapped such that the PCI bus looks big endian from the MPC busÕs perspective. This association is true regardless of whether the transaction originates on the PCI bus or the MPC bus. This is shown in Figure 2-7. 2-25 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip DL31-24 D7 PPC Bus D7 D6 D5 D4 D3 D2 D1 D0 64-bit PCI DL07-00 DL15-08 DL23-16 DL31-24 D3 D4 D5 D6 D7 D7 D6 D5 D4 32-bit PCI D3 D2 D1 D0 AD07-00 DH31-24 D2 AD15-08 DH23-16 D1 AD23-16 DH15-08 D0 AD31-24 DH07-00 AD07-00 DL23-16 D6 AD15-08 DL15-08 D5 AD23-16 DL07-00 D4 AD31-24 DH31-24 D3 AD39-32 DH23-16 D2 AD47-40 DH15-08 D1 AD55-48 D0 AD63-56 DH07-00 . 2 PPC Bus 1916 9610 Figure 2-7. Big to Little Endian Data Swap When MPC Devices are Little Endian When all MPC devices are operating in little endian mode, the originating address is modified to remove the exclusive-ORing applied by MPC60x processors before being passed on to the PCI bus. Note that no data swapping is performed. Address modification happens to the originating address regardless of whether the transaction originates from the PCI bus or the MPC 2-26 Functional Description bus. The three low order address bits are exclusive-ORed with a three-bit value that depends on the length of the operand, as shown in Table 2-5. Table 2-5. Address Modification for Little Endian Transfers Data Length (bytes) Note Address Modification 1 XOR with 111 2 XOR with 110 4 XOR with 100 8 no change The only legal data lengths supported in little endian mode are 1, 2, 4, or 8-byte aligned transfers. Since this method has some difficulties dealing with unaligned PCIoriginated transfers, the Raven MPC master will break up all unaligned PCI transfers into multiple aligned PCI transfers into multiple aligned transfers on the MPC bus. Raven Registers The Raven registers are not sensitive to changes in Big-Endian and Little-Endian mode. With respect to the MPC bus (but not always the address internal to the processor), the MPC registers are always represented in Big-Endian mode. This means that the processorÕs internal view of the MPC registers will appear different depending on which mode the processor is operating in. With respect with the PCI bus, the RavenMPIC registers and the configuration registers are always represented in Little-Endian mode. The CONFIG_ADDRESS and CONFIG_DATA registers are actually represented in PCI space to the processor and are subject to the Endian functions. For example, the powerup location of the 2-27 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip CONFIG_ADDRESS register with respect to the MPC bus is $80000cf8 when Raven is in Big-Endian mode. When Raven is switched to Little-Endian mode, the CONFIG_ADDRESS register with respect to the MPC bus is $80000cfc. Note that in both cases the address generated internal to the processor will be $80000cf8. 2 The contents of the CONFIG_ADDRESS register are not subject to the Endian function. The data associated with PIACK accesses is subject to the Endian swapping function. The address of a PIACK cycle is undefined, therefore address modification during Little-Endian mode is not an issue. Error Handling The Raven will be capable of detecting and reporting the following errors to one or more MPC masters: ❏ MPC address bus time-out ❏ PCI master signalled master abort ❏ PCI master received target abort ❏ PCI parity error ❏ PCI system error Each of these error conditions will cause an error status bit to be set in the MPC Error Status Register. If a second error is detected while any of the error bits is set, the OVFL bit is asserted, but none of the error bits are changed. Each bit in the MPC Error Status Register may be cleared by writing a 1 to it; writing a 0 to it has no effect. New error bits may be set only when all previous error bits have been cleared. When any bit in the MPC Error Status register is set, the Raven will attempt to latch as much information as possible about the error in the MPC Error Address and Attribute Registers. Information is saved as follows: 2-28 Functional Description 2 Error Status Error Address and Attributes MATO From MPC bus SMA From PCI bus RTA From PCI bus PERR Invalid SERR Invalid Each MERST error bit may be programmed to generate a machine check and/or a standard interrupt. The error response is programmed through the MPC Error Enable Register on a source by source basis. When a machine check is enabled, either the MID field in the MPC Error Attribute Register or the DFLT bit in the MEREN Register determine the master to which the machine check is directed. For errors in which the master who originated the transaction can be determined, the MID field is used, provided the MID is%00 (processor 0), %01 (processor 1), or %10 (processor 2). For errors not associated with a particular MPC master, or associated with masters other than processor 0,1 or 2, the DFLT bit is used. One example of an error condition which cannot be associated with a particular MPC master would be a PCI system error. Transaction Ordering Raven supports transaction ordering with an optional FIFO flushing option. The FLBRD (Flush Before Read) bit within the GCSR register controls the flushing of PCI write posted data when performing MPC-originated read transactions. When the FLBRD bit is set, Raven will handle read transactions originating from the MPC bus in the following manner: ❏ Write posted transactions originating from the processor bus are flushed by the nature of the FIFO architecture. The Raven 2-29 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip will hold the processor with wait states until the PCI bound FIFO is empty. 2 ❏ 2-30 Write posted transactions originated from the PCI bus are flushed whenever the PCI slave has accepted a write-posted transaction and the transaction has not completed on the MPC bus. 2Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip Registers Registers 2 This chapter provides a detailed description of all Raven registers. These registers are broken into two groups: the MPC Registers and the PCI Configuration Registers. The MPC Registers are accessible only from the MPC bus using any valid transfer size. The PCI Configuration Registers reside in PCI configuration space. They are accessible from the MPC bus through the Raven. The MPC Registers are described first; the PCI Configuration Registers are described next. A complete discussion of the RavenMPIC registers can be found later in this chapter. The following conventions are used in the Raven register charts: ❏ R Read Only field. ❏ R/W Read/Write field. ❏ S Writing a ONE to this field sets this field. ❏ C Writing a ONE to this field clears this field. MPC Registers The Raven MPC register map is shown in Table 2-6. Table 2-6. Raven MPC Register Map Bit ---> $FEFF0000 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 VENID $FEFF0004 $FEFF0008 $FEFF000C DEVID REVID GCSR FEAT MARB $FEFF0010 PADJ $FEFF0014 $FEFF0018 $FEFF001C $FEFF0020 MEREN 2-31 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip Table 2-6. Raven MPC Register Map (Continued) 2 Bit ---> 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 $FEFF0024 MERST $FEFF0028 MERAD $FEFF002C MERAT $FEFF0030 PIACK $FEFF0034 $FEFF0038 $FEFF003C $FEFF0040 $FEFF0044 MSADD0 MSOFF0 $FEFF0048 $FEFF004C MSADD1 MSOFF1 $FEFF0050 $FEFF0054 MSATT1 MSADD2 MSOFF2 $FEFF0058 $FEFF005C MSATT0 MSATT2 MSADD3 MSOFF3 MSATT3 $FEFF0060 $FEFF0064 $FFEF0068 $FEFF006C $FEFF0070 GPREG0(Upper) $FEFF0074 GPREG0(Lower) $FEFF078 GPREG1(Upper) $FEFF07C GPREG1(Lower) 2-32 Registers Vendor ID/Device ID Registers 2 Address Bit $FEFF0000 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name VENID DEVID R R $1057 $4801 Operation Reset VENID Vendor ID. This register identiÞes the manufacturer of the device. This identiÞer is allocated by the PCI SIG to ensure uniqueness. $1057 has been assigned to Motorola. This register is duplicated in the PCI ConÞguration Registers. DEVID Device ID. This register identiÞes this particular device. The Raven will always return $4801. This register is duplicated in the PCI ConÞguration Registers. Revision ID Register Address Bit $FEFF0004 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name Operation Reset REVID R R R R $00 $02 $00 $00 REVID Revision ID. This register identiÞes the Raven revision level. This register is duplicated in the PCI ConÞguration Registers. 2-33 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 General Control-Status/Feature Registers Address Bit $FEFF0008 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name GCSR FEAT 2-34 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reset EXT00 R EXT01 R EXT02 R EXT03 R EXT04 R EXT05 R EXT06 R EXT07 R EXT08 R EXT09 R EXT10 R EXT11 R EXT12 R EXT13 R EXT14 R R MID0 R MID1 R R R R MPIC R MARB R P64 R R/W MBT0 MBT1 R/W FLBRD R/W BHOG R/W R R R R/W LEND Operation LEND Endian Select. If set, the MPC bus is operating in little endian mode. The MPC address will be modiÞed as described in the section When MPC Devices are Little Endian. When LEND is clear, the MPC bus is operating in big endian mode, and all data to/from PCI is swapped as described in the section When MPC Devices are Big-Endian. FLBRD Flush Before Read. If set, the Raven will guarantee that all PCI initiated posted write transactions will be completed before any MPC initiated read transactions will be allowed to complete. When FLBRD is clear, there will be no correlation between these transaction types and their order of completion. Please refer to the section on PCI/MPC Contention Handling for more information. BHOG Bus Hog. If set, the Raven MPC master will operate in the Bus Hog mode. Bus Hog mode means the MPC master will continually request the MPC bus for the entire duration of each PCI transfer. If Bus Hog is not enabled, the MPC master will request the bus in a normal manner. Please refer to the section on MPC Master for more information. Registers MBTx MPC Bus Time-out. This Þeld speciÞes the MPC bus time-out length. The time-out length is encoded as follows: MBT Time Out Length 00 256 µsec 01 64 µsec 10 8 µsec 11 disabled P64 64-bit PCI Mode Enable. If set, the Raven is connected to a 64-bit PCI bus. This bit is set if REQ64* is asserted on the rising edge of RESET*. MARB MPC Arbiter Enable. If set, the Raven internal MPC Arbiter is enabled. This bit is set if CPUID is %111 on the rising edge of RESET*. MPIC Multi-Processor Interrupt Controller Enable. If set, the Raven internal MPIC interrupt controller is enabled. This bit is set if EXT15 is high on the rising edge of RESET*. If cleared, Raven detected errors will be passed on to processor 0 INT pin. MIDx Master ID. This Þeld is encoded as shown below to indicate who is currently the MPC bus master. When the internal MPC arbiter is enabled (MARB is set), these bits are controlled by the internal arbiter. When the internal arbiter is disabled (MARB is clear) these bits reßect the status of the CPUID pins. In a multi- processor environment, these bits allow software to determine on which processor it is currently running. The internal MPC arbiter encodes this Þeld as follows: . FEAT MID Current MPC Data Bus Master 00 device on ABG0* 01 device on ABG1* 10 device on ABG2 11 Raven Feature Register. Each bit in this register reßects the state of one of the external interrupt input pins on the rising edge of RESET*. This register may be used to report hardware conÞguration parameters to 2-35 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip system software. 2 2-36 Registers MPC Arbiter Control Register 2 Address Bit $FEFF000C 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name MARB $00 $00 DEFM0 DEFM1 BAMD GLMD PKMD PKEN BREN0 BREN1 BREN2 R 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 Reset R R/W R/W R R R/W R/W R/W R/W R/W R/W R/W R R R R R Operation This register is not used by the MVME2300 series. Prescaler Adjust Register Address Bit $FEFF0010 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name Operation Reset PADJ R R R R/W $00 $00 $00 $B4 PADJ Prescaler Adjust. This register is used to specify a scale factor for the prescaler to ensure that the time base for the bus timer is 1 MHz. The scale factor is calculated as follows: PADJ = 256 - Clk, where Clk is the frequency of the CLK input in MHz. This register should be written with the value $BE indicating a 66MHz MPC bus. 2-37 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 MPC Error Enable Register Address Bit $FEFF0020 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name Reset R R $00 $00 DFLT RTAI R/W 0 SMAI R/W 0 SERRI R/W 0 PERRI R/W 0 R 0 MATOII R/W 0 R 0 R 0 R/W 0 RTAM SMAM R/W 0 SERRM R/W 0 PERRM R/W 0 R 0 MATOM R/W 0 DFLT R/W 0 R 0 Operation MEREN Default MPC Master ID. This bit determines which MCHK* pin will be asserted for error conditions in which the MPC master ID can not be determined or the Raven was the MPC master. For example, in event of a PCI parity error for a transaction in which the RavenÕs PCI master was not involved, the MPC master ID can not be determined. When DFLT is set, MCHK1* is used. When DFLT is clear, MCHK0* will be used. MATOM MPC Address Bus Time-out Machine Check Enable. When this bit is set, the MATO bit in the MERST register will be used to assert the MCHK output to the current address bus master. When this bit is clear, MCHK will not be asserted. 2-38 PERRM PCI Parity Error Machine Check Enable. When this bit is set, the PERR bit in the MERST register will be used to assert the MCHK output to bus master 0. When this bit is clear, MCHK will not be asserted. SERRM PCI System Error Machine Check Enable. When this bit is set, the SERR bit in the MERST register will be used to assert the MCHK output to bus master 0. When this bit is clear, MCHK will not be asserted. Registers SMAM PCI Signalled Master Abort Machine Check Enable. When this bit is set, the SMA bit in the MERST register will be used to assert the MCHK output to the bus master which initiated the transaction. When this bit is clear, MCHK will not be asserted. RTAM PCI Master Received Target Abort Machine Check Enable.When this bit is set, the RTA bit in the MERST register will be used to assert the MCHK output to the bus master which initiated the transaction. When this bit is clear, MCHK will not be asserted. MATOI MPC Address Bus Time-out Interrupt Enable.When this bit is set, the MATO bit in the MERST register will be used to assert an interrupt through the MPIC interrupt controller. When this bit is clear, no interrupt will be asserted. PERRI PCI Parity Error Interrupt Enable.When this bit is set, the PERR bit in the MERST register will be used to assert an interrupt through the MPIC interrupt controller. When this bit is clear, no interrupt will be asserted. SERRI PCI System Error Interrupt Enable.When this bit is set, the PERR bit in the MERST register will be used to assert an interrupt through the MPIC interrupt controller. When this bit is clear, no interrupt will be asserted. SMAI PCI Master Signalled Master Abort Interrupt Enable.When this bit is set, the SMA bit in the MERST register will be used to assert an interrupt through the MPIC interrupt controller. When this bit is clear, no interrupt will be asserted. 2-39 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip RTAI 2 PCI Master Received Target Abort Interrupt Enable.When this bit is set, the RTA bit in the MERST register will be used to assert an interrupt through the MPIC interrupt controller. When this bit is clear, no interrupt will be asserted. MPC Error Status Register Address Bit $FEFF0024 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name MERST 2-40 R R $00 $00 $00 0 0 0 0 0 0 0 0 Reset R RTA R/C SMA R/C SERR R/C PERR R/C R MATO R/C R R/C OVF Operation OVF Error Status Overßow. This bit is set when any error is detected and any of the error status bits are already set. It may be cleared by writing a 1 to it; writing a 0 to it has no effect. MATO MPC Address Bus Time-out. This bit is set when the MPC address bus timer times out. It may be cleared by writing it to a 1; writing it to a 0 has no effect. When the MATOM bit in the MEREN register is set, the assertion of this bit will assert MCHK to the master designated by the MID Þeld in the MERAT register. When the MATOI bit in the MEREN register is set, the assertion of this bit will assert an interrupt through the MPIC interrupt controller. PERR PCI Parity Error. This bit is set when the PCI PERR* pin is asserted. It may be cleared by writing it to a 1; writing it to a 0 has no effect. When the PERRM bit in the MEREN register is set, the assertion of this bit Registers will assert MCHK to the master designated by the DFLT bit in the MERAT register. When the PERRI bit in the MEREN register is set, the assertion of this bit will assert an interrupt through the MPIC interrupt controller. SERR PCI System Error. This bit is set when the PCI SERR* pin is asserted. It may be cleared by writing it to a 1; writing it to a 0 has no effect. When the SERRM bit in the MEREN register is set, the assertion of this bit will assert MCHK to the master designated by the DFLT bit in the MERAT register. When the SERRI bit in the MEREN register is set, the assertion of this bit will assert an interrupt through the MPIC interrupt controller. SMA PCI Master Signalled Master Abort. This bit is set when the PCI master signals master abort to terminate a PCI transaction. It may be cleared by writing it to a 1; writing it to a 0 has no effect. When the SMAM bit in the MEREN register is set, the assertion of this bit will assert MCHK to the master designated by the MID Þeld in the MERAT register. When the SMAI bit in the MEREN register is set, the assertion of this bit will assert an interrupt through the MPIC interrupt controller. RTA PCI Master Received Target Abort. This bit is set when the PCI master receives target abort to terminate a PCI transaction. It may be cleared by writing it to a 1; writing it to a 0 has no effect. When the RTAM bit in the MEREN register is set, the assertion of this bit will assert MCHK to the master designated by the MID Þeld in the MERAT register. When the RTAI bit in the MEREN register is set, the assertion of this bit will assert an interrupt through the MPIC interrupt controller. 2-41 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 MPC Error Address Register Address Bit Name Operation Reset $FEFF0028 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 MERAD R $00000000 MERAD MPC Error Address. This register captures the MPC address when the MATO bit is set in the MERST register. It captures the PCI address when the SMA or RTA bits are set in the MERST register. Its contents are not deÞned when the PERR or SERR bits are set in the MERST register. 2-42 Registers MPC Error Attribute Register - MERAT 2 If the PERR or SERR bits are set in the MERST register, the contents of the MERAT register are zero. If the MATO bit is set the register is defined by the following figure: Address Bit $FEFF002C 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name R $00 $00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reset R TT4 R TT3 R TT2 R TT1 R TT0 R TSIZ2 R TSIZ1 R TSIZ0 R TBST R R R R MID0 R MID1 R R R Operation MERAT MIDx MPC Master ID. This Þeld contains the ID of the MPC master which originated the transfer in which the error occurred. The encoding scheme is identical to that used in the GCSR register. TBST Transfer Burst. This bit is set when the transfer in which the error occurred was a burst transfer. TSIZx Transfer Size. This Þeld contains the transfer size of the MPC transfer in which the error occurred. TTx Transfer Type. This Þeld contains the transfer type of the MPC transfer in which the error occurred. 2-43 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip If the SMA or RTA bit are set the register is defined by the following figure: 2 Address Bit $FEFF002C 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name MERAT R R R R R R R R R R R R R R R R R R $00 $00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reset BYTE0 BYTE1 BYTE2 BYTE3 BYTE4 BYTE5 BYTE6 BYTE7 COMM0 COMM1 COMM2 COMM3 MID0 MID1 WP Operation WP Write Post Completion. This bit is set when the PCI master detects an error while completing a write post transfer. MIDx MPC Master ID. This Þeld contains the ID of the MPC master which originated the transfer in which the error occurred. The encoding scheme is identical to that used in the GCSR register COMMx PCI Command. This Þeld contains the PCI command of the PCI transfer in which the error occurred. BYTEx 2-44 PCI Byte Enable. This Þeld contains the PCI byte enables of the PCI transfer in which the error occurred. A set bit designates a selected byte. Registers PCI Interrupt Acknowledge Register Address Bit 2 $FEFF0030 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name PIACK Operation R Reset $00000000 PIACK PCI Interrupt Acknowledge. Performing a read from this register will initiate a single PCI Interrupt Acknowledge cycle. Any single byte or combination of bytes may be read from, and the actual byte enable pattern used during the read will be passed on to the PCI bus. Upon completion of the PCI interrupt acknowledge cycle, the Raven will present the resulting vector information obtained from the PCI bus as read data. 2-45 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 2-46 2Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip Registers 0Registers 2 MPC Slave Address (0,1 and 2) Registers Address Bit MSADD0 - $FEFF0040 MSADD1 - $FEFF0048 MSADD2 - $FEFF0050 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name MSADDx START END R/W R/W $0000 $0000 Operation Reset To initiate a PCI cycle from the MPC bus, the MPC address must be greater than or equal to the START field and less than or equal to the END field. START Start Address. This Þeld determines the start address of a particular memory area on the MPC bus which will be used to access PCI bus resources. The value of this Þeld will be compared with the upper 16 bits of the incoming MPC address. END End Address. This Þeld determines the end address of a particular memory area on the MPC bus which will be used to access PCI bus resources. The value of this Þeld will be compared with the upper 16 bits of the incoming MPC address. 2-47 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 MPC Slave Address (3) Register Address Bit MSADD3 - $FEFF0058 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name MSADD3 START END R/W R/W $8000 $8080 Operation Reset MSADD3, MSOFF3 and MSATT3 represent the only register group which can be used to initiate access to the PCI Configuration Address ($80000CF8) and Configuration Data ($80000CFC) registers. Note that this implies that MSxxx3 also represents the generation of PCI Special Cycles. The power up default values of MSADD3, MSOFF3 and MSATT3 are set to allow access to PCI configuration space without MPC register initialization. Please see the description of the MSOFF3/MSATT3 Registers for additional information. To initiate a PCI cycle from the MPC bus the MPC address must be greater than or equal to the START field and less than or equal to the END field. 2-48 START Start Address. This Þeld determines the start address of a particular memory area on the MPC bus which will be used to access PCI bus resources. The value of this Þeld will be compared with the upper 16 bits of the incoming MPC address. END End Address. This Þeld determines the end address of a particular memory area on the MPC bus which will be used to access PCI bus resources. The value of this Þeld will be compared with the upper 16 bits of the incoming MPC address. Registers MPC Slave Offset/Attribute (0,1 and 2) Registers Address Bit 2 MSOFF0/MSATT0 - $FEFF0044 MSOFF1/MSATT1 - $FEFF004C MSOFF2/MSATT2 - $FEFF0054 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name MSOFFx MSATTx R $0000 $00 0 0 0 0 0 0 0 0 Reset R/W IOM R/W MEM R/W R R WPEN R/W R R/W R/W WEN REN Operation MSOFFx MPC Slave Offset. This register contains a 16-bit offset that is added to the upper 16 bits of the MPC address to determine the PCI address used for transfers from the MPC bus to PCI. This offset allows PCI resources to reside at addresses that would not normally be visible from the MPC bus. REN Read Enable. If set, the corresponding MPC slave is enabled for read transactions. WEN Write Enable. If set, the corresponding MPC slave is enabled for write transactions. WPEN Write Post Enable. If set, write posting is enabled for the corresponding MPC slave. MEM PCI Memory Cycle. If set, the corresponding MPC slave will generate transfers to or from PCI memory space. When clear, the corresponding MPC slave will generate transfers to or from PCI I/O space using the addressing mode deÞned by the IOM Þeld. 2-49 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip PCI I/O Mode. If set, the corresponding MPC slave will generate PCI I/O cycles using spread addressing as deÞned in the section on Generating PCI Memory and I/O Cycles. When clear, the corresponding MPC slave will generate PCI I/O cycles using contiguous addressing. This Þeld only has meaning when the MEM bit is clear. IOM 2 MPC Slave Offset/Attribute (3) Registers Address Bit MSOFF3/MSATT3 - $FEFF005C 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name MSOFF3 MSATT3 R $8000 $00 0 0 0 0 0 0 1 1 Reset R/W IOM R/W R R R WPEN R/W R R/W R/W WEN REN Operation MSOFF3 MPC Slave Offset. This register contains a 16-bit offset that is added to the upper 16 bits of the MPC address to determine the PCI address used for transfers from the MPC bus to PCI. This offset allows PCI resources to reside at addresses that would not normally be visible from the MPC bus. It is initialized to $8000 to facilitate a zero-based access to PCI space. 2-50 REN Read Enable. If set, the corresponding MPC slave is enabled for read transactions. WEN Write Enable. If set, the corresponding MPC slave is enabled for write transactions. WPEN Write Post Enable. If set, write posting is enabled for the corresponding MPC slave. Registers IOM PCI I/O Mode. If set, the corresponding MPC slave will generate PCI I/O cycles using spread addressing as deÞned in the section on Generating PCI Memory and I/O Cycles. When clear, the corresponding MPC slave will generate PCI I/O cycles using contiguous addressing. General Purpose Registers Address Bit GPREG0 (Upper) - $FEFF0070 GPREG0 (Lower) - $FEFF0074 GPREG1 (Upper) - $FEFF0078 GPREG1 (Lower) - $FEFF007C 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name GPREGx Operation R/W Reset $00000000 These general purpose read/write registers are provided for interprocess message passing or general purpose storage. They do not control any hardware. PCI Registers The PCI Configuration Registers are compliant with the configuration register set described in the PCI Local Bus Specification, Revision 2.0. The CONFIG_ADDRESS and CONFIG_DATA registers described in this section are accessed within PCI I/O space. All write operations to reserved registers will be treated as no-ops. That is, the access will be completed normally on the bus and the data will be discarded. Read accesses to reserved or unimplemented registers will be completed normally and a data value of 0 returned. 2-51 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip The Raven PCI Configuration Register map is shown in Table 2-7. The Raven PCI I/O Register map is shown in Table 2-8. 2 Table 2-7. Raven PCI Configuration Register Map 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 <--- Bit DEVID VENID $00 PSTAT PCOMM $04 CLASS REVID $08 $0C IOBASE $10 MEMBASE $14 $18 - $7F PSADD0 PSOFF0 $80 PSATT0 PSADD1 PSOFF1 $88 PSATT1 PSADD2 PSOFF2 $8C $90 PSATT2 PSADD3 PSOFF3 $84 $94 $98 PSATT3 $9C Table 2-8. Raven PCI I/O Register Map 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 <--- Bit CONFIG_ADDRESS $CF8 CONFIG_DATA $CFC 2-52 Registers Vendor ID/ Device ID Registers Offset Bit Name $00 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 DEVID VENID R R $4801 $1057 Operation Reset 2 VENID Vendor ID. This register identiÞes the manufacturer of the device. This identiÞer is allocated by the PCI SIG to ensure uniqueness. $1057 has been assigned to Motorola. This register is duplicated in the MPC Registers. DEVID Device ID. This register identiÞes the particular device. The Raven will always return $4801. This register is duplicated in the MPC Registers. PCI Command/ Status Registers Offset Bit Name $04 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 PSTAT PCOMM IOSP MEMSP MSTR PERR SERR FAST DPAR SELTIM0 SELTIM1 SIGTA RCVTA RCVMA SIGSE RCVPE Operation R/W R/W R/W R R R R/W R R/W R R R R R R R R R R R R R R R R/C R R R/C R/C R/C R/C R/C Reset 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 2-53 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 2-54 IOSP IO Space Enable. If set, the Raven will respond to PCI I/O accesses when appropriate. If cleared, the Raven will not respond to PCI I/O space accesses. MEMSP Memory Space Enable. If set, the Raven will respond to PCI memory space accesses when appropriate. If cleared, the Raven will not respond to PCI memory space accesses. MSTR Bus Master Enable. If set, the Raven may act as a master on PCI. If cleared, the Raven may not act as a PCI master. PERR Parity Error Response. If set, the Raven will check parity on all PCI transfers. If cleared, the Raven will ignore any parity errors that it detects and continue normal operation. SERR System Error Enable. This bit enables the SERR* output pin. If clear, the Raven will never drive SERR*. If set, the Raven will drive SERR* active when a system error is detected. FAST Fast Back-to-Back Capable. This bit indicates that the Raven is capable of accepting fast back-to-back transactions with different targets. DPAR Data Parity Detected. This bit is set when three conditions are met: 1) the Raven asserted PERR* itself or observed PERR* asserted; 2) the Raven was the PCI master for the transfer in which the error occurred; 3) the PERR bit in the PCI Command Register is set. This bit is cleared by writing it to 1; writing a 0 has no effect. SELTIM DEVSEL Timing. This Þeld indicates that the Raven will always assert DEVSEL* as a ÔmediumÕ responder. Registers SIGTA Signalled Target Abort. This bit is set by the PCI slave whenever it terminates a transaction with a target-abort. It is cleared by writing it to 1; writing a 0 has no effect. RCVTA Received Target Abort. This bit is set by the PCI master whenever its transaction is terminated by a target-abort. It is cleared by writing it to 1; writing a 0 has no effect. RCVMA Received Master Abort. This bit is set by the PCI master whenever its transaction (except for Special Cycles) is terminated by a master-abort. It is cleared by writing it to 1; writing a 0 has no effect. SIGSE Signaled System Error. This bit is set whenever the Raven asserts SERR*. It is cleared by writing it to 1; writing a 0 has no effect. RCVPE Detected Parity Error. This bit is set whenever the Raven detects a parity error, even if parity error checking is disabled (see bit PERR in the PCI Command Register). It is cleared by writing it to 1; writing a 0 has no effect. Revision ID/ Class Code Registers Offset Bit $08 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Operation Reset REVID CLASS REVID R R $060000 $02 Revision ID. This register identiÞes the Raven revision level. This register is duplicated in the MPC Registers. 2-55 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip CLASS 2 Class Code. This register identiÞes Raven as the following: Base Class Code $06 PCI Bridge Device Subclass Code $00 PCI Host Bridge Program Class Code $00 Not Used I/O Base Register Offset Bit $10 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name IOBASE Reset R/W R $0000 $0000 1 0 Operation IO/MEM R RES R IOBA This register controls the mapping of the MPIC control registers in PCI I/O space. IO/MEM IO Space Indicator. This bit is hard-wired to a logic one to indicate PCI I/O space. 2-56 RES Reserved. This bit is hard-wired to zero. IOBA I/O Base Address. These bits deÞne the I/O space base address of the MPIC control registers. The IOBASE decoder is disabled when the IOBASE value is zero. Registers Memory Base Register Offset Bit 2 $14 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name MEMBASE R $0000 $0000 0 0 0 0 Reset R/W R R R R Operation IO/MEM MTYP0 MTYP1 PRE MEMBA This register controls the mapping of the MPIC control registers in PCI memory space. IO/MEM IO Space Indicator. This bit is hard-wired to a logic zero to indicate PCI memory space. MTYPx Memory Type. These bits are hard-wired to zero to indicate that the MPIC registers can be located anywhere in the 32-bit address space PRE Prefetch. This bit is hard-wired to zero to indicate that the MPIC registers are not prefetchable. MEMBA Memory Base Address. These bits deÞne the memory space base address of the MPIC control registers. The MBASE decoder is disabled when the MBASE value is zero. 2-57 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 PCI Slave Address (0,1,2 and 3) Registers Offset Bit PSADD0 - $80 PSADD1 - $88 PSADD2 - $90 PSADD3 - $98 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name PSADDx START END R/W R/W $0000 $0000 Operation Reset To initiate an MPC cycle from the PCI bus the PCI address must be greater than or equal to the START field and less than or equal to the END field. 2-58 START Start Address. This Þeld determines the start address of a particular memory area on the PCI bus which will be used to access MPC bus resources. The value of this Þeld will be compared with the upper 16 bits of the incoming PCI address. END End Address. This Þeld determines the end address of a particular memory area on the PCI bus which will be used to access MPC bus resources. The value of this Þeld will be compared with the upper 16 bits of the incoming PCI address. Registers PCI Slave Attribute/ Offset (0,1,2 and 3) Registers Offset Bit 2 PSATT0/PSOFF0 - $84 PSATT1/PSOFF1 - $8C PSATT2/PSOFF2 - $94 PSATT3/PSOFF3 - $9C 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name PSOFFx PSATTx R/W R R/W R/W R R R/W R/W R/W R/w $0000 $00 0 0 0 0 0 0 0 0 Reset INV GBL RAEN WPEN WEN REN Operation INV Invalidate Enable. If set, the MPC master will issue a transfer type code which speciÞes the current transaction should cause an invalidate for each MPC transaction originated by the corresponding PCI slave. The transfer type codes generated are shown in Table 2-3. GBL Global Enable. If set, the MPC master will assert the GBL* pin for each MPC transaction originated by the corresponding PCI slave. RAEN Read Ahead Enable. If set, read ahead is enabled for the corresponding PCI slave. WPEN Write Post Enable. If set, write posting is enabled for the corresponding PCI slave. WEN Write Enable. If set, the corresponding PCI slave is enabled for write transactions. REN Read Enable. If set, the corresponding PCI slave is enabled for read transactions. PSOFFx PCI Slave Offset. This register contains a 16-bit offset that is added to the upper 16 bits of the PCI address to determine the MPC address used for transfers from PCI to the MPC bus. This offset allows MPC resources to reside at addresses that would not 2-59 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip normally be visible from PCI. 2 CONFIG_ADDRESS Register The description of the CONFIG_ADDRESS register is presented in three perspectives: from the PCI bus, from the MPC Bus in Big Endian mode, and from the MPC bus in Little Endian mode. Note that the view from the PCI bus is purely conceptual, since there is no way to access the CONFIG_ADDRESS register from the PCI bus. Conceptual perspective from the PCI bus: Offset Bit Name EN $CFB $CFA $CF9 $CF8 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 CONFIG_ADDRESS BUS DEV FUN REG R/W R/W R/W R/W $00 $00 $00 $0 $00 R R R 1 0 0 Reset R/W Operation Perspective from the MPC bus in Big Endian mode: Offset Bit (DH) Name $CF8 EN $CF9 $CFA $CFB 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 CONFIG_ADDRESS REG DEV FUN BUS $00 R/W R/W $00 $0 $00 0 0 R 1 Reset R/W R/W R/W R R Operation $00 Perspective from the MPC bus in Little Endian mode: Offset Bit (DL) Name $CFC EN $CFD $CFE $CFF 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 CONFIG_ADDRESS BUS DEV FUN REG 2-60 Registers $CFC R $CFD R/W $CFE R/W R/W $CFF R/W $00 $00 2 R R $00 $00 $0 0 0 1 Reset R/W Offset Operation 2-61 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip The register fields are defined as follows: 2 REG Register Number. ConÞguration Cycles: IdentiÞes a target double word within a targetÕs conÞguration space. This Þeld is copied to the PCI AD bus during the address phase of a ConÞguration cycle. Special Cycles: This Þeld must be written with all zeros. FUN Function Number. ConÞguration Cycles: IdentiÞes a function number within a targetÕs conÞguration space. This Þeld is copied to the PCI AD bus during the address phase of a ConÞguration cycle. Special Cycles: This Þeld must be written with all ones. DEV Device Number. ConÞguration Cycles: IdentiÞes a targetÕs physical PCI device number. Refer to the section on Generating PCI Cycles for a description of how this Þeld is encoded. Special Cycles: This Þeld must be written with all ones. BUS Bus Number. ConÞguration Cycles: IdentiÞes a targeted bus number. If written with all zeros, a Type 0 ConÞguration Cycle will be generated. If written with any value other than all zeros, then a Type 1 ConÞguration Cycle will be generated. Special Cycles: IdentiÞes a targeted bus number. If written with all zeros, a Special Cycle will be generated. If written with any value other than all zeros, then a Special Cycle translated into a Type 1 ConÞguration Cycle will be generated. EN Enable. ConÞguration Cycles: Writing a one to this bit enables CONFIG_DATA to ConÞguration Cycle translation. If this bit is a zero, subsequent accesses to CONFIG_DATA will be passed though as I/O Cycles. Special Cycles: Writing a one to this bit enables CONFIG_DATA to Special Cycle translation. If this bit is a zero, subsequent accesses to CONFIG_DATA will be passed though as I/O Cycles. 2-62 Registers CONFIG_DATA Register The description of the CONFIG_DATA register is also presented in three perspectives; from the PCI bus, from the MPC Bus in Big Endian mode, and from the MPC bus in Little Endian mode. Note that the view from the PCI bus is purely conceptual, since there is no way to access the CONFIG_DATA register from the PCI bus. Conceptual perspective from the PCI bus: Offset Bit $CFF $CFE $CFD $CFC 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name CONFIG_DATA Data ‘D’ Data ‘C’ Data ‘B’ Data ‘A’ Operation R/W R/W R/W R/W Reset n/a n/a n/a n/a Perspective from the MPC bus in Big Endian mode: Offset Bit (DL) $CFC $CFD $CFE $CFF 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name CONFIG_DATA Data ‘A’ Data ‘B’ Data ‘C’ Data ‘D’ Operation R/W R/W R/W R/W Reset n/a n/a n/a n/a Perspective from the MPC bus in Little Endian mode: Offset Bit (DH) $CF8 $CF9 $CFA $CFB 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Name CONFIG_DATA Data ‘D’ Data ‘C’ Data ‘B’ Data ‘A’ Operation R/W R/W R/W R/W Reset n/a n/a n/a n/a 2-63 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 2-64 2Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip Raven Interrupt Controller Implementation Raven Interrupt Controller Implementation 2 Introduction This section describes the Raven Interrupt Controller in general. The Raven Interrupt Controller (RavenMPIC) Features ❏ MPIC programming model ❏ Support for two processors ❏ Support for 16 external interrupts ❏ Support for 15 programmable Interrupt & Processor Task priority levels ❏ Support for the connection of an external 8259 for ISA/AT compatibility ❏ Distributed interrupt delivery for external I/O interrupts ❏ Direct/Multicast interrupt delivery for Interprocessor and timer interrupts ❏ Four Interprocessor Interrupt sources ❏ Four timers ❏ Processor initialization control Architecture The Raven PCI Slave implements two address decoders for placing the RavenMPIC registers in PCI IO or PCI Memory space. Access to these registers require MPC and PCI bus mastership. These accesses include interrupt and timer initialization and interrupt vector reads. The RavenMPIC receives interrupt inputs from 16 external sources, four interprocessor sources, four timer sources, and one Raven internal error detection source. The externally sourced interrupts 2-65 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 1 through 15 have two modes of activation; low level or active high positive edge. External interrupt 0 can be either level or edge activated with either polarity. The Interprocessor and timers interrupts are event activated. 2 CSR’s Readability Unless explicitly specified, all registers are readable and return the last value written. The exceptions are the IPI dispatch registers and the EOI registers which return zeros on reads, the interrupt source ACT bit which returns current interrupt source status, the interrupt acknowledge register which returns the vector of the highest priority interrupt which is currently pending, and reserved bits which returns zeros. The interrupt acknowledge register is also the only register which exhibits any read side-effects. Interrupt Source Priority Each interrupt source is assigned a priority value in the range from 0 to 15 where 15 is the highest. In order for delivery of an interrupt to take place the priority of the source must be greater than that of the destination processor. Therefore setting a source priority to zero inhibits that interrupt. Processor’s Current Task Priority Each processor has a task priority register which is set by system software to indicate the relative importance of the task running on that processor. The processor will not receive interrupts with a priority level equal to or lower than its current task priority. Therefore setting the current task priority to 15 prohibits the delivery of all interrupts to the associated processor. Nesting of Interrupt Events A processor is guaranteed never to have an in-service interrupt preempted by an equal or lower priority source. An interrupt is considered to be in service from the time its vector is returned 2-66 Raven Interrupt Controller Implementation during an interrupt acknowledge cycle until an EOI is received for that interrupt. The EOI cycle indicates the end of processing for the highest priority in-service interrupt. Spurious Vector Generation Under certain circumstances the RavenMPIC will not have a valid vector to return to the processor during an interrupt acknowledge cycle. In these cases the spurious vector from the spurious vector register will be returned. The following cases would cause a spurious vector fetch. ❏ INT is asserted in response to an externally sourced interrupt which is activated with level sensitive logic and the asserted level is negated before the interrupt is acknowledged. ❏ INT is asserted for an interrupt source which is masked using the mask bit in the Vector-Priority register before the interrupt is acknowledged. Interprocessor Interrupts (IPI) Processor 0 and 1 can generate interrupts which are targeted for the other processor or both processors. There are four Interprocessor Interrupts (IPI) channels. The interrupts are initiated by writing a bit in the IPI dispatch registers. If subsequent IPIs are initiated before the first is acknowledged, only one IPI will be generated. The IPI channels deliver interrupts in the Direct Mode and can be directed to more than one processor. 8259 Compatibility The RavenMPIC provides a mechanism to support PC-AT compatible chip sets using the 8259 interrupt controller architecture. After power-on reset, the RavenMPIC defaults to 8259 pass-through mode. In this mode, interrupts from external source number 0 (the interrupt signal from the 8259 is connected to this external interrupt source on the RavenMPIC) are passed directly to 2-67 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip processor 0. If the pass-through mode is disabled, the 8259 interrupts are delivered using the priority and distribution mechanisms of the RavenMPIC. 2 The RavenMPIC does not interact with the vector fetch from the 8259 interrupt controller. Raven-Detected Errors Raven-detected errors are grouped together and sent to the interrupt logic as a singular interrupt source. The interrupt delivery mode for this interrupt is distributed. The Raven Error VectorPriority Register should be programed for high true level sensitive activation. For system implementations where the RavenMPIC controller is not used, the Raven-Detected Error condition will be made available by a signal which is external to the Raven ASIC. Presumably this signal would be connected to an externally sourced interrupt input of a MPIC controller in a different device. Since the MPIC specification defines external I/O interrupts to operate in the distributed mode, the delivery mode of this error interrupt should be consistent. Timers There is a divide by eight pre-scaler which is synchronized to the Raven clock (MPC processor clock). The output of the prescaler enables the decrement of the four timers. The timers may be used for system timing or to generate periodic interrupts. Each timer has four registers which are used for configuration and control. They are: 2-68 ❏ Current Count Register ❏ Base Count Register ❏ Vector-Priority Register ❏ Destination Register Raven Interrupt Controller Implementation Interrupt Delivery Modes 2 The direct and distributed interrupt delivery modes are supported. Note that the direct deliver mode has sub modes of multicast or non-multicast. The Interprocessor Interrupts (IPIs) and Timer interrupts operate in the direct delivery mode. The externally sourced or I/O interrupts operate in the distributed mode. In the direct delivery mode, the interrupt is directed to one or both processors. If it is directed to two processors (i.e. multicast), it will be delivered to two processors. The interrupt is delivered to the processor when the priority of the interrupt is greater than the priority contained in the task register for that processor, and when the priority of the interrupt is greater than any interrupt which is inservice for that processor. An interrupt is considered to be in service from the time its vector is returned during an interrupt acknowledge cycle until an EOI is received for that interrupt. The EOI cycle indicates the end of processing for the highest priority inservice interrupt. In the distributed delivery mode, the interrupt is pointed to one or more processors but it will be delivered to only one processor. Therefore, for externally sourced or I/O interrupts, multicast delivery is not supported.The interrupt is delivered to a processor when the priority of the interrupt is greater than the priority contained in the task register for that processor, and when the priority of the interrupt is greater than any interrupt which is inservice for that processor, and when the priority of that interrupt is the highest of all interrupts pending for that processor, and when that interrupt is not in-service for the other processor. If both destination bits are set for each processor, the interrupt will be delivered to the processor that has a lower task register priority. Note Because a deadlock condition can occur when the task register priorities for each processor are the same and both processors are targeted for interrupt delivery, the interrupt will be delivered to processor 0. 2-69 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 Block Diagram Description The description of the block diagram focuses on the theory of operation for the interrupt delivery logic. If the preceding section is a satisfactory description of the interrupt delivery modes and the reader is not interested the logic implementation, this section can be skipped. interrupt signals Program Visible Registers IPR Interrupt Selector_1 Interrupt Selector_0 IRR_1 IRR_0 ISR_1 ISR_0 Interrupt Router INT1 INT 0 1917 9610 Figure 2-8. RavenMPIC Block Diagram 2-70 Raven Interrupt Controller Implementation Program Visible Registers 2 These are the registers which software can access. They are described in detail in the Register section. Interrupt Pending Register (IPR) The interrupt signals to RavenMPIC are qualified and synchronized to the clock by the IPR. If the interrupt source is internal to the Raven ASIC or external with their Sense bit = 0 (edge sensitive), a bit is set in the IPR. That bit is cleared when the interrupt associated with that bit is acknowledge. If the interrupt source is external and level activated, the output from the IPR is not negated until the level into the IPR is negated. Externally sourced interrupts are qualified based upon their Sense and/or Pol bits in the Vector-Priority register. IPI and Timer Interrupts are generated internally to the Raven ASIC and are qualified by their Destination bit. Since the internally generated interrupts use direct delivery mode with multicast capability, there are two bits in the IPR, one for each processor, associated with each IPI and Timer interrupt source. The MASK bits from the Vector-Priority registers are used to qualify the output of the IPR. Therefore, if an interrupt condition is detected when the MASK bit is set, that interrupt will be requested when the MASK bit is lowered. Interrupt Selector (IS) There is a Interrupt Selector (IS) for each processor. The IS receives interrupt requests from the IPR. If the interrupt request are from an external source, they are qualified by the destination bit for that interrupt and processor. If they are from an internal source, they have been qualified. The output of the IS will be the highest priority interrupt that has been qualified. This output is the priority of the selected interrupt and its source identification. The IS will resolve an interrupt request in two Raven clock ticks. 2-71 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip The IS also receives a second set of inputs from the ISR. During the End Of Interrupt cycle, these inputs are used to select which bits are to be cleared in the ISR. 2 Interrupt Request Register (IRR) There is a Interrupt Request Register (IRR) for each processor. The IRR always passes the output of the IS except during Interrupt Acknowledge cycles. This guarantees that the vector which is read from the Interrupt Acknowledge Register is not changing due to the arrival of a higher priority interrupt. The IRR also serves as a pipeline register for the two tick propagation time through the IS. In-Service Register (ISR) There is a In-Service Register (ISR) for each processor. The contents of the ISR is the priority and source of all interrupts which are inservice. The ISR receives a bit-set command during Interrupt Acknowledge cycles and a bit-clear command during End Of Interrupt cycles. The ISR is implemented as a 40 bit register with individual bit set and clear functions. Fifteen bits are used to store the priority level of each interrupt which is in-service. Twenty-five bits are used to store the source identification of each interrupt which is in service. Therefore there is one bit for each possible interrupt priority and one bit for each possible interrupt source. Interrupt Router The Interrupt Router monitors the outputs from the ISRs, Current Task Priority Registers, Destination Registers, and the IRRs to determine when to assert a processorÕs INT pin. When considering the following rule sets, it is important to remember that there are two types of inputs to the Interrupt Selectors. If the interrupt is a distributed class interrupt, there is a single bit in the IPR associated with this interrupt and it is delivered to both Interrupt Selectors. This IPR bit is qualified by the destination register contents for that interrupt before the Interrupt 2-72 Raven Interrupt Controller Implementation Selector compares its priority to the priority of all other requesting interrupts for that processor. If the interrupt is programmed to be edge sensitive, the IPR bit is cleared when the vector for that interrupt is returned when the Interrupt Acknowledge register is examined. On the other hand, if the interrupt is a direct/multicast class interrupt, there are two bits in the IPR associated with this interrupt. One bit for each processor. Then one of these bits are delivered to each Interrupt Selector. Since this interrupt source can be multicast, each of these IPR bits must be cleared separately when the vector is returned for that interrupt to a particular processor. If one of the following sets of conditions are true, the interrupt pin for processor 0 is driven active. ❏ Set1 The source ID in IRR_0 is from an external source. The destination bit for processor 1 is a 0 for this interrupt. The priority from IRR_0 is greater than the highest priority in ISR_0. The priority from IRR_0 is greater than the contents of task register_0. ❏ Set2 The source ID in IRR_0 is from an external source. The destination bit for processor 1 is a 1 for this interrupt. The source ID in IRR_0 is not present is ISR_1. The priority from IRR_0 is greater than the highest priority in ISR_0. The priority from IRR_0 is greater than the Task Register_0 contents. The contents of Task Register_0 is less than the contents of Task Register_1. ❏ Set3 The source ID in IRR_0 is from an internal source. 2-73 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip The priority from IRR_0 is greater than the highest priority in ISR_0. 2 The priority from IRR_0 is greater than the Task Register_0 contents. There is a possibility for a priority tie between the two processors when resolving external interrupts. In that case the interrupt is always delivered to processor 0. This case is not defined in the above rule set. MPIC Registers The following conventions are used in the Raven register charts: ❏ R Read Only field. ❏ R/W Read/Write field. ❏ S Writing a ONE to this field sets this field. ❏ C Writing a ONE to this field clears this field. RavenMPIC Registers The RavenMPIC register map is shown in the following table. The Off field is the address offset from the base address of the RavenMPIC registers in the MPC-IO or MPC-MEMORY space. Note that this map does not depict linear addressing. The Raven PCI-SLAVE has two decoders for generating the RavenMPIC select. These decoders will generate a select and acknowledge all accesses which are in a reserved 256K byte range. If the index into that 256K block does not decode a valid RavenMPIC register address, the logic will return $00000000. The registers are 8, 16, or 32 bits accessible. 2-74 Raven Interrupt Controller Implementation Table 2-9. RavenMPIC Register Map 2 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Off FEATURE REPORTING REGISTER 0 $01000 GLOBAL CONFIGURATION REGISTER 0 $01020 MPIC VENDOR IDENTIFICATION REGISTER $01080 PROCESSOR INIT REGISTER $01090 IPI0 VECTOR-PRIORITY REGISTER $010a0 IPI1 VECTOR-PRIORITY REGISTER $010b0 IPI2 VECTOR-PRIORITY REGISTER $010c0 IPI3 VECTOR-PRIORITY REGISTER $010d0 SP REGISTER $010e0 TIMER FREQUENCY REPORTING REGISTER $010f0 TIMER 0 CURRENT COUNT REGISTER $01100 TIMER 0 BASE COUNT REGISTER $01110 TIMER 0 VECTOR-PRIORITY REGISTER $01120 TIMER 0 DESTINATION REGISTER $01130 TIMER 1 CURRENT COUNT REGISTER $01140 TIMER 1 BASE COUNT REGISTER $01150 TIMER 1VECTOR-PRIORITY REGISTER $01160 TIMER 1DESTINATION REGISTER $01170 TIMER 2 CURRENT COUNT REGISTER $01180 TIMER 2 BASE COUNT REGISTER $01190 TIMER 2 VECTOR-PRIORITY REGISTER $011a0 TIMER 2 DESTINATION REGISTER $011b0 TIMER 3 CURRENT COUNT REGISTER $011c0 TIMER 3 BASE COUNT REGISTER $011d0 2-75 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Off TIMER 3 VECTOR-PRIORITY REGISTER $011e0 TIMER 3 DESTINATION REGISTER $011f0 INT. SRC. 0 VECTOR-PRIORITY REGISTER $10000 INT. SRC. 0 DESTINATION REGISTER $10010 INT. SRC. 1 VECTOR-PRIORITY REGISTER $10020 INT. SRC. 1 DESTINATION REGISTER $10030 INT. SRC. 2 VECTOR-PRIORITY REGISTER $10040 INT. SRC. 2 DESTINATION REGISTER $10050 INT. SRC. 3 VECTOR-PRIORITY REGISTER $10060 INT. SRC. 3 DESTINATION REGISTER $10070 INT. SRC. 4 VECTOR-PRIORITY REGISTER $10080 INT. SRC. 4 DESTINATION REGISTER $10090 INT. SRC. 5 VECTOR-PRIORITY REGISTER $100a0 INT. SRC. 5 DESTINATION REGISTER $100b0 INT. SRC. 6 VECTOR-PRIORITY REGISTER $100c0 INT. SRC. 6 DESTINATION REGISTER $100d0 INT. SRC. 7 VECTOR-PRIORITY REGISTER $100e0 INT. SRC. 7 DESTINATION REGISTER $100f0 INT. SRC. 8 VECTOR-PRIORITY REGISTER $10100 INT. SRC. 8 DESTINATION REGISTER $10110 INT. SRC. 9 VECTOR-PRIORITY REGISTER $10120 INT. SRC. 9 DESTINATION REGISTER $10130 INT. SRC. 10 VECTOR-PRIORITY REGISTER $10140 INT. SRC. 10 DESTINATION REGISTER $10150 INT. SRC. 11 VECTOR-PRIORITY REGISTER $10160 INT. SRC. 11 DESTINATION REGISTER $10170 INT. SRC. 12 VECTOR-PRIORITY REGISTER $10180 2-76 Raven Interrupt Controller Implementation 2 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Off INT. SRC. 12 DESTINATION REGISTER $10190 INT. SRC. 13 VECTOR-PRIORITY REGISTER $101a0 INT. SRC. 13 DESTINATION REGISTER $101b0 INT. SRC. 14 VECTOR-PRIORITY REGISTER $101c0 INT. SRC. 14 DESTINATION REGISTER $101d0 INT. SRC. 15 VECTOR-PRIORITY REGISTER $101e0 INT. SRC. 15 DESTINATION REGISTER $101f0 RAVEN DETECTED ERRORS VECTOR-PRIORITY REGISTER $10200 RAVEN DETECTED ERRORS DESTINATION REGISTER $10210 IPI 0 DISPATCH REGISTER PROC. 0 $20040 IPI 1 DISPATCH REGISTER PROC. 0 $20050 IPI 2 DISPATCH REGISTER PROC. 0 $20060 IPI 3 DISPATCH REGISTER PROC. 0 $20070 CURRENT TASK PRIORITY REGISTER PROC. 0 $20080 IACK REGISTER P0 $200a0 EOI REGISTER P0 $200b0 IPI 0 DISPATCH REGISTER PROC. 1 $21040 IPI 1 DISPATCH REGISTER PROC. 1 $21050 IPI 2 DISPATCH REGISTER PROC. 1 $21060 IPI 3 DISPATCH REGISTER PROC. 1 $21070 CURRENT TASK PRIORITY REGISTER PROC. 1 $21080 2-77 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 2-78 Off IACK REGISTER P1 $210a0 EOI REGISTER P1 $210b0 Raven Interrupt Controller Implementation Feature Reporting Register 2 Offset Bit $01000 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name FEATURE REPORTING NIRQ NCPU VID Operation R R R R R Reset $0 $00F $0 $01 $02 NIRQ NUMBER OF IRQs. The number of the highest external IRQ source supported. The IPI, Timer, and Raven Detected Error interrupts are excluded from this count. NCPU NUMBER OF CPUs. The number of the highest physical CPU supported. There are two CPUs supported by this design. CPU #0 and CPU #1. VID VERSION ID. Version ID for this interrupt controller. This value reports what level of the speciÞcation is supported by this implementation. Version level of 02 is used for the initial release of the MPIC speciÞcation. 2-79 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 Global Configuration Register Offset Bit $01020 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Reset 2-80 M R/W 0 R 0 RESET C 0 Operation GLOBAL CONFIGURATION R R R R $00 $00 $00 $00 R RESET CONTROLLER. Writing a one to this bit forces the controller logic to be reset. This bit is cleared automatically when the reset sequence is complete. While this bit is set, the values of all other register are undeÞned. M CASCADE MODE. Allows cascading of an external 8259 pair connected to the Þrst interrupt source input pin (0). This bit will always be set to a one, indicating mixed mode. In the mixed mode, 8259 interrupts are delivered using the priority and distribution mechanism of the RavenMPIC. The Vector/Priority and Destination registers for interrupt source 0 are used to control the delivery mode for all 8259 generated interrupt sources. 2Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip Raven Interrupt Controller Implementation 0Raven Interrupt Controller Implementation 2 Vendor Identification Register Offset Bit $01080 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name VENDOR IDENTIFICATION STP Operation Reset R R R R $00 $02 $00 $00 There are two fields in the Vendor Identification Register which are not defined for the RavenMPIC implementation but are defined in the MPIC specification. They are the vendor identification and device ID fields. STP STEPPING.The stepping or silicon revision number is initially 0. Processor Init Register Offset Bit $01090 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Reset R R R R $00 $00 $00 $00 P1 P0 R/W 0 P1 R/W 0 Operation PROCESSOR INIT PROCESSOR 1. Writing a 1 to P1 will assert the Soft Reset input of processor 1. Writing a 0 to it will negate the SRESET signal. 2-81 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip PROCESSOR 0. Writing a 1 to P0 will assert the Soft Reset input of processor 0. Writing a 0 to it will negate the SRESET signal. P0 2 The Soft Reset input to the 604 is negative edge-sensitive. IPI Vector/Priority Registers Offset Bit IPI 0 - $010A0 IPI 1 - $010B0 IPI 2 - $010C0 IPI 3 - $010D0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Reset PRIOR ACT R 0 MASK R/W 1 Operation IPI VECTOR/PRIORITY VECTOR R R/W R R/W $000 $0 $00 $00 MASK MASK. Setting this bit disables any further interrupts from this source. If the mask bit is cleared while the bit associated with this interrupt is set in the IPR, the interrupt request will be generated. ACT ACTIVITY. The activity bit indicates that an interrupt has been requested or that it is in-service. The ACT bit is set to a one when its associated bit in the Interrupt Pending Register or In-Service Register is set. PRIOR Interrupt priority 0 is the lowest and 15 is the highest. Note that a priority level of 0 will not enable interrupts. VECTOR This vector is returned when the Interrupt Acknowledge register is examined during a request for the interrupt associated with this vector. 2-82 Raven Interrupt Controller Implementation Spurious Vector Register 2 Offset Bit $010E0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Operation Reset VECTOR R R R R/W $00 $00 $00 $FF VECTOR This vector is returned when the Interrupt Acknowledge register is read during a spurious vector fetch. Timer Frequency Register Offset Bit Name Operation Reset $010F0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 TIMER FREQUENCY R/W $00000000 This register is used to report the frequency (in Hz) of the clock source for the global timers. Following reset, this register contains zero. For the Raven implementation of MPIC on the MVME2300 series, this register must be written with a value of $7de290 (which is 66/8 MHz or 8.25 MHz) which corresponds to a 66 MHz MPC bus. 2-83 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 Timer Current Count Registers Offset Bit Timer 0 - $01100 Timer 1 - $01140 Timer 2 - $01180 Timer 3 - $011C0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name CC R R 0 Reset T Operation TIMER CURRENT COUNT $00000000 T TOGGLE. This bit toggles when ever the current count decrements to zero. CC CURRENT COUNT. The current count Þeld decrements while the Count Inhibit bit is the Base Count Register is zero. When the timer counts down to zero, the Current Count register is reloaded from the Base Count register. Timer Basecount Registers Offset Bit Timer 0 - $01110 Timer 1 - $01150 Timer 2 - $01190 Timer 3 - $011D0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Reset BC CI R/W 1 Operation TIMER BASECOUNT R/W $00000000 CI 2-84 COUNT INHIBIT. Setting this bit to one inhibits counting for this timer. Setting this bit to zero allows counting to proceed. Raven Interrupt Controller Implementation BASE COUNT. This Þeld contains the 31 bit count for this timer. When a value is written into this register and the CI bit transitions from a 1 to a 0, it is copied into the corresponding Current Count register and the toggle bit in the Current Count register is cleared. When the timer counts down to zero, the Current Count register is reloaded from the Base Count register. BC Timer Vector/Priority Registers Offset Bit Timer 0 - $01120 Timer 1 - $01160 Timer 2 - $011A0 Timer 3 - $011E0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Reset PRIOR ACT R 0 MASK R/W 1 Operation TIMER VECTOR/PRIORITY VECTOR R R/W R R/W $000 $0 $00 $00 MASK MASK. Setting this bit disables any further interrupts from this source. If the mask bit is cleared while the bit associated with this interrupt is set in the IPR, the interrupt request will be generated. ACT ACTIVITY. The activity bit indicates that an interrupt has been requested or that it is in-service. The ACT bit is set to a one when its associated bit in the Interrupt Pending Register or In-Service Register is set. PRIOR Interrupt priority 0 is the lowest and 15 is the highest. Note that a priority level of 0 will not enable interrupts. 2-85 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip VECTOR This vector is returned when the Interrupt Acknowledge register is examined upon acknowledgment of the interrupt associated with this vector. 2 Timer Destination Registers Offset Bit Timer 0 - $01130 Timer 1 - $01170 Timer 2 - $011B0 Timer 3 - $011F0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Reset R R R R $00 $00 $00 $00 P0 R/W 0 P1 R/W 0 Operation TIMER DESTINATION This register indicates the destinations for this timerÕs interrupts. Timer interrupts, operate in the Directed delivery interrupt mode. This register may specify multiple destinations (multicast delivery). 2-86 P1 PROCESSOR 1. The interrupt is directed to processor 1. P0 PROCESSOR 0. The interrupt is directed to processor 0. Raven Interrupt Controller Implementation External Source Vector/Priority Registers Offset Bit Int Src 0 - $10000 Int Src 2 -> Int Src15 - $10020 -> $101E0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name EXTERNAL SOURCE VECTOR/PRIORITY R 0 R/W 1 Reset R $000 R 0 R 0 SENSE R/W 0 POL R/W 0 ACT MASK Operation 2 PRIOR VECTOR R/W R R/W $0 $00 $00 MASK MASK. Setting this bit disables any further interrupts from this source. If the mask bit is cleared while the bit associated with this interrupt is set in the IPR, the interrupt request will be generated. ACT ACTIVITY. The activity bit indicates that an interrupt has been requested or that it is in-service. The ACT bit is set to a one when its associated bit in the Interrupt Pending Register or In-Service Register is set. POL POLARITY. This bit sets the polarity for external interrupts. Setting this bit to a zero enables active low or negative edge. Setting this bit to a one enables active high or positive edge. Only External Interrupt Source 0 uses this bit in this register. SENSE SENSE. This bit sets the sense for external interrupts. Setting this bit to a zero enables edge sensitive interrupts. Setting this bit to a one enables level sensitive interrupts. For external interrupt sources 1 through 15, setting this bit to a zero enables positive edge triggered interrupts. Setting this bit to a one enables active low level triggered interrupts. 2-87 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip PRIOR 2 Interrupt priority 0 is the lowest and 15 is the highest. Note that a priority level of 0 will not enable interrupts. VECTOR This vector is returned when the Interrupt Acknowledge register is examined upon acknowledgment of the interrupt associated with this vector. External Source Destination Registers Offset Bit Int Src 0 - $10010 Int Src 2 -> Int Src 15 - $10030 -> $101F0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Reset R R R R $00 $00 $00 $00 P0 R/W 0 P1 R/W 0 Operation EXTERNAL SOURCE DESTINATION This register indicates the possible destinations for the external interrupt sources. These interrupts operate in the Distributed interrupt delivery mode. 2-88 P1 PROCESSOR 1. The interrupt is pointed to processor 1. P0 PROCESSOR 0. The interrupt is pointed to processor 0. Raven Interrupt Controller Implementation Raven-Detected Errors Vector/Priority Register Offset Bit $10200 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name RAVEN DETECTED ERRORS VECTOR/PRIORITY $000 PRIOR R/W R R/W 0 0 0 0 R 0 R/W 1 Reset R R R SENSE R/W R ACT MASK Operation 2 VECTOR $0 $00 $00 MASK MASK. Setting this bit disables any further interrupts from this source. If the mask bit is cleared while the bit associated with this interrupt is set in the IPR, the interrupt request will be generated. ACT ACTIVITY. The activity bit indicates that an interrupt has been requested or that it is in-service. The ACT bit is set to a one when its associated bit in the Interrupt Pending Register or In-Service Register is set. SENSE SENSE. This bit sets the sense for external interrupts. Setting this bit to a zero enables positive edge sensitive interrupts. Setting this bit to a one enables active low level sensitive interrupts. PRIOR Interrupt priority 0 is the lowest and 15 is the highest. Note that a priority level of 0 will not enable interrupts. VECTOR This vector is returned when the Interrupt Acknowledge register is examined upon acknowledgment of the interrupt associated with this vector. 2-89 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 Raven-Detected Errors Destination Register Offset Bit $10210 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Reset R R R R $00 $00 $00 $00 P0 R/W 0 P1 R/W 0 Operation RAVEN DETECTED ERROR DESTINATION This register indicates the possible destinations for the Raven detected error interrupt source. These interrupts operate in the Distributed interrupt delivery mode. P1 PROCESSOR 1. The interrupt is pointed to processor 1. P0 PROCESSOR 0. The interrupt is pointed to processor 0. Interprocessor Interrupt Dispatch Registers Offset Bit Processor 0 $20040, $20050, $20060, $20070 Processor 1 $21040, $21050,$21060, $21070 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Reset R R R R $00 $00 $00 $00 P0 R/W 0 P1 R/W 0 Operation IPI DISPATCH There are four Interprocessor Interrupt Dispatch Registers. Writing to an IPI Dispatch Register with the P0 and/or P1 bit set causes an interprocessor interrupt request to be sent to one or more 2-90 Raven Interrupt Controller Implementation processors. Note that each IPI Dispatch Register has two addresses. These registers are considered to be per processor registers and there is one address per processor. Reading these registers returns zeros. P1 PROCESSOR 1. The interrupt is directed to processor 1. P0 PROCESSOR 0. The interrupt is directed to processor 0. Interrupt Task Priority Registers Offset Bit Processor 0 $20080 Processor 1 $21080 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name INTERRUPT TASK PRIORITY TP Operation Reset R R R R R/W $00 $00 $00 $0 $F There is one Task Priority Register per processor. Priority levels from 0 (lowest) to 15 (highest) are supported. Setting the Task Priority Register to 15 masks all interrupts to this processor. Hardware will set the task register to $F when it is reset or when the Init bit associated with this processor is written to a one. 2-91 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 Interrupt Acknowledge Registers Offset Bit Processor 0 $200A0 Processor 1 $210A0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Operation Reset VECTOR R R R R $00 $00 $00 $FF On PowerPC-based systems, Interrupt Acknowledge is implemented as a read request to a memory-mapped Interrupt Acknowledge register. Reading the Interrupt Acknowledge register returns the interrupt vector corresponding to the highest priority pending interrupt. Reading this register also has the following side effects. ❏ The associated bit in the Interrupt Pending Register is cleared. ❏ Reading this register will update the In-Service register. Reading this register without a pending interrupt will return a value of $FF hex. End-of-Interrupt Registers Offset Bit Processor 0 $200B0 Processor 1 $210B0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Name Operation Reset EOI R R R R W $00 $00 $00 $0 $0 EOI 2-92 END OF INTERRUPT. There is one EOI register per processor. EOI Code values other than 0 are currently undeÞned. Data values written to this register are ignored; zero is assumed. Writing to this Raven Interrupt Controller Implementation register signals the end of processing for the highest priority interrupt currently in service by the associated processor. The write operation will update the In-Service register by retiring the highest priority interrupt. Reading this register returns zeros. Programming Notes External Interrupt Service The following summarizes how an external interrupt is serviced: 1. An external interrupt occurs. 2. The processor state is saved in the machine status save/restore registers. A new value is loaded into the Machine State Register (MSR). The External Interrupt Enable bit in the new MSR (MSRee) is set to zero. Control is transferred to the O/S external interrupt handler. 3. The external interrupt handler calculates the address of the Interrupt Acknowledge register for this processor (RavenMPIC Base Address + 0x200A00 + (processor ID shifted left 12 bits)). 4. The external interrupt handler issues an Interrupt Acknowledge request to read the interrupt vector from the RavenMPIC. If the interrupt vector indicates the interrupt source is the 8259, the interrupt handler issues a second Interrupt Acknowledge request to read the interrupt vector from the 8259. The RavenMPIC does not interact with the vector fetch from the 8259. 5. The interrupt handler saves the processor state and other interrupt-specific information in system memory and reenables for external interrupts (the MSRee bit is set to 1). RavenMPIC blocks interrupts from sources with equal or lower priority until an End-of-Interrupt is received for that interrupt source. Interrupts from higher priority interrupt 2-93 2 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip sources continue to be enabled. If the interrupt source was the 8259, the interrupt handler issues an EOI request to the RavenMPIC. This resets the In-Service bit for the 8259 within the RavenMPIC and allows it to recognize higher priority interrupt requests, if any, from the 8259. If none of the nested interrupt modes of the 8259 are enabled, the interrupt handler issues an EOI request to the 8259. 2 a. The device driver interrupt service routine associated with this interrupt vector is invoked. b. If the interrupt source was not the 8259, the interrupt handler issues an EOI request for this interrupt vector to the RavenMPIC. If the interrupt source was the 8259 and any of the nested interrupt modes of the 8259 are enabled, the interrupt handler issues an EOI request to the 8259. Normally, interrupts from ISA devices are connected to the 8259 interrupt controller. ISA devices typically rely on the 8259 Interrupt Acknowledge to flush buffers between the ISA device and system memory. If interrupts from ISA devices are directly connected to the RavenMPIC (bypassing the 8259), the device driver interrupt service routine must read status from the ISA device to ensure buffers between the device and system memory are flushed. Reset State After a power-on reset the RavenMPIC state is: 2-94 ❏ Current task priority for all CPUs set to 15. ❏ All interrupt source priorities set to zero. ❏ All interrupt source mask bits set to a one. ❏ All interrupt source activity bits cleared. ❏ Processor Init Register is cleared. ❏ All counters stopped and interrupts disabled. ❏ Controller mode set to 8259 pass-through. Raven Interrupt Controller Implementation Operation 2 Interprocessor Interrupts Four interprocessor interrupt (IPI) channels are provided for use by all processors. During system initialization the IPI vector/priority registers for each channel should be programmed to set the priority and vector returned for each IPI event. During system operation a processor may generate an IPI by writing a destination mask to one of the IPI dispatch registers. Note that each IPI dispatch register is shared by both processors. Each IPI dispatch register has two addresses but they are shared by both processors. That is, there is a total of four IPI dispatch registers in the RavenMPIC. The IPI mechanism may be used for self interrupts by programming the dispatch register with the bit mask for the originating processor. Dynamically Changing I/O Interrupt Configuration The interrupt controller provides a mechanism for safely changing the vector, priority, or destination of I/O interrupt sources. This is provided to support systems which allow dynamic configuration of I/O devices. In order to change the vector, priority, or destination of an active interrupt source, the following sequence should be performed: 1. Mask the source using the MASK bit in the vector/priority register. 2. Wait for the activity bit (ACT) for that source to be cleared. 3. Make the desired changes. 4. Unmask the source. This sequence ensures that the vector, priority, destination, and mask information remain valid until all processing of pending interrupts is complete. 2-95 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 EOI Register Each processor has a private EOI register which is used to signal the end of processing for a particular interrupt event. If multiple nested interrupts are in service, the EOI command terminates the interrupt service of the highest priority source. Once an interrupt is acknowledged, only sources of higher priority will be allowed to interrupt the processor until the EOI command is received. This register should always be written with a value of zero which is the nonspecific EOI command. Interrupt Acknowledge Register Upon receipt of an interrupt signal, the processor may read this register to retrieve the vector of the interrupt source which caused the interrupt. 8259 Mode The 8259 mode bits control the use of an external 8259 pair for PCAT compatibility. Following a reset, this mode is set for passthrough, which essentially disables the advanced controller and passes an 8259 input on external interrupt source 0 directly through to processor zero. During interrupt controller initialization this channel should be programmed for mixed mode in order to take advantage of the interrupt delivery modes. Current Task Priority Level Each processor has a separate Current Task Priority Level register. The system software uses this register to indicate the relative priority of the task running on the corresponding processor. The interrupt controller will not deliver an interrupt to a processor unless it has a priority level which is greater than the current task priority level of that processor. This value is also used in determining the destination for interrupts which are delivered using the distributed deliver mode. 2-96 Raven Interrupt Controller Implementation Architectural Notes 2 The hardware and software overhead required to update the task priority register synchronously with instruction execution may far outweigh the anticipated benefits of the task priority register. To minimize this overhead, the interrupt controller architecture should allow the task priority register to be updated asynchronously with respect to instruction execution. Lower priority interrupts may continue to occur for an indeterminate number of cycles after the processor has updated the task priority register. If this is not acceptable, the interrupt controller architecture should recommend that, if the task priority register is not implemented with the processor, the task priority register should be updated only when the processor enter or exits an idle state. Only when the task priority register is integrated within the processor, (such that it can be accessed as quickly as the MSRee bit defined in the Programming Notes section, for example), should the architecture require the task priority register to be updated synchronously with instruction execution. 2-97 Raven PCI Host Bridge & Multi-Processor Interrupt Controller Chip 2 2-98 3Falcon ECC Memory Controller Chip Set 3 Introduction The Falcon DRAM controller ASIC is designed for the MVME2300 family of boards. It is used in sets of two to provide the interface between the PowerPC 60x bus (also called MPC60x bus or MPC bus) and a 144-bit ECC-DRAM memory system. It also provides an interface to ROM/Flash. Overview This chapter provides a functional description and programming model for the Falcon. Most of the information for using the device in a system, programming it in a system, and testing it is contained here. Bit Ordering Convention All Falcon bused signals are named using big-endian bit ordering (bit 0 is the most significant bit). Features ❏ DRAM Interface Ð Double-bit error detect/Single-bit error correct on 72-bit basis. Ð Up to four blocks. Ð Programmable base address for each block. Ð Two-way interleave factor. Ð Built-in Refresh/Scrub. ❏ Error Notification for DRAM 3-1 Falcon ECC Memory Controller Chip Set Ð Software programmable Interrupt on Single/Double-Bit Error. Ð Error address and Syndrome Log Registers for Error Logging. 3 Ð Does not provide TEA_ on Double-Bit Error. (Chip has no TEA_ pin.) ❏ ROM/Flash Interface Ð Two blocks with two 8-bit devices, or two 32-bit devices per block. Block Diagrams Figure 3-1 depicts a Falcon pair as it would be connected in a system. Figure 3-2 shows the FalconÕs internal data paths. Figure 3-3 shows the overall DRAM connections. 3-2 Block Diagrams Lower DRAM ARRAYS 3 Lower PowerPC Lower DRAM Data (32Bits) Data (64 Bits) Lower DRAM Address & Control Lower DRAM Check PowerPC Address & Control Serial Bus Check-bits (8 Bits) Upper DRAM ARRAYS Upper DRAM Data (64 Bits) Data FALCON PowerPC 60x Bus FALCON Data Upper DRAM Address & Control Upper PowerPC Data (32 Bits) Upper DRAM Check Check-bits (8 Bits) 1900 9609 Figure 3-1. Falcon Pair Used with DRAM in a System 3-3 Falcon ECC Memory Controller Chip Set Latched D CKD[0:7] (64 Bits) (64 Bits) (8 Bits) Uncorrected Data (64 Bits) RD[0:63] + LATCHES + (8 Bits) HAMGEN SYNDEC (8 Bits) (64 Bits) Corrected Data D[0:31] (64 Bits) (64 Bits) MUX DFF’s DRAM Side HAMGEN PowerPC Side 3 1901 9609 Figure 3-2. Falcon Internal Data Paths (Simplified) 3-4 Block Diagrams 3 BD_RAS_/CAS_ AC_RAS_/CAS_ RA/OE_/WE_ LOWER FALCON RD0-63 CKD0-7 DRAM BLOCK A LOWER DRAM BLOCK B LOWER DRAM BLOCK C LOWER DRAM BLOCK D LOWER DRAM BLOCK A UPPER DRAM BLOCK B UPPER DRAM BLOCK C UPPER DRAM BLOCK D UPPER BD_RAS_/CAS_ AC_RAS_/CAS_ RA/OE_/WE_ UPPER FALCON RD0-63 CKD0-7 1902 9609 Figure 3-3. Overall DRAM Connections 3-5 Falcon ECC Memory Controller Chip Set Functional Description The following sections describe the logical function of the ASIC. The Falcon is designed to be used as a set of two chips. A pair of Falcons works with x1 or wider DRAM memory devices to form a memory system for the PowerPC 60x bus. A pair of Falcons that is connected to implement a memory control function is referred to in this document as a ÒFalcon pairÓ. 3 Performance Four-beat Reads/Writes The Falcon pair is specifically designed to provide maximum performance for cache line (four-beat) cycles to and from the PowerPC 60x bus at 66MHz. This is done by providing a two-way interleave between the 64-bit PowerPC 60x data bus and the 128-bit (144 with check-bits) DRAM bus. When a PowerPC 60x bus master begins a quad-aligned, four-beat read to DRAM, the Falcon pair accesses the full 144-bit width of DRAM at once so that when the DRAM access time is reached, not only is the first 64-bit doubleword of data ready to be transferred to the PowerPC 60x bus master, but so is the next. While the Falcon pair is presenting the first two double-words to the PowerPC 60x bus, it cycles CAS without cycling RAS to obtain the next two double-words. The Falcon pair transfers the next two double-words to the PowerPC 60x bus after 0 or more idle clocks. The Falcon pair also takes advantage of the fact that PowerPC 60x processors can do address pipelining. Many times while a data cycle is finishing, the PowerPC 60x processor begins a new address cycle. The Falcon pair can begin the next DRAM access earlier when this happens, thus shortening the access time. Further savings come when the new address cycle is to an address close enough to the previous one that it falls within the same row in the DRAM array. When this happens, the Falcon pair can transfer the data for the next cycle by cycling CAS without cycling RAS. 3-6 Functional Description Single-beat Reads/Writes Single-beat cycles to and from the PowerPC 60x bus do not achieve data rates as high as do four-beat cycles. The Falcon pair does take advantage of the PowerPC 60x address pipelining as much as possible for single-beat accesses. Single-beat writes are the slowest kind of accesses because they require that the Falcon pair perform a read cycle then a write cycle to the DRAM in order to complete. When the Falcon pair can take advantage of address pipelining, back-to-back single-beat writes take 10 clocks to complete. DRAM Speeds The Falcon pair can be configured for 3 different speeds of DRAM: 50ns, 60ns and 70ns. When the Falcon pair is configured for 50ns DRAMs, it assumes that the devices are Hyper-Page parts. When the Falcon pair is configured for 70ns DRAMs it assumes that the devices are Page parts. When the pair is configured for 60ns DRAMs, it allows the devices to be either Page or Hyper-Page parts. Performance summaries using the different devices are shown in Tables 3-1, 3-2, and 3-3. 3-7 3 Falcon ECC Memory Controller Chip Set Table 3-1. PowerPC 60x Bus to DRAM Access Timing When Configured for 70ns Page Devices 3 CLOCK PERIODS REQUIRED FOR: ACCESS TYPE Total Clocks 1st Beat 2nd Beat 3rd Beat 4th Beat 4-Beat Read after Idle (Quadword aligned) 10 1 3 1 15 4-Beat Read after Idle (Quadword misaligned) 10 4 1 1 16 4-Beat Read after 4-Beat Read (Quad-word aligned) 9/3 1 1 3 1 14/8 4-Beat Read after 4-Beat Read (misaligned) 7/2 1 4 1 1 13/8 4 1 1 1 7 10/6 1 1 1 1 13/9 10 - - - 10 11/7 1 - - - 11/7 4 - - - 4 - - - 15/11 4-Beat Write after Idle 4-Beat Write after 4-Beat Write (Quad-word aligned) 1-Beat Read after Idle 1-Beat Read after 1-Beat Read 1-Beat Write after Idle 1-Beat Write after 1-Beat Write 15/11 1 Notes: 1. These numbers assume that the PowerPC 60x bus master is doing address pipelining with TS_ occurring at the minimum time after AACK_ is asserted. Also the two numbers shown in the 1st beat column are for page miss/page hit. 2. In some cases, the numbers shown are averages and specific instances may be longer or shorter. 3-8 Functional Description Table 3-2. PowerPC 60x Bus to DRAM Access Timing When Configured for 60ns Page Devices. CLOCK PERIODS REQUIRED FOR: ACCESS TYPE Total Clocks 1st Beat 2nd Beat 3rd Beat 4th Beat 4-Beat Read after Idle (Quadword aligned) 9 1 2 1 13 4-Beat Read after Idle (Quadword misaligned) 9 3 1 1 14 4-Beat Read after 4-Beat Read (Quad-word aligned) 7/3 1 1 2 1 11/7 4-Beat Read after 4-Beat Read (misaligned) 6/2 1 3 1 1 11/7 4 1 1 1 7 7/3 1 1 1 1 10/6 9 - - - 9 9/6 1 - - - 9/6 4 - - - 4 - - - 13/10 4-Beat Write after Idle 4-Beat Write after 4-Beat Write (Quad-word aligned) 1-Beat Read after Idle 1-Beat Read after 1-Beat Read 1-Beat Write after Idle 1-Beat Write after 1-Beat Write 13/10 1 Notes: 1. These numbers assume that the PowerPC 60x bus master is doing address pipelining with TS_ occurring at the minimum time after AACK_ is asserted. Also the two numbers shown in the 1st beat column are for page miss/page hit. 2. In some cases, the numbers shown are averages and specific instances may be longer or shorter. 3-9 3 Falcon ECC Memory Controller Chip Set Table 3-3. PowerPC 60x Bus to DRAM Access Timing When Configured for 50ns Hyper Devices CLOCK PERIODS REQUIRED FOR: 3 ACCESS TYPE Total Clocks 1st Beat 2nd Beat 3rd Beat 4th Beat 4-Beat Read after Idle (Quadword aligned) 8 1 1 1 11 4-Beat Read after Idle (Quadword misaligned) 8 2 1 1 12 4-Beat Read after 4-Beat Read (Quad-word aligned) 5/2 1 1 1 1 8/5 4-Beat Read after 4-Beat Read (misaligned) 4/2 1 2 1 1 8/6 4 1 1 1 7 4/3 1 1 1 1 7/6 8 - - - 8 7/5 1 - - - 7/5 4 - - - 4 9/7 1 - - - 9/7 4-Beat Write after Idle 4-Beat Write after 4-Beat Write (Quad-word aligned) 1-Beat Read after Idle 1-Beat Read after 1-Beat Read 1-Beat Write after Idle 1-Beat Write after 1-Beat Write Notes: 1. These numbers assume that the PowerPC 60x bus master is doing address pipelining with TS_ occurring at the minimum time after AACK_ is asserted. Also the two numbers shown in 1st beat column are for page miss/page hit. 2. In some cases, the numbers shown are averages and specific instances may be longer or shorter. 3-10 Functional Description ROM/Flash Speeds The Falcon pair provides the interface for two blocks of ROM/Flash. Each block can address up to 64Mbytes of memory depending on the width implemented for that block (16 bits or 64 bits). Bank A is 64-bit wide and bank B is 16-bit wide. The access times for ROM/Flash are shown in Tables 3-4 and 3-5. Table 3-4. PowerPC 60x Bus to ROM/Flash Access Timing When Configured for 64 Bits (32 Bits per Falcon) CLOCK PERIODS REQUIRED FOR: ACCESS TYPE Total Clocks 1st Beat 2nd Beat 3rd Beat 4th Beat 4-Beat Read 20 16 16 16 68 4-Beat Write N/A N/A N/A N/A N/A 1-Beat Read 20 - - - 20 1-Beat Write 19 - - - 19 Table 3-5. PowerPC 60x Bus to ROM/Flash Access Timing When Configured for 16 Bits (8 Bits per Falcon) CLOCK PERIODS REQUIRED FOR: ACCESS TYPE Total Clocks 1st Beat 2nd Beat 3rd Beat 4th Beat 4-Beat Read 68 64 64 64 260 4-Beat Write N/A N/A N/A N/A N/A 1-Beat Read (2 bytes to 8 bytes) 68 - - - 68 1-Beat Read (1 byte) 20 - - - 20 1-Beat Write 19 - - - 19 3-11 3 Falcon ECC Memory Controller Chip Set PowerPC 60x Bus Interface The Falcon pair has a PowerPC slave interface only. It has no PowerPC master interface. The slave interface is the mechanism for all accesses to DRAM, ROM/Flash, and Falcon registers/SRAM. 3 Responding to Address Transfers When the Falcon pair detects an address transfer that it is to respond to, it asserts AACK_ immediately if there is no uncompleted PowerPC 60x bus data transfer in process. If there is one in process, then the Falcon pair waits and asserts AACK_ coincident with the uncompleted data transferÕs last data beat if the Falcon pair is the slave for the previous data. If it is not, it holds off AACK_ until the CLOCK after the previous data transferÕs last data beat. Completing Data Transfers If an address transfer to the Falcon pair will have an associated data transfer, the Falcon pair begins a read or write cycle to the accessed entity (DRAM/ROM/Flash/Internal Register) as soon as the entity is free. If the data transfer will be a read, the Falcon pair begins providing data to the PowerPC 60x bus as soon as the entity has data ready and the PowerPC 60x data bus is granted. If the data transfer will be a write, the Falcon pair begins latching data from the PowerPC data bus as soon as any previously latched data is no longer needed and the PowerPC 60x data bus has been granted. Cache Coherency The Falcon pair supports cache coherency by monitoring the ARTRY_ control signal on the PowerPC 60x bus and behaving appropriately when it is asserted. When ARTRY_ is asserted, if the access is a read, the Falcon pair does not source the data for that access. If the access is a write, the Falcon does not write the data for that access to the DRAM array. Depending upon when the retry occurs however, the Falcon pair may cycle the DRAM even though the data transfer does not happen. 3-12 Functional Description Cache Coherency Restrictions The PowerPC 60x GBL_ signal must not be asserted in the CSR areas. 3 L2 Cache Support The Falcon pair provides support for a look-aside L2 cache by implementing a hold-off input, L2CLM_. On cycles that select the Falcon pair, the Falcon pair samples L2CLM_ on the second rising edge of CLOCK after the assertion of TS_. If L2CLM_ is high, the Falcon pair responds normally to the cycle. If it is low, the Falcon pair ignores the cycle. Note The MVME2300 series boards have no L2 cache. ECC The Falcon pair performs single-bit error correction and double-bit error detection for DRAM. (No checking is provided for ROM /Flash.) The 64-bit wide PowerPC 60x data bus is divided into upper (DH0-DH31) and lower (DL0-DL31) halves. Each half is routed through a Falcon which multiplexes it with half of the DRAM data bus. Each Falcon connects to 64 DRAM data-bits and to 8 DRAM check-bits. The total DRAM array width is 144 bits (2*[64+8]). Cycle Types To support ECC, the Falcon pair always deals with DRAM using full width (144-bit) accesses. When the PowerPC 60x bus master requests any size read of DRAM, the Falcon pair reads 144 bits at least once. When the PowerPC 60x bus master requests a four-beat write to DRAM, the Falcon pair writes all 144 bits twice. When the PowerPC 60x bus master requests a single-beat write to DRAM, the Falcon pair performs a 144-bit wide read cycle to DRAM, merges in the appropriate PowerPC 60x bus write data, and writes 144 bits back to DRAM. 3-13 Falcon ECC Memory Controller Chip Set Error Reporting The Falcon pair checks data from the DRAM during single- and fourbeat reads, during single-beat writes, and during scrubs. Table 3-6 shows the actions it takes for different errors during these accesses. 3 Note that the Falcon pair does not assert TEA_ on double-bit errors. In fact, the Falcon pair does not have a TEA_ signal pin and it assumes that the system does not implement TEA_. The Falcon can, however, assert machine check (MCP_) on double-bit error. Table 3-6. Error Reporting Error Type Single-Bit Error Double-Bit Error Triple- (or greater) Bit Error Single-Beat/FourSingle-Beat Write Four-Beat Write Beat Read Scrub Terminate the Terminate the PowerPC 60x bus cycle PowerPC 60x bus cycle normally. normally. This cycle is not seen on the PowerPC 60x bus. Provide corrected data Correct the data read to the PowerPC 60x from DRAM, merge bus master. with the write data, and write the corrected, merged data to DRAM. Assert INT_ if so enabled. Assert INT_ if so enabled. Terminate the Terminate the PowerPC 60x bus cycle PowerPC 60x bus cycle normally. normally. Write corrected data back to DRAM if so enabled. Provide miss-corrected, raw DRAM data to the PowerPC 60x bus master. Do not perform the write portion of the read-modify-write cycle to DRAM. N/A 1 Assert INT_ if so enabled. This cycle is not seen on the PowerPC 60x bus. N/A 1 Do not perform the write portion of the read-modify-write cycle to DRAM. Assert INT_ if so Assert INT_ if so Assert INT_ if so enabled. enabled. enabled. Assert MCP_ if so Assert MCP_ if so enabled. enabled. Some of these errors are detected correctly and are treated the same as double-bit errors. The rest could show up as Òno errorÓ or Òsingle-bit errorÓ, both of which are incorrect. Notes: 1. No opportunity for error since no read of DRAM occurs during a four-beat write. 3-14 Functional Description Error Logging ECC error logging is facilitated by the Falcon because of its internal latches. When an error (single- or double-bit) occurs in the DRAMs to which a Falcon is connected, it records the address and syndrome bits associated with the data in error. Each Falcon performs this logging function independently of the other. Once a Falcon has logged an error, it does not log any more until the elog control /status bit has been cleared by software unless the currently logged error is single-bit and a new, double-bit error is encountered. The logging of errors that occur during scrub can be enabled/disabled in software. Refer to the Error Logger Register in this chapter. DRAM Tester ! The DRAM tester is for in-house manufacturing testing purposes only and should not be used by customers. Caution 3-15 3 Falcon ECC Memory Controller Chip Set ROM/Flash Interface The Falcon pair provides the interface for two blocks of ROM/Flash. Each block provides addressing and control for up to 64Mbytes. Note that no error checking (ECC or Parity) is provided for the ROM/Flash. 3 The ROM/Flash interface allows each block to be individually configured by jumpers and/or by software as follows: 1. Access for each block is controlled by two software programmable control register bits: an overall enable, a write enable, and a reset vector enable. The overall enable controls normal read accesses. The write enable is used to program Flash devices. The reset vector enable controls whether the block is also enabled at $FFF00000 - $FFFFFFFF. The overall enable and write enable bits are always cleared at reset. The reset vector enable bit is cleared or set at reset depending on external jumper configuration. This allows the board designer to use external jumpers to enable/disable Block A/B ROM/Flash as the source of reset vectors. The write enable bit is cleared at reset for both blocks. 2. The base address for each block is software programmable. At reset, Block AÕs base address is $FF000000 and Block BÕs base address is $FF400000. As noted above, in addition to appearing at the programmed base address, the first 1Mbyte of Block A/B also appears at $FFF00000-$FFFFFFFF if the reset vector enable bit is set. 3. The assumed size for each block is software programmable. It is initialized to its smallest setting at reset. 4. The assumed device type for Block A/B is determined by an external jumper at reset time. It also is available as a status bit and cannot be changed by software. When the width status bit is cleared, the blockÕs ROM /Flash is considered to be t16 bits wide, where each Falcon interfaces to 8 bits. In this mode, the following rules are enforced: 3-16 Functional Description a. only single-byte writes are allowed (all other sizes are ignored), and b. all reads are allowed (multiple accesses are performed to the ROM/Flash devices when the read is for greater than one byte). When the width status bit is set, the blockÕs ROM/Flash is considered to be 64 bits wide, where each Falcon interfaces with 32 bits. In this mode, the following rules are enforced: a. only aligned, 4-byte writes should be attempted (all other sizes are ignored), and b. all reads are allowed (multiple accesses to the ROM/Flash device are performed for burst reads). More information about ROM/Flash is found in the section on the Programming Model in this chapter. In order to place code correctly in the ROM/Flash devices, address mapping information is required. Table 3-7 shows how PowerPC 60x addresses map to the ROM/Flash addresses when ROM/Flash is 16 bits wide (8 bits per Falcon). Table 3-8 shows how they map when Flash is 64 bits wide (32 bits per Falcon). 3-17 3 Falcon ECC Memory Controller Chip Set Table 3-7. PowerPC 60x to ROM/Flash Address Mapping when ROM/Flash is 16 Bits Wide (8 Bits per Falcon) 3 PowerPC 60x A0-A31 ROM/Flash A22-A0 ROM/Flash Device Selected $XX000000 $000000 Upper $XX000001 $000001 Upper $XX000002 $000002 Upper $XX000003 $000003 Upper $XX000004 $000000 Lower $XX000005 $000001 Lower $XX000006 $000002 Lower $XX000007 $000003 Lower $XX000008 $000004 Upper $XX000009 $000005 Upper $XX00000A $000006 Upper $XX00000B $000007 Upper $XX00000C $000004 Lower $XX00000D $000005 Lower $XX00000E $000006 Lower $XX00000F $000007 Lower . . . . . . . . . $XXFFFFF8 $7FFFFC Upper $XXFFFFF9 $7FFFFD Upper $XXFFFFFA $7FFFFE Upper $XXFFFFFB $7FFFFF Upper $XXFFFFFC $7FFFFC Lower $XXFFFFFD $7FFFFD Lower $XXFFFFFE $7FFFFE Lower $XXFFFFFF $7FFFFF Lower 3-18 Functional Description Table 3-8. PowerPC 60x to ROM/Flash Address Mapping when ROM/Flash is 64 Bits Wide (32 Bits per Falcon) PowerPC 60x A0-A31 ROM/Flash A22-A0 ROM/Flash Device Selected $X0000000 $000000 Upper $X0000001 $000000 Upper $X0000002 $000000 Upper $X0000003 $000000 Upper $X0000004 $000000 Lower $X0000005 $000000 Lower $X0000006 $000000 Lower $X0000007 $000000 Lower $X0000008 $000001 Upper $X0000009 $000001 Upper $X000000A $000001 Upper $X000000B $000001 Upper $X000000C $000001 Lower $X000000D $000001 Lower $X000000E $000001 Lower $X000000F $000001 Lower . . . . . . . . . $X3FFFFF0 $7FFFFE Upper $X3FFFFF1 $7FFFFE Upper $X3FFFFF2 $7FFFFE Upper $X3FFFFF3 $7FFFFE Upper $X3FFFFF4 $7FFFFE Lower $X3FFFFF5 $7FFFFE Lower $X3FFFFF6 $7FFFFE Lower $X3FFFFF7 $7FFFFE Lower $X3FFFFF8 $7FFFFF Upper 3-19 3 Falcon ECC Memory Controller Chip Set Table 3-8. PowerPC 60x to ROM/Flash Address Mapping when ROM/Flash is 64 Bits Wide (32 Bits per Falcon) (Continued) 3 PowerPC 60x A0-A31 ROM/Flash A22-A0 ROM/Flash Device Selected $X3FFFFF9 $7FFFFF Upper $X3FFFFFA $7FFFFF Upper $X3FFFFFB $7FFFFF Upper $X3FFFFFC $7FFFFF Lower $X3FFFFFD $7FFFFF Lower $X3FFFFFE $7FFFFF Lower $X3FFFFFF $7FFFFF Lower Refresh/Scrub Refresh/Scrub is done differently based on which DRAM blocks are populated: (A and/or B) but not (C and D), or (A and/or B) and (C and/or D). Blocks A and/or B Present, Blocks C and D Not Present The Falcon pair performs refresh by doing a burst of four RAS_ cycles approximately once every 60µs. This increases to once every 30µs when certain DRAM devices are used. (Controlled by the ram_fref bit in the status registers.) RAS_ is asserted to both of Blocks A and B during each of the 4 cycles. Along with RAS_, the Falcon pair also asserts CAS_ with (OE_ then WE_) to one of the blocks during one of the four cycles. This forms a read-modifywrite which is a scrub cycle to that location. After each of the 4 cycles, the DRAM row address increments by one. When it reaches all 1Õs, it rolls over and starts over at 0. Each time the row address rolls over, the block that is scrubbed toggles between A and B. Every second time that the row address rolls over, which of the 4 cycles that is a scrub changes from 1st to 2nd, from 2nd to 3rd, from 3rd to 4th, or from 4th to 1st. Every eighth time that the row address rolls over, the column address increments by one. When the column address reaches all 1Õs, it rolls over and starts over at 0. Each time the column address rolls over, the SC1, SC0 bits in the scrub/refresh register increment by one. 3-20 Functional Description Blocks A and/or B Present, Blocks C and/or D present The Falcon pair performs refresh by doing a burst of four RAS_ cycles approximately once every 30µs. This increases to once every 15µs when certain DRAM devices are used. (Controlled by the ram_fref bit in the status registers.) RAS_ is asserted to blocks A and B during the first cycle, to blocks C and D during the second cycle, back to blocks A and B during the third cycle and to blocks C and D during the fourth cycle. Along with RAS, the Falcon pair also asserts CAS_ with (OE_ then WE_) to one of the blocks during one of the four cycles. This forms a read-modify-write which is a scrub cycle to that location. After the second and fourth cycles, the DRAM row address increments by one. When it reaches all 1Õs, it rolls over and starts over at 0. Each time the row address rolls over, the block that is scrubbed toggles between A/C and B/D. Every second time the row address rolls over, which of the 4 cycles that is a scrub changes from 1st to 2nd, from 2nd to 3rd, from 3rd to 4th, or from 4th to 1st. Every eighth time that the row address rolls over, the column address increments by one. When the column address reaches all 1Õs, it rolls over and starts over at 0. Each time the column address rolls over, the SC1, SC0 bits in the scrub/refresh register increment by one. Note that an entire refresh of DRAM is achieved every time the row address rolls over, and that an entire scrub of DRAM is achieved every time the column address rolls over. During scrub cycles, if the SWEN bit is cleared, the Falcon pair does not perform the write portion of the read-modify write cycle. If the SWEN bit is set, the Falcon pair does perform the write unless it encounters a double-bit error during the read. If so enabled, single- and double-bit scrub errors are logged, and the PowerPC 60x bus master is notified via interrupt. 3-21 3 Falcon ECC Memory Controller Chip Set DRAM Arbitration The Falcon pair has 3 different entities that can request use of the DRAM cycle controller: 3 ❏ The PowerPC 60x bus master ❏ The tester ❏ The refresher/scrubber The Falcon pairÕs arbiters assign priority with the refresher/scrubber highest, the tester next, and the PowerPC 60x bus lowest. When no requests are pending, the arbiter defaults to providing a PowerPC 60x bus grant. This provides fast response for PowerPC 60x bus cycles. Although the arbiter operates on a priority basis, it also performs a pseudo round-robin algorithm in order to prevent starving any of the requesting entities. Note that PowerPC DRAM or ROM/Flash accesses should not be attempted while the tester is in operation. Chip Defaults Some jumper option kinds of parameters need to be configured by software in the Falcon pair. These parameters include DRAM and ROM/Flash attributes. In order to set up these parameters correctly, software needs some way of knowing about the devices that are being used with the Falcon pair. One way of providing this information is by using the power-up status registers in the Falcon pair. At power-up reset, each Falcon latches the level on its RD0RD63 signal pins into its power-up status registers. Since the RD signal pins are high impedance during reset, their power-up reset level can be controlled by pullup/pulldown resistors. (They are pulled-up internally.) 3-22 Functional Description External Register Set Each chip in the Falcon pair has an external register chip select pin which enables it to talk to an external set of registers. This interface is like the ROM/Flash interface but with less flexibility. It is intended for the system designer to be able to implement generalpurpose status/control signals with this external set. Refer to the Programming Model in this chapter for a description of this register set. CSR Accesses An important part of the operation of a Falcon pair is that the value written to the internal control registers and SRAM in each of the two chips must be the same at all times. In order to facilitate this, writes to the pair itself are restricted to the upper Falcon only. When software writes to the upper Falcon, hardware in the two chips shifts this same value into the lower Falcon before the cycle completion is acknowledged. The shifting is done in holding registers such that the actual update of the control register happens on the same CLOCK cycle in both chips. Writes to the upper Falcon can be single-byte or 4-byte. Writes to the lower Falcon are ignored. This duplicating of writes from upper to lower applies to the FalconÕs internal registers and SRAM only. No duplication is performed for writes to DRAM, ROM/Flash, or the External Register set. 3-23 3 3Falcon ECC Memory Controller Chip Set Falcon ECC Memory Controller Chip Set Programming Model CSR Architecture The CSR (control and status register set) consists of the chipÕs internal register set, its test SRAM, and its external register set. The base address of the CSR is hard coded to the address $FEF80000 (or $FEF90000 if the SIO pin is low at reset). Accesses to the CSR are mapped differently depending on whether they are reads or writes. For reads, CSR data read on the upper half of the data bus comes from the upper Falcon while CSR data read on the lower half of the data bus comes from the lower Falcon. (See Figure 3-4.) Lower Data Bus MPC60x Master Upper Data Bus 3 CSR CSR Upper FALCON Lower FALCON 1903 9609 Figure 3-4. Data Path for Reads from the Falcon Internal CSRs For writes, internal register or test SRAM data written on the upper half of the data bus goes to the upper Falcon and is automatically copied by hardware to the lower Falcon. Internal register or test SRAM 3-24 Programming Model data written on the lower half of the data bus does not go to either Falcon in the pair, but the access is terminated normally with TA_. (See Figure 3-5.). 3 Lower Data Bus Upper Data Bus MPC60x Master CSR CSR Upper FALCON Lower FALCON 1904 9609 Figure 3-5. Data Path for Writes to the Falcon Internal CSRs External register data that is written on the upper data bus goes through the upper Falcon, while data that is written on the lower data bus goes through the lower Falcon. Unlike the internal register set, there is no automatic copying of upper data to lower data for the external register set. CSR read accesses can have a size of 1, 2, 4, or 8 bytes with any alignment. CSR write accesses are restricted to a size of 1 or 4 bytes and they must be aligned. Some Tester registers are limited to 4byte only accesses. Figures 3-6, 3-7, 3-8, and 3-9 show the memory map for the different kinds of access. 3-25 Falcon ECC Memory Controller Chip Set 3 $FEF80000 Upper Falcon $FEF80001 Upper Falcon $FEF80002 Upper Falcon $FEF80003 Upper Falcon $FEF80004 Lower Falcon $FEF80005 Lower Falcon $FEF80006 Lower Falcon $FEF80007 Lower Falcon $FEF80008 Upper Falcon $FEF80009 Upper Falcon $FEF807FF Lower Falcon 1905 9609 Figure 3-6. Memory Map for Byte Reads to the CSR 3-26 Programming Model $FEF80000 Both Falcons $FEF80001 Both Falcons $FEF80002 Both Falcons $FEF80003 Both Falcons 3 Writes not allowed Here $FEF80004 $FEF80005 $FEF80006 $FEF80007 $FEF80008 Both Falcons $FEF80009 Both Falcons $FEF807FF 1906 9609 Figure 3-7. Memory Map for Byte Writes to the Internal Register Set and Test SRAM 3-27 Falcon ECC Memory Controller Chip Set 3 $FEF80000 Upper Falcon $FEF80004 Lower Falcon $FEF80008 Upper Falcon $FEF8000C Lower Falcon $FEF807FC Lower Falcon 1907 9609 Figure 3-8. Memory Map for 4-Byte Reads to the CSR Writes not allowed Here $FEF80000 Both Falcons $FEF80004 $FEF80008 Both Falcons $FEF8000C $FEF807FC 1908 9609 Figure 3-9. Memory Map for 4-Byte Writes to the Internal Register Set and Test SRAM 3-28 Programming Model Register Summary Table 3-9 on the following page shows a summary of the CSR. Note that the table only shows addresses for accesses to the upper Falcon. To get the addresses for accesses to the lower Falcon, add 4 to the address shown. Since the only way to write to the lower FalconÕs internal register set and test SRAM is to duplicate what is written to the upper Falcon, only the addresses shown in the table should be used for writes to them. Writes to the external register set are not duplicated from upper to lower, so writes to them can be via the upper or lower Falcon. 3-29 3 Falcon ECC Memory Controller Chip Set Table 3-9. Register Summary 27 28 29 30 31 adis ram fref ram spd0 ram spd1 chipu 26 25 24 23 22 21 20 19 18 17 16 15 14 isa_hole aonly_en RAM C SIZ ram d en ram c en RAM B SIZ RAM B BASE RAM C BASE RAM D SIZ RAM D BASE por mcken mien sien tien FEF80038 scof esblk0 ERROR_SYNDROME esblk1 embt esbt scien derc esen escb elog rwcb refdis FEF80028 SBE COUNT ERROR_ADDRESS rtest2 rtest1 rtest0 swen scb0 scb1 FEF80048 ROW ADDRESS rom b we tb0 tb1 tzbit tfail tpass tsse trun TEST PC rom b en ROM B SIZ rom a we ROM A SIZ rom a en rom_a_rv rom_b_rv ROM B BASE FEF80058 COL ADDRESS rom_a_64 rom_b_64 ROM A BASE FEF80050 FEF80068 13 CLK FREQUENCY FEF80060 12 FEF80020 ram b en ram a en RAM A SIZ RAM A BASE FEF80040 DEVID REVID FEF80018 FEF80030 11 VENDID FEF80008 FEF80010 10 9 8 FEF80000 7 6 5 4 3 2 1 3 0 BIT # ----> TEST IR FEF80070 TEST A0 FEF80078 TEST A1 FEF80080 FEF80088 TEST D0 (Upper 8 Bits) FEF80090 TEST D0 (Middle 32 Bits) FEF80098 TEST D0 (Lower 32 Bits) 3-30 Programming Model Table 3-9. Register Summary (Continued) FEF800A0 FEF800A8 TEST D1 (Upper 8 Bits) FEF800B0 TEST D1 (Middle 32 Bits) FEF800B8 TEST D1 (Lower 32 Bits) FEF800C0 FEF800C8 TEST D2 (Upper 8 Bits) FEF800D0 TEST D2 (Middle 32 Bits) FEF800D8 TEST D2 (Lower 32 Bits) FEF800E0 FEF800E8 TEST D3 (Upper 8 Bits) FEF800F0 TEST D3 (Middle 32 Bits) FEF800F8 TEST D3 (Lower 32 Bits) FEF80100 CTR32 FEF80200 . . FEF803F8 FEF80400 PR_STAT1 FEF80408 . . FEF804F8 FEF80500 PR_STAT2 FEF80508 . . FEF807F8 FEF80800 . . FEF80BF8 TEST SRAM 3-31 3 Falcon ECC Memory Controller Chip Set Table 3-9. Register Summary (Continued) 3 FEF80C00 . . FEF87FF8 FEF88000 . . FEF8FFF8 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BIT # ----> EXTERNAL REGISTER SET Notes 1. All shaded bit fields are reserved and read as zeros. 2. All status bits are shown in italics. 3. All control bits are shown with underline. 4. All control-and-status bits are shown with italics and underline. Detailed Register Bit Descriptions The following sections describe the registers and their bits in detail. The possible operations for each bit in the register set are as follows: R The bit is a read only status bit. R/W The bit is readable and writable. R/C The bit is cleared by writing a one to itself. C The bit is readable. Writing a zero to the bit will clear it. The possible states of the bits after local and power-up reset are as defined below. 3-32 P The bit is affected by power-up reset. L The bit is affected by local reset. X The bit is not affected by reset. Programming Model V The effect of reset on the bit is variable. Vendor/Device Register X 31 X RESET 30 READ ONLY 29 READ ONLY 28 DEVID 27 VENDID 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 OPERATION 8 NAME 7 6 5 4 3 2 1 0 BIT 3 $FEF80000 ADDRESS VENDID This read-only register contains the value $1507. It is the vendor number assigned to Motorola Inc. Note that the current value ($1507) of VENDID is not correct. The correct vendor ID should be $1057. This issue will be treated as just an erratum for now. Note This read-only register contains the value $4802. It is the device number for the Falcon. DEVID Revision ID/ General Control Register $FEF80008 ADDRESS 31 30 29 28 27 26 25 24 chipu ram spd1 ram spd0 ram fref adis 0 0 0 isa_hole aonly_en 0 0 0 0 0 0 R R R X X X X X VP X X VP 0P 0P 1P 0P X X R R R R X R R/W R/W R/W R/W R R READ ONLY R X R/W 0 PL READ ZERO REVID 23 22 21 20 19 18 17 16 15 14 13 12 11 10 RESET 9 REVID NAME OPERATION 8 7 6 5 4 3 2 1 0 BIT The REVID bits are hard-wired to indicate the revision level of the Falcon. The value for the Þrst revision is $01, for the second is $02. 3-33 Falcon ECC Memory Controller Chip Set aonly_en Normally, the Falcon pair responds to address-only cycles only if they fall within the address range of one of its enabled map decoders. When the aonly_en bit is set, the Falcon pair also responds to addressonly cycles that fall outside of the range of its enabled map decoders provided they are not acknowledged by some other slave within 8 clock periods. aonly_en is read-only and reßects the level that was on the CKD4 pin at power-up reset. 3 isa_hole When it is set, isa_hole disables any of the DRAM or ROM/Flash blocks from responding to PowerPC accesses in the range from $000A0000 to $000BFFFF. This has the effect of creating a hole in the DRAM memory map for accesses to ISA. When isa_hole is cleared, there is no hole created in the memory map. adis When adis is clear, fast page mode operation is used for back-to-back pipelined accesses to the same page within DRAM. When it is set, RAS is cycled between accesses. This bit should normally be cleared unless the Falcon has a problem operating that way. ram fref Some DRAMs require that they be refreshed at the rate of 7.8µs per row rather than the standard 15.6µs per row. If any of the DRAM devices require the higher rate, then the ram fref bit should be left set, otherwise, it can be cleared. ram spd0,ram spd1 Together ram spd0,ram spd1 control DRAM timing used by the Falcon pair. They are encoded as shown: Table 3-10. ram spd1,ram spd0 and DRAM Type ram spd0, ram spd1 DRAM Speed DRAM Type %00 70ns Page Mode %01 60ns Page Mode %10 Reserved %11 50ns EDO 3-34 Programming Model EDO refers to DRAMs that use an output latch on data. Sometimes these parts are referred to as Hyper-Page Mode DRAMs. 3 To ensure reliable operation, the system should always be conÞgured so that these two bits are encoded to match the slowest devices that are used. Also, if any parts do not support EDO, then these bits must set for Page Mode. The only case in which it is permissible to set ram spd0,ram spd1 for Ò50ns, EDOÓ is when all parts are 50ns and all support EDO. chipu indicates which of the two positions within the Falcon pair is occupied by this chip. When chipu is low, this chip is connected to the lower half of the PowerPC 60x data bus and it does not drive TA_ or AACK_. When chipu is high, this chip is connected to the upper half of the PowerPC 60x data bus, and it drives TA_ and AACK_. chipu reßects the level that was on the ERCS_ pin during power-up reset. chipu DRAM Attributes Register $FEF80010 ADDRESS 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ram d siz2 ram d siz1 ram d siz0 0 0 0 0 ram d en ram c siz2 ram c siz1 ram c siz0 0 0 0 0 ram c en ram b siz2 ram b siz1 ram b siz0 0 0 0 0 ram b en ram a siz2 ram a siz1 ram a siz0 0 0 0 0 ram a en NAME 0 BIT R R R R R/W R R R R R/W R/W R/W R/W R R R R R/W R/W R/W R/W R R R R R/W R/W R/W R/W RESET X X X X 0 PL X X X X 0 PL 0P 0P 0P X X X X 0 PL 0P 0P 0P X X X X 0 PL 0P 0P 0P R/W 0 P R/W 0 P R/W 0 P OPERATION ram a/b/c/d en enables accesses to the ram a/b/c/d en corresponding block of DRAM when set, and disables them when cleared. 3-35 Falcon ECC Memory Controller Chip Set ram a/b/c/d siz0-2 These control bits deÞne the size of their corresponding block of DRAM. Table 3-11 shows the block conÞguration assumed by the Falcon pair for each value of ram siz0-ram siz2. 3 Table 3-11. Block_A/B/C/D Configurations ram a/b/c/d siz0-2 Block SIZE Devices Used %000 0MB - - - 36 - 1Mx4Õs 4Mb 8 - 1Mx18Õs 16Mb 4 - 1Mx36Õs 4Mb/1Mb 18 - 2Mx8Õs 16Mb 144 - 4Mx1Õs 4Mb 36 - 4Mx4Õs 16Mb 8 - 4Mx18Õs 64Mb 4 - 4Mx36Õs 16Mb/4Mb 18 - 8Mx8Õs 64Mb 144 - 16Mx1Õs 16Mb 36 - 16Mx4Õs 64Mb 4 - 16Mx36Õs 64Mb/16Mb 144 - 64Mx1Õs 64Mb - - - %001 %010 %011 %100 %101 16MB 32MB 64MB 128MB 256MB %110 1024MB %111 0MB Technology Comments - Block Not Present - SIMM/DIMM SIMM/DIMM SIMM/DIMM Reserved Note that it is important that all of the ram a/b/c/d siz0-2 bits be set to accurately match the actual size of their corresponding blocks. This includes clearing them to %000 if their corresponding blocks are not present. Failure to do so will cause problems with addressing and with scrub error logging. 3-36 Programming Model DRAM Base Register $FEF80018 ADDRESS NAME RAM A BASE RAM B BASE RAM C BASE RAM D BASE OPERATION READ/WRITE READ/WRITE READ/WRITE READ/WRITE 0 PL 0 PL 0 PL 0 PL RESET 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BIT RAM A/B/C/D BASE These control bits deÞne the base address for their blockÕs DRAM. RAM A/B/C/D BASE bits 07/8-15/16-23/24-31 correspond to PowerPC 60x address bits 0 - 7. For larger DRAM sizes, the lower signiÞcant bits of A/B/C/D BASE are ignored. This means that the blockÕs base address will always appear at an even multiple of its size. Note that bit 0 is MSB. Also note that the combination of RAM_X_BASE and ram_x_siz should never be programmed such that DRAM responds at the same address as the CSR, ROM/Flash, External Register Set, or any other slave on the PowerPC bus. CLK Frequency Register $FEF80020 ADDRESS 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 por 0 0 0 0 0 0 0 CLK FREQUENCY READ/WRITE READ ZERO READ ZERO R R/C R R R R R R 42 P X X X 1P X X X X X X RESET 2 OPERATION 1 NAME 0 BIT CLK FREQUENCY These bits should be programmed with the hexadecimal value of the operating CLOCK frequency in MHz (i.e. $42 for 66MHz). When these bits are programmed this way, the chipÕs prescale counter produces a 1MHz output. The output of the chip prescale counter is used by the 3-37 3 Falcon ECC Memory Controller Chip Set refresher/scrubber and the 32-bit counter. After power-up, this register is initialized to $42 (for 66MHz). 3 por is set by the occurrence of power up reset. It is cleared by writing a one to it. Writing a 0 to it has no effect. por ECC Control Register $FEF80028 ADDRESS mcken R/W 0 PL X X X X X X 31 X 30 29 28 27 26 25 R R R R R R 0 PL 0 PL 0 PL 0 PL X X X R R/W R/W R/W R/W R R R X 1 PL 0 PL 0 PL X X X X 0 0 0 0 0 0 0 24 23 R R/W R/W R/W R R R R X 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 3-38 READ ZERO X RESET R OPERATION mien sien tien scien 0 0 0 0 derc rwcb refdis 0 0 0 0 0 NAME 0 BIT refdis When set, refdis causes the refresher and all of its associated counters and state machines to be cleared and maintained that way until refdis is removed (cleared). If a refresh cycle is in process when refdis is updated by a write to this register, the update does not take effect until the refresh cycle has completed. This prevents the generation of illegal cycles to the DRAM when refdis is updated. rwcb rwcb, when set, causes reads and writes to DRAM from the PowerPC 60x bus to access check-bit data rather than normal data. The data path used for this mode is DH24-31 for check-bit data controlled by the upper Falcon, and DL24-31 for check-bit data controlled by the lower Falcon. Each 8-bit check-bit location services 64 bits of normal data. The 64 bits of data are all within the same Falcon. Each Falcon provides every other 32 bits of data in the normal mode. The Þgure below shows the relationship between normal data and check-bit data. Programming Model Connected to Lower Falcon 3 Connected to Upper Falcon 0 4 8 C Normal View of Data (rwcb=0) 32 bits 0 1 2 3 4 5 6 7 Check-bit View (rwcb=1 11707.00 9701 So, for example, the check-bits that correspond to the 64 bits of data found in normal mode (rwcb=0) at $00001000-$00001003 and $00001008-$0000100b are written and read in check-bit mode (rwcb=1) at location $00001003. Note that if test software wishes to force a single-bit error to a location using the rwcb function, the scrubber may correct the location before the test software gets a chance to check for the single-bit error. This can be avoided by disabling scrub writes. Also note that writing bad check-bits can set the elog bit in the Error Logger Register. The writing of check-bits causes the Falcon to perform a readmodify-write to DRAM. If the location to which check-bits are being written has a single- or doublebit error, data in the location may be altered by the write check-bits operation. To avoid this, it is 3-39 Falcon ECC Memory Controller Chip Set recommended that the derc bit also be set while the rwcb bit is set. A possible sequence for performing read-write check-bits is as follows: 3 1. Disable scrub writes by clearing the swen bit if it is set. 2. Stop all DRAM Tester operations by clearing the trun bit. 3. Make sure software is not using DRAM at this point, because while rwcb is set, DRAM will not function as normal memory. 4. Set the derc and rwcb bits in the Data Control register. 5. Perform the desired read and/or write check-bit operations. 6. Clear the derc and rwcb bits in the Data Control register. 7. Perform the desired testing related to the location/locations that have had their check-bits altered. 8. Enable scrub writes by setting the swen bit if it was set before. derc Setting derc to one alters Falcon pair operation as follows: 1. During reads, data is presented to the PowerPC 60x data bus uncorrected from the DRAM array. 2. During single-beat writes, data is written without correcting single-bit errors that may occur on the read portion of the read-modify-write. Check-bits are generated for the data being written. 3. During single-beat writes, the write portion of the readmodify-write happens regardless of whether there is a multiple-bit error during the read portion. No correction of data is attempted. Check-bits are generated for the data being written. 4. During refresh/scrub cycles, if swen is set, a read-write to DRAM happens with no attempt to correct data bits. Checkbits are generated for the data being written. 3-40 Programming Model derc is useful for initializing DRAM after power-up and for testing DRAM, but it should be cleared during normal system operation. 3 scien When scien is set, the rolling over of the SBE COUNT register causes the INT_ signal pin to pulse true. tien When tien is set, the setting of the tpass or the tfail bit causes the INT_ signal pin to pulse true. sien When sien is set, the logging of a single-bit error causes the INT_ signal pin to pulse true. mien When mien is set, the logging of a non-correctable error causes the INT_ signal pin to pulse true. mcken When mcken is set, the detection of a multiple-bit error during a PowerPC read or write causes the Falcon to pulse its machine check interrupt request pin (MCP_) true. When mcken is cleared, the Falcon does not ever assert its MCP_ pin. The Falcon never asserts its MCP_ pin in response to a multiple-bit error detected during a scrub cycle. ! Caution Note that the INT_ and MCP_ pins are the only nonpolled notification that a multiple-bit error has occurred. The Falcon pair does not assert TEA as a result of a multiple bit error. In fact, the Falcon pair does not have a TEA_ signal pin and it assumes that the system does not implement TEA_. 3-41 Falcon ECC Memory Controller Chip Set Error Logger Register $FEF80030 ADDRESS R/C R R R R R R R 0P X X X X X X X XP The Error Logger and Error Address Registers behave the same as the other registers, in that data written to the upper Falcon is automatically duplicated in the lower Falcon. They also behave the same as the other registers, in that status read from the upper Falcon pertains to the upper Falcon, and status read from the lower Falcon pertains to the lower Falcon. Unlike most of the other registers, however, it is normal for this status to differ between the two. This is due to the fact that each Falcon is connected to its own set of DRAMs. The upper Falcon can log an error during a cycle and the local Falcon not, or vice-versa. Or they can both log an error during the same cycle and have the attributes of the errors differ. Because of the above, software needs to monitor both the upper and lower FalconÕs Error Logger and Error Address Registers. This includes checking the elog bit from the upper Falcon and from the lower Falcon. When the upper Falcon logs an error, it updates its attribute bits (escb, embt, esbt, ERROR_SYNDROME, eblk0, eblk1, and ERROR_ADDRESS) to match the results of the read cycle for its portion of the DRAM array. When the lower Falcon logs an error, it updates its attribute bits to match the results of the read cycle for its portion of the DRAM array. While the logging of errors by one Falcon in a pair does not affect the logging of errors by the other, writing to the Error Logger Register control bits affects both Falcons. This is of particular interest as regards the elog bit. Writing a one to the elog bit clears the elog bit for both the upper and lower Falcons. Because of this, 3-42 31 scof 0 0 0 eblk1 eblk0 0 0 RESET XP XP 0 PL XP X X X 0P READ ONLY 0P READ/WRITE OPERATION R R R/W R R R R SBE_COUNT R/C ERROR_SYNDROME 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 esbt embt esen escb 0 0 0 elog NAME 1 BIT 0 3 Programming Model software needs to check the status of both upper and lower Error Logger and Error Address Registers before it clears the elog bits. Otherwise, it could miss a logged error. elog When set, elog indicates that a single- or a multiplebit error has been logged by its Falcon. If elog is set by a multiple-bit error, then no more errors will be logged until software clears it. If elog is set by a single-bit error, then no more single-bit errors will be logged until software clears it, however if elog is set by a single-bit error and a multiple-bit error occurs, the multiple-bit error will be logged and the singlebit error information overwritten. elog can only be set by the logging of an error and cleared by the writing of a one to itself or by power-up reset. escb escb indicates the entity that was accessing DRAM at the last logging of a single- or multiple-bit error by its Falcon. If escb is 1, it indicates that the scrubber was accessing DRAM. If escb is 0, it indicates that the PowerPC 60x bus master was accessing DRAM. Note that the DRAM Tester cannot cause an error to be logged. esen When set, esen allows errors that occur during scrubs to be logged. When cleared, esen does not allow errors that occur during scrubs to be logged. embt embt is set by the logging of a multiple-bit error in its Falcon. It is cleared by the logging of a single-bit error in its Falcon. It is undeÞned after power-up reset. A FalconÕs syndrome code is meaningless if its embt bit is set. esbt esbt is set by the logging of a single-bit error in its Falcon. It is cleared by the logging of a multiple-bit error in its Falcon. When a Falcon logs a single-bit error, its syndrome code indicates which bit was in error. (Refer to the section on ECC Codes.) 3-43 3 Falcon ECC Memory Controller Chip Set ERROR_SYNDROME ERROR_SYNDROME reßects the syndrome value at the last logging of an error by its Falcon. This eight-bit code indicates the position of the data error. When all the bits are zero, there was no error. Note that if the logged error was noncorrectable, then these bits are meaningless. Refer to the section on ECC Codes for a decoding of the syndromes. 3 esblk0,esblk1 Together these two bits indicate which block of DRAM was being accessed when their Falcon logged a scrub error. esblk0,esblk1 are 0,0 for Block A; 0,1 for Block B; 1,0 for Block C; and 1,1 for Block D. scof scof is set by the SBE COUNT register rolling over from $FF to $00. It is cleared by software writing a 1 to it. SBE COUNT This register keeps track of the number of singlebit errors that have occurred since it was last cleared. It counts up by one each time its half of the Falcon pair detects a single-bit error (independent of the state of the elog bit). It is cleared by power-up reset and by software writing all zeros to it. When SBE COUNT rolls over from $FF to $00, its Falcon sets the scof bit. It also pulses the INT_ signal low if the scien bit is set. 3-44 3Falcon ECC Memory Controller Chip Set 0Programming Model Programming Model Error_Address Register $FEF80038 ADDRESS 31 READ ONLY X X X X XP RESET 30 R R R R OPERATION 29 0 0 0 0 ERROR_ADDRESS NAME 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BIT ERROR_ADDRESS These bits reßect the value that corresponds to bits 0-27 of the PowerPC 60x address bus when their Falcon last logged an error during a PowerPC access to DRAM. They reßect the value of the DRAM row and column addresses if the error was logged during a scrub cycle. In this case, bits 2-14 correspond to row address signals 0-12 respectively and bits 15-27 correspond to column address signals 0-12 respectively. Refer to Table 3-18 in the subsection on Sizing DRAM in the section on Software Considerations. It shows how PowerPC addresses correspond to DRAM row and column addresses. Scrub/Refresh Register $FEF80040 ADDRESS R R/W R R R R R R 0P X 0P X X X X X 0P READ ZERO READ ZERO 0P 0P 0P X X X X R RESET R/W R/W R/W R R R R OPERATION X X scb0,scb1 These bits increment every time the scrubber completes a scrub of the entire DRAM. When these bits reach binary 11, they roll over to binary 00 and continue. They are cleared by power-up reset. 3-45 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 rtest2 rtest1 rtest0 0 0 0 0 0 swen 0 0 0 0 0 scb1 scb0 NAME 0 BIT 3 Falcon ECC Memory Controller Chip Set When set, swen allows the scrubber to perform write cycles. When cleared, swen prevents scrubber writes. swen 3 rtest0,1,2 The rtest bits enable certain refresh counter test modes. Table 3-12 shows their encodings. Note that these test modes are not intended to be used once the chip is in a system. Table 3-12. rtest encodings Test Mode selected Normal Counter Operation RA counts at 16x RA counts at 256x RA is always at roll value for CA CA counts at 16x CA counts at 256x reserved reserved rtest0,rtest1,rtest2 %000 %001 %010 %011 %100 %101 %110 %111 Refresh/Scrub Address Register $FEF80048 ADDRESS 0P X X X 0P ROW ADDRESS These bits form the row address counter used by the refresher/scrubber for all blocks of DRAM. The row address counter increments by one after each refresh/scrub cycle. When it reaches all 1s, it rolls back over to all 0s and continues counting. ROW ADDRESS is readable and writable for test purposes. 3-46 31 R R R READ/WRITE 30 0 0 0 READ/WRITE 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 COL ADDRESS X X X RESET ROW ADDRESS R R R OPERATION 0 0 0 NAME 0 BIT Programming Model Note that within each block, the most signiÞcant bits of ROW ADDRESS are used only when their DRAM devices are large enough to require them. 3 COL ADDRESS These bits form the column address counter used by the refresher/scrubber for all blocks of DRAM. The counter increments by one every eighth time the ROW ADDRESS rolls over. COL ADDRESS is readable and writable for test purposes. Note that within each block, the most signiÞcant bits of COL ADDRESS are only used when their DRAM devices are large enough to require them. ROM A Base/Size Register $FEF80050 ADDRESS 31 30 29 28 27 26 rom a we rom a en rom_a_rv 0 0 0 0 0 R R/W R/W R/W R R R R X 0 PL 0 PL VP X X X X 0 PL 0 PL 0 PL VP X 25 $FF0 PL 24 R/W R/W R/W R READ ZERO 23 rom a siz2 rom a siz1 rom a siz0 rom_a_64 READ/WRITE 22 21 20 19 18 17 16 15 14 13 12 11 10 RESET 9 ROM A BASE NAME OPERATION 8 7 6 5 4 3 2 1 0 BIT These control bits deÞne the base address for ROM A BASE ROM/Flash Block A. ROM A BASE bits 0-11 correspond to PowerPC 60x address bits 0 - 11 respectively. For larger ROM/Flash sizes, the lower signiÞcant bits of ROM A BASE are ignored. This means that the blockÕs base address will always appear at an even multiple of its size. ROM A BASE is initialized to $FF0 at power-up or local bus reset. Note that in addition to the programmed address, the Þrst 1Mbyte of Block A also appears at $FFF00000 - $FFFFFFFF if the rom_a_rv bit is set and the rom_b_rv bit is cleared. 3-47 Falcon ECC Memory Controller Chip Set Also note that the combination of ROM_A_BASE and rom_a_siz should never be programmed such that ROM/Flash Block A responds at the same address as the CSR, DRAM, External Register Set, or any other slave on the PowerPC bus. 3 rom_a_64 rom_a_64 indicates the width of ROM/Flash device/devices being used for Block A. When rom_a_64 is cleared, Block A is 16 bits wide, where each Falcon interfaces to 8 bits. When rom_a_64 is set, Block A is 64 bits wide, where each Falcon interfaces to 32 bits. rom_a_64 matches the value that was on the CKD2 pin at power-up reset. It cannot be changed by software. rom a siz The rom a siz control bits are the size of ROM/Flash for Block A. They are encoded as shown in Table 3-13. Table 3-13. ROM Block A Size Encoding 3-48 rom a siz BLOCK SIZE %000 1MB %001 2MB %010 4MB %011 8MB %100 16MB %101 32MB %110 64MB %111 Reserved Programming Model rom_a_rv rom_a_rv and rom_b_rv determine which if either of Blocks A and B is the source of reset vectors or any other access in the range $FFF00000 - $FFFFFFFF as shown in the table below. Table 3-14. rom_a_rv and rom_b_rv encoding rom_a_rv rom_b_rv Result 0 0 Neither Block is the source of reset vectors. 0 1 Block B is the source of reset vectors. 1 0 Block A is the source of reset vectors. 1 1 Block B is the source of reset vectors. rom_a_rv is initialized at power-up reset to match the value on the CKD0 pin. rom a en When rom a en is set, accesses to Block A ROM/Flash in the address range selected by ROM A BASE are enabled. When rom a en is cleared, they are disabled. rom a we When rom a we is set, writes to Block A ROM/Flash are enabled. When rom a we is cleared, they are disabled. Note that if rom_a_64 is cleared, only 1byte writes are allowed. If rom_a_64 is set, only 4byte writes are allowed. The Falcon ignores other writes. If a valid write is attempted and rom a we is cleared, the write does not happen but the cycle is terminated normally. See Table 3-15 for details of ROM/Flash accesses. 3-49 3 Falcon ECC Memory Controller Chip Set Table 3-15. Read/Write to ROM/Flash 3 Cycle Transfer Size Alignment rom_x_64 rom_x_we Falcon Response write 1-byte X 0 0 Normal termination, but no write to ROM/Flash write 1-byte X 0 1 Normal termination, write occurs to ROM/Flash write 1-byte X 1 X No Response write 4-byte Misaligned X X No Response write 4-byte Aligned 0 X No Response write 4-byte Aligned 1 0 Normal termination, but no write to ROM/Flash write 4-byte Aligned 1 1 Normal termination, write occurs to ROM/Flash write 2,3,5,6,7, 8,32-byte X X X No Response read X X X X Normal Termination ROM B Base/Size Register $FEF80058 ADDRESS rom b we rom b en rom_b_rv X 0 PL 0 PL VP X X X X These control bits deÞne the base address for ROM B BASE ROM/Flash Block B. ROM B BASE bits 0-11 correspond to PowerPC 60x address bits 0 - 11 3-50 31 30 29 28 27 26 25 R/W R/W R/W R R R R X R 0 PL 0 PL 0 PL VP 0 0 0 0 0 $FF4 PL 24 R/W R/W R/W R READ ZERO 23 rom b siz2 rom b siz1 rom b siz0 rom_b_64 READ/WRITE 22 21 20 19 18 17 16 15 14 13 12 11 10 RESET 9 ROM B BASE NAME OPERATION 8 7 6 5 4 3 2 1 0 BIT Programming Model respectively. For larger ROM/Flash sizes, the lower signiÞcant bits of ROM B BASE are ignored. This means that the blockÕs base address will always appear at an even multiple of its size. ROM B BASE is initialized to $FF4 at power-up or local bus reset. Note that in addition to the programmed address, the Þrst 1Mbyte of Block B also appears at $FFF00000 - $FFFFFFFF if the rom_b_rv bit is set. Also note that the combination of ROM_B_BASE and rom_b_siz should never be programmed such that ROM/Flash Block B responds at the same address as the CSR, DRAM, External Register Set, or any other slave on the PowerPC bus. rom_b_64 rom_b_64 indicates the width of ROM/Flash device/devices being used for Block B. When rom_b_64 is cleared, Block B is 16 bits wide, where each Falcon interfaces to 8 bits. When rom_b_64 is set, Block B is 64 bits wide, where each Falcon interfaces to 32 bits. rom_b_64 matches the inverse of the value that was on the CKD3 pin at power-up reset. It cannot be changed by software. 3-51 3 Falcon ECC Memory Controller Chip Set rom b siz The rom b siz control bits are the size of ROM/Flash for Block B. They are encoded as shown in Table 3-16. 3 Table 3-16. ROM Block B Size Encoding rom b siz BLOCK SIZE %000 1Mbytes %001 2Mbytes %010 4Mbytes %011 8Mbytes %100 16Mbytes %101 32Mbytes %110 64Mbytes %111 Reserved rom_b_rv rom_b_rv and rom_a_rv determine which if either of Blocks A and B is the source of reset vectors or any other access in the range $FFF00000 - $FFFFFFFF as shown in Table 3-14. rom_b_rv is initialized at power-up reset to match the inverse of the value on the CKD1 pin. rom b en When rom b en is set, accesses to Block B ROM/Flash in the address range selected by ROM B BASE are enabled. When rom b en is cleared they are disabled. rom b we When rom b we is set, writes to Block B ROM/Flash are enabled. When rom b we is cleared they are disabled. Refer back to Table 3-15 for more details. 3-52 Programming Model DRAM Tester Control Registers The tester should not be used by software. The trun and tsse bits (bits 0 and 1 of the register at address $FEF80060) should never be set. ! Caution 3 32-Bit Counter $FEF80100 ADDRESS CTR32 NAME READ/WRITE OPERATION 0 PL RESET CTR32 Note CTR32 is a 32-bit, free-running counter that increments once per microsecond if the CLK_FREQUENCY register has been programmed properly. Notice that CTR32 is cleared by power-up and local reset. It does not exist in Revision 1 of Falcon. When the system clock is a fractional frequency, such as 66.67MHz, CTR32 will count at a fractional amount faster or slower than 1MHz, depending on the programming of the CLK_FREQUENCY Register. 3-53 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BIT Falcon ECC Memory Controller Chip Set Test SRAM (Deleted) 3 3-54 Programming Model Power-Up Reset Status Register 1 $FEF80400 ADDRESS 30 31 30 31 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BIT PR_STAT1 NAME OPERATION READ RESET VP PR_STAT1 PR_STAT1 (power-up reset status) reßects the value that was on the RD0-RD31 signal pins at power-up reset. This register is read-only. For descriptions of how this register is used in the MVME2300 series boards, refer to the Falcon-Controlled System Registers in Chapter 1, especially the System Configuration Register and the Memory Configuration Register. Note Power-Up Reset Status Register 2 $FEF80500 ADDRESS 29 27 28 25 26 23 24 21 22 19 20 17 18 15 16 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BIT PR_STAT2 NAME OPERATION READ RESET VP PR_STAT2 PR_STAT2 (power-up reset status) reßects the value that was on the RD32-RD63 signal pins at power-up reset. This register is read-only. 3-55 3 Falcon ECC Memory Controller Chip Set External Register Set $FEF88000 - $FEF8FFF8 ADDRESS EXTERNAL REGISTER SET READ/WRITE X PL EXTERNAL REGISTER SET The EXTERNAL REGISTER SET is user provided and is external to the Falcon pair. The Falcon pair provides a static RAM style interface for the external registers. The external registers can be SRAM, ROM, Flash or some other user device. There can be one device connected to either the upper or lower Falcon, or there can be two devices with one connected to each Falcon. The devices can be 8, 16, or 32 bits wide. The data path to the external devices is via the RD32-RD63 pins. Reads to the external devices can be any size except burst. Note that if the devices are less than 32 bits wide, reads to unused data lanes will yield undeÞned data. Note that writes are restricted to one or 4-byte length only. 4byte writes can be used for any size device, data should be placed on the correct portion of the data bus so that valid data is written to the device. Data duplication is turned off for the EXTERNAL REGISTER SET so writes can be to either the upper Falcon, or to the lower Falcon. Note For descriptions of how these registers are used in the MVME2300 series boards, refer to the Falcon-Controlled System Registers in Chapter 1, especially the System External Cache Control Register and the CPU Control Register. 3-56 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 RESET 3 OPERATION 2 NAME 1 BIT 0 3 3Falcon ECC Memory Controller Chip Set Software Considerations Software Considerations This section contains information that will be useful in programming a system that uses the Falcon pair. 3 Parity Checking on the PowerPC Bus The Falcon does not generate parity on the PowerPC address or data buses. Because of this, the appropriate registers in the MPC60x should be programmed to disable parity checking for the address bus and for the data bus. Programming ROM/Flash Devices Those who program devices to be controlled by the Falcon should make note of the address mapping that is shown in Table 3-7 and in Table 3-8. For example, when using 8-bit devices, the code will be split so that every other 4-byte segment goes in each device. Writing to the Control Registers Software should not change control register bits that affect DRAM operation while DRAM is being accessed. Because of pipelining, software should always make sure that the two accesses before and after the updating of critical bits are not DRAM accesses. A possible scenario for trouble would be to execute code out of DRAM while updating the critical DRAM control register bits. The preferred method is to be executing code out of ROM/Flash and avoiding DRAM accesses while updating these bits. Since software has no way of controlling refresh accesses to DRAM, the hardware is designed so that updating control bits coincidentally with refreshes is not a problem. An exception to this is the ROW_ADDRESS and COL_ADDRESS bits. It is not intended that software write to these bits anyway. 3-57 Falcon ECC Memory Controller Chip Set As with DRAM, software should not change control register bits that affect ROM/Flash while the affected Block is being accessed. This generally means that the ROM/Flash size, base address, enable, write enable, etc. are changed only while executing initially in the reset vector area ($FFF00000 - $FFFFFFFF). 3 Sizing DRAM The following routine can be used to size DRAM for the Falcon. Initialize the Falcon control register bits to a known state as follows: 1. Clear the isa_hole bit. 2. Make sure that ram_fref and ram_spd0,ram_spd1 are correct. 3. Set CLK_FREQUENCY to match the operating frequency. 4. Clear the refdis, rwcb bits. 5. Set the derc bit. 6. Clear the scien, tien, sien, and mien bits. 7. Clear the mcken bit. 8. Clear the swen and rtest0,rtest1,rtest2 bits. 9. Make sure that ROM/Flash banks A and B are not enabled to respond in the range from $00000000 to $40000000. 10. Make sure that no other devices respond in the range from $00000000 to $40000000. For each block: 1. Set the blockÕs base address to $00000000. 2. Enable the block and make sure that the other three blocks are disabled. 3. Set the blockÕs size control bits. Start with the largest possible (1024MB). 3-58 Software Considerations 4. Write differing 64-bit data patterns to certain addresses within the block. The data patterns do not matter as long as each 64-bit data pattern is unique. The addresses to be written vary depending on the size that is currently being checked and are specified in Table 3-17. Table 3-18 shows how PowerPC addresses correspond to DRAM row/column addresses. 5. Read back all of the addresses that have been written. If all of the addresses still contain exactly what was written then the blockÕs size has been found. It is the size for which the block is currently programmed. If any of the addresses do not match exactly then the amount of memory is less than that for which it is currently programmed. Sizing needs to continue for this block by programming its control bits to the next smaller size and repeating steps 4 and 5. 6. If no match is found for any size then the block is unpopulated and has a size of 0MB. Each size that is checked has a specific set of locations that must be written and read. The following table shows the addresses that go with each size. Table 3-17. Sizing Addresses 1024MB 256MB 128MB 64MB 32MB 16MB $00000000 $20000000 $00000000, $02000000, $08000000, $0A000000 $00000000 $00002000 $02000000 $02002000 $04000000 $04002000 $06000000 $06002000 $00000000 $00002000 $02000000 $02002000 $00000000 $00001000 $00002000 $00003000 $01000000 $01001000 $01002000 $01003000 $00000000 3-59 3 Falcon ECC Memory Controller Chip Set Table 3-18. PowerPC 60x Address to DRAM Address Mappings 3 RA ----> Block Size | V 16MB 0 ROW COL 1024MB 3-60 4 5 6 7 8 9 10 11 12 A9 A10 A11 A12 A13 A14 A15 A16 A17 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A18 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A6 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A6 A5 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A6 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 COL ROW 256MB A18 A7 COL ROW 128MB 3 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 COL ROW 64MB 2 A19 A18 A8 ROW 32MB 1 A4 COL A5 A7 A8 A4 A6 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 ROW A3 A5 A7 A9 A10 A11 A12 A13 A14 A15 A16 A17 COL A2 A4 A6 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 ECC Codes ECC Codes When the Falcon reports a single-bit error, software can use the syndrome that was logged by the Falcon (upper or lower depending where the error occurred) to determine which bit was in error. Table 3-19 shows the syndrome for each possible single bit error. Table 3-20 shows the same information ordered by syndrome. In order to relate this information to PowerPC addresses and bit numbers, the user needs to understand how the Falcon pair positions PowerPC data in DRAM. See the section on Data Paths for an explanation of this. Note that Tables 3-19 and 3-20 are the same whether the Falcon is configured as upper or as lower. Table 3-19. Syndrome Codes Ordered by Bit in Error Bit Syndrome Bit Syndrome Bit Syndrome Bit Syndrome Bit Syndrome rd0 $4A rd16 $92 rd32 $A4 rd48 $29 ckd0 $01 rd1 $4C rd17 $13 rd33 $C4 rd49 $31 ckd1 $02 rd2 $2C rd18 $0B rd34 $C2 rd50 $B0 ckd2 $04 rd3 $2A rd19 $8A rd35 $A2 rd51 $A8 ckd3 $08 rd4 $E9 rd20 $7A rd36 $9E rd52 $A7 ckd4 $10 rd5 $1C rd21 $07 rd37 $C1 rd53 $70 ckd5 $20 rd6 $1A rd22 $86 rd38 $A1 rd54 $68 ckd6 $40 rd7 $19 rd23 $46 rd39 $91 rd55 $64 ckd7 $80 rd8 $25 rd24 $49 rd40 $52 rd56 $94 rd9 $26 rd25 $89 rd41 $62 rd57 $98 rd10 $16 rd26 $85 rd42 $61 rd58 $58 rd11 $15 rd27 $45 rd43 $51 rd59 $54 rd12 $F4 rd28 $3D rd44 $4F rd60 $D3 rd13 $0E rd29 $83 rd45 $E0 rd61 $38 rd14 $0D rd30 $43 rd46 $D0 rd62 $34 rd15 $8C rd31 $23 rd47 $C8 rd63 $32 3-61 3 Falcon ECC Memory Controller Chip Set Table 3-20. Single-Bit Errors Ordered by Syndrome Code 3 Syn- Bit Syn- Bit Syn- Bit Syn- Bit Syn- Bit Syn- Bit Syn- Bit Syn- Bit drome drome drome drome drome drome drome drome $00 - $20 ckd5 $40 ckd6 $60 - $80 ckd7 $A0 - $C0 - $E0 rd45 $01 ckd0 $21 - $41 - $61 rd42 $81 - $A1 rd38 $C1 rd37 $E1 - $02 ckd1 $22 - $42 - $62 rd41 $82 - $A2 rd35 $C2 rd34 $E2 - $03 - $23 rd31 $43 rd30 $63 - $83 rd29 $A3 - $C3 - $E3 - $04 ckd2 $24 - $44 - $64 rd55 $84 - $A4 rd32 $C4 rd33 $E4 - $05 - $25 rd8 $45 rd27 $65 - $85 rd26 $A5 - $C5 - $E5 - $06 - $26 rd9 $46 rd23 $66 - $86 rd22 $A6 - $C6 - $E6 - $07 rd21 $27 - $47 - $67 - $87 - $A7 rd52 $C7 - $E7 - $08 ckd3 $28 - $48 - $68 rd54 $88 - $A8 rd51 $C8 rd47 $E8 - $09 - $29 rd48 $49 rd24 $69 - $89 rd25 $A9 - $C9 - $E9 rd4 $0A - $2A rd3 $4A rd0 $6A - $8A rd19 $AA - $CA - $EA - $0B rd18 $2B - $4B - $6B - $8B - $AB - $CB - $EB - $0C - $2C rd2 $4C rd1 $6C - $8C rd15 $AC - $CC - $EC - $0D rd14 $2D - $4D - $6D - $8D - $AD - $CD - $ED - $0E rd13 $2E - $4E - $6E - $8E - $AE - $CE - $EE - $0F - $2F - $4F rd44 $6F - $8F - $AF - $CF - $EF - $10 ckd4 $30 - $50 - $70 rd53 $90 - $B0 rd50 $D0 rd46 $F0 - $11 - $31 rd49 $51 rd43 $71 - $91 rd39 $B1 - $D1 - $F1 - $12 - $32 rd63 $52 rd40 $72 - $92 rd16 $B2 - $D2 - $F2 - $13 rd17 $33 - $53 - $73 - $93 - $B3 - $D3 rd60 $F3 - $14 - $34 rd62 $54 rd59 $74 - $94 rd56 $B4 - $D4 - $F4 rd12 $15 rd11 $35 - $55 - $75 - $95 - $B5 - $D5 - $F5 - $16 rd10 $36 - $56 - $76 - $96 - $B6 - $D6 - $F6 - $17 - $37 - $57 - $77 - $97 - $B7 - $D7 - $F7 - $18 - $38 rd61 $58 rd58 $78 - $98 rd57 $B8 - $D8 - $F8 - $19 rd7 $39 - $59 - $79 - $99 - $B9 - $D9 - $F9 - $1A rd6 $3A - $5A - $7A rd20 $9A - $BA - $DA - $FA - $1B - $3B - $5B - $7B - $9B - $BB - $DB - $FB - $1C rd5 $3C - $5C - $7C - $9C - $BC - $DC - $FC - $1D - $3D rd28 $5D - $7D - $9D - $BD - $DD - $FD - $1E - $3E - $5E - $7E - $9E rd36 $BE - $DE - $FE - $1F - $3F - $5F - $7F - $9F - $BF - $DF - $FF - 3-62 Data Paths Data Paths Because of the Falcon ÒpairÓ architecture, data paths can be confusing. Figure 3-10 attempts to show the placement of data that is written by a PowerPC master to DRAM. Table 3-21 shows the same information in tabular format. 3-63 3 3 ra12=1 ra12=0 Falcon ECC Memory Controller Chip Set a[27:28]=3 a[27:28]=2 a[27:28]=1 a[27:28]=0 rd63 rd32 rd31 Lower Falcon’s DRAM dl31 rd0 ra12=1 ra12=0 PowerPC dl0 Data dh31 rd63 dh0 rd32 rd31 Upper Falcon’s DRAM rd0 1909 9609 Figure 3-10. PowerPC Data to DRAM Data Correspondence 3-64 Data Paths Table 3-21. PowerPC Data to DRAM Data Mapping PowerPC A[27] A[28] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Data Bits RA[12] dh[00:07] dh[08:15] dh[16:23] dh[24:31] dl[00:07] dl[08:15] dl[16:23] dl[24:31] dh[00:07] dh[08:15] dh[16:23] dh[24:31] dl[00:07] dl[08:15] dl[16:23] dl[24:31] dh[00:07] dh[08:15] dh[16:23] dh[24:31] dl[00:07] dl[08:15] dl[16:23] dl[24:31] dh[00:07] dh[08:15] dh[16:23] dh[24:31] dl[00:07] dl[08:15] dl[16:23] dl[24:31] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 DRAM Array Upper Falcon DRAM Lower Falcon DRAM Data Bits Data Bits rd[00:07] rd[08:15] rd[16:23] rd[24:31] rd[00:07] rd[08:15] rd[16:23] rd[24:31] rd[32:39] rd[40:47] rd[48:55] rd[56:63] rd[32:39] rd[40:47] rd[48:55] rd[56:63] rd[00:07] rd[08:15] rd[16:23] rd[24:31] rd[00:07] rd[08:15] rd[16:23] rd[24:31] rd[32:39] rd[40:47] rd[48:55] rd[56:63] rd[32:39] rd[40:47] rd[48:55] rd[56:63] 3-65 3 Falcon ECC Memory Controller Chip Set 3 3-66 4Universe (VMEbus to PCI) Chip Note 4 All of the information in this chapter (except the section Universe Chip Problems after a PCI Reset) is taken from the Universe User Manual, which is listed in ManufacturersÕ Documents in Appendix A. Refer to that manual for complete information. General Information Introduction The Universe VMEbus interface chip (CA91C042) provides a reliable high performance 64-bit VMEbus to PCI interface in one device. Designed by Tundra Semiconductor Corporation in consultation with Motorola, the Universe is compliant with the VME64 specification and is tuned to the new generation of high speed processors. The Universe is ideally suited for CPU boards acting as both master and slave in the VMEbus system, and is particularly fitted for PCI local systems. The Universe is manufactured in a CMOS process. Product Overview - Features ❏ Fully compliant, 64-bit, 33 MHz PCI local bus interface ❏ Fully compliant, high performance 64-bit VMEbus interface ❏ Integral FIFOs for write posting to maximize bandwidth utilization ❏ Programmable DMA controller with linked list support 4-1 Universe (VMEbus to PCI) Chip ❏ VMEbus transfer rates of 60-70 MBytes/sec ❏ Complete suite of VMEbus address and data transfer modes Ð A32/A24/A16 master and slave Ð D64 (MBLT)/D32/D16/D08 master and slave Ð BLT, ADOH, RMW, LOCK 4 ❏ Automatic initialization for slave-only applications ❏ Flexible register set, programmable from both the PCI bus and VMEbus ports ❏ Full VMEbus system controller functionality ❏ IEEE 1149.1 JTAG testability support, and ❏ Available in 313-pin Plastic BGA and 324-pin contact Ceramic BGA Functional Description Architectural Overview This section introduces the general architecture of the Universe. This description makes reference to the functional block diagram provided in Figure 4-1 that follows. Notice that for each of the interfaces, VMEbus and PCI bus, there are three functionally distinct modules: master module, slave module, and interrupt module. These modules are connected to the different functional channels operating in the Universe. These channels are: 4-2 ❏ VME Slave Channel ❏ PCI Bus Slave Channel ❏ DMA Channel ❏ Interrupt Channel ❏ Register Channel Functional Description The Architectural Overview is organized into the following sections: ❏ VMEbus Interface ❏ PCI Bus Interface ❏ Interrupter and Interrupt Handler ❏ DMA Controller 4 These sections describe the operation of the Universe in terms of the different modules and channels illustrated in Figure 4-1. DMA Channel DMA bidirectional FIFO PCI Bus Interface VMEbus Interface VMEbus Slave Channel PCI Master posted writes FIFO prefetch read FIFO coupled read VME Slave PCI Bus Slave Channel PCI BUS PCI Slave posted writes FIFO coupled read logic VME Master VMEbus Interrupt Channel PCI Interrupts Interrupt Handler Interrupter VME Interrupts Register Channel 1894 9609 Figure 4-1. Architectural Diagram for the Universe 4-3 Universe (VMEbus to PCI) Chip VMEbus Interface Universe as VMEbus Slave The Universe VME Slave Channel accepts all of the addressing and data transfer modes documented in the VME64 specification (except A64 and those intended to support 3U applications, i.e. A40 and MD32). Incoming write transactions from the VMEbus may be treated as either coupled or posted, depending upon the programming of the VMEbus slave image. (Refer to VME Slave Images in the Universe User Manual.) With posted write transactions, data is written to a Posted Write Receive FIFO (RXFIFO), and the VMEbus master receives data acknowledgment from the Universe. Write data is transferred to the PCI resource from the RXFIFO without the involvement of the initiating VMEbus master (Refer to Posted Writes in the Universe User Manual for a full explanation of this operation.). With a coupled cycle, the VMEbus master only receives data acknowledgment when the transaction is complete on the PCI bus. This means that the VMEbus is unavailable to other masters while the PCI bus transaction is executed. 4 Read transactions may be prefetched or coupled. If enabled by the user, a prefetched read is initiated when a VMEbus master requests a block read transaction (BLT or MBLT) and this mode is enabled. When the Universe receives the block read request, it begins to fill its Read Data FIFO (RDFIFO) using burst transactions from the PCI resource. The initiating VMEbus master then acquires its block read data from the RDFIFO rather than from the PCI resources directly. Universe as VMEbus Master The Universe becomes VMEbus master when the VME Master Interface is internally requested by the PCI Bus Slave Channel, the DMA Channel, or the Interrupt Channel. The Interrupt Channel always has priority over the other two channels. Several mechanisms are available to configure the relative priority that the PCI Bus Slave Channel and DMA Channel have over ownership of the VMEbus Master Interface. 4-4 Functional Description The UniverseÕs VME Master Interface generates all of the addressing and data transfer modes documented in the VME64 specification (except A64 and those intended to support 3U applications, i.e. A40 and MD32). The Universe is also compatible with all VMEbus modules conforming to pre-VME64 specifications. As VMEbus master, the Universe supports ReadModify-Write (RMW), and Address-Only-with-Handshake (ADOH) but does not accept RETRY* as a termination from the VMEbus slave. The ADOH cycle is used to implement the VMEbus Lock command allowing a PCI master to lock VMEbus resources. PCI Bus Interface Universe as PCI Slave Read transactions from the PCI bus are always processed as coupled. Write transactions may be either coupled or posted, depending upon the setting of the PCI bus slave image. (Refer to PCI Bus Slave Images in the Universe User Manual.) With a posted write transaction, write data is written to a Posted Write Transmit FIFO (TXFIFO) and the PCI bus master receives data acknowledgment from the Universe with zero wait states. Meanwhile, the Universe obtains the VMEbus and writes the data to the VMEbus resource independent of the initiating PCI master. (Refer to Posted Writes in the Universe User Manual for a full description of this operation.) To allow PCI masters to perform RMW and ADOH cycles, the Universe provides a Special Cycle Generator. The Special Cycle Generator can be used in combination with a VMEbus ownership function to guarantee PCI masters exclusive access to VMEbus resources over several VMEbus transactions, and. (Refer to Exclusive Accesses and RMW and ADOH Cycles in the Universe User Manual for a full description of this functionality.) 4-5 4 Universe (VMEbus to PCI) Chip Universe as PCI Master The Universe becomes PCI master when the PCI Master Interface is internally requested by the VME Slave Channel or the DMA Channel. There are mechanisms provided which allow the user to configure the relative priority of the VME Slave Channel and the DMA Channel. 4 Interrupter and Interrupt Handler Interrupter The Universe interrupt channel provides a flexible scheme to map interrupts to either the PCI bus or VMEbus interface. Interrupts are generated from either hardware or software sources (Refer to Interrupter in the Universe User Manual for a full description of hardware and software sources.). Interrupt sources can be mapped to any of the PCI bus or VMEbus interrupt output pins. Interrupt sources mapped to VMEbus interrupts are generated on the VMEbus interrupt output pins VIRQ#[7:1]. When a software and hardware source are assigned the same VIRQn# pin, the software source always has higher priority. Interrupt sources mapped to PCI bus interrupts are generated on one of the INT#[7:0] pins. To be fully PCI compliant, all interrupt sources must be routed to a single INT# pin. For VMEbus interrupt outputs, the Universe interrupter supplies an 8-bit STATUS/ID to a VMEbus interrupt handler during the IACK cycle, and optionally generates an internal interrupt to signal that the interrupt vector has been provided. (Refer to VMEbus Interrupt Generation in the Universe User Manual.) Interrupts mapped to PCI bus outputs are serviced by the PCI interrupt controller. The CPU determines which interrupt sources are active by reading an interrupt status register in the Universe. The source negates its interrupt when it has been serviced by the CPU. (Refer to PCI Interrupt Generation in the Universe User Manual.) 4-6 Functional Description VMEbus Interrupt Handling A VMEbus interrupt triggers the Universe io generate a normal VMEbus IACK cycle and generate the specified interrupt output. When the IACK cycle is complete, the Universe releases the VMEbus and the interrupt vector is read by the PCI resource servicing the interrupt output. Software interrupts are ROAK, while hardware, and internal interrupts are RORA. DMA Controller The Universe provides an internal DMA controller for high performance data transfer between the PCI and VMEbus. DMA operations between the source and destination bus are decoupled through the use of a single bidirectional FIFO (DMAFIFO). Parameters for the DMA transfer are software configurable in the Universe registers. (Refer to DMA Controller in the Universe User Manual.) The principal mechanism for DMA transfers is the same for operations in either direction (PCI to VME, or VME to PCI), only the relative identity of the source and destination bus changes. In a DMA transfer, the Universe gains control of the source bus and reads data into its DMAFIFO. Following specific rules of DMAFIFO operation (refer to FIFO Operation and Bus Ownership in the Universe User Manual), it then acquires the destination bus and writes data from its DMAFIFO. The DMA controller can be programmed to perform multiple blocks of transfers using entries in a linked list. The DMA will work through the transfers in the linked-list following pointers at the end of each linked-list entry. Linked-list operation is initiated through a pointer in an internal Universe register, but the linked list itself resides in PCI bus memory. 4-7 4 Universe (VMEbus to PCI) Chip Registers - Universe Control and Status Registers (UCSR) The Universe Control and Status Registers (UCSR) facilitate host system configuration and allow the user to control Universe operational characteristics. The UCSRs are divided into three groups: 4 ❏ PCI Configuration Space (PCICS) ❏ VMEbus Control and Status Registers (VCSR), and ❏ Universe Device Specific Status Registers (UDSR) The Universe registers are little-endian. Figure 4-2 below summarizes the supported register access mechanisms. VMEbus Configuration and Status Registers (VCSR) UNIVERSE DEVICE SPECIFIC REGISTERS (UDSR) 4 Kbytes PCI CONFIGURATION SPACE (PCICS) 1895 9609 Figure 4-2. UCSR Access Mechanisms 4-8 Registers - Universe Control and Status Registers (UCSR) Universe Register Map Table 4-1 below lists the Universe registers by address offset. Tables in the Universe User Manual provide detailed descriptions of each register. Address offsets in Table 4-1 below apply to accesses from the PCI bus and to accesses from the VMEbus side using the VMEbus Register Access Image (Refer to Registers in the Universe User Manual.). For register accesses in CR/CSR space, be sure to add 508 KBytes (0x7F00) to the address offsets provided in the table. Table 4-1. Universe Register Map Offset Register Name 000 PCI ConÞguration Space ID Register PCI_ID 004 PCI ConÞguration Space Control and Status Register PCI_CSR 008 PCI ConÞguration Class Register PCI_CLASS 00C PCI ConÞguration Miscellaneous 0 Register PCI_MISC0 010 PCI ConÞguration Base Address Register PCI_BS 014 PCI Unimplemented 018 PCI Unimplemented 01C PCI Unimplemented 020 PCI Unimplemented 024 PCI Unimplemented 028 PCI Reserved 02C PCI Reserved 030 PCI Unimplemented 034 PCI Reserved 038 PCI Reserved 03C PCI ConÞguration Miscellaneous 1 Register 040 - 0FF PCI_MISC1 PCI Unimplemented 4-9 4 Universe (VMEbus to PCI) Chip Table 4-1. Universe Register Map (Continued) Offset 4 Register 100 PCI Slave Image 0 Control LSI0_CTL 104 PCI Slave Image 0 Base Address Register LSI0_BS 108 PCI Slave Image 0 Bound Address Register LSI0_BD 10C PCI Slave Image 0 Translation Offset LSI0_TO 110 Universe Reserved 114 PCI Slave Image 1 Control LSI1_CTL 118 PCI Slave Image 1 Base Address Register LSI1_BS 11C PCI Slave Image 1 Bound Address Register LSI1_BD 120 PCI Slave Image 1 Translation Offset LSI1_TO 124 Universe Reserved 128 PCI Slave Image 2 Control LSI2_CTL 12C PCI Slave Image 2 Base Address Register LSI2_BS 130 PCI Slave Image 2 Bound Address Register LSI2_BD 134 PCI Slave Image 2 Translation Offset LSI2_TO 138 Universe Reserved 13C PCI Slave Image 3 Control LSI3_CTL 140 PCI Slave Image 3 Base Address Register LSI3_BS 144 PCI Slave Image 3 Bound Address Register LSI3_BD 148 PCI Slave Image 3 Translation Offset LSI3_TO 14C - 16C 4-10 Name Universe Reserved 170 Special Cycle Control Register SCYC_CTL 174 Special Cycle PCI bus Address Register SCYC_ADDR 178 Special Cycle Swap/Compare Enable Register SCYC_EN 17C Special Cycle Compare Data Register SCYC_CMP 180 Special Cycle Swap Data Register SCYC_SWP Registers - Universe Control and Status Registers (UCSR) Table 4-1. Universe Register Map (Continued) Offset Register Name 184 PCI Miscellaneous Register LMISC 188 Special PCI Slave Image SLSI 18C PCI Command Error Log Register L_CMDERR 190 PCI Address Error Log LAERR 194 - 1FC Universe Reserved 200 DMA Transfer Control Register DCTL 204 DMA Transfer Byte Count Register DTBC 208 DMA PCI bus Address Register DLA 20C 210 Universe Reserved DMA VMEbus Address Register 214 218 4 DVA Universe Reserved DMA Command Packet Pointer 21C DCPP Universe Reserved 220 DMA General Control and Status Register DGCS 224 DMA Linked List Update Enable Register D_LLUE 228 - 2FC Universe Reserved 300 PCI Interrupt Enable LINT_EN 304 PCI Interrupt Status LINT_STAT 308 PCI Interrupt Map 0 LINT_MAP0 30C PCI Interrupt Map 1 LINT_MAP1 310 VMEbus Interrupt Enable VINT_EN 314 VMEbus Interrupt Status VINT_STAT 318 VMEbus Interrupt Map 0 VINT_MAP0 31C VMEbus Interrupt Map 1 VINT_MAP1 320 Interrupt Status/ID Out STATID 4-11 Universe (VMEbus to PCI) Chip Table 4-1. Universe Register Map (Continued) Offset 4 Register 324 VIRQ1 STATUS/ID V1_STATID 328 VIRQ2 STATUS/ID V2_STATID 32C VIRQ3 STATUS/ID V3_STATID 330 VIRQ4 STATUS/ID V4_STATID 334 VIRQ5 STATUS/ID V5_STATID 338 VIRQ6 STATUS/ID V6_STATID 33C VIRQ7 STATUS/ID V7_STATID 340 - 3FC Universe Reserved 400 Master Control MAST_CTL 404 Miscellaneous Control MISC_CTL 408 Miscellaneous Status MISC_STAT 40C User AM Codes Register USER_AM 410 - EFC Universe Reserved F00 VMEbus Slave Image 0 Control VSI0_CTL F04 VMEbus Slave Image 0 Base Address Register VSI0_BS F08 VMEbus Slave Image 0 Bound Address Register VSI0_BD F0C VMEbus Slave Image 0 Translation Offset VSI0_TO F10 Universe Reserved F14 VMEbus Slave Image 1 Control VSI1_CTL F18 VMEbus Slave Image 1 Base Address Register VSI1_BS F1C VMEbus Slave Image 1 Bound Address Register VSI1_BD F20 VMEbus Slave Image 1 Translation Offset VSI1_TO F24 4-12 Name Universe Reserved F28 VMEbus Slave Image 2 Control VSI2_CTL F2C VMEbus Slave Image 2 Base Address Register VSI2_BS Registers - Universe Control and Status Registers (UCSR) Table 4-1. Universe Register Map (Continued) Offset Register Name F30 VMEbus Slave Image 2 Bound Address Register VSI2_BD F34 VMEbus Slave Image 2 Translation Offset VSI2_TO F38 Universe Reserved 4 F3C VMEbus Slave Image 3 Control VSI3_CTL F40 VMEbus Slave Image 3 Base Address Register VSI3_BS F44 VMEbus Slave Image 3 Bound Address Register VSI3_BD F48 VMEbus Slave Image 3 Translation Offset VSI3_TO F4C - F6C Universe Reserved F70 VMEbus Register Access Image Control Register VRAI_CTL F74 VMEbus Register Access Image Base Address VRAI_BS F78 Universe Reserved F7C Universe Reserved F80 VMEbus CSR Control Register VCSR_CTL F84 VMEbus CSR Translation Offset VCSR_TO F88 VMEbus AM Code Error Log V_AMERR F8C VMEbus Address Error Log VAERR F90 - FEC Universe Reserved FF0 VME CR/CSR Reserved FF4 VMEbus CSR Bit Clear Register VCSR_CLR FF8 VMEbus CSR Bit Set Register VCSR_SET FFC VMEbus CSR Base Address Register VCSR_BS ! Caution Register space marked as ÒReservedÓ should not be overwritten. Unimplemented registers return a value of 0 on reads; writes complete normally. 4-13 Universe (VMEbus to PCI) Chip Universe Chip Problems after a PCI Reset Under the conditions described below, there are problems with the Universe chip after a PCI reset. 4 Problem Description The Universe chip is being enabled on the PCI bus after a PCI reset. The problem does not occur after a board reset or power up. The Universe is causing the "bye" command to hang the system. The Universe Master Enable and Memory Enable in the PCI_CSR (Configuration Space register) are enabled, even before the PCI_BS register has been initialized. The symptoms can be alleviated by modifying the PCI probe list such that the Universe PCI configuration is done first. The Configuration Space enables are not the only things enabled after a PCI reset. The LSI0 image may also not be disabled by a PCI reset, regardless of the enable bit's Power Up condition. If the image is active at the time the reset occurs, it will remain enabled through the reset. Additionally, the image is not staying at the same VME or PCI address range. MCG is not sure how many of the Power Up (P/U) Option bits actually get latched as the Universe manual indicates they should. At least the EN bit in the LSI0_CTL bit is not latched; in our board, its P/U state is disabled but is not honored. The software cannot completely correct this problem, but it can minimize it. Two methods are presented: Method 1: 1. Modify the PCI probe code to disable each PCI device prior to writing its configuration space BS registers. This will prevent the Universe from being active on the PCI bus while it has a base addr of 0. 2. Once the Universe has been assigned a valid PCI Base Address, enable register space access and disable the LSI0 slave image by clearing the EN bit of the LSI0_CTL register. 4-14 Universe Chip Problems after a PCI Reset Method 2: The port 92 reset code can be modiÞed to disable the LSI0 image prior to propagating the reset. This will cause the LSI0 image to come up disabled. We at MCG understand that both of these methods are awkward, because the PCI probe/reset code should not contain any devicespecific patches. It should only need to follow the probing conventions of the PCI specification. However, the only other option appears to be avoidance of the LSI0 image altogether. Tundra engineering describes the problem thus: "Following are the most recently discovered bugs which will be addressed in Universe 1.1. 1. LSIO image Description: After a PCI reset, the LSIO image is still enabled, but the base, bound, and translation offset changes value. Workaround: None." Motorola Firmware Engineering has implemented firmware workaround Method 1 in the PPCBug debugger release 3.1. Note The above notes describing this Universe chip PCI reset problem are for those customers who replace the MCG firmware with their own. Many of these customers replace Motorola's firmware, or overwrite the firmware settings for the Universe chip. These customers may run into this problem. Customers should not encounter any problems if they leave Motorola's PPCBug debugger intact. 4-15 4 Universe (VMEbus to PCI) Chip Examples Example 1: MVME2600 Series Board Exhibits Problem Use an MVME2600 series board to exhibit the problem. Conditions: 4 MVME260x running PPCOF2.0 Ir05 all the Universe code which initializes the Universe has been disabled (not the PCI code, the driver code) modiÞed probe list to d,c,e,f,10 env parameters set such that LSI0 image will be enabled 1. Manually call each Universe initialize word, to duplicate typical operation. With the LSI0 enabled, the registers are: CTL BS BD TO 80821000 1012000 21012000 3efee000 2. Execute a bye command. 3. Manually enable access to the Universe register set, and read the LSI0 registers: CTL BS BD TO 80820000 0 20000000 0 This means that the PCI reset changed the image as follows: from supervisor address modifier to user from PCI space base address 1012000 to 0 (size of 2000.0000 constant) from VME address range 4000.0000 thru 5fff.ffff to a new VMEbus range of 0 thru 1fff.ffff It is still enabled. 4-16 Universe Chip Problems after a PCI Reset Example 2: MVME3600 Series Board Acts Differently Repeat portions of the earlier example on an MVME3600 series board. This board had not previously been seen to hang upon PCI reset. This particular board had customized values for the LSI0 setup parameters. The Universe register init code is still disabled, and must be manually called. The PCI init code is enabled, so the Universe PCI memory space requirement defined by its Configuration Space register at offset 0x10 is being accommodated and enabled during PCI probing. PCI probe list d,c,e,f,10 1. After a P/U reset, before the init code has written the registers, the LSI0 register settings are: CTL 800000 BS 0 BD 0 TO 0 2. Run the init code and the LSI0 registers become: CTL BS BD TO 80821000 3000000 300a000 4d000000 3. After a bye, before the init code has run: CTL 80820000 BS 0 BD 0 TO 0 Therefore the PCI reset caused the following changes in the LSI0 image: from supervisor to user from PCI space base address 300.0000 to 0 from PCI space size of a000 to size of 0 from a VME base address of 5000.0000 to 0 This explains why it has never been a problem on this particular MVME360x. The fact that the PCI base and PCI bound registers are both 0 makes the effective size of the image 0 bytes. Therefore this "enabled" image will never utilize any PCI address space. 4-17 4 Universe (VMEbus to PCI) Chip 4. Now try modifying the LSI0 env parameters, to be the same as those on the MVME260x which failed: printenv vme3_lsi0_vmeaddr vme3_lsi0_size vme3_lsi0_phi 4 1073741824 536870912 77 1073741824 536870912 77 After a power-up, before the init code ran, the LSI0 values are: 800000 0 0 0 5. Do NOT run the init code, but press push-button RESET, and the values become: 830001 f0000000 f0000000 0 6. Run the vme3 init code, and the values are set to accommodate env parameters: 80821000 3000000 23000000 3d000000 7. Do a bye The values before the init code runs are: 80820000 0 20000000 0 This gets the same results with the MVME360x as with the MVME260x, and the difference seen earlier is related to the values of the LSI0 slave at the time the PCI reset occurred. 4-18 Universe Chip Problems after a PCI Reset Example 3: Universe Chip is Checked at Tundra An engineer at Tundra Semiconductor Corporation had run a simulation on the LSI0_CTL register, and could see that it was going to be enabled after a port 92 reset. Motorola engineers mentioned that the problem is primarily with the _BS, _BD, and _TO registers. He said he would run more simulations to look at the outcome on those registers. Motorola engineers explained what they had seen. The engineer at Tundra re-ran the simulation based on the information given him. He saw exactly what the Motorola engineers had seen, i.e., that the LSI0_BS, LSI0_BD, and LSI0_TO values change, as well as the LSI0_CTL fields for program, super, and vct. He checked to see if this is in fact what the Universe is supposed to do. The following are his results: Register -------LSI0_CTL LSI0_BS LSI0_BD LSIO_TO Before RST# ----------8082_5FFF FFFF_FFFF FFFF_FFFF FFFF_FFFF After RST# ----------8082_0001 F000_0000 F000_0000 0000_0000 Explanation: All the fields in the LSI0 registers which are "Power-up Options" cannot be reset by assertion of RST# (PCI reset). The following fields in the LSIO registers cannot be reset by a PCI reset: LSI0_CTL register: EN, VAS, LAS LSI0_BS register: Bits [31:28] LSI0_BD register: Bits [31:28] All the other fields in the LSI0 registers are reset to 0, which explains why the PGM and SUPER fields changed, the translation offset reset to 0, etc. 4-19 4 Universe (VMEbus to PCI) Chip 4 4-20 5Programming Details 5 Introduction This chapter contains details of several programming functions that are not tied to any specific ASIC chip. PCI Arbitration PCI arbitration is performed by the PCI-to-ISA Bridge (PIB) which supports six PCI external PCI masters. The PIB can also be a PCI master for ISA DMA functions. The arbitration assignments on the MVME2300 series are as follows: Table 5-1. PCI Arbitration Assignments PCI BUS REQUEST PCI Master(s) PIB (internal) PIB CPU Raven ASIC Request 0 PMC Slot 2 Request 1 PMC Slot 1 Request 2 PCIX Slot Request 3 Ethernet Request 4 Universe ASIC (VMEbus) Upon power-up, the PIB defaults to a Òround-robinÓ arbitration mode. The relative priority of each request/grant pair can be customized via the PCI Priority Control Register 1. Refer to the W83C553 Data Book for additional details. 5-1 Programming Details Interrupt Handling The interrupt architecture of the MVME2300 series SBC is shown in the following figure: INT 5 INT_ PIB (8529 Pair) Processor MCP_ RavenMPIC INT_ Processor SERR_& PERR_ PCI Interrupts ISA Interrupts MCP_ 11559.00 9609 Figure 5-1. MVME2300 Series Interrupt Architecture 5-2 Interrupt Handling RavenMPIC The Raven ASIC has a built-in interrupt controller that meets the Multi-Processor Interrupt Controller (MPIC) Specification. This MPIC supports up to two processors and 16 external interrupt sources. There are also six other interrupt sources inside the MPIC: Two cross-processor interrupts and four timer interrupts. All ISA interrupts go through the 8259 pair in the PIB. The output of the PIB then goes through the MPIC in the Raven. Refer to Chapter 2 on the Raven for details on the RavenMPIC. The following table shows the interrupt assignments for the RavenMPIC on the MVME2300 series: Table 5-2. RavenMPIC Interrupt Assignments MPIC IRQ Edge/ Level Polarity IRQ0 Level High PIB (8259) 1 IRQ1 Edge Low Falcon-ECC Error 2 IRQ2 Level Low PCI-Ethernet 4 IRQ3 N/A N/A Not used IRQ4 N/A N/A Not used IRQ5 Level Low PCI-VME INT 0 (Universe LINT0#) 3, 4 IRQ6 Level Low PCI-VME INT 1 (Universe LINT1#) 3 IRQ7 Level Low PCI-VME INT 2 (Universe LINT2#) 3 IRQ8 Level Low PCI-VME INT 3 (Universe LINT3#) 3 IRQ9 Level Low PCI-PMC1 INTA#, PMC2 INTB#, PCIX INTA# 4 IRQ10 Level Low PCI-PMC1 INTB#, PMC2 INTC#, PCIX INTB# IRQ11 Level Low PCI-PMC1 INTC#, PMC2 INTD#, PCIX INTC# IRQ12 Level Low PCI-PMC1 INTD#, PMC2 INTA#, PCIX INTD# IRQ13 Level Low LM/SIG Interrupt 0 Interrupt Source Notes 4 5-3 5 Programming Details Table 5-2. RavenMPIC Interrupt Assignments (Continued) MPIC IRQ Edge/ Level Polarity IRQ14 Level Low LM/SIG Interrupt 1 IRQ15 N/A N/A Not used Interrupt Source Notes 4 Notes: 5 1. Interrupt from the PCI/ISA Bridge. 2. Interrupt from the Falcon chipset for a single and/or double bit memory error. 3. The mapping of interrupt sources from the VMEbus and Universe internal interrupt sources is programmable via the Local Interrupt Map 0 Register and the Local Interrupt Map 1 Register in the Universe ASIC. 4. These interrupts also appear at the PIB for backward compatibility with older MVME1600 and PM603/4 modules. 8259 Interrupts There are 15 interrupt requests supported by the PIB. These 15 interrupts are ISA-type interrupts that are functionally equivalent to two 82C59 interrupt controllers. Except for IRQ0, IRQ1, IRQ2, IRQ8_, and IRQ13, each of the interrupt lines can be configured for either edge-sensitive mode or level-sensitive mode by programming the appropriate ELCR registers in the PIB. There is also support for four PCI interrupts, PIRQ3_-PIRQ0_. The PIB has four PIRQ Route Control Registers to allow each of the PCI interrupt lines to be routed to any of eleven ISA interrupt lines (IRQ0, IRQ1, IRQ2, IRQ8_, and IRQ13 are reserved for ISA system interrupts). Since PCI interrupts are defined as level-sensitive, software must program the selected IRQ(s) for level-sensitive mode. Note that more than one PCI interrupt can be routed to the same ISA IRQ line. The PIB can be programmed to handle the PCI interrupts if the RavenMPIC is either not present or not used. 5-4 Interrupt Handling The following figure shows the interrupt structure of the PIB. Timer1/Counter0 IRQ1 0 1 2 PIRQ0_ PIRQ Route Control Register IRQx IRQ3 IRQ4 3 4 Controller 1 (INT1) INTR 5 IRQ5 5 IRQ6 PIRQ1_ PIRQ2_ PIRQ Route Control Register IRQx PIRQ Route Control Register IRQx IRQ7 IRQ8 IRQ9 IRQ10 IRQ11 PIRQ3_ PIRQ Route Control Register IRQx IRQ12 6 7 0 1 2 3 4 Controller 2 (INT2) IRQ13 5 IRQ14 IRQ15 6 7 1897 9609 Figure 5-2. PIB Interrupt Handler Block Diagram 5-5 Programming Details The assignments of the PCI and ISA interrupts supported by the PIB are as follows: Table 5-3. PIB PCI/ISA Interrupt Assignments IRQ0 2 Interrupt Source Edge High Timer 1 / Counter 0 IRQ1 N/A N/A Not used 3-10 IRQ2 Edge High Cascade Interrupt from INT2 3 IRQ8_ Edge Low ABORT Switch Interrupt 4 IRQ9 N/A N/A Not used 5 IRQ10 PIRQ0_ Level Low PCI-Ethernet Interrupt 2,3,4 6 IRQ11 PIRQ1_ Level Low Universe Interrupt (LINT0#) 2,3,4 7 IRQ12 N/A N/A Not used 8 IRQ13 N/A N/A Not used 9 IRQ14 PIRQ2_ N/A N/A Not used 10 IRQ15 PIRQ3_ Level Low PMC/PCIX Interrupt 11 IRQ3 N/A N/A Not used 12 IRQ4 Edge High COM1 (16550) 13 IRQ5 Level High LM/SIG Interrupt 0/1 14 IRQ6 N/A N/A Not used 15 IRQ7 N/A N/A Not used 5-6 INT1 Edge/ Level Notes 1 PCI IRQ Polarity 5 ISA IRQ Controller PRI INT2 INT1 1 2,3,4 4 ISA DMA Channels Notes: 1. Internally generated by the PIB. 2. After a reset, all ISA IRQ interrupt lines default to edgesensitive mode. 3. These PCI interrupts are routed to the ISA interrupts by programming the PRIQ Route Control Registers in the PIB. The PCI to ISA interrupt assignments in this table are suggested. Each ISA IRQ to which a PCI interrupt is routed to MUST be programmed for level-sensitive mode. Use this routing for PCI interrupts only when the RavenMPIC is either not present or not used. 4. The RavenMPIC, when present, should be used for these interrupts. ISA DMA Channels The MVME2300 series does not implement any ISA DMA channels. 5-7 5 Programming Details Exceptions Sources of Reset There are nine potential sources of reset on the MVME2300 series. They are: 1. Power-On Reset 5 2. RESET Switch 3. Watchdog Timer Reset via the MK48T59 Timekeeper device 4. Port 92 Register via the PIB 5. I/O Reset via the Clock Divisor Register in the PIB 6. VMEbus SYSRESET# signal 7. Local software reset via the Universe ASIC (MISC_CTL Register) 8. VME System Reset Via the Universe ASIC (MISC_CTL Register) 9. VME CSR reset via the Universe ASIC (VCSR_SET Register) 5-8 Exceptions The following table shows which devices are affected by various reset sources: Table 5-4. Reset Sources and Devices Affected Falcon Chipset PCI Devices VMEbus (System Controller) Raven ASIC ✓ ✓ ✓ ✓ ✓ ✓ Reset Switch ✓ ✓ ✓ ✓ ✓ ✓ Watchdog (MK48T59) ✓ ✓ ✓ ✓ ✓ ✓ VME System Reset (SYSRESET# Signal) ✓ ✓ ✓ ✓ ✓ ✓ VME System Software Reset (MISC_CTL Register) ✓ ✓ ✓ ✓ ✓ ✓ VME Local Software Reset (MISC_CTL Register) ✓ ✓ ✓ ✓ ✓ VME CSR Reset (VCSR_SET Register) ✓ ✓ ✓ ✓ ✓ Hot Reset (Port 92 Register) ✓ ✓ ✓ ✓ ✓ ✓ ✓ PCI/ISA Reset (Clock Divisor Register) ISA Devices Processor (s) Power-On Device Affected Soft Reset Software can assert the SRESET# pin of any processor by programming the Processor Init Register of the RavenMPIC appropriately. Universe Chip Problems after a PCI Reset Under certain conditions, there can be problems with the Universe chip after a PCI reset. Refer to Chapter 4 for the details. 5-9 5 Programming Details Error Notification and Handling The Raven and Falcon chipset can detect certain hardware errors and can be programmed to report these errors via the RavenMPIC interrupts or Machine Check Interrupt. Note that the TEA* signal is not used at all by the MVME2300 series. The following table summarizes how the hardware errors are handled by the MVME2300 series: Table 5-5. Error Notification and Handling 5 Cause Action Single-bit ECC Store: Write corrected data to memory Load: Present corrected data to the MPC master Generate interrupt via RavenMPIC if so enabled Double-bit ECC Store: Terminate the bus cycle normally without writing to DRAM Load: Present un-corrected data to the MPC master Generate interrupt via RavenMPIC if so enabled Generate Machine Check Interrupt to the Processor(s) if so enabled MPC Bus Time Out Store: Discard write data and terminate bus cycle normally Load: Present undeÞned data to the MPC master Generate interrupt via RavenMPIC if so enabled Generate Machine Check Interrupt to the Processor(s) if so enabled PCI Target Abort Store: Discard write data and terminate bus cycle normally Load: Return all 1Õs and terminate bus cycle normally Generate interrupt via RavenMPIC if so enabled Generate Machine Check Interrupt to the Processor(s) if so enabled PCI Master Abort Store: Discard write data and terminate bus cycle normally Load: Return all 1Õs and terminate bus cycle normally Generate interrupt via RavenMPIC if so enabled Generate Machine Check Interrupt to the Processor(s) if so enabled PERR# Detected Generate interrupt via RavenMPIC if so enabled Generate Machine Check Interrupt to the Processor(s) if so enabled SERR# Detected Generate interrupt via RavenMPIC if so enabled Generate Machine Check Interrupt to the Processor(s) if so enabled 5-10 Endian Issues Endian Issues The MVME2300 series supports both little endian software and bigendian software. Because the PowerPC processor is inherently big endian, PCI is inherently little-endian, and the VMEbus is big endian, things do get rather confusing. The following figures shows how the MVME2300 series handles the endian issue in big-endian and little-endian modes: 5 5-11 Programming Details Big-Endian PROGRAM Falcons 5 DRAM 60X System Bus Raven N-way Byte Swap Big Endian Little Endian PCI Local Bus Universe Little Endian N-way Byte Swap Big Endian VMEbus 1898 9609 Figure 5-3. Big-Endian Mode 5-12 Endian Issues Little-Endian PROGRAM Little Endian Big Endian EA Modification (XOR) 5 Falcons DRAM 60X System Bus Raven Big Endian EA Modification Little Endian PCI Local Bus Universe Little Endian N-way Byte Swap Big Endian VMEbus 1899 9609 Figure 5-4. Little-Endian Mode 5-13 Programming Details Processor/Memory Domain The MPC604 processor can operate in both big-endian and littleendian mode. However, it always treats the external processor/memory bus as big-endian by performing address rearrangement and reordering when running in little-endian mode. The MPC registers inside Raven, the registers inside the Falcon chipset, the DRAM, the ROM/FLASH and the system registers always appear as big-endian. 5 Raven’s Involvement Since PCI is little-endian, the Raven performs byte swapping in both directions (from PCI to memory and from the processor to PCI) to maintain address invariance when it is programmed to operate in big-endian mode with the processor and the memory sub-system. In little-endian mode, it reverse-rearranges the address for PCIbound accesses and rearranges the address for memory-bound accesses (from PCI). In this case, no byte swapping is done. PCI Domain The PCI bus is inherently little-endian and all devices connected directly to PCI will operate in little-endian mode, regardless of the mode of operation in the processorÕs domain. PCI-SCSI The MVME2300 series does not implement SCSI. PCI-Ethernet Ethernet is byte stream oriented with the byte having the lowest address in memory being the first one to be transferred regardless of the endian mode. Since address invariance is maintained by the Raven in both little-endian and big-endian mode, there should be 5-14 Endian Issues no endian issues for the Ethernet data. Big-endian software must still however be aware of the byte-swapping effect when accessing the registers of the PCI-Ethernet device. PCI-Graphics The effects of byte swapping on big-endian software must be considered by big-endian software. Note There are no graphics on the MVME2300 series boards. Universe’s Involvement Since PCI is little-endian and the VMEbus is big-endian, the Universe performs byte swapping in both directions (from PCI to VMEbus and from VMEbus to PCI) to maintain address invariance, regardless of the mode of operation in the processorÕs domain. VMEbus Domain The VMEbus is inherently big-endian and all devices connected directly to VMEbus are expected to operate in big-endian mode, regardless of the mode of operation in the processorÕs domain. In big-endian mode, byte-swapping is performed by the Universe and then by the Raven. The result has the desirable effect by being transparent to the big-endian software. In little-endian mode, however, software must be aware of the byteswapping effect from the Universe and the address reverserearranging effect of the Raven. 5-15 5 Programming Details ROM/Flash Initialization There are two methods used to inject code into the Flash in Bank A: (1) In-circuit programming and (2) Loading it from the ROM/Flash Bank B. For the second method, the hardware must direct the Falcon chipset to map the FFF00000-FFFFFFFF address range to Bank B following a hard reset. Bank A then can be programmed by code from Bank B. Software can determine the mapping of the FFF00000-FFFFFFFF address range by examining the rom_b_rv bit in the FalconÕs Rom B Base/Size Register. 5 Table 5-6. ROM/FLASH Bank Default rom_b_rv 5-16 Default Mapping for FFF00000-FFFFFFFF 0 ROM/FLASH Bank A 1 ROM/FLASH Bank B AOrdering Related Documentation A Motorola Computer Group Documents The publications listed below are on related products, and some may be referenced in this document. If not shipped with this product, manuals may be purchased by contacting your local Motorola sales office. Table A-1. Motorola Computer Group Documents Document Title Publication Number MVME2300-Series VME Processor Module Installation and Use V2300A/IH MVME2300-Series VME Processor Module ProgrammerÕs Reference Guide (this manual) V2300A/PG PPCBug Firmware Package UserÕs Manual (Parts 1 and 2) PPCBUGA1/UM PPCBUGA2/UM PPCBug Diagnostics Manual PPCDIAA/UM PMCspan PMC Adapter Carrier Module Installation and Use PMCSPANA/IH Note Although not shown in the above list, each Motorola Computer Group manual publication number is suffixed with characters that represent the revision level of the document, such as Ò/xx2Ó (the second revision of a manual); a supplement bears the same number as the manual but has a suffix such as Ò/xx2A1Ó (the first supplement to the second revision of the manual). A-1 A Ordering Related Documentation Manufacturers’ Documents For additional information, refer to the following table for manufacturersÕ data sheets or userÕs manuals. As an additional help, a source for the listed document is also provided. Please note that in many cases, the information is preliminary and the revision levels of the documents are subject to change without notice. Table A-2. Manufacturers’ Documents Document Title and Source Publication Number PowerPC 603TM RISC Microprocessor Technical Summary Literature Distribution Center for Motorola Telephone: 1-800- 441-2447 FAX: (602) 994-6430 or (303) 675-2150 E-mail: ldcformotorola@hibbertco.com MPC603/D PowerPC 603TM RISC Microprocessor UserÕs Manual Literature Distribution Center for Motorola Telephone: 1-800- 441-2447 FAX: (602) 994-6430 or (303) 675-2150 E-mail: ldcformotorola@hibbertco.com OR IBM Microelectronics Mail Stop A25/862-1 PowerPC Marketing 1000 River Street Essex Junction, Vermont 05452-4299 Telephone: 1-800-PowerPC Telephone: 1-800-769-3772 FAX: 1-800-POWERfax FAX: 1-800-769-3732 MPC603UM/AD A-2 MPR603UMU-01 ManufacturersÕ Documents Table A-2. Manufacturers’ Documents (Continued) Document Title and Source Publication Number PowerPCTM Microprocessor Family: The Programming Environments Literature Distribution Center for Motorola Telephone: 1-800- 441-2447 FAX: (602) 994-6430 or (303) 675-2150 E-mail: ldcformotorola@hibbertco.com OR IBM Microelectronics Mail Stop A25/862-1 PowerPC Marketing 1000 River Street Essex Junction, Vermont 05452-4299 Telephone: 1-800-PowerPC Telephone: 1-800-769-3772 FAX: 1-800-POWERfax FAX: 1-800-769-3732 MPCFPE/AD PC16550 UART National Semiconductor Corporation Customer Support Center (or nearest Sales OfÞce) 2900 Semiconductor Drive P.O. Box 58090 Santa Clara, California 95052-8090 Telephone: 1-800-272-9959 PC16550DV 82378 System I/O (SIO) PCI-to-ISA Bridge Controller Intel Corporation Literature Sales P.O. Box 7641 Mt. Prospect, Illinois 60056-7641 Telephone: 1-800-548-4725 290473-003 DECchip 21140 PCI Fast Ethernet LAN Controller Hardware Reference Manual Digital Equipment Corporation Maynard, Massachusetts DECchip Information Line Telephone (United States and Canada): 1-800-332-2717 TTY (United States only): 1-800-332-2515 Telephone (outside North America): +1-508-568-6868 EC-QC0CA-TE MPRPPCFPE-01 A-3 A A Ordering Related Documentation Table A-2. Manufacturers’ Documents (Continued) Document Title and Source Publication Number W83C553 Enhanced System I/O Controller with PCI Arbiter (PIB) Winbond Electronics Corporation Winbond Systems Laboratory 2730 Orchard Parkway San Jose, CA 95134 Telephone: (408) 943-6666 FAX:(408) 943-6668 W83C553 M48T59 CMOS 8K x 8 TIMEKEEPERTM SRAM Data Sheet SGS-Thomson Microelectronics Group Marketing Headquarters (or nearest Sales OfÞce) 1000 East Bell Road Phoenix, Arizona 85022 Telephone: (602) 867-6100 M48T59 Universe User Manual Tundra Semiconductor Corporation 603 March Road Kanata, ON K2K 2M5, Canada Telephone: 1-800-267-7231 OR 695 High Glen Drive San Jose, California 95133, USA Telephone: (408) 258-3600 FAX: (408) 258-3659 Universe (Part Number 9000000.MD303.01 A-4 Related Specifications Related Specifications For additional information, refer to the following table for related specifications. As an additional help, a source for the listed document is also provided. Please note that in many cases, the information is preliminary and the revision levels of the documents are subject to change without notice. Table A-3. Related Specifications Document Title and Source VME64 SpeciÞcation VITA (VMEbus International Trade Association) 7825 E. Gelding Drive, Suite 104 Scottsdale, Arizona 85260-3415 Telephone: (602) 951-8866 FAX: (602) 951-0720 Publication Number ANSI/VITA 1-1994 NOTE: An earlier version of this speciÞcation is available as: Versatile Backplane Bus: VMEbus Institute of Electrical and Electronics Engineers, Inc. Publication and Sales Department 345 East 47th Street New York, New York 10017-21633 Telephone: 1-800-678-4333 OR Microprocessor system bus for 1 to 4 byte data Bureau Central de la Commission Electrotechnique Internationale 3, rue de VarembŽ Geneva, Switzerland IEEE - Common Mezzanine Card SpeciÞcation (CMC) Institute of Electrical and Electronics Engineers, Inc. Publication and Sales Department 345 East 47th Street New York, New York 10017-21633 Telephone: 1-800-678-4333 ANSI/IEEE Standard 1014-1987 IEC 821 BUS P1386 Draft 2.0 A-5 A A Ordering Related Documentation Table A-3. Related Specifications (Continued) Document Title and Source Publication Number IEEE - PCI Mezzanine Card SpeciÞcation (PMC) Institute of Electrical and Electronics Engineers, Inc. Publication and Sales Department 345 East 47th Street New York, New York 10017-21633 Telephone: 1-800-678-4333 P1386.1 Draft 2.0 Bidirectional Parallel Port Interface SpeciÞcation Institute of Electrical and Electronics Engineers, Inc. Publication and Sales Department 345 East 47th Street New York, New York 10017-21633 Telephone: 1-800-678-4333 IEEE Standard 1284 Peripheral Component Interconnect (PCI) Local Bus SpeciÞcation, Revision 2.0 PCI Special Interest Group P.O. Box 14070 Portland, Oregon 97214-4070 Marketing/Help Line Telephone: (503) 696-6111 Document/SpeciÞcation Ordering Telephone: 1-800-433-5177or (503) 797-4207 FAX: (503) 234-6762 PCI Local Bus SpeciÞcation PowerPC Reference Platform (PRP) SpeciÞcation, Third Edition, Version 1.0, Volumes I and II International Business Machines Corporation Power Personal Systems Architecture 11400 Burnet Rd. Austin, TX 78758-3493 Document/SpeciÞcation Ordering Telephone: 1-800-PowerPC Telephone: 1-800-769-3772 Telephone: 708-296-9332 MPR-PPC-RPU-02 A-6 Related Specifications Table A-3. Related Specifications (Continued) Document Title and Source Publication Number PowerPC Microprocessor Common Hardware Reference Platform A System Architecture (CHRP), Version 1.0 Literature Distribution Center for Motorola Telephone: 1-800- 441-2447 FAX: (602) 994-6430 or (303) 675-2150 E-mail: ldcformotorola@hibbertco.com OR AFDA, Apple Computer, Inc. P. O. Box 319 Buffalo, NY 14207 Telephone: 1-800-282-2732 FAX: (716) 871-6511 OR IBM 1580 Route 52, Bldg. 504 Hopewell Junction, NY 12533-7531 Telephone: 1-800-PowerPC OR Morgan Kaufmann PUblishers, Inc. 340 Pine street, Sixth Floor San Francisco, CA 94104-3205, USA Telephone: (413) 392-2665 FAX: (415) 982-2665I Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange (EIA-232-D) Electronic Industries Association Engineering Department 2001 Eye Street, N.W. Washington, D.C. 20006 ANSI/EIA-232-D Standard A-7 A A Ordering Related Documentation A-8 Glossary Abbreviations, Acronyms, and Terms to Know This glossary defines some of the abbreviations, acronyms, and key terms used in this document. 10Base-5 An Ethernet implementation in which the physical medium is a doubly shielded, 50-ohm coaxial cable capable of carrying data at 10 Mbps for a length of 500 meters (also referred to as thicknet). Also known as thick Ethernet. 10Base-2 An Ethernet implementation in which the physical medium is a single-shielded, 50-ohm RG58A/U coaxial cable capable of carrying data at 10 Mbps for a length of 185 meters (also referred to as AUI or thinnet). Also known as thin Ethernet. 10Base-T An Ethernet implementation in which the physical medium is an unshielded twisted pair (UTP) of wires capable of carrying data at 10 Mbps for a maximum distance of 185 meters. Also known as twisted-pair Ethernet. 100Base-TX An Ethernet implementation in which the physical medium is an unshielded twisted pair (UTP) of wires capable of carrying data at 100 Mbps for a maximum distance of 100 meters. Also known as fast Ethernet. ACIA Asynchronous Communications Interface Adapter AIX Advanced Interactive eXecutive (IBM version of UNIX) architecture The main overall design in which each individual hardware component of the computer system is interrelated. The most common uses of this term are 8-bit, 16-bit, or 32-bit architectural design systems. ASCII American Standard Code for Information Interchange. This is a 7-bit code used to encode alphanumeric information. In the IBM-compatible world, this is expanded to 8-bits to encode a total of 256 alphanumeric and control characters. GL-1 Glossary G L O S S A R Y ASIC Application-Specific Integrated Circuit AUI Attachment Unit Interface BBRAM Battery Backed-up Random Access Memory bi-endian Having big-endian and little-endian byte ordering capability. big-endian A byte-ordering method in memory where the address n of a word corresponds to the most significant byte. In an addressed memory word, the bytes are ordered (left to right) 0, 1, 2, 3, with 0 being the most significant byte. BIOS Basic Input/Output System. This is the built-in program that controls the basic functions of communications between the processor and the I/O (peripherals) devices. Also referred to as ROM BIOS. BitBLT Bit Boundary BLock Transfer. A type of graphics drawing routine that moves a rectangle of data from one area of display memory to another. The data specifically need not have any particular alignment. BLT BLock Transfer board The term more commonly used to refer to a PCB (printed circuit board). Basically, a flat board made of nonconducting material, such as plastic or fiberglass, on which chips and other electronic components are mounted. Also referred to as a circuit board or card. bpi bits per inch bps bits per second bus The pathway used to communicate between the CPU, memory, and various input/output devices, including floppy and hard disk drives. Available in various widths (8-, 16-, and 32-bit), with accompanying increases in speed. cache A high-speed memory that resides logically between a central processing unit (CPU) and the main memory. This temporary memory holds the data and/or GL-2 Glossary instructions that the CPU is most likely to use over and over again and avoids accessing the slower hard or floppy disk drive. CAS Column Address Strobe. The clock signal used in dynamic RAMs to control the input of column addresses. CD Compact Disc. A hard, round, flat portable storage unit that stores information digitally. CD-ROM Compact Disk Read-Only Memory CFM Cubic Feet per Minute CHRP See Common Hardware Reference Platform (CHRP). CHRP-compliant See Common Hardware Reference Platform (CHRP). CHRP Spec See Common Hardware Reference Platform (CHRP). CISC Complex-Instruction-Set Computer. A computer whose processor is designed to sequentially run variable-length instructions, many of which require several clock cycles, that perform complex tasks and thereby simplify programming. CODEC COder/DECoder Color Difference (CD) The signals of (R-Y) and (B-Y) without the luminance (-Y) signal. The Green signals (G-Y) can be extracted by these two signals. Common Hardware Reference Platform (CHRP) A specification published by the Apple, IBM, and Motorola which defines the devices, interfaces, and data formats that make up a CHRP-compliant system using a PowerPC processor. Composite Video Signal (CVS/CVBS) Signal that carries video picture information for color, brightness and synchronizing signals for both horizontal and vertical scans. Sometimes referred to as ÒBaseband VideoÓ. cpi characters per inch cpl characters per line GL-3 G L O S S A R Y Glossary G L O S S A R Y CPU Central Processing Unit. The master computer unit in a system. DCE Data Circuit-terminating Equipment. DLL Dynamic Link Library. A set of functions that are linked to the referencing program at the time it is loaded into memory. DMA Direct Memory Access. A method by which a device may read or write to memory directly without processor intervention. DMA is typically used by block I/O devices. DOS Disk Operating System dpi dots per inch DRAM Dynamic Random Access Memory. A memory technology that is characterized by extreme high density, low power, and low cost. It must be more or less continuously refreshed to avoid loss of data. DTE Data Terminal Equipment. ECC Error Correction Code ECP Extended Capability Port EEPROM Electrically Erasable Programmable Read-Only Memory. A memory storage device that can be written repeatedly with no special erasure fixture. EEPROMs do not lose their contents when they are powered down. EISA (bus) Extended Industry Standard Architecture (bus) (IBM). An architectural system using a 32-bit bus that allows data to be transferred between peripherals in 32-bit chunks instead of 16-bit or 8-bit that most systems use. With the transfer of larger bits of information, the machine is able to perform much faster than the standard ISA bus system. EPP Enhanced Parallel Port EPROM Erasable Programmable Read-Only Memory. A memory storage device that can be written once (per erasure cycle) and read many times. ESCC Enhanced Serial Communication Controller ESD Electro-Static Discharge/Damage GL-4 Glossary Ethernet A local area network standard that uses radio frequency signals carried by coaxial cables. Falcon The DRAM controller chip developed by Motorola for the MVME2600 and MVME3600 series of boards. It is intended to be used in sets of two to provide the necessary interface between the Power PC60x bus and the 144-bit ECC DRAM (system memory array) and/or ROM/Flash. fast Ethernet See 100Base-TX. FDC Floppy Disk Controller FDDI Fiber Distributed Data Interface. A network based on the use of optical-fiber cable to transmit data in non-return-tozero, invert-on-1s (NRZI) format at speeds up to 100 Mbps. FIFO First-In, First-Out. A memory that can temporarily hold data so that the sending device can send data faster than the receiving device can accept it. The sending and receiving devices typically operate asynchronously. firmware The program or specific software instructions that have been more or less permanently burned into an electronic component, such as a ROM (read-only memory) or an EPROM (erasable programmable read-only memory). frame One complete television picture frame consists of 525 horizontal lines with the NTSC system. One frame consists of two Fields. graphics controller On EGA and VGA, a section of circuitry that can provide hardware assist for graphics drawing algorithms by performing logical functions on data written to display memory. HAL Hardware Abstraction Layer. The lower level hardware interface module of the Windows NT operating system. It contains platform specific functionality. hardware A computing system is normally spoken of as having two major components: hardware and software. Hardware is the term used to describe any of the physical embodiments GL-5 G L O S S A R Y Glossary of a computer system, with emphasis on the electronic circuits (the computer) and electromechanical devices (peripherals) that make up the system. G L O S S A R Y HCT Hardware Conformance Test. A test used to ensure that both hardware and software conform to the Windows NT interface. I/O Input/Output IBC PCI/ISA Bridge Controller IDC Insulation Displacement Connector IDE Intelligent Device Expansion IEEE Institute of Electrical and Electronics Engineers interlaced A graphics system in which the even scanlines are refreshed in one vertical cycle (field), and the odd scanlines are refreshed in another vertical cycle. The advantage is that the video bandwidth is roughly half that required for a noninterlaced system of the same resolution. This results in less costly hardware. It also may make it possible to display a resolution that would otherwise be impossible on given hardware. The disadvantage of an interlaced system is flicker, especially when displaying objects that are only a few scanlines high. IQ Signals Similar to the color difference signals (R-Y), (B-Y) but using different vector axis for encoding or decoding. Used by some USA TV and IC manufacturers for color decoding. ISA (bus) Industry Standard Architecture (bus). The de facto standard system bus for IBM-compatible computers until the introduction of VESA and PCI. Used in the reference platform specification. (IBM) ISASIO ISA Super Input/Output device ISDN Integrated Services Digital Network. A standard for digitally transmitting video, audio, and electronic data over public phone networks. LAN Local Area Network LED Light-Emitting Diode GL-6 Glossary LFM Linear Feet per Minute little-endian A byte-ordering method in memory where the address n of a word corresponds to the least significant byte. In an addressed memory word, the bytes are ordered (left to right) 3, 2, 1, 0, with 3 being the most significant byte. MBLT Multiplexed BLock Transfer MCA (bus) Micro Channel Architecture MCG Motorola Computer Group MFM Modified Frequency Modulation MIDI Musical Instrument Digital Interface. The standard format for recording, storing, and playing digital music. MPC Multimedia Personal Computer MPC105 The PowerPC-to-PCI bus bridge chip developed by Motorola for the Ultra 603/Ultra 604 system board. It provides the necessary interface between the MPC603/ MPC604 processor and the Boot ROM (secondary cache), the DRAM (system memory array), and the PCI bus. MPC601 MotorolaÕs component designation for the PowerPC 601 microprocessor. MPC603 MotorolaÕs component designation for the PowerPC 603 microprocessor. MPC604 MotorolaÕs component designation for the PowerPC 604 microprocessor. MPIC Multi-Processor Interrupt Controller MPU MicroProcessing Unit MTBF Mean Time Between Failures. A statistical term relating to reliability as expressed in power on hours (poh). It was originally developed for the military and can be calculated several different ways, yielding substantially different results. The specification is based on a large number of samplings in one place, running continuously, and the rate at which failure occurs. MTBF is not representative of how GL-7 G L O S S A R Y Glossary long a device, or any individual device is likely to last, nor is it a warranty, but rather, of the relative reliability of a family of products. G L O S S A R Y multisession The ability to record additional information, such as digitized photographs, on a CD-ROM after a prior recording session has ended. non-interlaced A video system in which every pixel is refreshed during every vertical scan. A non-interlaced system is normally more expensive than an interlaced system of the same resolution, and is usually said to have a more pleasing appearance. nonvolatile memory A memory in which the data content is maintained whether the power supply is connected or not. NTSC National Television Standards Committee (USA) NVRAM Non-Volatile Random Access Memory OEM Original Equipment Manufacturer OMPAC Over - Molded Pad Array Carrier OS Operating System. The software that manages the computer resources, accesses files, and dispatches programs. OTP One-Time Programmable palette The range of colors available on the screen, not necessarily simultaneously. For VGA, this is either 16 or 256 simultaneous colors out of 262,144. parallel port A connector that can exchange data with an I/O device eight bits at a time. This port is more commonly used for the connection of a printer to a system. PCI (local bus) Peripheral Component Interconnect (local bus) (Intel). A high-performance, 32-bit internal interconnect bus used for data transfer to peripheral controller components, such as those for audio, video, and graphics. GL-8 Glossary PCMCIA (bus) PCR PHB PDS physical address PIB Personal Computer Memory Card International Association (bus). A standard external interconnect bus which allows peripherals adhering to the standard to be plugged in and used without further system modification. PCI Configuration Register PCI Host Bridge Processor Direct Slot A binary address that refers to the actual location of information stored in secondary storage. PCI-to-ISA Bridge pixel An acronym for picture element, and is also called a pel. A pixel is the smallest addressable graphic on a display screen. In RGB systems, the color of a pixel is defined by some Red intensity, some Green intensity, and some Blue intensity. PLL Phase-Locked Loop PMC PCI Mezzanine Card POWER Performance Optimized With Enhanced RISC architecture (IBM) PowerPC™ The trademark used to describe the Performance Optimized With Enhanced RISC microprocessor architecture for Personal Computers developed by the IBM Corporation. PowerPC is superscalar, which means it can handle more than one instruction per clock cycle. Instructions can be sent simultaneously to three types of independent execution units (branch units, fixed-point units, and floating-point units), where they can execute concurrently, but finish out of order. PowerPC is used by Motorola, Inc. under license from IBM. PowerPC 601™ The first implementation of the PowerPC family of microprocessors. This CPU incorporates a memory management unit with a 256-entry buffer and a 32KB unified (instruction and data) cache. It provides a 64-bit data bus and a separate 32-bit address bus. PowerPC 601 is used by Motorola, Inc. under license from IBM. GL-9 G L O S S A R Y Glossary PowerPC 603™ The second implementation of the PowerPC family of microprocessors. This CPU incorporates a memory management unit with a 64-entry buffer and an 8KB (instruction and data) cache. It provides a selectable 32-bit or 64-bit data bus and a separate 32-bit address bus. PowerPC 603 is used by Motorola, Inc. under license from IBM. PowerPC 604™ The third implementation of the PowerPC family of microprocessors. PowerPC 604 is used by Motorola, Inc. under license from IBM. PowerPC Reference Platform (PRP) A specification published by the IBM Power Personal Systems Division which defines the devices, interfaces, and data formats that make up a PRP-compliant system using a PowerPC processor. PowerStack™ RISC PC (System Board) A PowerPC-based computer board platform developed by the Motorola Computer Group. It supports MicrosoftÕs Windows NT and IBMÕs AIX operating systems. G L O S S A R Y PRP See PowerPC Reference Platform (PRP). PRP-compliant See PowerPC Reference Platform (PRP). PRP Spec See PowerPC Reference Platform (PRP). PROM Programmable Read-Only Memory PS/2 Personal System/2 (IBM) QFP Quad Flat Package RAM Random-Access Memory. The temporary memory that a computer uses to hold the instructions and data currently being worked with. All data in RAM is lost when the computer is turned off. RAS Row Address Strobe. A clock signal used in dynamic RAMs to control the input of the row addresses. GL-10 Glossary Raven The PowerPC-to-PCI local bus bridge chip developed by Motorola for the MVME2600 and MVME3600 series of boards. It provides the necessary interface between the PowerPC 60x bus and the PCI bus, and acts as interrupt controller. Reduced-Instruction-Set Computer (RISC) A computer in which the processorÕs instruction set is limited to constant-length instructions that can usually be executed in a single clock cycle. RFI Radio Frequency Interference RGB The three separate color signals: Red, Green, and Blue. Used with color displays, an interface that uses these three color signals as opposed to an interface used with a monochrome display that requires only a single signal. Both digital and analog RGB interfaces exist. RISC See Reduced Instruction Set Computer (RISC). ROM Read-Only Memory RTC Real-Time Clock SBC Single Board Computer SCSI Small Computer Systems Interface. An industry-standard high-speed interface primarily used for secondary storage. SCSI-1 provides up to 5 Mbps data transfer. SCSI-2 (Fast/Wide) An improvement over plain SCSI; and includes command queuing. Fast SCSI provides 10 Mbps data transfer on an 8bit bus. Wide SCSI provides up to 40 Mbps data transfer on a 16- or 32-bit bus. serial port A connector that can exchange data with an I/O device one bit at a time. It may operate synchronously or asynchronously, and may include start bits, stop bits, and/ or parity. SIM Serial Interface Module SIMM Single Inline Memory Module. A small circuit board with RAM chips (normally surface mounted) on it designed to fit into a standard slot. GL-11 G L O S S A R Y Glossary G L O S S A R Y SIO Super I/O controller SMP Symmetric MultiProcessing. A computer architecture in which tasks are distributed among two or more local processors. SMT Surface Mount Technology. A method of mounting devices (such as integrated circuits, resistors, capacitors, and others) on a printed circuit board, characterized by not requiring mounting holes. Rather, the devices are soldered to pads on the printed circuit board. Surface-mount devices are typically smaller than the equivalent through-hole devices. software A computing system is normally spoken of as having two major components: hardware and software. Software is the term used to describe any single program or group of programs, languages, operating procedures, and documentation of a computer system. Software is the real interface between the user and the computer. SRAM Static Random Access Memory SSBLT Source Synchronous BLock Transfer standard(s) A set of detailed technical guidelines used as a means of establishing uniformity in an area of hardware or software development. SVGA Super Video Graphics Array (IBM). An improved VGA monitor standard that provides at least 256 simultaneous colors and a screen resolution of 800 x 600 pixels. Teletext One way broadcast of digital information. The digital information is injected in the broadcast TV signal, VBI, or full field, The transmission medium could be satellite, microwave, cable, etc. The display medium is a regular TV receiver. thick Ethernet See 10Base-5. thin Ethernet See 10Base-2. twisted-pair Ethernet See 10Base-T. UART Universal Asynchronous Receiver/Transmitter GL-12 Glossary Universe ASIC developed by Tundra in consultation with Motorola, that provides the complete interface between the PCI bus and the 64-bit VMEbus. UV UltraViolet UVGA Ultra Video Graphics Array. An improved VGA monitor standard that provides at least 256 simultaneous colors and a screen resolution of 1024 x 768 pixels. Vertical Blanking Interval (VBI) The time it takes the beam to fly back to the top of the screen in order to retrace the opposite field (odd or even). VBI is in the order of 20 TV lines. Teletext information is transmitted over 4 of these lines (lines 14-17). VESA (bus) Video Electronics Standards Association (or VL bus). An internal interconnect standard for transferring video information to a computer display system. VGA Video Graphics Array (IBM). The third and most common monitor standard used today. It provides up to 256 simultaneous colors and a screen resolution of 640 x 480 pixels. virtual address A binary address issued by a CPU that indirectly refers to the location of information in primary memory, such as main memory. When data is copied from disk to main memory, the physical address is changed to the virtual address. VL bus See VESA Local bus (VL bus). VMEchip2 MCG second generation VMEbus interface ASIC (Motorola) VME2PCI MCG ASIC that interfaces between the PCI bus and the VMEchip2 device. volatile memory A memory in which the data content is lost when the power supply is disconnected. VRAM Video (Dynamic) Random Access Memory. Memory chips with two ports, one used for random accesses and the other capable of serial accesses. Once the serial port has been initialized (with a transfer cycle), it can operate independently of the random port. This frees the random GL-13 G L O S S A R Y Glossary port for CPU accesses. The result of adding the serial port is a significantly reduced amount of interference from screen refresh. VRAMs cost more per bit than DRAMs. Windows NT™ The trademark representing Windows New Technology, a computer operating system developed by the Microsoft Corporation. XGA EXtended Graphics Array. An improved IBM VGA monitor standard that provides at least 256 simultaneous colors and a screen resolution of 1024 x 768 pixels. Y Signal Luminance. This determines the brightness of each spot (pixel) on a CRT screen either color or B/W systems, but not the color. G L O S S A R Y GL-14 Index Numerics B 16550 access registers 1-34 16550 UART 1-34 32-Bit Counter 3-53 8259 compatibility 2-67 8259 interrupts 5-4 8259 mode 2-96 Base Module Feature Register 1-38 Base Module Status Register (BMSR) 1-39 big to little endian data swap 2-26 big-endian 1-2 big-endian mode 5-12 binary number 1-1 bit descriptions 3-32 bit ordering convention 3-1 block diagram 2-3 block diagram description 2-70 block diagrams 3-2 Block_A/B/C/D Configurations 3-36 blocks A and/or B present, blocks C and D not present 3-20 blocks A and/or B present, blocks C and/or D present 3-21 bus interface (60x) 3-12 byte ordering 1-2 byte, definition 1-2 A A0-A31 3-5 abbreviations, acronyms, and terms to know GL-1 access timing (DRAM) 3-8, 3-9, 3-10 access timing (ROM) 3-11 address modification for little endian transfers 2-27 address pipelining 3-6 address transfers 3-12 address/data stepping 2-21 addressing 2-15, 2-19 Application-Specific Integrated Circuit (ASIC) 1-1 arbitration 2-20 arbitration latency 2-20 architectural diagram for the Universe 4-3 architectural notes 2-97 architectural overview 2-4, 4-2 architecture 2-65 ARTRY_ 3-12 assertion, definition 1-2 asterisk (*) 1-2 C cache coherency 3-12 cache coherency restrictions 3-13 cache support 2-17, 2-21 CAS* 3-20 CHRP memory map example 1-10 CLK FREQUENCY 3-37 CLK Frequency Register 3-37 clock frequency 3-37 Column Address 3-47 combining, merging, and collapsing 2-19 command types 2-15, 2-18 IN-15 Index CONFIG_ADDRESS Register 2-60 CONFIG_DATA Register 2-63 configuration registers 2-11 control bit descriptions 3-32 control bit, definition 1-2 conventions, manual 1-1 CPU Configuration Register 1-37 CPU Control Register 1-33 CSR accesses 3-23 CSR architecture 3-24 CSR base address 3-24 CSR reads and writes 3-24 CSRÕs readability 2-66 current task priority level 2-96 cycle types 3-13 D I N D E X data path diagram 3-64 data path for reads from the Falcon internal CSRs 3-24 data path for writes to the Falcon internal CSRs 3-25 data path mapping 3-65 data paths 3-63 data transfers 3-12 decimal number 1-1 default PCI memory map 1-14 default processor memory map 1-9 defaults 3-22 derc 3-40 device selection 2-16 Disable Error Correction control bit 3-40 DMA controller 4-7 documentation, related A-1 double word, definition 1-2 DRAM addressing 3-60 DRAM arbitration 3-22 DRAM Attributes Register 3-35 DRAM Base Register 3-37 DRAM connection diagram 3-5 DRAM enable bits 3-35 IN-16 DRAM size control bits 3-36 DRAM speed control bits 3-34 DRAM speeds 3-7 DRAM tester 3-15 DRAM Tester Control Registers 3-53 DRAM tester control registers 3-53 dynamically changing I/O interrupt configuration 2-95 E ECC 3-13 ECC codes 3-61 ECC Control Register 3-38 elog 3-43 embt 3-43 emulated Z8536 access registers 1-46 emulated Z8536 CIO registers and port pins 1-46 emulated Z8536 registers 1-46 endian conversion 2-25 endian issues 5-11 End-of-Interrupt Registers 2-92 EOI Register 2-96 Error Address Register 3-45 error correction 3-13 Error Correction Codes 3-61 error detection 3-13 error handling 2-28 Error Logger Register 3-42 error logging 3-15 error notification and handling 5-10 error reporting 3-14 ERROR_ADDRESS 3-45 ERROR_SYNDROME 3-44 esbt 3-43 escb 3-43 esen 3-43 example 1 4-16 example 2 4-17 example 3 4-19 examples 4-16 exceptions 5-8 exclusive access 2-16, 2-20 external interrupt service 2-93 External Register Set 3-56 external register set 3-23 external register set reads and writes 3-24 External Source Destination Registers 2-88 External Source Vector/Priority Registers 2-87 F Falcon ECC Memory Controller chip set 3-1 Falcon internal data paths (simplified) 3-4 Falcon pair used with DRAM in a system 3-3 Falcon-controlled system registers 1-27 false, definition 1-3 fast back-to-back transactions 2-16, 2-20 fast refresh control bit 3-34 Feature Reporting Register 2-79 features 2-1, 3-1 Flash (see ROM/Flash) 3-16 four-beat reads/writes 3-6 functional description 1-7, 2-4, 3-6, 4-2 G General Control Register 3-33 General Control-Status/Feature Registers 2-34 general information 4-1 General Purpose Registers 2-51 general-purpose software-readable header 1-35 general-purpose software-readable header (J17) 1-35 generating PCI configuration cycles 2-23 generating PCI cycles 2-21 generating PCI interrupt acknowledge cycles 2-25 generating PCI memory and I/O cycles 2-21 generating PCI special cycles 2-25 Global Configuration Register 2-80 glossary GL-1 H half-word, definition 1-2 headers J17 1-35 hexadecimal character 1-1 I I/O Base Register 2-56 In-Service Register (ISR) 2-72 Interprocessor Interrupt Dispatch Registers 2-90 interprocessor interrupts 2-95 interprocessor interrupts (IPI) 2-67 Interrupt Acknowledge Register 2-96 Interrupt Acknowledge Registers 2-92 interrupt delivery modes 2-69 Interrupt Enable control bits 3-41 interrupt handling 5-2 Interrupt Pending Register (IPR) 2-71 Interrupt Request Register (IRR) 2-72 interrupt router 2-72 interrupt selector (IS) 2-71 interrupt source priority 2-66 Interrupt Task Priority Registers 2-91 interrupter 4-6 interrupter and interrupt handler 4-6 introduction 2-1, 2-65, 3-1, 4-1, 5-1 IPI Vector/Priority Registers 2-82 ISA DMA channels 1-47, 5-7 ISA local resource bus 1-34 J jumpers, software readable 1-35 L L2 cache support 3-13 IN-17 I N D E X Index L2CLM_ 3-13 Large Scale Integration (LSI) 1-1 latency 2-16 little-endian mode 5-13 LM/SIG Control Register 1-41 LM/SIG Status Register 1-42 Location Monitor Lower Base Address Register 1-44 Location Monitor Upper Base Address Register 1-43 M I N D E X manual terminology 1-2 manufacturersÕ documents A-2 master initiated termination 2-20 mcken 3-41 Memory Base Register 2-57 Memory Configuration Register (MEMCR) 1-30 memory map for 4-byte reads to the CSR 3-28 memory map for 4-byte writes to the internal register set and test SRAM 3-28 memory map for byte reads to the CSRs 3-26 memory map for byte writes to the internal register set and test SRAM 3-27 memory maps 1-8 mien 3-41 MK48T59/559 access registers 1-36 module configuration and status registers 1-36 Motorola Computer Group documents A-1 MPC address mapping 2-4 MPC arbiter 2-10 MPC Arbiter Control Register 2-37 MPC bus address space 2-11 MPC bus interface 2-4 IN-18 MPC bus timer 2-10 MPC Error Address Register 2-42 MPC Error Attribute Register - MERAT 2-43 MPC Error Enable Register 2-38 MPC Error Status Register 2-40 MPC master 2-8 MPC registers 2-31 MPC slave 2-6 MPC Slave Address (0,1 and 2) Registers 2-47 MPC Slave Address (3) Register 2-48 MPC Slave Offset/Attribute (0,1 and 2) Registers 2-49 MPC Slave Offset/Attribute (3) Registers 2-50 MPC slave response command types 2-7 MPC to PCI address decoding 2-5 MPC to PCI address translation 2-6 MPC transfer types 2-9 MPC write posting 2-8 MPIC registers 2-74 MVME2300 series 1-1 MVME2300 series system block diagram 1-6 MVME230x features 1-3 MVME2600 series interrupt architecture 5-2 N negation, definition 1-2 nesting of interrupt events 2-66 NVRAM/RTC & Watchdog Timer Registers 1-36 O OE* 3-20 operation 2-95 overall DRAM connections 3-5 overview 1-3, 2-1, 3-1 P parity 2-17, 2-21 parity checking 3-57 PCI 2-17 PCI address mapping 2-11 PCI arbitration 5-1 PCI arbitration assignments 5-1 PCI bus interface 4-5 PCI CHRP memory map 1-14 PCI Command/ Status Registers 2-53 PCI configuration access 1-13 PCI domain 5-14 PCI interface 2-10 PCI Interrupt Acknowledge Register 2-45 PCI master 2-17 PCI master command codes 2-19 PCI memory maps 1-14 PCI PREP memory map 1-18 PCI registers 2-51 PCI slave 2-14 PCI Slave Address (0,1,2 and 3) Registers 2-58 PCI Slave Attribute/ Offset (0,1,2 and 3) Registers 2-59 PCI slave response command types 2-15 PCI spread I/O address translation 2-22 PCI to MPC address decoding 2-12 PCI to MPC address translation 2-13 PCI write posting 2-17 PCI-Ethernet 5-14 PCI-graphics 5-15 PCI-SCSI 5-14 performance 3-6 PIB interrupt handler block diagram 5-5 PIB PCI/ISA interrupt assignments 5-6 PowerPC 60x Address to DRAM Address Mappings 3-60 PowerPC 60x address to ROM/Flash address mapping with 2, 32-bit or 1, 64-bit 3-19 PowerPC 60x bus to DRAM access timing using 50ns hyper devices 3-10 PowerPC 60x bus to DRAM access timing using 60ns page devices 3-9 PowerPC 60x bus to ROM/Flash access timing using 32/64-bit devices 3-11 PowerPC 60x bus to ROM/Flash access timing using 8-bit devices 3-11 PowerPC 60x to ROM/Flash address mapping when ROM/Flash is 16 bits wide (8 bits per Falcon) 3-18 PowerPC 60x to ROM/Flash address mapping with 2, 8-bit devices 3-18 PowerPC bus to DRAM access timing 3-8 PowerPC data to DRAM data mapping 3-65 PowerPC to DRAM data correspondence 3-64 Power-Up Reset status bit 3-38 Power-Up Reset Status Registers 3-55 PR_STAT1 3-55 PR_STAT2 3-55 PREP memory map example 1-12 Prescaler Adjust Register 2-37 problem description 4-14 processor CHRP memory map 1-10 Processor Init Register 2-81 processor memory maps 1-8 processor PREP memory map 1-12 processor/memory domain 5-14 processorÕs current task priority 2-66 product overview - features 4-1 program visible registers 2-71 programming details 5-1 programming model 1-8, 3-24 programming notes 2-93 programming ROM/Flash 3-57 IN-19 I N D E X Index R I N D E X RAM A BASE 3-37 RAM B BASE 3-37 RAM C BASE 3-37 RAM D BASE 3-37 RAS* 3-20 Raven block diagram 2-3 Raven interrupt controller (RavenMPIC) features 2-65 Raven interrupt controller implementation 2-65 Raven MPC register map 2-31 Raven MPC register values for CHRP memory map 1-11 Raven MPC register values for PREP memory map 1-13 Raven PCI configuration register map 2-52 Raven PCI Host Bridge & Multi-Processor Interrupt Controller chip 2-1 Raven PCI I/O register map 2-52 Raven PCI register values for CHRP memory map 1-16 Raven PCI register values for PREP memory map 1-19 Raven registers 2-27 RavenÕs involvement 5-14 Raven-detected errors 2-68 Raven-Detected Errors Destination Register 2-90 Raven-Detected Errors Vector/Priority Register 2-89 RavenMPIC 5-3 RavenMPIC block diagram 2-70 RavenMPIC control registers 2-14 RavenMPIC interrupt assignments 5-3 RavenMPIC register map 2-75 RavenMPIC registers 2-74 Read/Write Checkbits control bit 3-38 Read/Write to ROM/Flash 3-50 readable jumpers 1-35 IN-20 Refresh Counter Test control bits 3-46 refresh/scrub 3-20 Refresh/Scrub Address Register 3-46 register bit descriptions 3-32 register summary 3-29, 3-30 registers 2-31 registers - Universe Control and Status Registers (UCSR) 4-8 related documentation, ordering A-1 related specifications A-5 reset sources and devices affected 5-9 reset state 2-94 Revision ID 3-33 Revision ID Register 2-33 Revision ID/ Class Code Registers 2-55 Revision ID/General Control Register 3-33 ROM 5-16 ROM Block A Size Encodings 3-48 ROM Block B Size Encoding 3-52 ROM/Flash 3-16 ROM/Flash A Base Address control bits 3-47 ROM/Flash A Base/Size Register 3-47 ROM/Flash A size encoding 3-48 ROM/Flash A Width control bit 3-48 ROM/Flash B Base Address control bits 3-50 ROM/Flash B Base/Size Register 3-50 ROM/Flash B Width control bit 3-51 ROM/FLASH bank default 5-16 ROM/Flash initialization 5-16 ROM/Flash interface 3-16 ROM/Flash speed 3-11 rom_a_64 3-48 ROM_A_BASE 3-47 rom_a_en 3-49 rom_a_rv 3-49 rom_a_rv and rom_b_rv encoding 3-49 rom_a_siz 3-48 rom_a_we 3-49 rom_b_64 3-51 ROM_B_BASE 3-50 rom_b_en 3-52 rom_b_rv 3-52 rom_b_siz 3-52 rom_b_we 3-52 Row Address 3-46 rtest encodings 3-46 rtest0-rtest2 3-46 rwcb 3-38 S SBE_COUNT 3-44 scb0,scb1 3-45 scien 3-38, 3-41 scof 3-44 scrub counter 3-45 Scrub Write Enable control bit 3-46 Scrub/Refresh Register 3-45 Semaphore Register 1 1-44 Semaphore Register 2 1-45 Seven-Segment Display Register 1-40 sien 3-41 Single Bit Error Counter 3-44 single word, definition 1-2 single-beat reads/writes 3-7 single-beat writes 3-7 single-bit error 3-14 single-bit errors ordered by syndrome code 3-62 sizing addresses 3-59 sizing DRAM 3-58 small-endian 1-2 soft reset 5-9 software considerations 3-57 software readable jumpers 1-35 sources of reset 5-8 specifications related A-5 spurious vector generation 2-67 Spurious Vector Register 2-83 SRAM base address 3-24 SRAM reads and writes 3-24 status bit descriptions 3-32 status bit, definition 1-2 swen 3-46 SWREN 3-21 syndrome codes ordered by bit in error 3-61 System Configuration Register (SYSCR) 1-28 System External Cache Control Register (SXCCR) 1-32 system register summary 1-27 T target initiated termination 2-16 Test SRAM 3-54 tester control registers 3-53 tester description 3-15 tien 3-41 Timer Basecount Registers 2-84 Timer Current Count Registers 2-84 Timer Destination Registers 2-86 Timer Frequency Register 2-83 Timer Vector/Priority Registers 2-85 timers 2-68 timing (DRAM access) 3-8, 3-9, 3-10 timing (ROM/Flash access) 3-11 transaction ordering 2-29 triple- (or greater) bit error 3-14 true, definition 1-2 trun 3-53 tsse 3-53 U UCSR access mechanisms 4-8 Universe (VMEbus to PCI) chip 4-1 Universe as PCI master 4-6 Universe as PCI slave 4-5 Universe as VMEbus master 4-4 Universe as VMEbus slave 4-4 Universe chip problems after a PCI reset 4-14, 5-9 IN-21 I N D E X Index Universe PCI Register values for CHRP memory map 1-16 Universe PCI register values for PREP memory map 1-20 Universe PCI register values for VMEbus slave map example 1-25 Universe register map 4-9 UniverseÕs involvement 5-15 upper/lower chip status bit 3-35 V Vendor ID/ Device ID Registers 2-53 Vendor ID/Device ID Registers 2-33 Vendor Identification Register 2-81 Vendor/Device Register 3-33 VME Geographical Address Register (VGAR) 1-45 VME registers 1-40, 1-41 VMEbus domain 5-15 VMEbus interface 4-4 VMEbus interrupt handling 4-7 VMEbus mapping 1-21 VMEbus master map 1-21 VMEbus master mapping 1-22 VMEbus slave map 1-23 VMEbus slave map example 1-26 VMEbus slave mapping 1-24 W W83C553 PIB registers 1-34 WE* 3-20 when MPC devices are big-endian 2-25 when MPC devices are little endian 2-26 word, definition 1-2 writing to the control registers 3-57 I N D E X Z Z8536 CIO port pins 1-46 Z8536 CIO port pins assignment 1-46 IN-22
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.6 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19 Format : application/pdf Creator : sikard Title : Book.B Create Date : 1998:04:13 15:04:45Z Creator Tool : FrameMaker 5.1.1 Modify Date : 2016:05:26 15:13:54-07:00 Metadata Date : 2016:05:26 15:13:54-07:00 Producer : Acrobat Distiller 3.0 for Power Macintosh Document ID : uuid:5a0e0003-0ae6-7f44-98c2-dfecd5a7a7db Instance ID : uuid:3201847b-27a5-fd4c-ae14-99521960965f Page Layout : SinglePage Page Count : 292 Author : sikardEXIF Metadata provided by EXIF.tools