advertisement
▼
Scroll to page 2
of 1490
MSC8156 Reference Manual Six Core Digital Signal Processor MSC8156RM Rev 2, June 2011 How to Reach Us: Home Page: www.freescale.com Web Support: http://www.freescale.com/support USA/Europe or Locations Not Listed: Freescale Semiconductor, Inc. Technical Information Center, EL516 2100 East Elliot Road Tempe, Arizona 85284 +1-800-521-6274 or +1-480-768-2130 www.freescale.com/support Europe, Middle East, and Africa: Freescale Halbleiter Deutschland GmbH Technical Information Center Schatzbogen 7 81829 Muenchen, Germany +44 1296 380 456 (English) +46 8 52200080 (English) +49 89 92103 559 (German) +33 1 69 35 48 48 (French) www.freescale.com/support Japan: Freescale Semiconductor Japan Ltd. Headquarters ARCO Tower 15F 1-8-1, Shimo-Meguro, Meguro-ku Tokyo 153-0064 Japan 0120 191014 or +81 3 5437 9125 [email protected] Asia/Pacific: Freescale Semiconductor China Ltd. Exchange Building 23F No. 118 Jianguo Road Chaoyang District Beijing 100022 China +86 010 5879 8000 [email protected] For Literature Requests Only: Freescale Semiconductor Literature Distribution Center +1-800 441-2447 or +1-303-675-2140 Fax: +1-303-675-2150 LDCForFreescaleSemiconductor @hibbertgroup.com Information in this document is provided solely to enable system and software implementers to use Freescale Semiconductor products. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits or integrated circuits based on the information in this document. Freescale Semiconductor reserves the right to make changes without further notice to any products herein. Freescale Semiconductor makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Freescale Semiconductor assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. “Typical” parameters which may be provided in Freescale Semiconductor data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. All operating parameters, including “Typicals” must be validated for each customer application by customer’s technical experts. Freescale Semiconductor does not convey any license under its patent rights nor the rights of others. Freescale Semiconductor products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the Freescale Semiconductor product could create a situation where personal injury or death may occur. Should Buyer purchase or use Freescale Semiconductor products for any such unintended or unauthorized application, Buyer shall indemnify and hold Freescale Semiconductor and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that Freescale Semiconductor was negligent regarding the design or manufacture of the part. Freescale, the Freescale logo, and CodeWarrior are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. QUICC Engine is a trademark of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © 2009–2011 Freescale Semiconductor, Inc. MSC8156RM Rev. 2 6/2011 Overview 1 SC3850 Core Overview 2 External Signals 3 Chip-Level Arbitration and Switching System (CLASS) 4 Reset 5 Boot Program 6 Clocks 7 General Configuration Registers 8 Memory Map 9 MSC8154 SC3850 DSP Subsystem 10 Internal Memory Subsystem 11 DDR-SDRAM Controller 12 Interrupt Handling 13 Direct Memory Access (DMA) Controller 14 High Speed Serial Interface (HSSI) 15 Serial RapidIO Controller 16 PCI Express Controller 17 QUICC Engine Subsystem 18 TDM Interface 19 UART 20 Timers 21 GPIO 22 Hardware Semaphores 23 I2C 24 Debugging, Profiling, and Performance Monitoring 25 Multi Accelerator Platform Engine, Baseband (MAPLE-B) 26 1 Overview 2 SC3850 Core Overview 3 External Signals 4 Chip-Level Arbitration and Switching System (CLASS) 5 Reset 6 Boot Program 7 Clocks 8 General Configuration Registers 9 Memory Map 10 MSC8154 SC3850 DSP Subsystem 11 Internal Memory Subsystem 12 DDR-SDRAM Controller 13 Interrupt Handling 14 Direct Memory Access (DMA) Controller 15 High Speed Serial Interface (HSSI) 16 Serial RapidIO Controller 17 PCI Express Controller 18 QUICC Engine Subsystem 19 TDM Interface 20 UART 21 Timers 22 GPIO 23 Hardware Semaphores 24 I2C 25 Debugging, Profiling, and Performance Monitoring 26 Multi Accelerator Platform Engine, Baseband (MAPLE-B) Contents About This Book Before Using This Manual—Important Note . . . . . . . . . . . . . . . . . . . . . . . . . . . xlii Audience and Helpful Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlii Notational Conventions and Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliii Conventions for Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv Other MSC8156 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvii Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvii Document Change History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlviii 1 Overview 1.1 1.2 1.3 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.11.1 1.11.1.1 1.11.1.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14 StarCore SC3850 DSP Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14 Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15 StarCore SC3850 DSP Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16 L1 Instruction Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17 L1 Data Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17 L2 Unified Cache/M2 Memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 Memory Management Unit (MMU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 Debug and Profiling Unit (DPU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 Extended Programmable Interrupt Controller . . . . . . . . . . . . . . . . . . . . . . . . 1-19 Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19 MAPLE-B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19 Chip-Level Arbitration and Switching System (CLASS) . . . . . . . . . . . . . . . . . 1-20 M3 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20 Clocks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21 DDR Controllers (DDRC1 and DDRC2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21 DMA Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-22 High Speed System Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-22 Serial RapidIO Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23 Serial RapidIO and Host Interactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-24 RapidIO Messaging Unit (RMU) Operation . . . . . . . . . . . . . . . . . . . . . . . . 1-25 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor v Contents 1.11.2 1.11.3 1.11.4 1.11.5 1.11.6 1.12 1.12.1 1.12.2 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.23.1 1.23.2 1.24 1.24.1 1.24.2 1.24.3 1.24.4 1.24.5 1.24.6 1.24.7 PCI Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OCN-DMA Controllers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OCN Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SRIO Port Controller Modules (SRIOn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SerDes PHY Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . QUICC Engine Subsystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ethernet Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serial Peripheral Interface (SPI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TDM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Global Interrupt Controller (GIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UART. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hardware Semaphores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Virtual Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIOs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Boot Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JTAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Developer Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use Case 1: 3G-LTE Basic System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use Case 2: 3G-LTE System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use Case 3: 3G-LTE System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use Case 4: TD-SCDMA System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use Case 5: WiMAX Basic System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use Case 6: WiMAX System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use Case 7: WCDMA Basic System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 SC3850 Core Overview 2.1 2.2 Core Architecture Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 StarCore SC3850 Core Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 3 External Signals 3.1 3.2 3.3 3.4 3.5 1-26 1-27 1-27 1-27 1-27 1-28 1-29 1-30 1-30 1-31 1-31 1-31 1-31 1-32 1-32 1-32 1-32 1-33 1-34 1-34 1-35 1-35 1-35 1-36 1-36 1-37 1-37 1-38 1-38 Power Signals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Clock Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 Reset and Configuration Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 Memory Controller 1 and 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 SerDes Multiplexed Signals for the Serial RapidIO, PCI Express, and SGMII Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 MSC8156 Reference Manual, Rev. 2 vi Freescale Semiconductor Contents 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 TDM and Ethernet Signals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serial Peripheral Interface (SPI) Signal Summary . . . . . . . . . . . . . . . . . . . . . . GPIO/Maskable Interrupt Signal Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UART Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . External DMA Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Interrupt Signals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OCE Event and JTAG Test Access Port Signals . . . . . . . . . . . . . . . . . . . . . . . . 3-16 3-20 3-20 3-25 3-26 3-26 3-27 3-28 3-29 4 Chip-Level Arbitration and Switching System (CLASS) 4.1 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.1.1 4.2.2.1.2 4.2.2.1.3 4.2.2.1.4 4.2.2.2 4.2.3 4.2.4 4.3 4.4 4.5 4.5.1 4.5.2 4.5.3 4.5.4 4.6 4.6.1 4.6.2 4.7 4.8 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 CLASS Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 Expander Module and Transaction Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 Multiplexer and Arbiter Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 CLASS Arbiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 Weighted Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Late Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Priority Masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Auto Priority Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 CLASS Multiplexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Normalizer Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 CLASS Control Interface (CCI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 MSC8156 Initiator CLASS Access Priorities . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 CLASS Error Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8 CLASS Debug Profiling Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9 Profiling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9 Watch Point Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10 Event Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 Debug and Profiling Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 CLASS Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 Soft Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 Hard Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15 CLASS Priority Mapping Registers (C0PMRx) . . . . . . . . . . . . . . . . . . . . . . . 4-16 CLASS Priority Auto Upgrade Value Registers (C0PAVRx) . . . . . . . . . . . . 4-18 CLASS Priority Auto Upgrade Control Registers (C0PACRx) . . . . . . . . . . . 4-19 CLASS Error Address Registers (C0EARx) . . . . . . . . . . . . . . . . . . . . . . . . . 4-20 CLASS Error Extended Address Registers (C0EEARx) . . . . . . . . . . . . . . . . 4-21 CLASS Initiator Profiling Configuration Registers (C0IPCRx) . . . . . . . . . . 4-23 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor vii Contents 4.8.7 4.8.8 4.8.9 4.8.10 4.8.11 4.8.12 4.8.13 4.8.14 4.8.15 4.8.16 4.8.17 4.8.18 4.8.19 4.8.20 4.8.21 4.8.22 4.8.23 4.8.24 4.8.25 4.8.26 CLASS Initiator Watch Point Control Registers (C0IWPCRx) . . . . . . . . . . . CLASS Arbitration Weight Registers (C0AWRx) . . . . . . . . . . . . . . . . . . . . . CLASS0 Start Address Decoder x (C0SADx) . . . . . . . . . . . . . . . . . . . . . . . . CLASS End Address Decoder x (C0EADx). . . . . . . . . . . . . . . . . . . . . . . . . . CLASS Attributes Decoder x (C0ATDx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLASS IRQ Status Register (C0ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLASS IRQ Enable Register (C0IER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLASS Target Profiling Configuration Register (C0TPCR) . . . . . . . . . . . . . CLASS Profiling Control Register (C0PCR) . . . . . . . . . . . . . . . . . . . . . . . . . CLASS Watch Point Control Registers (C0WPCR) . . . . . . . . . . . . . . . . . . . CLASS Watch Point Access Configuration Register (C0WPACR) . . . . . . . CLASS Watch Point Extended Access Configuration Register (C0WPEACR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLASS Watch Point Address Mask Registers (C0WPAMR) . . . . . . . . . . . . CLASS Profiling Time-Out Registers (C0PTOR) . . . . . . . . . . . . . . . . . . . . . CLASS Target Watch Point Control Registers (C0TWPCR) . . . . . . . . . . . . CLASS Profiling IRQ Status Register (C0PISR) . . . . . . . . . . . . . . . . . . . . . . CLASS Profiling IRQ Enable Register (C0PIER) . . . . . . . . . . . . . . . . . . . . . CLASS Profiling Reference Counter Register (C0PRCR) . . . . . . . . . . . . . . . CLASS Profiling General Counter Registers (C0PGCRx) . . . . . . . . . . . . . . . CLASS Arbitration Control Register (C0ACR) . . . . . . . . . . . . . . . . . . . . . . . 4-25 4-26 4-27 4-28 4-29 4-30 4-31 4-32 4-33 4-34 4-36 4-37 4-38 4-39 4-40 4-41 4-42 4-42 4-43 4-44 5 Reset 5.1 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.5.1 5.2.5.1.1 5.2.5.1.2 5.2.5.1.3 5.2.5.1.4 Reset Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 Reset Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Reset Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Power-On Reset Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 Detailed Power-On Reset Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4 HRESET Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 SRESET Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 Reset Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Reset Configuration Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Reset Configuration Words Source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Reset Configuration Input Signal Selection and Reset Sequence Duration . . . 5-9 Reset Configuration Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Loading The Reset Configuration Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Loading From an I2C EEPROM (RCW_SRC[0–2] = 001 or 010) . . . . . . . 5-10 Using The Boot Sequencer For Reset Configuration . . . . . . . . . . . . . . . . . . 5-10 EEPROM Slave Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 EEPROM Data Format In Reset Configuration Mode. . . . . . . . . . . . . . . . . 5-10 Single Device Loading From I2C EEPROM . . . . . . . . . . . . . . . . . . . . . . . . 5-11 MSC8156 Reference Manual, Rev. 2 viii Freescale Semiconductor Contents 5.2.5.1.5 5.2.5.2 5.2.5.3 5.2.5.3.1 5.2.5.3.2 5.2.5.4 5.2.5.4.1 5.2.5.4.2 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 Loading Multiple Devices From a Single I2C EEPROM. . . . . . . . . . . . . . . Loading Multiplexed RCW from External Pins (RCW_SRC[0–2] = 000) . Loading Reduced RCW From External Pins (RCW_SRC[0–2] = 011) . . . Reduced External Reset Configuration Word Low Field Values . . . . . . . . Reduced External Reset Configuration Word High Field Values . . . . . . . . Default Reset Configuration Words (RCW_SRC[0–2] = 100 or 101). . . . . Hard Coded Reset Configuration Word Low Field Values . . . . . . . . . . . . . Hard Coded Reset Configuration Word High Field Values . . . . . . . . . . . . . Reset Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset Configuration Word Low Register (RCWLR) . . . . . . . . . . . . . . . . . . . Reset Configuration Word High Register (RCWHR). . . . . . . . . . . . . . . . . . . Reset Status Register (RSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset Protection Register (RPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset Control Register (RCR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset Control Enable Register (RCER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Boot Program 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.2.1 6.2.2.2 6.2.2.3 6.2.3 6.2.3.1 6.2.3.2 6.2.3.3 6.2.4 6.2.4.1 6.2.4.2 6.2.5 6.3 6.4 6.5 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Private Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 Shared Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 Patch Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Multi Device Support for the I2C Bus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Example Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 Boot Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9 I2C EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13 DHCP Client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 TFTP Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 Boot File Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 Simple Ethernet Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19 Simple Ethernet Boot Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19 Simple Ethernet Boot Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19 Boot File Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20 Serial RapidIO Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21 Serial RapidIO Without I2C Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21 Serial RapidIO Interface with I2C Support . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 Jump to User Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 System after Boot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23 Boot Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23 5-11 5-13 5-14 5-14 5-15 5-15 5-15 5-16 5-17 5-17 5-19 5-22 5-24 5-25 5-26 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor ix Contents 7 Clocks 7.1 7.2 7.2.1 7.2.2 Clock Generation Components and Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . System Clock Control Register (SCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clock General Purpose Register 0 (CLK_GPR0) . . . . . . . . . . . . . . . . . . . . . . . 8 General Configuration Registers 8.1 8.2 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.2.7 8.2.8 8.2.9 8.2.10 8.2.11 8.2.12 8.2.13 8.2.14 8.2.15 8.2.16 8.2.17 8.2.18 8.2.19 8.2.20 8.2.21 8.2.22 8.2.23 8.2.24 8.2.25 8.2.26 8.2.27 8.2.28 8.2.29 8.2.30 8.2.31 8.2.32 Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 Detailed Register Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 General Configuration Register 1 (GCR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 General Configuration Register 2 (GCR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3 General Status Register 1 (GSR1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 High Speed Serial Interface Status Register (HSSI_SR) . . . . . . . . . . . . . . . . . 8-7 DDR General Control Register (DDR_GCR) . . . . . . . . . . . . . . . . . . . . . . . . . 8-10 High Speed Serial Interface Control Register 1 (HSSI_CR1) . . . . . . . . . . . . 8-12 High Speed Serial Interface Control Register 2 (HSSI_CR2) . . . . . . . . . . . . 8-15 QUICC Engine Control Register (QECR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16 GPIO Pull-Up Enable Register (GPUER). . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-17 GPIO Input Enable Register (GIER). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18 System Part and Revision ID Register (SPRIDR) . . . . . . . . . . . . . . . . . . . . . 8-19 General Control Register 4 (GCR4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-20 General Control Register 5 (GCR5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-22 General Status Register 2 (GSR2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-24 Core Subsystem Slave Port Priority Control Register (TSPPCR) . . . . . . . . . 8-26 QUICC Engine First External Request Multiplex Register (CPCE1R) . . . . . 8-27 QUICC Engine Second External Request Multiplex Register (CPCE2R) . . . 8-28 QUICC Engine Third External Request Multiplex Register (CPCE3R) . . . . 8-29 QUICC Engine Fourth External Request Multiplex Register (CPCE4R). . . . 8-30 General Control Register 10 (GCR10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-31 General Interrupt Register 1 (GIR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-32 General Interrupt Enable Register 1 (GIER1_x). . . . . . . . . . . . . . . . . . . . . . . 8-35 General Interrupt Register 3 (GIR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-37 General Interrupt Enable Register 3 for Cores 0–3 (GIER3_x) . . . . . . . . . . . 8-39 General Interrupt Register 5 (GIR5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-40 General Interrupt Enable Register 5 (GIER5_x). . . . . . . . . . . . . . . . . . . . . . . 8-42 General Control Register 11 (GCR11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-43 General Control Register 12 (GCR12) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-44 DMA Request0 Control Register (GCR_DREQ0) . . . . . . . . . . . . . . . . . . . . . 8-46 DMA Request1 Control Register (GCR_DREQ1) . . . . . . . . . . . . . . . . . . . . . 8-50 DMA Done Control Register (GCR_DDONE) . . . . . . . . . . . . . . . . . . . . . . . 8-54 DDR1 General Configuration Register (DDR1_GCR). . . . . . . . . . . . . . . . . . 8-57 7-2 7-4 7-4 7-5 MSC8156 Reference Manual, Rev. 2 x Freescale Semiconductor Contents 8.2.33 8.2.34 DDR2 General Configuration Register (DDR2_GCR). . . . . . . . . . . . . . . . . . 8-58 Core Subsystem Slave Port General Configuration Register (CORE_SLV_GCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-59 9 Memory Map 9.1 9.2 9.3 9.4 9.5 9.5.1 9.5.2 9.6 Shared Memory Address Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shared SC3850 DSP Core Subsystem M2/L2 Memories . . . . . . . . . . . . . . . . . . SC3850 DSP Core Subsystem Internal Address Space . . . . . . . . . . . . . . . . . . . . CCSR Address Space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Initiators Views of the System Address Space . . . . . . . . . . . . . . . . . . . . . . . . . . SC3850 (Data) View of the System Address Space . . . . . . . . . . . . . . . . . . . . . Peripherals View of the System Address Space . . . . . . . . . . . . . . . . . . . . . . . . Detailed System Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 MSC8156 SC3850 DSP Subsystem 10.1 10.2 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.4.3 10.4.4 10.4.5 10.4.6 10.5 10.6 10.7 10.8 10.9 10.10 10.10.1 10.10.2 10.11 10.11.1 10.11.2 10.11.2.1 10.11.2.2 SC3850 DSP Core Subsystem Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 SC3850 Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3 Instruction Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4 Instruction Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4 Instruction Fetch Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5 Data Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5 Data Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5 Data Fetch Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-6 Write-Back Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7 Write-Through Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7 Data Control Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7 Write Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-8 Memory Management Unit (MMU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-8 L2 Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-9 On-Chip Emulator and Debug and Profiling Unit . . . . . . . . . . . . . . . . . . . . . 10-10 Extended Programmable Interrupt Controller . . . . . . . . . . . . . . . . . . . . . . . . . 10-11 Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-11 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-11 QBus to MBus Interface Bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-11 MBus to DMA Bridge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-11 Entering and Exiting Wait and Stop States Safely. . . . . . . . . . . . . . . . . . . . . . 10-12 Wait State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-12 Stop State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-12 Procedure for Entering DSP Subsystem Stop State Safely . . . . . . . . . . . . 10-12 Procedure for Exiting the Stop State Safely . . . . . . . . . . . . . . . . . . . . . . . . 10-13 9-1 9-2 9-3 9-4 9-5 9-5 9-6 9-6 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xi Contents 11 Internal Memory Subsystem 11.1 11.2 11.3 11.4 11.5 11.6 Memory Management Unit (MMU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 Instruction Channel (ICache and IFU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3 Data Channel and Write Queue (DCache) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5 L2 Unified Cache/M2 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-8 M3 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-12 Internal Boot ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-12 12 DDR SDRAM Memory Controller 12.1 12.2 12.2.1 12.2.2 12.2.3 12.3 12.4 12.4.1 12.4.2 12.4.3 12.4.4 12.4.5 12.4.5.1 12.4.5.2 12.4.6 12.4.7 12.5 12.6 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.8.3 12.8.4 12.8.5 12.8.6 12.8.7 12.8.8 12.8.9 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 DDR SDRAM Interface Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-7 DDR SDRAM Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-8 DDR SDRAM Address Multiplexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-10 JEDEC Standard DDR SDRAM Interface Commands . . . . . . . . . . . . . . . . . . 12-15 DDR SDRAM Clocking and Interface Timing . . . . . . . . . . . . . . . . . . . . . . . . 12-20 Clock Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-24 DDR SDRAM Mode-Set Command Timing . . . . . . . . . . . . . . . . . . . . . . . . 12-25 DDR SDRAM Registered DIMM Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-25 DDR SDRAM Write Timing Adjustments . . . . . . . . . . . . . . . . . . . . . . . . . . 12-26 DDR SDRAM Refresh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-28 DDR SDRAM Refresh Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-28 DDR SDRAM Refresh and Power-Saving Modes. . . . . . . . . . . . . . . . . . . 12-29 DDR Data Beat Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-31 Page Mode and Logical Bank Retention. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-32 Error Checking and Correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-32 Error Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-35 Set-Up and Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-36 Programming Differences Between Memory Types. . . . . . . . . . . . . . . . . . . 12-40 DDR SDRAM Initialization Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-44 Memory Controller Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-44 Chip-Select Bounds (MnCSx_BNDS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-46 Chip-Select x Configuration Register (MnCSx_CONFIG) . . . . . . . . . . . . . 12-47 Chip-Select x Configuration Register 2 (MnCSx_CONFIG_2) . . . . . . . . . . 12-49 DDR SDRAM Timing Configuration 3 (MnTIMING_CFG_3). . . . . . . . . . 12-50 DDR SDRAM Timing Configuration Register 0 (MnTIMING_CFG_0) . . 12-52 DDR SDRAM Timing Configuration Register 1 (MnTIMING_CFG_1) . . 12-55 DDR SDRAM Timing Configuration Register 2 (MnTIMING_CFG_2) . . 12-60 DDR SDRAM Control Configuration Register (MnDDR_SDRAM_CFG). 12-65 DDR SDRAM Control Configuration Register 2 (MnDDR_SDRAM_CFG_2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-67 MSC8156 Reference Manual, Rev. 2 xii Freescale Semiconductor Contents 12.8.10 12.8.11 12.8.12 12.8.13 12.8.14 12.8.15 12.8.16 12.8.17 12.8.18 12.8.19 12.8.20 12.8.21 12.8.22 12.8.23 12.8.24 12.8.25 12.8.26 12.8.27 12.8.28 12.8.29 12.8.30 12.8.31 12.8.32 12.8.33 12.8.34 12.8.35 12.8.36 12.8.37 12.8.38 12.8.39 12.8.40 12.8.41 DDR SDRAM Mode Configuration Register (MnDDR_SDRAM_MODE) 12-70 DDR SDRAM Mode Configuration 2 Register (MnDDR_SDRAM_MODE_2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-71 DDR SDRAM Mode Control Register (MnDDR_SDRAM_MD_CNTL). . 12-71 DDR SDRAM Interval Configuration Register (MnDDR_SDRAM_INTERVAL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-74 DDR SDRAM Data Initialization Register (MnDDR_DATA_INIT) . . . . . 12-75 DDR SDRAM Clock Control Configuration Register (MnDDR_SDRAM_CLK_CNTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-75 DDR SDRAM Initialization Address Register (MnDDR_INIT_ADDR) . . 12-76 DDR Initialization Enable (MnDDR_INIT_EN) . . . . . . . . . . . . . . . . . . . . . 12-77 DDR SDRAM Timing Configuration 4 (MnTIMING_CFG_4). . . . . . . . . . 12-78 DDR SDRAM Timing Configuration 5 (MnTIMING_CFG_5). . . . . . . . . . 12-80 DDR ZQ Calibration Control (MnDDR_ZQ_CNTL) . . . . . . . . . . . . . . . . . 12-82 DDR Write Leveling Control (MnDDR_WRLVL_CNTL) . . . . . . . . . . . . . 12-84 DDR Write Leveling Control 2 (MnDDR_WRLVL_CNTL_2). . . . . . . . . . 12-87 DDR Write Leveling Control 3 (MnDDR_WRLVL_CNTL_3). . . . . . . . . . 12-90 DDR Pre-Drive Conditioning Control (MnDDR_PD_CNTL) . . . . . . . . . . . 12-93 DDR Self Refresh Counter (MnDDR_SR_CNTR) . . . . . . . . . . . . . . . . . . . 12-96 DDR SDRAM Register Control Words 1 (MnDDR_SDRAM_RCW_1) . . 12-97 DDR SDRAM Register Control Words 2 (MnDDR_SDRAM_RCW_2) . . 12-98 DDR Debug Status Register 1 (MnDDRDSR_1) . . . . . . . . . . . . . . . . . . . . . 12-99 DDR Debug Status Register 2 (MnDDRDSR_2) . . . . . . . . . . . . . . . . . . . . 12-100 DDR Control Driver Register 1 (MnDDRCDR_1). . . . . . . . . . . . . . . . . . . 12-100 DDR Control Driver Register 2 (MnDDRCDR_2). . . . . . . . . . . . . . . . . . . 12-104 DDR SDRAM IP Block Revision 1 Register (MnDDR_IP_REV1) . . . . . 12-105 DDR SDRAM IP Block Revision 2 Register (MnDDR_IP_REV2) . . . . . 12-105 DDR SDRAM Memory Data Path Error Injection Mask High Register (MnDATA_ERR_INJECT_HI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-106 DDR SDRAM Memory Data Path Error Injection Mask Low Register (MnDATA_ERR_INJECT_LO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-106 DDR SDRAM Memory Data Path Error Injection Mask ECC Register (MnERR_INJECT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-107 DDR SDRAM Memory Data Path Read Capture Data High Register (MnCAPTURE_DATA_HI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-108 DDR SDRAM Memory Data Path Read Capture Data Low Register (MnCAPTURE_DATA_LO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-108 DDR SDRAM Memory Data Path Read Capture ECC Register (MnCAPTURE_ECC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-109 DDR SDRAM Memory Error Detect Register (MnERR_DETECT) . . . . . 12-109 DDR SDRAM Memory Error Disable Register (MnERR_DISABLE) . . . 12-110 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xiii Contents 12.8.42 12.8.43 12.8.44 12.8.45 12.8.46 DDR SDRAM Memory Error Interrupt Enable Register (MnERR_INT_EN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DDR SDRAM Memory Error Attributes Capture Register (MnCAPTURE_ATTRIBUTES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DDR SDRAM Memory Error Address Capture Register (MnCAPTURE_ADDRESS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DDR SDRAM Single-Bit ECC Memory Error Management Register (MnERR_SBE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Debug Register 2 (MnDEBUG_2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-112 12-113 12-114 12-114 12-115 13 Interrupt Handling 13.1 13.2 13.2.1 13.2.2 13.2.3 13.3 13.4 13.5 13.5.1 13.5.1.1 13.5.1.2 13.5.2 13.5.3 Global Interrupt Controller (GIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2 General Configuration Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3 Interrupt Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3 External Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4 Interrupt Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5 Interrupt Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-6 Core Interrupt Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-22 Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-23 Global Interrupt Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-23 Virtual Interrupt Generation Register (VIGR) . . . . . . . . . . . . . . . . . . . . . . 13-23 Virtual Interrupt Status Register (VISR) . . . . . . . . . . . . . . . . . . . . . . . . . . 13-24 General Interrupt Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-26 Programming Restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-26 14 Direct Memory Access (DMA) Controller 14.1 14.2 14.2.1 14.2.2 14.2.3 14.2.4 14.2.5 14.2.6 14.2.7 14.2.8 14.2.9 14.2.10 14.2.11 14.3 14.3.1 Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 Buffer Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 One-Dimensional Simple Buffer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4 One-Dimensional Cyclic Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-5 One-Dimensional Chained Buffer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6 One-Dimensional Incremental Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-7 One-Dimensional Complex Buffers With Dual Cyclic Buffers . . . . . . . . . . . 14-8 Two-Dimensional Simple Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-9 Three-Dimensional Simple Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-11 Four-Dimensional Simple Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-12 Multi-Dimensional Chained Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-15 Two-Dimensional Cyclic Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-17 Three-Dimensional Cyclic Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-18 Arbitration Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-19 Round-Robin Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-19 MSC8156 Reference Manual, Rev. 2 xiv Freescale Semiconductor Contents 14.3.2 14.3.2.1 14.3.2.2 14.3.2.3 14.4 14.4.1 14.4.2 14.5 14.6 14.6.1 14.6.2 14.6.3 14.6.3.1 14.6.3.2 14.6.3.3 14.6.4 14.7 14.7.1 14.7.2 14.7.3 14.7.4 14.7.5 14.7.6 14.7.7 14.7.8 14.7.9 14.7.10 14.7.11 14.7.12 14.7.13 14.7.14 14.7.15 14.7.16 14.7.17 14.7.18 14.7.19 14.7.20 14.7.21 14.7.22 14.7.22.1 14.7.22.2 EDF Arbitration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Issuing Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Counter Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clock Source to the Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Maskable Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nonmaskable Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DMA Peripheral Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modes of Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration and Control Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Request Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Done Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Signal Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the DMA Peripheral Interface Block . . . . . . . . . . . . . . . . . . . . . . . . . DMA Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DMA Buffer Descriptor Base Registers x (DMABDBRx). . . . . . . . . . . . . . DMA Controller Channel Configuration Registers x (DMACHCRx) . . . . . DMA Controller Global Configuration Register (DMAGCR) . . . . . . . . . . . DMA Channel Enable Register (DMACHER) . . . . . . . . . . . . . . . . . . . . . . . DMA Channel Disable Register (DMACHDR) . . . . . . . . . . . . . . . . . . . . . . DMA Channel Freeze Register (DMACHFR) . . . . . . . . . . . . . . . . . . . . . . . DMA Channel Defrost Register (DMACHDFR).. . . . . . . . . . . . . . . . . . . . . DMA Time-To-Dead Line Registers x (DMAEDFTDLx) . . . . . . . . . . . . . . DMA EDF Control Register (DMAEDFCTRL). . . . . . . . . . . . . . . . . . . . . . DMA EDF Mask Register (DMAEDFMR) . . . . . . . . . . . . . . . . . . . . . . . . . DMA EDF Mask Update Register (DMAEDFMUR). . . . . . . . . . . . . . . . . . DMA EDF Status Register (DMAEDFSTR) . . . . . . . . . . . . . . . . . . . . . . . . DMA Mask Register (DMAMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DMA Mask Update Register (DMAMUR). . . . . . . . . . . . . . . . . . . . . . . . . . DMA Status Register (DMASTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DMA Error Register (DMAERR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DMA Debug Event Status Register (DMADESR) . . . . . . . . . . . . . . . . . . . . DMA Local Profiling Configuration Register (DMALPCR) . . . . . . . . . . . . DMA Round-Robin Priority Group Update Register (DMARRPGUR) . . . DMA Channel Active Status Register (DMACHASTR) . . . . . . . . . . . . . . . DMA Channel Freeze Status Register (DMACHFSTR) . . . . . . . . . . . . . . . DMA Channel Buffer Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Buffer Attributes (BD_ATTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multi-Dimensional Buffer Attributes (BD_MD_ATTR) . . . . . . . . . . . . . . 14-20 14-21 14-21 14-22 14-22 14-22 14-22 14-23 14-23 14-23 14-24 14-25 14-25 14-25 14-25 14-26 14-27 14-28 14-29 14-31 14-31 14-32 14-33 14-33 14-34 14-35 14-35 14-36 14-38 14-38 14-39 14-40 14-41 14-43 14-43 14-44 14-45 14-45 14-45 14-49 14-52 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xv Contents 15 High Speed Serial Interface (HSSI) Subsystem 15.1 15.2 15.3 15.3.1 15.3.2 15.3.3 15.4 15.4.1 15.4.1.1 15.4.1.2 15.4.1.2.1 15.4.1.2.2 15.4.1.2.3 15.4.1.2.4 15.4.1.2.5 15.4.1.3 15.4.1.3.1 15.4.1.3.2 15.4.1.4 15.4.1.5 15.4.1.6 15.4.1.7 15.4.2 15.4.3 15.4.4 15.4.5 15.4.6 15.5 15.6 15.7 15.8 15.8.1 15.8.2 15.8.3 15.8.4 15.8.5 15.8.6 15.8.7 15.8.8 15.8.9 HSSI Subsystem Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2 OCN Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-3 DMA Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5 Modes of Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-7 DMA Channel Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-7 Source/Destination Transaction Size Calculations. . . . . . . . . . . . . . . . . . . . 15-7 Basic DMA Mode Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-9 Basic Direct Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-9 Basic Direct Single-Write Start Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10 Basic Chaining Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10 Basic Chaining Single-Write Start Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 15-11 Extended DMA Mode Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-12 Channel Continue Mode for Cascading Transfer Chains. . . . . . . . . . . . . . 15-13 Basic Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-14 Extended Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-14 Channel Abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-14 Bandwidth Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-15 Channel State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-15 Illustration of Stride Size and Stride Distance . . . . . . . . . . . . . . . . . . . . . . 15-15 DMA Transfer Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-16 DMA Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-16 DMA Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-17 Local Access ATMU Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-19 Limitations and Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-19 OCN-to-MBus (O2M) Bridges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-21 SRIO Port Controller Modules (SRIOn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-21 SerDes PHY Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-21 HSSI Programming Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-21 Mode Registers 0–3 (DnMR[0–3]). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-24 Status Registers (DnSRn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-27 Current Link Descriptor Extended Address Registers (DnECLNDARn). . . 15-29 Current Link Descriptor Address Registers (DnCLNDARn): . . . . . . . . . . . 15-30 Source Attributes Registers (DnSATRn) . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-31 Source Address Registers (DnSARn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-32 Destination Attributes Registers (DnDATRn). . . . . . . . . . . . . . . . . . . . . . . . 15-33 Destination Address Registers (DnDARn) . . . . . . . . . . . . . . . . . . . . . . . . . . 15-34 Byte Count Registers (DnBCRn). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-35 MSC8156 Reference Manual, Rev. 2 xvi Freescale Semiconductor Contents 15.8.10 15.8.11 15.8.12 15.8.13 15.8.14 15.8.15 15.8.16 15.8.17 15.8.18 15.8.19 15.8.20 15.8.21 15.8.22 15.8.23 15.8.24 15.8.25 15.8.26 15.8.27 15.8.28 15.8.29 15.8.30 15.8.31 15.8.32 15.8.33 Extended Next Link Descriptor Address Registers (DnENLNDARn) . . . . . Next Link Descriptor Address Registers (DnNLNDARn) . . . . . . . . . . . . . . Extended Current List Descriptor Address Registers (DnECLSDARn). . . . Current List Descriptor Address Registers (DnCLSDARn) . . . . . . . . . . . . . Extended Next List Descriptor Address Registers (DnENLSDARn) . . . . . . Next List Descriptor Address Registers (DnNLSDARn) . . . . . . . . . . . . . . . Source Stride Registers (DnSSRn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Destination Stride Registers (DnDSRn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . DMA General Status Register (DnDGSR)) . . . . . . . . . . . . . . . . . . . . . . . . . Local Access Window Base Address Registers 0–9 (DnLAWBAR[0–9]) . Local Access Window Attributes Registers 0–9 (DnLAWAR[0–9]) . . . . . . OCN-to-MBus Configuration Registers (O2MCR[0–1]) . . . . . . . . . . . . . . . OCN-to-MBus Error Attribute Registers (O2MEAR[0–1]) . . . . . . . . . . . . . OCN-to-MBus Error Address Registers (O2MEADR[0–1]) . . . . . . . . . . . . OCN-to-MBus Error Status Registers (O2MESR[0–1]). . . . . . . . . . . . . . . . OCN-to-MBus Interrupt Enable Registers (O2MIER[0–1]). . . . . . . . . . . . . OCN-to-MBus Error Capture Enable Registers (O2MECER[0–1]). . . . . . . SRDS Control Register 0 (SRDSnCR0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . SRDS Control Register 1 (SRDSnCR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . SRDS Control Register 2 (SRDSnCR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . SRDS Control Register 3 (SRDSnCR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . SRDS Control Register 4 (SRDSnCR4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . SRDS Control Register 5 (SRDSnCR5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . SRDS Control Register 6 (SRDSnCR6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-36 15-37 15-38 15-39 15-40 15-41 15-42 15-43 15-44 15-46 15-47 15-49 15-50 15-52 15-53 15-54 15-55 15-56 15-59 15-62 15-63 15-65 15-67 15-68 16 Serial RapidIO Controller 16.1 16.1.1 16.1.2 16.1.3 16.1.4 16.1.4.1 16.1.4.2 16.2 16.2.1 16.2.2 16.2.3 16.2.4 16.2.4.1 16.2.4.2 16.2.4.3 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-3 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-3 Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-5 1x/4x LP-Serial Signals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-5 RapidIO Interface Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-6 Initialization for Booting the MSC8156 DSP . . . . . . . . . . . . . . . . . . . . . . . 16-6 Initialization for Non-Boot Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-6 RapidIO Interface Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-6 RapidIO Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-7 RapidIO Packet Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-8 RapidIO Control Symbol Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-9 Accessing Configuration Registers via RapidIO Packets . . . . . . . . . . . . . . . 16-11 Inbound Maintenance Accesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-11 RapidIO Non-Maintenance Accesses Using LCSBA1CSR. . . . . . . . . . . . 16-12 RapidIO Maintenance Accesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-12 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xvii Contents 16.2.4.3.1 16.2.4.3.2 16.2.5 16.2.5.1 16.2.5.2 16.2.5.3 16.2.5.3.1 16.2.5.3.2 16.2.5.4 16.2.5.4.1 16.2.5.4.2 16.2.6 16.2.7 16.2.8 16.2.9 16.2.10 16.2.10.1 16.2.10.2 16.2.10.3 16.3 16.3.1 16.3.2 16.3.2.1 16.3.2.2 16.3.2.3 16.3.2.4 16.3.2.5 16.3.2.5.1 16.3.2.5.2 16.3.2.5.3 16.3.2.5.4 16.3.2.5.5 16.3.2.6 16.3.2.7 16.3.2.8 16.3.3 16.3.3.1 16.3.3.2 16.3.3.3 16.3.3.4 16.3.3.5 Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-12 Outbound Maintenance Accesses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-12 RapidIO ATMU Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-13 RapidIO Outbound ATMU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-13 Outbound Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-15 Window Size and Segmented Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . 16-16 Valid Hits to Multiple ATMU Windows . . . . . . . . . . . . . . . . . . . . . . . . . . 16-40 Window Boundary Crossing Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-41 RapidIO Inbound ATMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-42 Hits to Multiple ATMU Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-44 Window Boundary Crossing Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-44 Generating Link-Request/Reset-Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-45 Outbound Drain Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-46 Input Port Disable Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-47 Software Assisted Error Recovery Register Support . . . . . . . . . . . . . . . . . . 16-47 Errors and Error Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-48 RapidIO Error Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-48 Physical Layer RapidIO Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-50 Logical Layer RapidIO Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-53 RapidIO Message Unit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-79 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-79 Outbound Message Controller Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-80 Direct Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-80 Software Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-83 Disabling and Enabling the Message Controller . . . . . . . . . . . . . . . . . . . . 16-84 Hardware Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-84 Chaining Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-88 Changing Descriptor Queues in Chaining Mode . . . . . . . . . . . . . . . . . . . . 16-91 Preventing Queue Overflow in Chaining Mode . . . . . . . . . . . . . . . . . . . . . 16-91 Switching Between Direct and Chaining Modes . . . . . . . . . . . . . . . . . . . . 16-91 Chaining Mode Descriptor Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-92 Chaining Mode Controller Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-93 Software Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-94 Hardware Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-95 Outbound Message Controller Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . 16-96 Inbound Message Controller Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-97 Inbound Message Controller Initialization . . . . . . . . . . . . . . . . . . . . . . . . . 16-98 Inbound Controller Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-98 Message Steering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-100 Retry Response Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-100 Inbound Message Controller Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . 16-100 MSC8156 Reference Manual, Rev. 2 xviii Freescale Semiconductor Contents 16.3.3.6 16.3.3.7 16.3.3.8 16.3.3.9 16.3.4 16.4 16.4.1 16.4.2 16.4.3 16.4.3.1 16.4.3.2 16.4.3.3 16.4.3.4 16.4.4 16.4.4.1 16.4.4.2 16.4.4.3 16.4.4.4 16.4.4.5 16.4.4.6 16.4.4.7 16.4.4.8 16.4.4.9 16.5 16.5.1 16.5.2 16.5.3 16.5.4 16.5.5 16.5.6 16.5.7 16.5.8 16.5.9 16.6 16.6.1 16.6.2 16.6.3 16.6.4 16.6.5 16.6.6 16.6.7 Software Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hardware Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programming Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Disabling and Enabling the Inbound Message Controller . . . . . . . . . . . . RapidIO Message Passing Logical Specification Register Bits . . . . . . . . . RapidIO Doorbell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Doorbell Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outbound Doorbell Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hardware Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programming Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inbound Doorbell Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Doorbell Queue Entry Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Retry Response Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Doorbell Controller Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transaction Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hardware Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programming Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Disabling and Enabling the Doorbell Controller . . . . . . . . . . . . . . . . . . . RapidIO Message Passing Logical Specification Registers . . . . . . . . . . . Port-Write Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Port-Write Controller Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Port-Write Controller Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Port-Write Controller Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Discarding Port-Writes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transaction Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hardware Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Disabling and Enabling the Port-Write Controller . . . . . . . . . . . . . . . . . . . RapidIO Message Passing Logical Specification Registers . . . . . . . . . . . . RapidIO Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Device Identity Capability Register (DIDCAR) . . . . . . . . . . . . . . . . . . . . . Device Information Capability Register (DICAR) . . . . . . . . . . . . . . . . . . . Assembly Identity Capability Register (AIDCAR) . . . . . . . . . . . . . . . . . . Assembly Information Capability Register (AICAR). . . . . . . . . . . . . . . . . Processing Element Features Capability Register (PEFCAR) . . . . . . . . . . Source Operations Capability Register (SOCAR) . . . . . . . . . . . . . . . . . . . Destination Operations Capability Register (DOCAR) . . . . . . . . . . . . . . . 16-101 16-102 16-107 16-107 16-108 16-108 16-108 16-109 16-110 16-111 16-111 16-112 16-114 16-115 16-116 16-117 16-117 16-118 16-118 16-118 16-121 16-122 16-122 16-123 16-123 16-124 16-124 16-125 16-125 16-125 16-125 16-128 16-129 16-129 16-133 16-133 16-134 16-134 16-135 16-136 16-138 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xix Contents 16.6.8 16.6.9 16.6.10 16.6.11 16.6.12 16.6.13 16.6.14 16.6.15 16.6.16 16.6.17 16.6.18 16.6.19 16.6.20 16.6.21 16.6.22 16.6.23 16.6.24 16.6.25 16.6.26 16.6.27 16.6.28 16.6.29 16.6.30 16.6.31 16.6.32 16.6.33 16.6.34 Mailbox Command and Status Register (MCSR) . . . . . . . . . . . . . . . . . . . . 16-139 Port Write and Doorbell Command and Status Register (PWDCSR) . . . . 16-141 Processing Element Logical Layer Control Command and Status Register (PELLCCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-142 Local Configuration Space Base Address 1 Command and Status Register (LCSBA1CSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-143 Base Device ID Command and Status Register (BDIDCSR) . . . . . . . . . . . 16-144 Host Base Device ID Lock Command and Status Register (HBDIDLCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-145 Component Tag Command and Status Register (CTCSR) . . . . . . . . . . . . . 16-146 Port Maintenance Block Header 0 (PMBH0) . . . . . . . . . . . . . . . . . . . . . . . 16-147 Port Link Time-Out Control Command and Status Register (PLTOCCSR)16-148 Port Response Time-Out Control Command and Status Register (PRTOCCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-149 Port General Control Command and Status Register (PGCCSR). . . . . . . . 16-150 Port 0–1 Link Maintenance Request Command and Status Register (PnLMREQCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-151 Port 0–1 Link Maintenance Response Command and Status Register (PnLMRESPCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-152 Port 0–1 Local ackID Command and Status Register (PnLASCR) . . . . . . 16-153 Port 0–1 Error and Status Command and Status Register (PnESCSR). . . . 16-154 Port 0–1 Control Command and Status Register (PnCCSR) . . . . . . . . . . . 16-156 Error Reporting Block Header (ERBH) . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-158 Logical/Transport Layer Error Detect Command and Status Register (LTLEDCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-158 Logical/Transport Layer Error Enable Command and Status Register (LTLEECSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-160 Logical/Transport Layer Address Capture Command and Status Register (LTLACCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-161 Logical/Transport Layer Device ID Capture Command and Status Register (LTLDIDCCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-162 Logical/Transport Layer Control Capture Command and Status Register (LTLCCCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-163 Port 0–1 Error Detect Command and Status Register (PnEDCSR) . . . . . . 16-164 Port 0–1 Error Rate Enable Command and Status Register (PnERECSR). 16-165 Port 0–1 Error Capture Attributes Command and Status Register (PnECACSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-166 Port 0–1 Packet/Control Symbol Error Capture Command and Status Register (PnPCSECCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-168 Port 0–1 Packet Error Capture Command and Status Register 1 (PnPECCSR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-169 MSC8156 Reference Manual, Rev. 2 xx Freescale Semiconductor Contents 16.6.35 16.6.36 16.6.37 16.6.38 16.6.39 16.6.40 16.6.41 16.6.42 16.6.43 16.6.44 16.6.45 16.6.46 16.6.47 16.6.48 16.6.49 16.6.50 16.6.51 16.6.52 16.6.53 16.6.54 16.6.55 16.6.56 16.6.57 16.6.58 16.6.59 16.6.60 16.6.61 16.6.62 Port 0–1 Packet Error Capture Command and Status Register 2 (PnPECCSR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-170 Port 0–1 Packet Error Capture Command and Status Register 3 (PnPECCSR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-171 Port 0–1 Error Rate Command and Status Register (PnERCSR) . . . . . . . . 16-172 Port 0–1 Error Rate Threshold Command and Status Register (PnERTCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-173 Logical Layer Configuration Register (LLCR). . . . . . . . . . . . . . . . . . . . . . 16-174 Error/Port-Write Status Register (EPWISR). . . . . . . . . . . . . . . . . . . . . . . . 16-175 Logical Retry Error Threshold Configuration Register (LRETCR) . . . . . . 16-176 Physical Retry Error Threshold Configuration Register (PRETCR) . . . . . 16-177 Port 0–1 Alternate Device ID Command and Status Register (PnADIDCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-178 Port 0–1 Pass-Through Accept-All Configuration Register (PnPTAACR) 16-179 Port 0–1 Logical Outbound Packet Time-to-Live Configuration Register (PnLOPTTLCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-180 Port 0–1 Implementation Error Command and Status Register (PnIECSR) 16-181 Port 0–1 Serial Link Command and Status Register (PnSLCSR). . . . . . . . 16-182 Port 0–1 Serial Link Error Injection Configuration Register (PnSLEICR) 16-183 IP Block Revision Register 1 (IPBRR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-184 IP Block Revision Register 2 (IPBRR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-184 Port 0–1 RapidIO Outbound Window Translation Address Registers x (PnROWTARx). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-185 Port 0–1 RapidIO Outbound Window Translation Extended Address Registers x (PnROWTEARx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-186 Port 0–1 RapidIO Outbound Window Base Address Registers x (PnROWBARx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-187 Port 0–1 RapidIO Outbound Window Attributes Registers x (PnROWARx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-188 Port 0–1 RapidIO Outbound Window Segment 1–3 Registers 1–8 (PnROWSxRy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-190 Port 0–1 RapidIO Inbound Window Translation Address Registers x (PnRIWTARx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-191 Port 0–1 RapidIO Inbound Window Base Address Registers x (PnRIWBARx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-192 Port 0–1 RapidIO Inbound Window Attributes Registers x (PnRIWARx) 16-193 Outbound Message x Mode Registers (OMxMR) . . . . . . . . . . . . . . . . . . . 16-194 Outbound Message x Status Registers (OMxSR) . . . . . . . . . . . . . . . . . . . . 16-196 Outbound Message x Descriptor Queue Dequeue Pointer Address Registers (DMxDQDPAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-198 Outbound Message x Source Address Registers (OMxSAR) . . . . . . . . . . . 16-199 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xxi Contents 16.6.63 16.6.64 16.6.65 16.6.66 16.6.67 16.6.68 16.6.69 16.6.70 16.6.71 16.6.72 16.6.73 16.6.74 16.6.75 16.6.76 16.6.77 16.6.78 16.6.79 16.6.80 16.6.81 16.6.82 16.6.83 16.6.84 16.6.85 16.6.86 16.6.87 Outbound Message x Destination Port Register (OMxDPR) . . . . . . . . . . . 16-200 Outbound Message x Destination Attributes Register (OMxDATR) . . . . . 16-201 Outbound Message x Double-Word Count Register (DMxDCR) . . . . . . . 16-202 Outbound Message x Descriptor Queue Enqueue Pointer Address Registers (OMxDQEPAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-203 Outbound Message x Retry Error Threshold Configuration Register (OMxRETCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-204 Outbound Message x Multicast Group Registers (OMxMGR) . . . . . . . . . 16-205 Outbound Message x Multicast List Registers (OMxMLR) . . . . . . . . . . . . 16-206 Inbound Message x Mode Registers (IMxMR). . . . . . . . . . . . . . . . . . . . . . 16-207 Inbound Message x Status Registers (IMxSR) . . . . . . . . . . . . . . . . . . . . . . 16-209 Inbound Message x Frame Queue Dequeue Pointer Address Registers (IMxFQDPAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-211 Inbound Message x Frame Queue Enqueue Pointer Address Registers (IMxFQEPAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-212 Inbound Message x Maximum Interrupt Report Interval Registers (IMxMIRIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-213 Outbound Doorbell Mode Register (ODMR) . . . . . . . . . . . . . . . . . . . . . . . 16-214 Outbound Doorbell Status Register (ODSR) . . . . . . . . . . . . . . . . . . . . . . . 16-215 Outbound Doorbell Destination Port Register (ODDPR) . . . . . . . . . . . . . . 16-216 Outbound Doorbell Destination Attributes Register (ODDATR). . . . . . . . 16-217 Outbound Doorbell Retry Error Threshold Configuration Register (ODRETCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-218 Inbound Doorbell Mode Registers (IDMR) . . . . . . . . . . . . . . . . . . . . . . . . 16-219 Inbound Doorbell Status Register (IDSR) . . . . . . . . . . . . . . . . . . . . . . . . . 16-221 Inbound Doorbell Queue Dequeue Pointer Address Register (IDQDPAR) 16-222 Inbound Doorbell Queue Enqueue Pointer Address Registers (IDQEPAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-223 Inbound Doorbell Maximum Interrupt Report Interval Register (IDMIRIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-224 Inbound Port-Write Mode Register (IPWMR) . . . . . . . . . . . . . . . . . . . . . . 16-225 Inbound Port-Write Status Register (IPWSR) . . . . . . . . . . . . . . . . . . . . . . 16-226 Inbound Port-Write Queue Base Address Register (IPWQBAR). . . . . . . . 16-227 17 PCI Express Controller 17.1 17.1.1 17.1.2 17.2 17.3 17.3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outbound Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inbound Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modes of Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1 17-2 17-3 17-4 17-5 17-6 MSC8156 Reference Manual, Rev. 2 xxii Freescale Semiconductor Contents 17.3.2 17.3.2.1 17.3.2.2 17.3.2.3 17.3.2.4 17.3.2.5 17.3.2.6 17.3.2.7 17.3.3 17.3.3.1 17.3.3.2 17.3.4 17.3.4.1 17.3.4.2 17.3.4.3 17.3.5 17.3.6 17.3.7 17.3.8 17.3.9 17.3.10 17.3.11 17.4 17.4.1 17.4.1.1 17.4.1.1.1 17.4.1.1.2 17.4.1.1.3 17.4.1.1.4 17.4.1.1.5 17.4.1.2 17.4.1.2.1 17.4.1.2.2 17.4.1.2.3 17.4.1.2.4 17.4.1.2.5 17.4.1.2.6 PCI Express Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-6 Byte Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-7 Byte Order for Configuration Transactions . . . . . . . . . . . . . . . . . . . . . . . . . 17-9 Transaction Ordering Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-9 Memory Space Addressing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-10 I/O Space Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-10 Configuration Space Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-11 Serialization of Configuration and I/O Writes . . . . . . . . . . . . . . . . . . . . . . 17-11 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-11 Outbound ATMU Message Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-12 Inbound Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-13 Error Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-15 PCI Express Error Logging and Signaling . . . . . . . . . . . . . . . . . . . . . . . . . 17-15 PCI Express Controller Internal Interrupt Sources. . . . . . . . . . . . . . . . . . . 17-17 Error Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-18 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-21 Initial Credit Advertisement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-22 Power Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-22 L2/L3 Ready Link State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-23 Hot Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-23 Link Down. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-24 Initialization/Application Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-24 Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-24 PCI Express Memory Mapped Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-25 PCI Express Configuration Access Registers. . . . . . . . . . . . . . . . . . . . . . . 17-27 PCI Express Configuration Address Register (PEX_CONFIG_ADDR) . . 17-27 PCI Express Configuration Data Register (PEX_CONFIG_DATA). . . . . 17-28 PCI Express Outbound Completion Timeout Register (PEX_OTB_CPL_TOR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-29 PCI Express Configuration Retry Timeout Register (PEX_CONF_RTY_TOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-30 PCI Express Configuration Register (PEX_CONFIG) . . . . . . . . . . . . . . . 17-30 PCI Express Power Management Event and Message Registers . . . . . . . . 17-31 PCI Express PME and Message Detect Register (PEX_PME_MES_DR) 17-31 PCI Express PME and Message Disable Register (PEX_PME_MES_DISR)17-33 PCI Express PME and Message Interrupt Enable Register (PEX_PME_MES_IER)17-34 PCI Express Power Management Command Register (PEX_PMCR). . . . 17-36 PCI Express Link Width Control Register (PEX_LWCR) . . . . . . . . . . . . 17-37 PCI Express Link Width Status Register (PEX_LWSR) . . . . . . . . . . . . . 17-38 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xxiii Contents 17.4.1.2.7 17.4.1.2.8 17.4.1.3 17.4.1.3.1 17.4.1.3.2 17.4.1.4 17.4.1.4.1 17.4.1.4.2 17.4.1.4.3 17.4.1.4.4 17.4.1.4.5 17.4.1.4.6 17.4.1.4.7 17.4.1.4.8 17.4.1.4.9 17.4.1.4.10 17.4.1.4.11 17.4.1.4.12 17.4.1.4.13 17.4.1.5 17.4.1.5.1 17.4.1.5.2 17.4.1.5.3 17.4.1.5.4 17.4.1.5.5 17.4.1.5.6 17.4.1.5.7 17.4.1.5.8 17.4.1.6 17.4.1.6.1 17.4.1.6.2 17.4.1.6.3 17.4.1.6.4 17.4.1.7 17.4.1.7.1 17.4.1.7.2 17.4.1.7.3 17.4.1.7.4 PCI Express Link Speed Control Register (PEX_LSCR) . . . . . . . . . . . . . PCI Express Link Speed Status Register (PEX_LSSR) . . . . . . . . . . . . . . . PCI Express IP Block Revision Registers . . . . . . . . . . . . . . . . . . . . . . . . . IP Block Revision Register 1 (PEX_IP_BLK_REV1). . . . . . . . . . . . . . . . IP Block Revision Register 2 (PEX_IP_BLK_REV2). . . . . . . . . . . . . . . . PCI Express ATMU Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Outbound ATMU Registers. . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Outbound Translation Address Registers (PEXOTARn) . . . PCI Express Outbound Translation Extended Address Registers (PEXOTEARn). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Outbound Window Base Address Registers (PEXOWBARn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Outbound Window Attributes Registers (PEXOWARn) . . . PCI Express Inbound ATMU Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . EP Inbound ATMU Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RC Inbound ATMU Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Inbound Translation Address Registers (PEXITARn) . . . . . PCI Express Inbound Window Base Address Register 1 (PEXIWBAR1) PCI Express Inbound Window Base Address Registers (PEXIWBARn) . PCI Express Inbound Window Base Extended Address Registers (PEXIWBEARn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Inbound Window Attributes Registers (PEXIWARn) . . . . . PCI Express Error Management Registers . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Error Detect Register (PEX_ERR_DR) . . . . . . . . . . . . . . . . PCI Express Error Interrupt Enable Register (PEX_ERR_EN) . . . . . . . . . PCI Express Error Disable Register (PEX_ERR_DISR) . . . . . . . . . . . . . . PCI Express Error Capture Status Register (PEX_ERR_CAP_STAT) . . . PCI Express Error Capture Register 0 (PEX_ERR_CAP_R0) . . . . . . . . . PCI Express Error Capture Register 1 (PEX_ERR_CAP_R1) . . . . . . . . . PCI Express Error Capture Register 2 (PEX_ERR_CAP_R2) . . . . . . . . . PCI Express Error Capture Register 3 (PEX_ERR_CAP_R3) . . . . . . . . . PCI Express Configuration Space Access . . . . . . . . . . . . . . . . . . . . . . . . . RC Configuration Register Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Configuration Access Register Mechanism . . . . . . . . . . . . . Outbound ATMU Configuration Mechanism (RC-Only) . . . . . . . . . . . . . EP Configuration Register Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Compatible Configuration Headers. . . . . . . . . . . . . . . . . . . . . . . . . . . Common PCI Compatible Configuration Header Registers . . . . . . . . . . . PCI Express Vendor ID Register—Offset 0x00. . . . . . . . . . . . . . . . . . . . . PCI Express Device ID Register—Offset 0x02 . . . . . . . . . . . . . . . . . . . . . PCI Express Command Register—Offset 0x04 . . . . . . . . . . . . . . . . . . . . . 17-39 17-40 17-41 17-41 17-41 17-42 17-42 17-42 17-43 17-44 17-45 17-47 17-47 17-47 17-48 17-49 17-50 17-51 17-52 17-54 17-54 17-56 17-58 17-59 17-60 17-61 17-63 17-64 17-65 17-65 17-66 17-66 17-67 17-67 17-67 17-68 17-68 17-68 MSC8156 Reference Manual, Rev. 2 xxiv Freescale Semiconductor Contents 17.4.1.7.5 17.4.1.7.6 17.4.1.7.7 17.4.1.7.8 17.4.1.7.9 17.4.1.7.10 17.4.1.7.11 17.4.1.7.12 17.4.1.7.13 17.4.1.7.14 17.4.1.7.15 17.4.1.7.16 17.4.1.7.17 17.4.1.7.18 17.4.1.7.19 17.4.1.7.20 17.4.1.7.21 17.4.1.7.22 17.4.1.7.23 17.4.1.7.24 17.4.1.7.25 17.4.1.7.26 17.4.1.7.27 17.4.1.7.28 17.4.1.7.29 17.4.1.7.30 17.4.1.7.31 17.4.1.7.32 17.4.1.7.33 17.4.1.7.34 17.4.1.7.35 17.4.1.7.36 17.4.1.7.37 17.4.1.7.38 17.4.1.7.39 17.4.1.7.40 17.4.1.7.41 17.4.1.8 17.4.1.8.1 17.4.1.8.2 17.4.1.8.3 PCI Express Status Register—Offset 0x06 . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Revision ID Register—Offset 0x08 . . . . . . . . . . . . . . . . . . . PCI Express Class Code Register—Offset 0x09 . . . . . . . . . . . . . . . . . . . . PCI Express Cache Line Size Register—Offset 0x0C . . . . . . . . . . . . . . . . PCI Express Latency Timer Register—0x0D . . . . . . . . . . . . . . . . . . . . . . PCI Express Header Type Register—0x0E . . . . . . . . . . . . . . . . . . . . . . . . PCI Express BIST Register—0x0F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type 0 Configuration Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Base Address Registers—0x10–0x27 . . . . . . . . . . . . . . . . . . PCI Express Subsystem Vendor ID Register (EP-Mode Only)—0x2C. . . PCI Express Subsystem ID Register (EP-Mode Only)—0x2E . . . . . . . . . Capabilities Pointer Register—0x34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Interrupt Line Register (EP-Mode Only)—0x3C . . . . . . . . . PCI Express Interrupt Pin Register—0x3D . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Minimum Grant Register (EP-Mode Only)—0x3E . . . . . . . PCI Express Maximum Latency Register (EP-Mode Only)—0x3F . . . . . Type 1 Configuration Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Base Address Register 0—0x10 . . . . . . . . . . . . . . . . . . . . . . PCI Express Primary Bus Number Register—Offset 0x18 . . . . . . . . . . . . PCI Express Secondary Bus Number Register—Offset 0x19 . . . . . . . . . . PCI Express Subordinate Bus Number Register—Offset 0x1A . . . . . . . . PCI Express Secondary Latency Timer Register—0x1B. . . . . . . . . . . . . . PCI Express I/O Base Register—0x1C . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express I/O Limit Register—0x1D. . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Secondary Status Register—0x1E. . . . . . . . . . . . . . . . . . . . . PCI Express Memory Base Register—0x20 . . . . . . . . . . . . . . . . . . . . . . . PCI Express Memory Limit Register—0x22 . . . . . . . . . . . . . . . . . . . . . . . PCI Express Prefetchable Memory Base Register—0x24 . . . . . . . . . . . . . PCI Express Prefetchable Memory Limit Register—0x26 . . . . . . . . . . . . PCI Express Prefetchable Base Upper 32 Bits Register—0x28. . . . . . . . . PCI Express Prefetchable Limit Upper 32 Bits Register—0x2C . . . . . . . . PCI Express I/O Base Upper 16 Bits Register—0x30 . . . . . . . . . . . . . . . . PCI Express I/O Limit Upper 16 Bits Register—0x32 . . . . . . . . . . . . . . . Capabilities Pointer Register—0x34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Interrupt Line Register—0x3C . . . . . . . . . . . . . . . . . . . . . . . PCI Express Interrupt Pin Register—0x3D . . . . . . . . . . . . . . . . . . . . . . . . PCI Express Bridge Control Register—0x3E . . . . . . . . . . . . . . . . . . . . . . PCI Compatible Device-Specific Configuration Space . . . . . . . . . . . . . . . PCI Express Power Management Capability ID Register—0x44 . . . . . . . PCI Express Power Management Capabilities Register—0x46. . . . . . . . . PCI Express Power Management Status and Control Register—0x48 . . . 17-70 17-71 17-71 17-72 17-72 17-73 17-73 17-73 17-74 17-76 17-77 17-77 17-78 17-78 17-78 17-79 17-79 17-80 17-80 17-81 17-81 17-81 17-82 17-82 17-83 17-84 17-84 17-85 17-85 17-86 17-86 17-87 17-87 17-88 17-88 17-88 17-89 17-90 17-91 17-91 17-92 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xxv Contents 17.4.1.8.4 17.4.1.8.5 17.4.1.8.6 17.4.1.8.7 17.4.1.8.8 17.4.1.8.9 17.4.1.8.10 17.4.1.8.11 17.4.1.8.12 17.4.1.8.13 17.4.1.8.14 17.4.1.8.15 17.4.1.8.16 17.4.1.8.17 17.4.1.8.18 17.4.1.8.19 17.4.1.8.20 17.4.1.8.21 17.4.1.8.22 17.4.1.9 17.4.1.9.1 17.4.1.9.2 17.4.1.9.3 17.4.1.9.4 17.4.1.9.5 17.4.1.9.6 17.4.1.9.7 17.4.1.9.8 17.4.1.9.9 17.4.1.9.10 17.4.1.9.11 17.4.1.9.12 17.4.1.9.13 17.4.1.9.14 17.4.1.9.15 17.4.1.9.16 17.4.1.9.17 17.4.1.9.18 PCI Express Power Management Data Register—0x4B . . . . . . . . . . . . . . 17-92 PCI Express Capability ID Register—0x4C . . . . . . . . . . . . . . . . . . . . . . . 17-93 PCI Express Capabilities Register—0x4E . . . . . . . . . . . . . . . . . . . . . . . . . 17-93 PCI Express Device Capabilities Register—0x50 . . . . . . . . . . . . . . . . . . . 17-94 PCI Express Device Control Register—0x54 . . . . . . . . . . . . . . . . . . . . . . 17-95 PCI Express Device Status Register—0x56. . . . . . . . . . . . . . . . . . . . . . . . 17-95 PCI Express Link Capabilities Register—0x58 . . . . . . . . . . . . . . . . . . . . . 17-96 PCI Express Link Control Register—0x5C . . . . . . . . . . . . . . . . . . . . . . . . 17-96 PCI Express Link Status Register—0x5E . . . . . . . . . . . . . . . . . . . . . . . . . 17-97 PCI Express Slot Capabilities Register—0x60 . . . . . . . . . . . . . . . . . . . . . 17-97 PCI Express Slot Control Register—0x64 . . . . . . . . . . . . . . . . . . . . . . . . . 17-98 PCI Express Slot Status Register—0x66 . . . . . . . . . . . . . . . . . . . . . . . . . . 17-99 PCI Express Root Control Register (RC Mode Only)—0x68 . . . . . . . . . . 17-99 PCI Express Root Status Register (RC Mode Only)—0x6C . . . . . . . . . . 17-100 PCI Express MSI Message Capability ID Register (EP Mode Only)—0x70 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-100 PCI Express MSI Message Control Register (EP Mode Only)—0x72 . . 17-101 PCI Express MSI Message Address Register (EP Mode Only)—0x74 . . 17-101 PCI Express MSI Message Upper Address Register (EP Mode Only)—0x78 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-102 PCI Express MSI Message Data Register (EP Mode Only)—0x7C . . . . 17-102 PCI Express Extended Configuration Space . . . . . . . . . . . . . . . . . . . . . . 17-103 PCI Express Advanced Error Reporting Capability ID Register—0x100 17-104 PCI Express Uncorrectable Error Status Register—0x104 . . . . . . . . . . . 17-104 PCI Express Uncorrectable Error Mask Register—0x108 . . . . . . . . . . . . 17-105 PCI Express Uncorrectable Error Severity Register—0x10C . . . . . . . . . 17-106 PCI Express Correctable Error Status Register—0x110 . . . . . . . . . . . . . 17-107 PCI Express Correctable Error Mask Register—0x114 . . . . . . . . . . . . . . 17-108 PCI Express Advanced Error Capabilities and Control Register—0x118 17-109 PCI Express Header Log Register—0x11C–0x12B. . . . . . . . . . . . . . . . . 17-110 PCI Express Root Error Command Register—0x12C . . . . . . . . . . . . . . . 17-111 PCI Express Root Error Status Register—0x130 . . . . . . . . . . . . . . . . . . . 17-111 PCI Express Correctable Error Source ID Register—0x134 . . . . . . . . . . 17-112 PCI Express Error Source ID Register—0x136 . . . . . . . . . . . . . . . . . . . . 17-112 LTSSM State Control Register—0x400. . . . . . . . . . . . . . . . . . . . . . . . . . 17-113 LTSSM State Status Register—0x404 . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-114 PCI Express ACK Replay Timeout Register (PEX_ACK_REPLAY_TIMEOUT)—0x434 . . . . . . . . . . . . . . . . . . . . . 17-116 PCI Express Controller Core Clock Ratio Register—0x440 . . . . . . . . . . 17-117 PCI Express Power Management Timer Register—0x450 . . . . . . . . . . . 17-117 PCI Express PME Time-Out Register (EP-Mode Only)—0x454 . . . . . . 17-118 MSC8156 Reference Manual, Rev. 2 xxvi Freescale Semiconductor Contents 17.4.1.9.19 17.4.1.9.20 17.4.1.9.21 17.4.1.9.22 17.4.1.9.23 PCI Express Subsystem Vendor ID Update Register (EP Mode Only)—0x478 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration Ready Register—0x4B0 . . . . . . . . . . . . . . . . . . . . . . . . . . PME_To_Ack Timeout Register (RC-Mode Only)—0x590 . . . . . . . . . . Secondary Status Interrupt Mask Register (RC-Mode Only)—0x5A0 . . Gen2 Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-119 17-119 17-120 17-121 17-122 18 QUICC Engine Subsystem 18.1 18.2 18.2.1 18.2.2 18.2.3 18.2.4 18.2.5 18.2.6 18.2.7 18.3 18.3.1 18.3.2 18.3.2.1 18.3.2.2 18.3.3 18.3.4 18.3.5 18.4 18.4.1 18.4.2 18.5 18.6 18.7 18.7.1 18.7.1.1 18.7.1.2 18.7.2 18.7.2.1 18.7.2.1.1 18.7.2.1.2 18.7.2.2 18.7.2.2.1 18.7.2.2.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2 RISC Processors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 SC3850 Core Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 Peripheral Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4 Parameter RAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4 Buffer Descriptors (BDs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5 Multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 Serial Numbers (SNUMs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-7 IRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-8 Serial DMA Controller. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-8 Data Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-8 SDMA and Bus Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 Simple Recovery from Bus Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 Selective Peripheral Recovery Procedure . . . . . . . . . . . . . . . . . . . . . . . . . 18-10 SDMA and Reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-10 MBus Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-10 SDMA Internal Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-11 Clocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-11 Multiplexer Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-11 Baud-Rate Generators (BRGs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-13 Interrupt Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-14 UCCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-14 Ethernet Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-16 Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-18 RGMII Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-18 SGMII Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-18 Ethernet Physical Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-18 Reduced Gigabit Media-Independent Interface (RGMII) Signals . . . . . . . 18-19 RGMII Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-19 RGMII Signal Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-20 Serial Gigabit Media-Independent Interface (SGMII) Signals . . . . . . . . . 18-20 SGMII Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-21 SGMII Signal Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-21 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xxvii Contents 18.7.3 18.7.4 18.8 18.8.1 18.8.1.1 18.8.1.2 18.8.2 18.8.3 18.8.4 18.9 Controlling PHY Links (Management Interface) . . . . . . . . . . . . . . . . . . . . . Ethernet Controller Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serial Peripheral Interface (SPI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPI Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPI as a Master Device. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPI as a Slave Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPI in Multi-Master Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . External Signal Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPI Transmission and Reception Process . . . . . . . . . . . . . . . . . . . . . . . . . . . Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-22 18-22 18-23 18-24 18-24 18-26 18-26 18-28 18-28 18-29 19 TDM Interface 19.1 19.2 19.2.1 19.2.2 19.2.3 19.2.4 19.2.4.1 19.2.4.2 19.2.4.3 19.2.4.4 19.2.5 19.2.6 19.2.6.1 19.2.6.2 19.2.6.3 19.2.6.4 19.2.7 19.3 19.4 19.5 19.6 19.7 19.7.1 19.7.1.1 19.7.1.2 19.7.1.3 19.7.1.4 19.7.1.5 19.7.1.6 Typical Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-5 TDM Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-6 Common Signals for the TDM Modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-8 Receiver and Transmitter Independent or Shared Operation . . . . . . . . . . . . 19-10 TDM Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-13 Serial Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-15 Sync Out Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-15 Sync In Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-16 Serial Interface Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-18 Reverse Data Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-20 TDM Local Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-22 Buffers Mapped on System Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-23 Data Buffer Size and A/m-law Channels . . . . . . . . . . . . . . . . . . . . . . . . . . 19-23 Data Buffer Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-24 Threshold Pointers and Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-26 Unified Buffer Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-28 Adaptation Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-30 TDM Power Saving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-31 Channel Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-31 Loopback Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-32 TDM Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-33 TDM Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-34 Configuration Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-36 TDMx General Interface Register (TDMxGIR). . . . . . . . . . . . . . . . . . . . . 19-36 TDMx Receive Interface Register (TDMxRIR). . . . . . . . . . . . . . . . . . . . . 19-43 TDMx Transmit Interface Register (TDMxTIR) . . . . . . . . . . . . . . . . . . . . 19-45 TDMx Receive Frame Parameters (TDMxRFP) . . . . . . . . . . . . . . . . . . . . 19-47 TDMx Transmit Frame Parameters (TDMxTFP) . . . . . . . . . . . . . . . . . . . 19-50 TDMx Receive Data Buffer Size (TDMxRDBS) . . . . . . . . . . . . . . . . . . . 19-52 MSC8156 Reference Manual, Rev. 2 xxviii Freescale Semiconductor Contents 19.7.1.7 19.7.1.8 19.7.1.9 19.7.1.10 19.7.1.11 19.7.1.12 19.7.2 19.7.2.1 19.7.2.2 19.7.2.3 19.7.2.4 19.7.2.5 19.7.2.6 19.7.2.7 19.7.2.8 19.7.2.9 19.7.2.10 19.7.2.11 19.7.3 19.7.3.1 19.7.3.2 19.7.3.3 19.7.3.4 19.7.3.5 19.7.3.6 19.7.3.7 19.7.3.8 19.7.3.9 19.7.3.10 19.7.3.11 TDMx Transmit Data Buffer Size (TDMxTDBS) . . . . . . . . . . . . . . . . . . . TDMx Receive Global Base Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . TDMx Transmit Global Base Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . TDMx Transmit Force Register (TDMxTFR) . . . . . . . . . . . . . . . . . . . . . . TDMx Receive Force Register (TDMxRFR). . . . . . . . . . . . . . . . . . . . . . . TDMx Parity Control Register (TDMxPCR) . . . . . . . . . . . . . . . . . . . . . . . Control Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TDMx Adaptation Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TDMx Receive Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TDMx Transmit Control Register (TDMxTCR) . . . . . . . . . . . . . . . . . . . . TDMx Receive Data Buffer First Threshold (TDMxRDBFT) . . . . . . . . . TDMx Transmit Data Buffer First Threshold . . . . . . . . . . . . . . . . . . . . . . TDMx Receive Data Buffer Second Threshold . . . . . . . . . . . . . . . . . . . . . TDMx Transmit Data Buffer Second Threshold . . . . . . . . . . . . . . . . . . . . TDMx Receive Channel Parameter Register n . . . . . . . . . . . . . . . . . . . . . TDMx Transmit Channel Parameter Register n . . . . . . . . . . . . . . . . . . . . . TDMx Receive Interrupt Enable Register (TDMXRIER) . . . . . . . . . . . . . TDMx Transmit Interrupt Enable Register (TDMxTIER) . . . . . . . . . . . . . Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TDMx Adaptation Sync Distance Register (TDMxASDR) . . . . . . . . . . . . TDMx Receive Data Buffers Displacement Register (TDMxRDBDR) . . TDMx Transmit Data Buffer Displacement Register (TDMxTDBDR) . . TDMx Receive Number of Buffers (TDMxRNB) . . . . . . . . . . . . . . . . . . . TDMx Transmitter Number of Buffers (TDMxTNB) . . . . . . . . . . . . . . . . TDMx Receive Event Register (TDMxRER) . . . . . . . . . . . . . . . . . . . . . . TDMx Transmit Event Register (TDMxTER) . . . . . . . . . . . . . . . . . . . . . . TDMx Adaptation Status Register (TDMxASR) . . . . . . . . . . . . . . . . . . . . TDMx Receive Status Register (TDMxRSR) . . . . . . . . . . . . . . . . . . . . . . TDMx Transmit Status Register (TDMxTSR). . . . . . . . . . . . . . . . . . . . . . TDMx Parity Error Register (TDMxPER) . . . . . . . . . . . . . . . . . . . . . . . . . 19-53 19-53 19-54 19-54 19-55 19-56 19-56 19-56 19-57 19-58 19-58 19-59 19-60 19-60 19-61 19-62 19-63 19-64 19-65 19-65 19-66 19-66 19-67 19-68 19-68 19-69 19-70 19-71 19-72 19-73 20 UART 20.1 20.1.1 20.1.2 20.1.3 20.1.4 20.2 20.2.1 20.2.2 20.2.3 Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-6 Character Transmission. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-7 Break Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-9 Idle Characters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-10 Parity Bit Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-10 Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-10 Character Reception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-11 Data Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-12 Framing Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-17 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xxix Contents 20.2.4 20.2.5 20.2.6 20.2.6.1 20.2.6.2 20.2.7 20.2.7.1 20.2.7.2 20.3 20.4 20.4.1 20.4.2 20.4.3 20.4.4 20.4.5 20.5 20.6 20.6.1 20.6.2 20.6.3 20.6.4 20.6.5 Parity Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Break Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Baud-Rate Tolerance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Slow Data Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fast Data Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receiver Wake-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Idle Input Line Wake-Up (WAKE = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . Address Mark Wake-Up (WAKE = 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modes of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Run Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Single-Wire Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loop Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receiver Standby Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interrupt Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UART Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SCI Baud-Rate Register (SCIBR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SCI Control Register (SCICR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SCI Status Register (SCISR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SCI Data Register (SCIDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SCI Data Direction Register (SCIDDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-18 20-18 20-18 20-19 20-20 20-20 20-21 20-21 20-21 20-22 20-22 20-22 20-23 20-23 20-23 20-24 20-24 20-25 20-26 20-29 20-31 20-32 21 Timers 21.1 21.1.1 21.1.2 21.1.3 21.1.3.1 21.1.3.2 21.1.4 21.1.4.1 21.1.4.2 21.1.4.3 21.1.4.4 21.1.5 21.1.5.1 21.1.5.2 21.1.5.3 21.1.6 21.1.6.1 Device-Level Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-2 Timer Module Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-2 Setting Up Counters for Cascaded Operation . . . . . . . . . . . . . . . . . . . . . . . . . 21-3 Operation of the Cascaded Timer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-4 Cascading Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-4 Timer Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-5 One-Shot Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-7 Pulse Output Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-7 Fixed Frequency PWM Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-7 Variable Frequency PWM Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-8 Timer Compare Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-10 Compare Preload Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-11 Capture Register Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-11 Broadcast from an Initiator Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-12 Resets and Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-12 Timer Compare Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-12 MSC8156 Reference Manual, Rev. 2 xxx Freescale Semiconductor Contents 21.1.6.2 21.1.6.3 21.2 21.3 21.3.1 21.3.2 21.3.3 21.4 21.4.1 21.4.1.1 21.4.1.2 21.4.1.3 21.4.1.4 21.4.1.5 21.4.1.6 21.4.1.7 21.4.1.8 21.4.1.9 21.4.1.10 21.4.1.11 21.4.2 21.4.3 21.4.3.1 21.4.3.2 21.4.3.3 Timer Overflow Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Input Edge Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SC3850 DSP Core Subsystem Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Watchdog Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modes of Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software WDT Servicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timers Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Device-Level Timers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Channel Control Registers (TMRnCTLx) . . . . . . . . . . . . . . . . . . . . Timer Channel Status and Control Registers (TMRnSCTLx) . . . . . . . . . . Timer Channel Compare 1 Registers (TMRnCMP1x). . . . . . . . . . . . . . . . Timer Channel Compare 2 Registers (TMRnCMP2x). . . . . . . . . . . . . . . . Timer Channel Compare Load 1 Registers (TMRnCMPLD1x) . . . . . . . . Timer Channel Compare Load 2 Registers (TMRnCMPLD2x) . . . . . . . . Timer Channel Comparator Status and Control Registers (TMRnCOMSCx). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Channel Capture Registers (TMRnCAPx) . . . . . . . . . . . . . . . . . . . Timer Channel Load Registers (TMRnLOADx) . . . . . . . . . . . . . . . . . . . . Timer Channel Hold Registers (TMRnHOLDx) . . . . . . . . . . . . . . . . . . . . Timer Channel Counter Registers (TMRnCNTRx) . . . . . . . . . . . . . . . . . . SC3850 DSP Core Subsystem Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Watchdog Timers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . System Watchdog Control Register 0–7 (SWCRR[0–7]) . . . . . . . . . . . . . System Watchdog Count Register 0–7 (SWCNR[0–7]) . . . . . . . . . . . . . . System Watchdog Service Register 0–7 (SWSRR[0–7]). . . . . . . . . . . . . . 21-13 21-13 21-13 21-13 21-14 21-14 21-15 21-16 21-16 21-17 21-19 21-21 21-21 21-22 21-22 22 GPIO 22.1 22.2 22.3 22.4 22.4.1 22.4.2 22.4.3 22.4.4 22.4.5 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-1 GPIO Block Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-2 GPIO Connection Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-3 GPIO Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-5 Pin Open-Drain Register (PODR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-6 Pin Data Register (PDAT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-7 Pin Data Direction Register (PDIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-8 Pin Assignment Register (PAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-9 Pin Special Options Register (PSOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-10 21-22 21-23 21-24 21-24 21-24 21-24 21-25 21-26 21-27 21-27 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xxxi Contents 23 24 24.1 24.2 24.3 24.3.1 24.3.2 24.3.3 24.3.4 24.3.5 24.3.6 24.3.7 24.3.8 24.4 24.4.1 24.4.2 24.4.3 24.4.4 24.4.5 24.4.6 24.4.7 24.4.8 24.5 24.5.1 24.5.2 24.5.3 24.5.4 24.5.5 24.5.6 24.5.7 24.5.8 24.5.9 24.5.10 24.6 24.6.1 24.6.2 24.6.3 24.6.4 24.6.5 24.6.6 Hardware Semaphores I2C Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 Modes of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 I2C Module Functional Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-3 Clock Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-3 Input Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-3 Digital Input Filter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-3 Transaction Monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-4 Arbitration Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-4 Transfer Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-4 In/Out Data Shift Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-5 Address Compare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-5 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-6 START Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-6 Target Address Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-7 Repeated START Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-7 STOP Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-8 Arbitration Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-8 Clock Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-9 Handshaking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-9 Clock Stretching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-9 Initialization/Application Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-9 Initialization Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-10 Generation of START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-10 Post-Transfer Software Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-10 Generation of STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-11 Generation of Repeated START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-11 Generation of I2C_SCL When I2C_SDA Low. . . . . . . . . . . . . . . . . . . . . . . 24-11 Target Mode Interrupt Service Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-12 Target Transmitter and Received Acknowledge . . . . . . . . . . . . . . . . . . . . . . 24-12 Loss of Arbitration and Forcing of Target Mode . . . . . . . . . . . . . . . . . . . . . 24-12 Interrupt Service Routine Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-12 Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-14 I2C Address Register (I2CADR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-14 I2C Frequency Divider Register (I2CFDR) . . . . . . . . . . . . . . . . . . . . . . . . . 24-15 I2C Control Register (I2CCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-16 I2C Status Register (I2CSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-17 I2C Data Register (I2CDR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-19 Digital Filter Sampling Rate Register (I2CDFSRR). . . . . . . . . . . . . . . . . . . 24-19 MSC8156 Reference Manual, Rev. 2 xxxii Freescale Semiconductor Contents 25 Debugging, Profiling, and Performance Monitoring 25.1 25.1.1 25.1.2 25.1.3 25.1.4 25.1.5 25.1.6 25.1.7 25.1.8 25.1.9 25.1.10 25.1.11 25.1.12 25.1.13 25.1.14 25.1.15 25.1.15.1 25.1.15.2 25.1.15.3 25.1.15.4 25.1.15.5 25.2 25.2.1 25.2.2 25.2.3 25.2.4 25.2.5 25.2.6 25.2.6.1 25.2.6.2 25.2.7 25.2.7.1 25.2.7.2 25.2.8 25.2.8.1 25.2.8.2 25.2.9 25.2.9.1 25.2.9.2 25.2.10 TAP, Boundary Scan, and OCE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-2 TAP Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-5 Instruction Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-6 Multi-Core JTAG and OCE Module Concept. . . . . . . . . . . . . . . . . . . . . . . . 25-10 Enabling the OCE Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-10 DEBUG_REQUEST and ENABLE_ONCE Commands . . . . . . . . . . . . . . . 25-11 RD_STATUS Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-12 Reading/Writing OCE Registers Through JTAG . . . . . . . . . . . . . . . . . . . . . 25-12 Signalling a Debug Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-13 EE_CTRL Modifications for the MSC8156 . . . . . . . . . . . . . . . . . . . . . . . . . 25-14 ESEL_DM and EDCA_CTRL Register Programming. . . . . . . . . . . . . . . . . 25-15 Real-Time Debug Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-15 Exiting Debug Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-16 General JTAG Mode Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-17 JTAG and OCE Module Programming Model . . . . . . . . . . . . . . . . . . . . . . . 25-17 Identification Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-17 Boundary Scan Register (BSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-18 Shift Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-20 Bypass Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-20 Identification Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-21 Debug and Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-22 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-22 Entering Debug Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-23 Exiting Debug mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-23 SC3850 Debug and Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-24 L1 ICache and DCache Debug and Profiling . . . . . . . . . . . . . . . . . . . . . . . . 25-24 DMA Controller Debug and Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-24 Debug Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-24 Profiling Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-25 CLASS Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-25 Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-25 CLASS Debug Profiling Unit (CDPU) . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-25 QUICC Engine Debug and Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-27 Trace Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-27 Loopback Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-27 TDM Debug and Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-28 Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-28 TDM Loopback Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-28 RapidIO Debug and Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-28 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xxxiii Contents 25.2.10.1 25.2.10.2 25.2.11 25.2.12 25.2.13 25.2.13.1 25.2.13.2 25.2.13.3 25.2.13.4 25.2.13.5 25.2.13.6 25.2.13.7 25.2.13.8 25.2.13.9 25.2.13.10 25.2.13.11 25.2.13.12 25.2.13.13 25.2.13.14 25.2.13.15 25.2.13.16 25.2.13.17 25.2.13.18 25.2.13.19 25.2.13.20 25.2.13.21 25.2.13.22 25.2.13.23 25.2.13.24 25.2.13.25 25.3 25.3.1 25.3.1.1 25.3.1.2 25.3.1.3 25.3.1.4 25.3.1.5 25.3.1.6 25.3.2 25.3.2.1 25.3.2.2 Debug Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Profiling Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAPLE-B Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Watchdog (SWT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Profiling Unit Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPU Control Register (DP_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPU Status Register (DP_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPU Monitor Register (DP_MR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPU PID Detection Reference Value Register (DP_RPID) . . . . . . . . . . . DPU DID Detection Reference Value Register (DP_RDID) . . . . . . . . . . DPU Counter Triad A Control Register (DP_TAC) . . . . . . . . . . . . . . . . . DPU Counter Triad B Control Register (DP_TBC) . . . . . . . . . . . . . . . . . DPU Counter A0 Control Register (DP_CA0C) . . . . . . . . . . . . . . . . . . . . DPU Counter A0 Value Register (DP_CA0V) . . . . . . . . . . . . . . . . . . . . . DPU Counter A1 Control Register (DP_CA1C) . . . . . . . . . . . . . . . . . . . . DPU Counter A1 Value Registers (DP_CA1V) . . . . . . . . . . . . . . . . . . . . DPU Counter A2 Control Register (DP_CA2C) . . . . . . . . . . . . . . . . . . . . DPU Counter A2 Value Registers (DP_CA2V) . . . . . . . . . . . . . . . . . . . . DPU Counter B0 Control Register (DP_CB0C) . . . . . . . . . . . . . . . . . . . . DPU Counter B0 Value Registers (DP_CB0V) . . . . . . . . . . . . . . . . . . . . DPU Counter B1 Control Register (DP_CB1C) . . . . . . . . . . . . . . . . . . . . DPU Counter B1 Value Registers (DP_CB1V) . . . . . . . . . . . . . . . . . . . . DPU Counter B2 Control Register (DP_CB2C) . . . . . . . . . . . . . . . . . . . DPU Counter B2 Value Registers (DP_CB2V) . . . . . . . . . . . . . . . . . . . . DPU Trace Control Register (DP_TC) . . . . . . . . . . . . . . . . . . . . . . . . . . . DPU VTB Start Address Register (DP_TSA) . . . . . . . . . . . . . . . . . . . . . DPU VTB End Address Register (DP_TEA) . . . . . . . . . . . . . . . . . . . . . . DPU Trace Event Request Register (DP_TER) . . . . . . . . . . . . . . . . . . . . DPU Trace Write Pointer Register (DP_TW) . . . . . . . . . . . . . . . . . . . . . DPU Trace Data Register (DP_TD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performance Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performance Monitor Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event Counting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Threshold Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chaining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performance Monitor Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performance Monitor Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performance Monitor Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . Performance Monitor Global Control Register (PMGC) . . . . . . . . . . . . . . Performance Monitor Local Control A0 Register (PMLCA0). . . . . . . . . . 25-28 25-29 25-29 25-29 25-29 25-31 25-33 25-34 25-35 25-36 25-36 25-40 25-42 25-44 25-45 25-47 25-47 25-50 25-50 25-53 25-53 25-56 25-56 25-59 25-59 25-63 25-64 25-65 25-66 25-67 25-67 25-69 25-69 25-69 25-70 25-70 25-71 25-77 25-79 25-80 25-81 MSC8156 Reference Manual, Rev. 2 xxxiv Freescale Semiconductor Contents 25.3.2.3 25.3.2.4 25.3.2.5 25.3.2.6 26 26.1 26.2 26.2.1 26.2.2 26.2.3 26.2.4 26.3 26.3.1 26.3.1.1 26.3.1.2 26.3.1.3 26.3.1.4 26.3.1.4.1 26.3.1.4.2 26.3.1.4.3 26.3.1.4.4 26.3.1.4.5 26.3.1.4.6 26.3.1.4.7 26.3.1.4.8 26.3.1.4.9 26.3.1.4.10 26.3.1.4.11 26.3.2 26.3.2.1 26.3.2.1.1 26.3.2.1.2 26.3.2.1.3 26.3.2.1.4 26.3.2.1.5 26.3.2.2 26.3.2.2.1 26.3.2.2.2 26.3.2.2.3 Performance Monitor Local Control A[1–8] (PMLCA[1–8]) . . . . . . . . . . Performance Monitor Local Control B[1–8] (PMLCB[1–8]) . . . . . . . . . . Performance Monitor Counter 0 (PMC0). . . . . . . . . . . . . . . . . . . . . . . . . . Performance Monitor Counter 1–8 (PMC[1–8]) . . . . . . . . . . . . . . . . . . . . 25-82 25-83 25-84 25-85 Multi Accelerator Platform Engine, Baseband (MAPLE-B) Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-2 Modes of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-5 3GLTE Standard Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-5 WiMAX Standard Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-5 3GPP Standard Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-6 3GPP2 Standard Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-6 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-6 Buffer Descriptors (BDs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-6 BD Rings Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-6 BD Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-8 BDs Data Coherency Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-10 Turbo/Viterbi Decoding Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-11 Turbo Standard Parameter Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . 26-11 TVPE Buffer-Descriptor Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-12 Buffer Descriptor Special Notes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-24 TVPE Input Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-24 Input Sample Polarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-25 Direct Data Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-26 Separate Vectors Data Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-36 Periodically Punctured Configurable Mix Stream (PPCMS) Data Structure. 2639 Rate-Matched Fixed Mix Stream Data Structure . . . . . . . . . . . . . . . . . . . . 26-44 Sub-Block Interleaved Vectors Data Structure . . . . . . . . . . . . . . . . . . . . . 26-49 Supported Input Data Structures for Different Standards . . . . . . . . . . . . . 26-52 PE Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-55 Turbo/Viterbi PE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-55 Turbo Decoding Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-55 Viterbi Decoding Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-64 TVPE Output Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-73 Output Data Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-77 TVPE Debug and Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-78 FFT/iFFT/DFT/iDFT Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-80 FTPE Buffer-Descriptor Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-80 FTPE Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-90 FTPE Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-95 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xxxv Contents 26.3.2.2.4 26.3.2.2.5 26.3.2.2.6 26.3.2.3 26.3.2.3.1 26.3.2.3.2 26.3.2.3.3 26.3.2.3.4 26.3.2.3.5 26.3.3 26.3.3.1 26.3.3.2 26.3.3.2.1 26.3.3.2.2 26.3.3.2.3 26.3.3.3 26.3.3.3.1 26.3.3.3.2 26.3.3.4 26.3.3.5 26.3.3.6 26.3.3.7 26.3.3.7.1 26.3.3.7.2 26.3.4 26.4 26.4.1 26.4.1.1 26.4.1.2 26.4.1.3 26.4.1.4 26.4.2 26.4.2.1 26.4.2.1.1 26.4.2.1.2 26.4.2.1.3 26.4.2.1.4 26.4.2.1.5 FTPE Status Indications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the DFTPE as FFTPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FTPE Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CRC Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CRC Buffer-Descriptor Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Buffer Descriptors Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CRC Input Data Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CRC Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CRC Processing Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :System Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error Correction Code (ECC) Memory Support . . . . . . . . . . . . . . . . . . . Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BD Rings Done Indication Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . General Error Event Interrupt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ECC Error Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . External Masters Support Using Serial RapidIO Doorbell . . . . . . . . . . . Serial RapidIO Doorbell Parameters Configuration. . . . . . . . . . . . . . . . . Serial RapidIO Configuration Information . . . . . . . . . . . . . . . . . . . . . . . Operation Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAPLE-B Internal Task Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power Save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . External Hard/Soft Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Internal Soft Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Initialization Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Memory Map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAPLE-B Parameter RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TVPE Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FFTPE Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DFTPE Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Detailed Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Buffer Descriptors (BD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAPLE BD Rings Configuration Parameter (MBDRCP). . . . . . . . . . . . MAPLE UCode Version Parameter (MUCVP) . . . . . . . . . . . . . . . . . . . . MAPLE Timer Period Parameter (MP_TPP). . . . . . . . . . . . . . . . . . . . . . MAPLE TVPE BD Ring High Priority A <x> Parameter (MTVBRHPAxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAPLE TVPE BD Ring High Priority B <x> Parameter (MTVBRHPBxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-105 26-105 26-106 26-107 26-107 26-111 26-111 26-113 26-114 26-115 26-115 26-116 26-116 26-117 26-117 26-118 26-118 26-119 26-120 26-121 26-122 26-122 26-122 26-123 26-123 26-124 26-125 26-125 26-128 26-129 26-129 26-130 26-130 26-130 26-132 26-133 26-134 26-135 MSC8156 Reference Manual, Rev. 2 xxxvi Freescale Semiconductor Contents 26.4.2.1.6 26.4.2.1.7 26.4.2.1.8 26.4.2.1.9 26.4.2.1.10 26.4.2.1.11 26.4.2.1.12 26.4.2.1.13 26.4.2.1.14 26.4.2.1.15 26.4.2.1.16 26.4.2.1.17 26.4.2.1.18 26.4.2.1.19 26.4.2.2 26.4.2.2.1 26.4.2.2.2 26.4.2.2.3 26.4.2.2.4 26.4.2.2.5 26.4.2.2.6 26.4.2.3 MAPLE TVPE BD Ring Low Priority A <x> Parameter (MTVBRLPAxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-136 MAPLE TVPE BD Ring Low Priority B <x> Parameter (MTVBRLPBxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-137 MAPLE FFTPE BD Ring High Priority A <x> Parameter (MFFBRHPAxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-139 MAPLE FFTPE BD Ring High Priority B <x> Parameter (MFFBRHPBxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-140 MAPLE FFTPE BD Ring Low Priority A <x> Parameter (MFFBRLPAxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-141 MAPLE FFTPE BD Ring Low Priority B <x> Parameter (MFFBRLPBxP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-142 MAPLE DFTPE BD Ring High Priority A <x> Parameter (MDFBRHPAxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-143 MAPLE DFTPE BD Ring High Priority B <x> Parameter (MDFBRHPBxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-145 MAPLE DFTPE BD Ring Low Priority A <x> Parameter (MDFBRLPAxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-146 MAPLE DFTPE BD Ring Low Priority B <x> Parameter (MDFBRLPBxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-147 MAPLE CRCPE BD Ring High Priority A <x> Parameter (MCRCBRHPAxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-148 MAPLE CRCPE BD Ring High Priority B <x> Parameter (MCRCBRHPBxP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-149 MAPLE CRCPE BD Ring Low Priority A <x> Parameter (MCRCBRLPAxP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-151 MAPLE CRCPE BD Ring Low Priority B <x> Parameter (MCRCBRLPBxP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-152 MAPLE Operating Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-153 MAPLE- Turbo Stop Criteria Configuration Parameter(MTSCCP) . . . . 26-153 MAPLE Turbo Viterbi Puncturing Vector x High Configuration Parameter (MTVPVxHCP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-154 MAPLE Turbo Viterbi Puncturing Vector x Low Configuration Parameter (MTVPVxLCP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-155 MAPLE Turbo Viterbi Puncturing Period Configuration y Parameter (MTVPPCyP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-156 MAPLE Turbo Viterbi Polynomial Vector Set x Configuration 0 Parameter (MTVPVSxC0P) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-157 MAPLE Turbo Viterbi Polynomial Vector Set x Configuration 1 Parameter (MTVPVSxC1P) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-158 Profiling Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-159 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xxxvii Contents 26.4.2.3.1 26.4.2.3.2 26.4.2.3.3 26.4.2.3.4 26.4.2.3.5 26.4.2.3.6 26.4.2.3.7 26.4.2.3.8 26.4.2.3.9 26.4.2.4 26.4.2.4.1 26.4.2.4.2 26.4.2.4.3 26.4.2.4.4 26.4.3 26.4.3.1 26.4.3.2 26.4.3.3 26.4.3.4 26.4.3.5 26.4.4 26.4.4.1 26.4.4.1.1 26.4.4.1.2 26.4.4.1.3 26.4.4.1.4 26.4.4.1.5 26.4.4.1.6 26.4.4.1.7 26.4.4.1.8 26.4.4.2 26.4.4.2.1 26.4.4.2.2 26.4.4.2.3 26.4.4.2.4 26.4.4.2.5 MAPLE-B Turbo Total Performance Parameter (MTTPP) . . . . . . . . . . . MAPLE-B Viterbi Total Performance Parameter (MVTPP) . . . . . . . . . . MAPLE-B Total BLER Parameter (MTBP) . . . . . . . . . . . . . . . . . . . . . . MAPLE-B TVPE BDs Counter Parameter (MTBDCP) . . . . . . . . . . . . . MAPLE-B FFT Total Performance Parameter (MFTPP) . . . . . . . . . . . . MAPLE-B FFTPE BDs Counter Parameter (MFBDCP) . . . . . . . . . . . . . MAPLE-B DFT Total Performance Parameter (MDTPP) . . . . . . . . . . . . MAPLE-B DFTPE BDs Counter Parameter (MDBDCP) . . . . . . . . . . . . MAPLE-B Profiling Enable Parameter (MPEP) . . . . . . . . . . . . . . . . . . . Serial RapidIO Doorbell Support Attributes Parameters . . . . . . . . . . . . . Serial RapidIO Outbound RapidIO Doorbell Base Address Parameter (SORDP0BAP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hardware Semaphore Base Address Parameter (HSP0BAP) . . . . . . . . . MAPLE-B Doorbell Hardware Semaphore ID Configuration Parameter (MDHSIDCP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAPLE-B Doorbell General Configuration Parameter (MDGCP) . . . . . PSIF Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PSIF Command Register (PCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PSIF PIC Event Register (PSPICER). . . . . . . . . . . . . . . . . . . . . . . . . . . . PSIF PIC Edge/Level Register(PSPICELR) . . . . . . . . . . . . . . . . . . . . . . PSIF PIC Mask Register(PSPICMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . PSIF PIC Interrupts Assertion Clocks Register (PSPICIACR) . . . . . . . . Processing Engine Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TVPE Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TVPE Configuration 0 Register (TVPEC0R) . . . . . . . . . . . . . . . . . . . . . TVPE Symbol Identification 0 Configuration Register (TVSI0CR) . . . . TVPE Symbol Identification 1 Configuration Register (TVSI1CR) . . . . TVPE Turbo Tail Symbol Identification x Configuration Register (TVTTSIxCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TVPE Aposteriori Quality Configuration Register (TVAQCR) . . . . . . . TVPE Viterbi Polynomial Vector Generation 0 Configuration Register (TVVPVG0CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TVPE Viterbi Polynomial Vector Generation 1 Configuration Register (TVVPVG1CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TVPE Decoder Status Register (TVPESR) . . . . . . . . . . . . . . . . . . . . . . . FFTPE Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FFTPE Data Size Register 0 (FFTPEDSR0) . . . . . . . . . . . . . . . . . . . . . . FFTPE Data Size Register 1 (FFTPEDSR1) . . . . . . . . . . . . . . . . . . . . . . FFTPE Data Size Register 2 (FFTPEDSR2) . . . . . . . . . . . . . . . . . . . . . . FFTPE Status Register (FFTPESTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . FFTPE Scaling Status Register (FFTPESCLSTR). . . . . . . . . . . . . . . . . . 26-159 26-159 26-160 26-161 26-161 26-162 26-163 26-163 26-164 26-165 26-165 26-166 26-167 26-168 26-169 26-169 26-170 26-171 26-172 26-173 26-174 26-174 26-174 26-175 26-178 26-179 26-181 26-182 26-183 26-184 26-185 26-185 26-186 26-187 26-188 26-189 MSC8156 Reference Manual, Rev. 2 xxxviii Freescale Semiconductor Contents 26.4.4.2.6 26.4.4.2.7 26.4.4.2.8 26.4.4.2.9 26.4.4.3 26.4.4.3.1 26.4.4.3.2 26.4.4.3.3 26.4.4.4 26.4.4.4.1 26.4.4.4.2 26.4.4.4.3 26.4.4.4.4 26.4.4.4.5 26.4.4.4.6 FFTPE Saturation Status Register 0 (FFTPESSTR0) . . . . . . . . . . . . . . . FFTPE Saturation Status Register 1 (FFTPESSTR1) . . . . . . . . . . . . . . . FFTPE Saturation Status Register 2 (FFTPESSTR2) . . . . . . . . . . . . . . . FFTPE Saturation Status Register 3 (FFTPESSTR3) . . . . . . . . . . . . . . . DFTPE Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DFTPE Data Size Register 0 (DFTPEDSR0) . . . . . . . . . . . . . . . . . . . . . DFTPE Data Size Register 1 (DFTPEDSR1) . . . . . . . . . . . . . . . . . . . . . DFTPE Data Size Register 2 (DFTPEDSR2) . . . . . . . . . . . . . . . . . . . . . DFTPE Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DFTPE Status Register (DFTPESTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . DFTPE Scaling Status Register (DFTPESCLSTR) . . . . . . . . . . . . . . . . . DFTPE Saturation Status Register 0 (DFTPESSTR0) . . . . . . . . . . . . . . . DFTPE Saturation Status Register 1 (DFTPESSTR1) . . . . . . . . . . . . . . . DFTPE Saturation Status Register 2 (DFTPESSTR2) . . . . . . . . . . . . . . . DFTPE Saturation Status Register 3(DFTPESSTR3) . . . . . . . . . . . . . . . 26-190 26-191 26-192 26-193 26-194 26-194 26-195 26-196 26-197 26-197 26-198 26-199 26-200 26-201 26-202 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xxxix Contents MSC8156 Reference Manual, Rev. 2 xl Freescale Semiconductor About This Book The MSC8156 device is the fourth generation of Freescale high-end multicore DSP devices. It builds upon the proven success of the previous multicore DSPs and is designed to bolster the rapidly changing and expanding wireless markets, such as 3GPP, TD-SCDMA, 3G-LTE, and WiMAX. Its tool suite provides a full-featured development environment for C/C++ and assembly languages as well as ease of integration with third-party software, such as off-the-shelf libraries and a real-time operating system. The MSC8156 device includes six DSP core subsystems, a large internal memory subsystem and DDR memory controller for external memory, and a variety of communication processors and interfaces. HSSI SerDes Interfaces TDM UART I2C Timers StarCore SC3850 Core Subsystem 1056 KB M3 Memory 512 KB L2 Cache/ M2 Memory MAPLE PCI Express Serial RapidIO Serial RapidIO QUICC Engine Module 32 KB 32 KB L1 L1 ICache DCache Ethernet Ethernet SPI DDR Memory Controller DDR Interfaces Per Core Subsystem Six DSP Core Subsystems Memory Subsystem Each DSP core subsystem includes an SC3850 DSP core, a 32 KB 8-way level 1 ICache, a 32 KB 8-way level 1 DCache, 512 KB level 2 cache configurable as M2 memory, a memory management unit, an embedded programmable interrupt controller (EPIC) with up to 256 interrupts and 32 priority levels, two general-purpose 32-bit timers, an on-chip emulator (OCE), a debug and profiling unit (DPU), a JTAG test access port (TAP), and two lowpower operating modes (Wait and Stop). Interface from the cores to the memories and external interfaces is through a chiplevel arbitration and switching system (CLASS). The memory subsystem includes 1056 KB of shared M3 memory, two DDRSDRAM controller to access up to 0.5 GB of DDR2/3 external memory, and a 32-channel direct memory access (DMA) controller optimized for DDR-SDRAM. MAPLE-B The multi-accelerator platform engine (MAPLE-B) provides Turbo decoding, Viterbi decoding, FFT and DFT acceleration. Communications Processors and Interfaces Includes a PCI Express interface, two serial RapidIO® interfaces, four 512channel (256 transmit and 256 receive) TDM interfaces, a UART interface, an I2C interface, eight timer input/outputs, and a QUICC Engine module with two 1000Base-T Ethernet controllers and an SPI. In addition, the global interrupt controller (GIC) consolidates all chipmaskable and non-maskable interrupts and routes them to NMI_OUT, INT_OUT, and to the cores. The hardware semaphores allow initiators to protect and reserve the system hardware resources. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xli Before Using This Manual—Important Note This manual describes the structure and function of the MSC8156 device. The information in this manual is subject to change without notice, as described in the disclaimers on the title page of this manual. As with any technical documentation, it is your responsibility as the reader to ensure that you are using the most recent version of the documentation. For more information, contact your sales representative. Before using this manual, determine whether it is the latest revision and whether there are errata or addenda. To locate any published errata or updates associated with this manual or this product, refer to the Freescale web site. The address for the web site is listed on the back cover of this manual. Audience and Helpful Hints This manual is intended for software and hardware developers and applications programmers who want to develop products with the MSC8156. It is assumed that you have a working knowledge of DSP technology and that you may be familiar with Freescale products based on StarCore technology. For your convenience, the chapters of this manual are organized to make the information flow as predictably as possible. When feasible, the information in each chapter follows this general sequence: General description, block diagram, features, and architecture Functional description with operating modes and example applications and programming Programming Model (registers) In chapters that include a Programming Model section, this section is the last one in the chapter, or module subsection for those chapters that include multiple modules, and describes all registers for the module discussed. The Programming Model section begins with a bulleted overview of the registers that includes the page number where the description of each register begins. MSC8156 Reference Manual, Rev. 2 xlii Freescale Semiconductor Notational Conventions and Definitions This manual uses the following notational conventions: mnemonics Instruction mnemonics appear in lowercase bold. COMMAND Command names are set in small caps, as follows: GRACEFUL STOP TRANSMIT or ENTER HUNT MODE. names italics Book titles in text are set in italics, as are cross-referenced section titles. Also, italics are used for emphasis and to highlight the main items in bulleted lists. 0x Prefix to denote a hexadecimal number. 0b Prefix to denote a binary number. REG[FIELD] Abbreviations or acronyms for registers or buffer descriptors appear in uppercase text. Specific bits, fields, or numeric ranges appear in brackets. For example, ICR[INIT] refers to the Force Initialization bit in the host Interface Control Register. ACTIVE HIGH SIGNALS Names of active high signals appear in sans serif capital letters, as follows: TT[04], TSIZ[0–3], and DP[0–7]. ACTIVE LOW SIGNALS Signal names of active low signals appear in sans serif capital letters with an overbar, as follows: DBG, AACK, and EXT_BG[2]. x A lowercase italicized x in a register or signal name indicates that there are multiple registers or signals with this name. For example, BRCGx refers to BRCG[1–8], and MxMR refers to the MAMR/MBMR/MCMR registers. On the MSC8156 device, the SC3850 cores are 16-bit DSP processors. The following table shows the SC3850 assembly language data types. For details, see the StarCore SC3850 DSP Core Reference Manual. Name SC3850 Byte/Octet Half Word Word Long/Long Word/2 Words Quad Word/4 Words 8 bits 8 bits 16 bits 32 bits 64 bits The following table lists the SC3850 C language data types recognized by the StarCore C compiler. For details, see the StarCore SC100 C Compiler User’s Manual (MNSC100CC/D). Name Size char/unsigned char short/unsigned short int/unsigned int 8 bits 16 bits 16 bits MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xliii Name Size fractional short long/unsigned long fractional long pointer 16 bits 32 bits 32 bits 32 bits Conventions for Registers The Programming Model section of each chapter includes a register bit table for each register in that module, as well as a table describing each bit in the register. The register bit table not only shows the names and positions of the bits/bit fields but also their reset value, value after boot, and their type (Read/Write). For registers that are not changed by the system boot, no boot line is listed. The register address is shown with the register name and mnemonic. Reserved bits/fields are indicated with a long dash (—). In the RSR shown below, all of the bits are read/write (R/W). Other registers may include read-only (R) and write-only (W) bits. Notice that the least significant bit (LSB) is 0, or big-endian order. RSR Bit Reset Status Register 31 30 29 28 27 RSTSRC 26 25 24 Type Reset 0 0 0 0 0 0 0 RIO R/W 0 0 Bit 15 14 13 12 11 10 9 8 — JPO JH JS — Type Reset — 23 SWSR SWHR 7 22 21 20 SW1 SW2 SW3 0 0 0 0 0 0 0 6 5 4 3 2 1 0 SW – SRS HRS 0 0 1 1 — 19 18 17 — 16 BSF R/W 0 0 0 0 0 0 0 0 0 0 0 0 Organization Following is a summary and a brief description of the chapters of this manual: Chapter 1, Overview. Features, descriptive overview of main modules, configurations, and application examples. Chapter 2, SC3850 Core Overview. Target markets, features, overview of development tools, descriptive overview of main modules. Chapter 3, External Signals. Identifies the external signals, lists signal groupings, including the number of signal connections in each group, and describes each signal within a functional group. Chapter 4, Chip-Level Arbitration and Switching System (CLASS). Describes the system switch fabric that allows multi-initiator access to the internal memory and devices and enables high-bandwidth internal data transfers with few bottlenecks. MSC8156 Reference Manual, Rev. 2 xliv Freescale Semiconductor Chapter 5, Reset. Covers reset sources, causes, and configurations; gives examples of different reset configuration scenarios, including systems with multiple MSC8156 devices. Chapter 6, Boot Program. Describes the bootloader program that loads and executes source code to initialize the MSC8156 after it completes a reset sequence and programs its registers for the required mode of operation. This chapter covers selection of bootloader modes, normal sequence of events for bootloading a source program, and booting in a multi-processor environment. Chapter 7, Clocks. Contains an overview of the MSC8156 clock modules. Chapter 8, General Configuration Registers. Contains a detailed description of the general configuration registers. Chapter 9, Memory Map. Defines the address spaces for all MSC8156 modules; includes cross references to all registers discussed. Chapter 10, MSC8156 SC3850 DSP Subsystem. Describes the structure of the DSP core subsystem, which includes the SC3850 core, the instruction cache (ICache), the data cache (DCache), L2/M2 memory, memory management unit (MMU), two 32-bit timers, the embedded programmable interrupt controller (EPIC), and the on-chip emulator (OCE). Chapter 11, Internal Memory Subsystem. Describes the structure and operation of the L1 ICache, L1 DCache, L2/M2 memory, and M3 memory. Chapter 12, DDR SDRAM Memory Controller. Describes the how the memory controller interface works and how to program it. This interface increases the efficiency of accesses through the DDR memory controller to external DDR memory. Chapter 13, Interrupt Handling. Discusses the interrupt controllers that provide maximum flexibility in handling MSC8156 interrupts, enabling interrupts to be handled by the SC3850 cores internally, by an external host, or by a combination of the two; also discusses source priority schemes. Chapter 14, Direct Memory Access (DMA) Controller. Describes the different DMA operating modes, transfer types, and buffer types. The chapter also gives procedures for programming different types of transfers. The multi-channel DMA controller includes hardware support for up to 16 time-multiplexed channels including buffer alignment. The DMA controller supports flyby transactions on either bus. and enables hot swaps between channels, by using time-multiplexed channels that impose no cost in clock cycles. Chapter 15, High Speed Serial Interface (HSSI) Subsystem. Describes subsystem that supports and multiplexes the Serial RapidIO, PCI Express, and SGMII signals across the dual SerDes PHY ports and how the dedicated DMA controllers support the serial RapidIO interfaces and PCI Express interface and how to program them. Chapter 16, Serial RapidIO Controller. Describes the how the serial RapidIO interfaces work and how to program them. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xlv Chapter 17, PCI Express Controller. Describes the how the PCI Express interface works and how to program it. Chapter 18, QUICC Engine Subsystem. Describes the QUICC Engine module, the Ethernet controllers, and the serial peripheral interface (SPI). Detailed information is referenced in the QUICC Engine™ Block Reference Manual with Protocol Interworking (QEIWRM). Chapter 19, TDM Interface. Describes the four TDM interfaces. Each can handle up to 256 bidirectional channels. The interfaces support the serial bus rate and format for most standard TDM buses, including T1 and E1 highways, pulse-code modulation (PCM) highway, and the ISDN buses in both basic and primary rates. Chapter 20, UART. Describes the UART interface, which is a full-duplex serial port used to communicate with other devices. Chapter 21, Timers. Discusses the 32 identical 16-bit general-purpose timers residing in two timer modules (A and B) that each have their set of configuration registers. Chapter 22, GPIO. Discusses the thirty-two GPIO signals. Sixteen of the signals can be configured as external interrupt inputs. Each pin is multiplexed with other signals and can be configured as a general-purpose input, general-purpose output, or a dedicated peripheral pin. Chapter 23, Hardware Semaphores. Describes the function and programming of the hardware semaphores, which control resource sharing. Chapter 24, I2C. Describes the I2C interface. which allows the MSC8156 to boot from a serial EEPROM device. Chapter 25, Debugging, Profiling, and Performance Monitoring. Includes aspects of the JTAG implementation that are specific to the SC3850 core and should be used with the supporting IEEE® Std. 1149.1™ documentation. The discussion covers the items that the standard requires to be defined and provides additional information specific to the MSC8156 implementation. Also includes debugging resources available in the SC3850 DSP core subsystem, including the OCE modules, and L2 ICache module. Chapter 26, Multi Accelerator Platform Engine, Baseband (MAPLE-B). Describes the architecture, function, and register and memory structures used by the multi-accelerator platform engine (MAPLE-B) for Turbo decoding, Viterbi decoding, Fast Fourier Transform and Discrete Fourier Transform acceleration. MSC8156 Reference Manual, Rev. 2 xlvi Freescale Semiconductor Other MSC8156 Documentation You can find the following documents on the Freescale Semiconductor web site listed on the back cover of this manual. MSC8156 Technical Data Sheet (MSC8156). Details the signals, AC/DC characteristics, clock signal characteristics, package and pinout, and electrical design considerations of the MSC8156 device. QUICC Engine™ Block Reference Manual with Protocol Interworking (QEIWRM). Describes all functional blocks supported by the QUICC Engine technology, provides detailed programming registers and guidelines, and indicates which QUICC Engine blocks and functionality are supported by specified Freescale products. Application Notes. Cover various programming topics related to the StarCore DSP core and the MSC8156 device. Further Reading The following documents are available with a signed non-disclosure agreement (see your Freescale representative or distributor for details): SC3850 DSP Core Reference Manual. Covers the SC3850 core architecture, control registers, clock registers, program control, on-chip emulator (OCE), and instruction set. SC3850 DSP Core Subsystem Reference Manual. Covers the SC3850 DSP core subsystem which includes an SC3850 DSP core, a memory management unit (MMU), and instruction channel with L1 ICache, a data channel with L1 DCache, an embedded programmable interrupt controller (EPIC), real-time debug support with the core OCE and a JTAG interface and a debug and profiling unit (DPU), and a dual timer. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor xlvii Document Change History Revision Date Change Description 0 Sep 2010 Initial public release 1 Nov 2010 • Chapter 4, Chip-Level Arbitration and Switching System (CLASS). – Removed all references to CLASS MBus Target Configuration Registers (C0MTCRn), CLASS Start Address Decoder 7 (C0SAD7), CLASS End Address Decoder 7 (C0EAD7), and CLASS Attributes Decoder 7 (C0ATD7). – Added 4.3, MSC8151 Initiator CLASS Access Priorities. • Chapter 6, Boot Program – – – – Updated Figure 6-1. Updated Steps 10 and 11 in Section 6.1.4, Multi Device Support for the I2C Bus, on page 6-4. Updated Section 6.2.4.1, Serial RapidIO Without I2C Support, on page 6-21. Updated Figure 6-10. • Chapter 7, Clocks – Added Clock Mode 19 to Table 7-1 and Table 7-2. – Fixed RPTE field in figure layout in Section 7.2.2, Clock General Purpose Register 0 (CLK_GPR0), on page 7-5. • Chapter 9, Memory Map – Deleted C0MTCRn, C0SAD7, C0EAD7, C0ATD7, P0PCR, and P1PCR from Table 9-7. • Chapter 13, Interrupt Handling – Changed core mesh interrupts from level-only to level or edge in Table 13-6. • Chapter 16, Serial RapidIO Controller – Converted list of registers to Table 16-44. – Removed references to Port [0–1] Physical Configuration Registers (PnPCR). • Chapter 17, PCI Express Controller – Added new section Section 17.4.1.9.15, PCI Express ACK Replay Timeout Register (PEX_ACK_REPLAY_TIMEOUT)—0x434, on page 17-116. • Chapter 25, Debugging, Profiling, and Performance Monitoring – Removed references to trigger mode including PMLCB0. – Updated the settings values for DP_TC[CSS] in Table 25-32. – Updated the list of performance monitor events in Table 25-38. 2 Jun 2011 • Chapter 4, Chip-Level Arbitration and Switching System (CLASS) – Remove the reference to Target Switch events from Table 4-2 • Chapter 8, General Configuration Registers – Corrected PARTID value in System Part and Revision ID Register (SPRIDR). • Chapter 12, DDR SDRAM Memory Controller – Updated Figure 12-4 to change length of arrows between banks and total size of each bank (from 64 Mbytes to 256 Mbytes). – Changed heading of fourth and fifth columns in Table 12-3 from 32-bit to 64-bit. • Chapter 15, High Speed Serial Interface (HSSI) Subsystem – Added OCN-toMBus control registers in Section 15.8, HSSI Programming Model. • Chapter 16, Serial RapidIO Controller – Corrected DI value in DIDCAR.. • Chapter 26, Multi Accelerator Platform Engine, Baseband (MAPLE-B) – Corrected the values and meanings of the DOSBY and DOSBI bits in Section 26.3.2.1.4, Output Data Structure. MSC8156 Reference Manual, Rev. 2 xlviii Freescale Semiconductor 1 Overview The MSC8156 device is the fourth generation of Freescale high-end multicore DSP devices that target the communications infrastructure and delivers the industry’s highest level of performance and integration. It builds upon the proven success of the previous multicore DSPs and is designed to bolster the rapidly changing and expanding wireless markets, such as 3GPP, TD-SCDMA, 3G-LTE, and WiMAX. The MSC8156 is carefully optimized for minimal cost, power, and area per channel. The highly flexible, fully-programmable and powerful MSC8156 broadband wireless access DSP offers tremendous processing power while maintaining a competitive price and high performance. The highly integrated MSC8156 DSP device includes the following: Six StarCore® SC3850 DSP subsystems each running at up to 1 GHz with an architecture optimized for wireless applications. Two DDR2/3 memory controllers high-speed industry-standard memory interface. Multi-Accelerator Platform Engine for Baseband (MAPLE-B) supports hardware acceleration for Turbo decoding, Viterbi decoding, Fast Fourier Transform and Discrete Fourier Transform algorithm processing. High-Speed Serial Interface (HSSI) subsystem that supports — Two serial RapidIO interfaces — Two Gigabit serial Ethernet interfaces — One PCI-Express controller QUICC Engine RISC-based subsystem to guarantee reliable data transport over packet networks while significantly off loading such processing from the DSP cores that supports: — Two gigabit Ethernet controllers with RGMII and SGMII support — One SPI Four 256-channel time-division multiplexing (TDM) interfaces 16 bidirectional channels DMA controller UART interface I2C interface MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-1 Overview 1.1 Features The MSC8156 includes the following features: StarCore DSP subsystem. The DSP subsystem includes: — StarCore SC3850 core • Running at up to 1 GHz • Up to 8000 16-bit MMACS. A MAC operation includes a multiply-accumulate command with the associated data moves and a pointer update. • Backwards binary compatible with the SC140 and SC3400 architectures. • Data Arithmetic and Logic Unit (DALU) containing 4 ALUs, each capable of performing 2 16 × 16 multiply accumulate operations, effectively doubling the performance of convolution-based kernels relative to the SC3400 core • New instructions double the performance of complex and extended precision multiplication. • Address Generating Unit (AGU) containing 2 Address Arithmetic Units (AAU) • Up to six instructions executed in a single clock cycle: 4 DALU and 2 AGU instructions • Variable-length Execution Set (VLES) execution model. • 16 data registers, 40 bits each; 27 address registers, 32 bits each. • Hardware support for fractional and integer data types. • Four hardware loops with near-zero cycle overhead • Very rich 16-bit wide orthogonal instruction set. • Application specific instructions for Viterbi and Multimedia. • Special SIMD (Single instruction, multiple data) instructions working on 2-word or 4-byte operands packed in a register, enabling to perform 2 to 4 operations per instruction (8 to 16 operations per VLES) • New dedicated instructions accelerate FFTs enabling a 40% cycle count reduction and improved SNR • User and Supervisor privilege levels, supporting a protected SW model • New instructions and features to improve control code performance • Precise exceptions for memory accesses enabling good RTOS support and Soft Error corrections • Branch Target Buffer (BTB) for acceleration of change of flow operations — L1 ICache: • 32 Kbytes • 8 ways with 16 lines of 256 bytes per line • Multi-task support MSC8156 Reference Manual, Rev. 2 1-2 Freescale Semiconductor Features • Real-time support through locking flexible boundaries • Line pre-fetch capability • Software coherency support • Software pre-fetch support by core instructions — L1 DCache: • 32 Kbytes • 8 ways with 16 lines of 256 bytes per line • Capable of serving two data accesses in parallel (XA, XB) • Multi-task support • Real-time support through locking flexible boundaries • Software coherency support • Writing policy programmable per memory segment as either write-back or write-through • 0.25 Kbytes Write-back Buffer (WBB) • Six 64-bit entry WTB • Line pre-fetch capability • Software pre-fetch, synchronize, and flush support by core instructions — Unified L2 Cache/M2 Memory: • 512 Kbyte • 8 ways with 1024 indexes and a 64 byte line • Physically addressed • Dynamically configured as a DMA accessible M2 Memory • Maximum user flexibility for real time support through address partitioning of the cache • Support various write policies and methods to reduce cache inclusiveness • Multi-channel, two dimensional software pre-fetch support • Software coherency support with seamless transition from L1 cache coherency operation. — Memory management unit (MMU): • Highly flexible memory mapping capability • Provides virtual to physical address translation • Provides task protection • Supports multi-tasking • Supports precise interrupts. Enabling to have an open RTOS. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-3 Overview — Debug and Profiling Unit (DPU) block: • Supports the debugging and profiling of the platform in cooperation with the OCE Block • Supports various breakpoint and event counting options • Supports real-time tracing to the main memory with the Trace Write Buffer (TWB) — Extended programmable interrupt controller (EPIC) • 256 interrupts • 32 priority levels with NMI support — Two general-purpose 32-bit timers — Low-power design with the following modes of operation: • Wait processing state for peripheral operation • Stop processing state — ECC/EDC support. Multi Accelerator Platform Engine for Baseband (MAPLE-B) — Programmable System Interface • Software friendly buffer descriptor based handshake and task assignment. • Support for high priority and low priority tasks via multiple descriptor rings. • Processing elements management and scheduling. • Two master buses for data transfers from/to the system memory at total throughput up to 50 Gbps. • One slave bus for accessing MAPLE-B internal memories and registers. • Multi-Core Aware. • Interrupt or RapidIO Door Bell generation and/or status bit indication on job or multiple jobs completion. • System memory utilized only for input/output data, all the internal calculations are performed using MAPLE-B memories. — Turbo Decoding • Scalable architecture with 1, 2 or 4 Radix 4 dual-recursion engines. • Supports 3GPP-R6 turbo decoding as specified in 3GPP TS 25.212, section 4.2.3.2. • Supports 3GPP2 turbo decoding as specified in 3GPP2 C.S002, section 2.1.3.1.4.2. • Supports Wimax OFDMA turbo decoding as specified in IEEE® 802.16™-2004 standard and corrigendum IEEE P802.16-2004/Cor2/D2 standard, section 8.4.9.2.3. • Supports 3GLTE (Evolved UTRA) turbo decoding as specified in 3GPP TS 36.212, section 5.1.2.2. • Programmable Number of Iterations MSC8156 Reference Manual, Rev. 2 1-4 Freescale Semiconductor Features • Multiple stop conditions, including built in CRC check and A-Posteriori Quality Indication. • Programmable de-puncturing schemes including support for rate-de-matching in 3GPP (and 3G LTE). • Binary and Duo-Binary turbo codes. • Support for trellis termination bits and tail biting. • Decoding techniques using: Max Log Map or Linear Log Map (MAX*) including extrinsic factorization. • 8-bit soft symbol inputs with Hard or Soft decision outputs. — Viterbi Decoding • Supports 3GPP-R6 viterbi decoding as specified in 3GPP TS 25.212, section 4.2.3.1. • Supports 3GPP2 viterbi decoding as specified in 3GPP2 C.S002, section 2.1.3.1.4.1. • Supports Wimax OFDMA channel decoding as specified in IEEE 802.16-2004 and corrigendum IEEE P802.16-2004/Cor2/D2, section 8.4.9.2.1. • Supports 3GLTE (Evolved UTRA) channel decoding as specified in 3GPP TS 36.212, section 5.1.2.1. • Fully programmable polynomials • Programmable schemes for supporting various rates/puncturing cases (e.g. 1/2, 1/3). • Support for zero tailing. • Support for tail-bitting with multiple-iteration or WAVA* approaches. • 8-bit soft symbol inputs with Hard or Soft decision outputs. — FFT/iFFT and DFT/iDFT processing • Variable lengths FFT/iFFT processing of lengths 128, 256, 512, 1024 and 2048. • Variable lengths DFT/iDFT processing of the form 2k·3m·5n·12, up to 1536 points. • Mixed radix implementation using R2, R3, R4, R5 and R8 building blocks. • 16-bit I, 16-bit Q input, output and twiddles resolutions. • Input and output I/Q samples are interleaved in memory. • Internal twiddles memory. — CRC processing with the following features: • Four possible polynomials • CRC check or CRC calculation for block sizes of up to 128 Kb • Optional byte reverse CRC processing • CRC processing with throughput of up to 12 Gbps at 450 MHz MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-5 Overview — When it is not required, the MAPLE-B power can be disabled internally to reduce overall device power consumption. Chip-level arbitration and switching system (CLASS) — A full fabric that arbitrates between the DSP cores and other CLASS masters to the core M2 memory, shared M3 memory, DDR SDRAM controllers, MAPLE-B, and the device configuration control and status registers (CCSRs). — High bandwidth. — Non-blocking allows parallel accesses from multiple initiators to multiple targets. — Fully pipelined. — Low latency. — Per target arbitration highly optimized to the target characteristics using prioritized round-robin arbitration. — Reduces data flow bottlenecks and enables high-bandwidth internal data transfers. Internal memory. The 4608 Kbyte internal memory space includes: — 32 Kbyte L1 ICache per core. — 32 Kbyte L1 DCache per core. — 512 Kbyte unified L2 Cache / M2 Memory per core. — 1056 Kbyte shared M3 memory. 1024 Kbyte of M3 memory can be turned off to save power, if necessary, which reduces the M3 memory size to 32 Kbyte. — 96 Kbyte boot ROM accessible from the cores. Clocks — Three input clocks: • Input clock. • Two differential input clocks (one per each serial RapidIO PLL). — Five PLLs: • Three system PLLs • Two Serial RapidIO PLLs. — Clock ratios selected during reset via reset configuration pins. — Clock modes user-configurable after reset. Two DDR Controllers, each supporting: — Up to 400 MHz clock rate (800 MHz data rate). — Supports both DDR2 and DDR3 devices — Programmable timing supporting both DDR2 and DDR3 SDRAM (but not simultaneously) — Support for a 64-bit data interface (72 bits including ECC), up to 800 MHz data rate, for DDR2 and DDR3 — Support for a 32-bit data interface (40 bits including ECC), up to 800 MHz data rate, for DDR2 and DDR3 MSC8156 Reference Manual, Rev. 2 1-6 Freescale Semiconductor Features — Full ECC support for single-bit error correction and multi-bit error detection up to the maximum specified data rates for DDR2 and DDR3 — Two banks of memory via two chip selects. Each chip select supports up to 512 Mbytes, but the sum of the memory cannot exceed 512 Mbyte total (1 Gbyte total for the two controllers). — DRAM chip configurations from 64 Mbits to 4 Gbits with x8/x16 data ports — Support burst lengths of 4 beats for DDR2 devices — Support burst lengths of 4 (burst chop) and 8 beats for DDR3 devices — Sleep mode support for self-refresh SDRAM — On-die termination support — Supports auto refreshing — Support for both Unbuffered and Registered DIMMs DMA Controller — 32 unidirectional channels, providing up to 16 memory-to-memory channels. — Buffer descriptor programing model. — Up to 1024 buffer descriptors per channel direction provide a total of 32 Kbyte buffer descriptors. Buffer descriptors can reside in M2 or DDR memories. — Priority-based time-multiplexing between channels, using four internal priority groups with round-robin arbitration between channels on equal priority group. — Earliest deadline first (EDF) priority scheme that assures task completion on time. — Flexible channel configuration with all channels supporting all features. — A flexible buffer configuration, including: • Simple buffers • Cyclic buffers • Single address buffers (I/O device). • Incremental address buffers • Chained buffers • 1D to 4D buffers, optimized for video applications • 1D or 2–4D complex buffers, a combination of buffer types — Two external DMA request (DREQ) and two DONE signal lines that allow an external device to trigger DMA transfers. — High bandwidth — Optimized for DDR SDRAM High-Speed Serial Interface (HSSI) — Serial RapidIO® Subsystem • Two serial RapidIO ports supporting x1/x4 operation up to 3.125 Gbaud with a RapidIO messaging unit and two RapidIO DMA units. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-7 Overview • Each x1/x4 serial RapidIO endpoint operates at 1.25/2.5/3.125 Gbaud and complies with the following parts of Specification 1.2 of the RapidIO trade association interconnect specification: — Part I (input and output logical specifications) — Part II (message passing logical specification) — Part III (common transport specification) — Part VI (physical layer x1 LP-serial specification) — Part VIII (error management extension specification) • Each serial RapidIO port supports read, write, messages, doorbells, and maintenance accesses: — Small and large transport information field only — All priorities flow — Pass-through between the two ports that allows cascading devices using the serial RapidIO and enabling message/data path between the two serial RapidIO ports without core intervention. A message/data that is not designated for the specific device passes through it to the next device. • RapidIO Messaging Unit supports: — Two outbound message queues — Two inbound message queues — One outbound doorbell queue — One inbound doorbell queue — One inbound port-write queue • Each RapidIO DMA unit supports: — Four high-speed/high-bandwidth channels accessible by local and remote masters — Basic DMA operation modes (direct, simple chaining) — Extended DMA operation modes (advanced chaining and stride capability) — Programmable bandwidth control between channels — Up to 256 bytes for DMA sub-block transfers to maximize performance over the RapidIO interface — Three priority levels supported for source and destination transactions — PCI-Express Controller • Complies with the PCI Express™ Base Specification, Revision 1.0a • Supports root complex (RC) and endpoint (EP) configurations MSC8156 Reference Manual, Rev. 2 1-8 Freescale Semiconductor Features • • • 32- and 64-bit address support x4, x2, and x1 link support Supports accesses to all PCI Express memory and I/O address spaces (requestor only) • Supports posting of processor-to-PCI Express and PCI Express-to-memory write • Supports strong and relaxed transaction ordering rules • PCI Express configuration registers (type 0 in EP mode, type 1 in RC mode) • Baseline and advanced error reporting support • One virtual channel (VC0) • 256-byte maximum payload size (MAX_PAYLOAD_SIZE) • Supports three inbound general-purpose translation windows and one configuration window • Supports four outbound translation windows and one default window • Supports eight non-posted and four posted PCI Express transactions • Supports up to six priority 0 internal platform reads and eight priority 0 to 2 internal platform writes. (The maximum number of outstanding transactions at any given time is eight.) • Credit-based flow control management • Supports PCI Express messages and interrupts — Dual x4 SerDes Ports: • Port 1 supports x4 serial RapidIO interface or x1 serial RapidIO interface and two SGMII ports • Port 2 supports x1/x4 serial RapidIO interface or x1/x2/x4 PCI Express interface and two SGMII ports The QUICC Engine subsystem includes dual RISC processors and 48-Kbyte multi-master RAM to handle the Ethernet and SPI interfaces, thus off loading the tasks from the cores. The three communication controllers support: — Two Ethernet Controllers • Two Ethernet physical interfaces: — 1000 Mbps SGMII protocol using a 4-pin SerDes interface multiplexed through the HSSI SerDes port. — 1000 Mbps RGMII protocol • • • • • MAC-to-MAC connection in all modes Full-duplex operations Full-duplex flow control feature (IEEE Std. 802.3x™) Receive flow control frames Detection of all erroneous frames as defined by IEEE Std. 802.3®-2002 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-9 Overview • • • • • • • • • • • • • Multi-buffer data structure Diagnostic modes: Internal and external loopback mode and echo mode Serial management interface MDC/MDIO Transmitter network management and diagnostics Receiver network management and diagnostics VLAN Support IEEE Std. 802.1p/Q™ QoS Eight Tx/Rx queues Queuing decision for IP/MAC/UDP filtering based on MAC destination addresses, IP destination address, and UDP destination port Programmable maximum frame length Enhanced MIB statistics Optional shift of data buffer by two bytes for L3 header alignments Extended features — IP header checksum verification and calculation — Parsing of frame headers and adding a frame control block at the frame head, containing L3 and L4 information for CPU acceleration — Serial peripheral interface (SPI) • Four-signal interface (SPIMOSI, SPIMISO, SPICLK and SPISEL) • Full-duplex operation • Works with 32-bit data characters, or with a range from 4-bit to 16-bit data characters•Supports back-to-back character transmission and reception • Supports master or slave SPI mode • Supports multiple-master environment • Continuous transfer mode for automatic scanning of a peripheral • Maximum clock rate is (QUICC Engine clock)/8 in master mode and (QUICC Engine clock)/4 in slave mode (not in back-to-back operation) • Independent programmable baud rate generator • Programmable clock phase and polarity • Local loopback capability for testing • Open-drain outputs support multimaster configuration • Communication with Ethernet PHY for configuration and status (MIIMCOM-MII management communication protocol) • Multi-MIIMCOM environment with up to 32 PHYs • Programmable clock gap between two characters in master mode MSC8156 Reference Manual, Rev. 2 1-10 Freescale Semiconductor Features • Controlled by the DSP cores and the QUICC Engine RISC processors according to user configuration. TDM — Backward-compatible with the MSC8102/MSC812x/MSC814x TDM interface — All the four TDM modules together support up to 1K time-slots for receive and 1K time-slots for transmit — Up to four independent TDM modules: • Independent receive and transmit mode. Independent transmitter and receiver. Transmitter input clock, output data, and frame sync can be configured as either input or output. Up to 256 transmit channels and up to 256 receive channels. Receiver input clock, input data, and input frame sync. • Shared sync and clock mode. Two receive and two transmit links share the same clock and frame sync. The sync can be configured as either input or output. Up to 128 transmit channels and 128 receive channels. • Shared data link. Up to four full-duplex data links can operate as either transmit or receive. All links have the same clock and frame sync. Each link supports up to 128 channels. — Word size of 2, 4, 8, or 16-bit. All the channels share the same size. — Hardware A-law/μ-law conversion — Up to 62.5 Mbps data rate for all TDM modules — Up to 16 Mbyte per channel buffer (granularity 8 bytes), where A/μ law buffer size has double size (16-byte granularity) — Separate or shared interrupts for receive and transmit with two programmable receive and two programmable transmit thresholds for double buffering — Each channel can be programmed as active or inactive — Support either 0.5 ms (4 frames) or 1 ms (8 frames) latency — Glueless interface to E1/T1 framers I/O Interrupt Concentrator consolidates all chip maskable interrupt and non-maskable interrupt sources and routes them to INT_OUT, NMI_OUT, and the cores. UART — Bit rate up to 6.25 Mbps — Two signals for transmit data and receive data — Full-duplex operation — Standard mark/space non-return-to-zero (NRZ) format — 13-bit baud rate selection — Programmable 8-bit or 9-bit data format — Separately enabled transmitter and receiver — Programmable transmitter output polarity — Separate receiver and transmitter interrupt requests — Receiver framing error detection MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-11 Overview — Hardware parity checking — 1/16 bit-time noise detection — Single-wire and loop operations Timers — Two general-purpose 32-bit timers for RTOS support per SC3850 core — Four TMR modules, each with the following features: • Four 16-bit timers • Cascadable timers • Count up/down • Programmable count modulo • Count once or repeatedly • Counters are preload able • Compare registers can be preloaded • Counters can share available inputs • Separate prescaler for each counter • Each counter has capture and compare capability • Can use one of the following clock sources: system clock, TDM clock input, or external clock input — Eight software watchdog timer (SWT) modules Eight programmable hardware semaphores, locked by simple write access without need for read-modify-write operation by the DSP core. Virtual interrupts — Generation of 32 virtual interrupts by a simple write access — Generation of virtual NMI by a simple write access I2C interface — Two-wire interface — Multi-master operational — Calling address identification interrupt — START and STOP signal generation/detection — Acknowledge bit generation/detection — Bus busy detection — Programmable clock frequency — On-chip filtering for spikes on the bus General-purpose input/output (GPIO) ports: — 32 GPIO ports — Each GPIO port can either serve the on-device peripherals or act as a programmable I/O pin — Sixteen GPIO pins can be configured as external interrupt inputs MSC8156 Reference Manual, Rev. 2 1-12 Freescale Semiconductor Block Diagram — All ports are bidirectional — All ports are set as GPIO inputs at system reset — All port values can be read while the pin is connected to an internal peripheral — All ports have open-drain output capability Boot interface options: — Ethernet — Serial RapidIO interface — I 2C — SPI JTAG. Test Access Port (TAP) and Boundary Scan Architecture designed to comply with IEEE Std. 1149.1™. Reduced power dissipation — Very low power CMOS design — Low-power standby modes — Optimized power management circuitry (instruction-dependent, peripheral-dependent, and mode-dependent) — Technology: The MSC8156 device is manufactured using CMOS 45 nm SOI technology. 1.2 Block Diagram A block diagram of the MSC8156 is shown in Figure 1-1. DDR Interface 64/32-bit JTAG DDR Interface 64/32-bit DDR Controller DDR Controller I/O-Interrupt Concentrator M3 Memory 1056 Kbyte UART Clocks Timers CLASS Reset High-Speed Serial Interface DFT/ IDFT FFT/ IFFT DMA MAPLE-B 32 Kbyte 32 Kbyte L1 L1 ICache DCache Turbo/ Viterbi 4 TDMs SC3850 DSP Core QUICC Engine Subsystem DMA RMU Dual RISC Processors SGMII SPI Ethernet Ethernet DMA Serial Serial PCI RapidIO RapidIO Expr x2 512 Kbyte L2 Cache / M2 Memory SerDes 1 Six DSP Cores at 1 GHz Four TDMs 256-Channels each SPI RGMII RGMII Note: The arrow direction indicates master or slave. SerDes 2 Semaphores Virtual Interrupts Boot ROM I2C Other Modules x4 3.125 Gbaud PCI-EX x1/x2/x4 Two SGMII x4 3.125 Gbaud Two SGMII Figure 1-1. MSC8156 Block Diagram MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-13 Overview 1.3 Architecture The MSC8156 architecture is carefully optimized to achieve the maximum channel density for a given device area, power, and cost. Also, the MSC8156 is a derivative of the same system internal platform Freescale uses to implement new DSPs. Therefore, Freescale can swiftly spin off DSP devices from the same platform and provide the customer with familiar modules and programming models. 1.4 StarCore SC3850 DSP Subsystem Figure 1-2 shows the block diagram of the StarCore SC3850 DSP subsystem, which contains the SC3850 core, the ICache, the DCache, the MMU for task and memory protection and address translation and two write buffers. In addition, there is an interrupt controller, two timers, a debug and profiling unit, and a trace write buffer. The SC3850 core fetches instructions through a 128-bit wide program bus (P-bus), and it fetches data through two 64-bit wide data buses (Xa-bus and Xb-bus). After a brief overview of the DSP platform, this section presents a subsection on each part of the platform. 128 bits master bus to CLASS 128 bits slave bus from CLASS Interrupts 512 Kbyte L2 Cache / M2 Memory IQBus EPIC Timer DQBus TWB Task Protection Debug Support OCE30 DPU SC3850 Core 32 Kbyte Instruction Cache WriteThrough Buffer (WTB) 32 Kbyte Data Cache WriteBack Buffer Address Translation (WBB) MMU P-bus Xa-bus Xb-bus Figure 1-2. StarCore SC3850 DSP Subsystem Block Diagram Instruction/data read accesses are performed as follows: Non-cacheable instructions/data are read from the target memory (for example, M2 memory). Cacheable instructions/data are read from the ICache/DCache. If they do not reside in the cache (a miss), they are first fetched directly from the target memory. MSC8156 Reference Manual, Rev. 2 1-14 Freescale Semiconductor StarCore SC3850 DSP Subsystem There are three write policies when writing data outside the core: Cacheable write-back. Information is written only to the cache. The modified cache lines are written to main memory only when they are replaced. The subsequent write-back buffer is combined with the write-allocate write-miss policy in which the required lines are loaded to the cache whenever a write-miss occurs. Cacheable write-through. Both the cache and the higher-level memory are updated during every write operation. In the StarCore SC3850 DSP subsystem, the write-through buffer is a non-write allocate buffer. Therefore, a cacheable write-through access does not update the cache unless there is a hit. Non-cacheable. The write is direct to memory and is not written to the cache. A hazard mechanism ensures that read accesses read updated data. The DSP subsystem supports a Real-Time Operating System (RTOS) as follows: Virtual-to-physical address translation in the MMU. Two privilege levels: user and supervisor. Memory protection. Precise exceptions upon an MMU violation enabling dynamic memory management. The embedded programmable interrupt controller (EPIC) handles up to 256 interrupts with 32 priorities, 222 of which are external platform inputs. 1.4.1 Enhancements Table 1-1 summarizes the major improvements and benefits of the SC3850 DSP core and subsystem. For enhancement details, see the SC3850 DSP Core Reference Manual. Table 1-1. SC3850 DSP Core and Subsystem Major Benefits No. Feature Type DSP/Control Highlights Benefit • Eight 16 × 16 multiplications per cycle • Complex operations • Mixed/Double precision multiplications support Double the throughput of convolution based kernels, complex arithmetics, and mixed/double precision multiplications • Parallel condition computation Accelerate decision making in control code Both • • • • HW loop stall removal BTB enlargement Deeper speculation depth Misc. stall reductions Significant control cycle improvements and a friendlier compiler target Both • Low latency • Unified program and data Significant out-of-the-box improvement 1 Dual Multiply ALU DSP 3 Condition Handling instruction set architecture Control 4 Microarchitecture core stall reduction 5 Private L2 cache MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-15 Overview Table 1-1. SC3850 DSP Core and Subsystem Major Benefits (Continued) Type DSP/Control No. Feature Highlights Benefit 6 Cache instruction set architecture Both • Cache fetch • Cache flush/sync • Cache allocation Significant increase in core utilization Simplified cache coherency management 7 Microarchitecture cache stall reduction Both • Write stall hiding • Read contention buffer Significant increase in core utilization 1.4.2 StarCore SC3850 DSP Core The SC3850 core is a flexible, programmable DSP core that handles compute-intensive communications applications, providing high performance, low power, and high code density. It is fully binary-backward compatible with the MSC8101, MSC8102, MSC8103, MSC8112, MSC8113, MSC8122, MSC8126, MSC8144, and MSC8144E DSPs, and it introduces many new features and enhancements. The SC3850 core includes a data arithmetic logic unit (DALU) that contains four arithmetic logic units (ALUs). The core also includes an address generation unit (AGU) that contains two address arithmetic units. The SC3850 efficiently deploys the variable-length execution set (VLES) execution model, allowing grouping of up to 4 DALU and 2 AGU instructions in a single clock cycle without sacrificing code size for unused execution slots. Each ALU has two 16-bit × 16-bit multipliers and a 40-bit accumulation capability, a 40-bit parallel barrel shifter and a 40-bit adder/subtractor. Each ALU performs one MAC operation per clock cycle, so a single core running at 1 GHz can perform up to 8 GMACS. Each AAU in the AGU can perform one address calculation and drive one data memory access per cycle. Data access widths are flexible from 8 to 64 bits. The AGU can support a throughput of up to 128 Gbps between the core and the memory. Arithmetic operations use both fractional and integer data types, enabling the user to choose an individual style of code development or to use coding techniques derived from an application-specific standard. Parts of many algorithms use data with reduced width such as 8 or 16 bits. For better efficiency, the SC3850 core also supports single-instruction multiple-data (SIMD) instructions working on 2-word or 4-byte operands packed in a register. This packing allows the core to perform 2 to 4 operations per instruction (a maximum of 10 to 18 operation per VLES including AGU operations). A new dual 20-bit packed data format enables you to accumulate two multiplication results from the dual multiply ALU into a single register with guard bits. Alternatively, accumulation of both multiplies can be combined into a single 40-bit accumulator (dot product). In addition, the SC3850 supports special instructions to support special operations, such as Viterbi and video applications. MSC8156 Reference Manual, Rev. 2 1-16 Freescale Semiconductor StarCore SC3850 DSP Subsystem Although the SC3850 is a DSP, the rich instruction set also gives special attention to control code, making the SC3850 core ideal for applications that embed DSP and communications operations as general control code. Among the features that support control code are the interlocked pipeline that solves dependency hazards. The powerful SC3850 compiler translates code written in C/C++ into parallel fetch sets and maintains high code density and/or high performance by taking advantage of these features and the compiler-friendly instruction set. Even compiled pure control code yields results with high code density. The SC3850 core supports general micro-controller capabilities, making it a suitable target for advanced operating systems. These capabilities include support for user and supervisor privilege levels that enable (with the off-core MMU) a protected software model implementation. Precise exceptions for memory accesses allow implementation of advanced memory management schemes and soft error correction. The SC3850 core includes a dynamic branch prediction mechanism that contains a 48-entry branch target buffer (BTB) to improve performance by reducing the change of flow latency. 1.4.3 L1 Instruction Cache The instruction channel, which comprises the instruction cache (ICache) and the instruction fetch unit (IFU), provides the core with instructions that are stored in higher-level memory. The ICache operates at core speed and stores recently accessed instructions. Whenever an addressed instruction (from the cacheable memory area) is found in the array, it is immediately made available to the core (ICache hit). When the required address is not found in the array, it is loaded to the ICache from the external (off-subsystem) memory by the IFU (ICache miss). The IFU operates in parallel with the core to implement a HW line prefetching algorithm that loads the ICache with information that has a high probability of being needed soon. This action reduces the number of cache misses. When an instruction is addressed from a non-cacheable area, the IFU fetches it directly to the XP bus of the core without writing it to the cache. 1.4.4 L1 Data Cache The data channel comprises the data cache (DCache), the data fetch unit (DFU), the data control unit (DCU), the write-back buffer (WBB), and the write-through buffer (WTB). This two-way channel reads and writes information from the core to/from higher-level memory (M2 or L2) and control memory (internal blocks and external peripherals) spaces. The DCache, which operates at core speed, keeps the recently accessed data. When addressed data (from a cacheable memory area) is found in the array, it is immediately made available to the core (DCache hit) in a read and updated if written to. When the required address is not found in the array, a DCache miss occurs, and the DFU loads the data to the DCache from the external (off-subsystem) memory and drives it to the core. The DFU operates in parallel with the core and implements a HW line prefetch algorithm that loads the DCache with information that has a high probability of being needed soon, thus reducing the number of data cache misses. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-17 Overview The channel differentiates between cacheable and non-cacheable addresses. For cacheable addresses, it supports the write-back allocate and write-through writing policies. The selection is made on an address segment basis, as programmed in the MMU. The data channel supports the arrangement of data in big-endian formats. Core data types can be byte, word, long (4 bytes), or 2 long (8 bytes) wide. 1.4.5 L2 Unified Cache/M2 Memory The L2 cache processes data and program accesses to the external M3/DDR memory. Caching the accesses requested by the L1 subsystem reduces the average penalty of accessing the high latency M3. The L2 cache includes a slave arbitration and tag unit, cache logic and arrays, along with a write buffer for write back and write through accesses, fetch logic to fetch data from the off platform memory upon a miss or a non-cacheable access, and a master arbiter that arbitrates between the different internal units. 1.4.6 Memory Management Unit (MMU) The MMU performs three main functions: Memory hardware protection for instruction and data access with two privilege levels (user and supervisor). High-speed address translation from virtual to physical address to support memory relocation. Cache and bus controls for advanced memory management Memory protection increases the reliability of the system so that errant tasks cannot ruin the privileged state and the state of other tasks. Program and data accesses from the core can occur at either the user or supervisor level. The MMU checks each access to determine whether it matches the permissions defined for this task in the memory attributes and translation table (MATT). If it does not, the access is killed and a memory exception is generated. 1.4.7 Debug and Profiling Unit (DPU) The on-chip emulator (OCE) and the debug and profiling unit (DPU) are hardware blocks for debugging and profiling. The OCE performs the following tasks: Communicates with the host debugger through the SoC JTAG test access port (TAP) controller Enables the SC3850 core to enter the debug processing state upon a varied set of conditions to: — Single step — Execute core commands inserted from the host debugger to upload and download memory and core registers. MSC8156 Reference Manual, Rev. 2 1-18 Freescale Semiconductor MAPLE-B Sets up to six address-related breakpoints on either PC or a data address Sets a data breakpoint on a data value, optionally combined with a data address Generates the PC tracing flow, optionally filtered to a subset of events such as only jumps/returns from subroutine, interrupts, and so on. The DPU has the following characteristics: Enables parallel counting of subsystem events in six dedicated counters, from more than 40 events Filters, processes, and adds task ID and profiling information on the OCE PC trace information 1.4.8 Extended Programmable Interrupt Controller The internal extended programmable interrupt controller (EPIC) manages internal and external interrupts. The EPIC handles up to 256 interrupts, 222 of which are external subsystem inputs. The rest of the interrupts serve internal subsystem conditions. The external interrupts can be configured as either maskable interrupts or non-maskable interrupts (NMIs). The EPIC can handle 33 levels of interrupt priorities, of which 32 levels are maskable at the core and 1 level is NMI. 1.4.9 Timer The timer block includes two 32-bit general-purpose counters with pre-loading capability. It counts clocks at the core frequency. It is intended mainly for operating system use. 1.5 MAPLE-B The MAPLE-B is a baseband algorithm accelerator for Turbo, Viterbi, FFT/iFFT, and DFT/iDFT algorithms The MAPLE-B consists of a programmable-system-interface (PSIF) that is a programmable controller with DMA capabilities and three accelerators attached to it using an internal interface: Turbo/Viterbi Processing-Element (TVPE) FFT Processing-Element (FFTPE) DFT Processing-Element (DFTPE) CRC Processing-Element (CRCPE) The PSIF has two 64-bit wide MBus master ports used to transfer input and output data to and from system memory and a 64-bit MBus Slave port that allows any core to access its internal memories. Through this port, the cores can perform any of the following functions: Place buffer-descriptors in the PSIF internal memory. Access the MAPLE-B parameter RAM. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-19 Overview Access the PSIF internal registers using the SBus. Access the process element (PE) configuration registers. 1.6 Chip-Level Arbitration and Switching System (CLASS) The CLASS is the central internal interconnect system for the MSC8156 device. The CLASS is a non-blocking, full-fabric interconnect that allows any initiator to access any target in parallel with another initiator-target couple. The CLASS uses a fully pipelined low latency design. The CLASS demonstrates per-target prioritized round-robin arbitration, highly optimized to the target characteristics. The CLASS operates at 500 MHz, and is separate from the SC3850 core frequency to provide an optimized trade-off between power dissipation, memory technology, and miss latency. Controlling the intradevice data flow, the CLASS reduces bottle necks and permits high bandwidth fully pipe-lined traffic. The CLASS initiators are: Six SC3850 DSP subsystems Two MAPLE-B ports HSSI Peripheral group (TDM, QUICC Engine subsystem, and JTAG) Two DMA ports The CLASS targets are: 1.7 Configuration control and status registers (CCSRs) MAPLE-B Three core ports (each shared by two cores) Two DDR controllers M3 memory M3 Memory The 1056 KB M3 memory can be used for both program and data and eliminates the need for an external memory in a variety of applications, thus reducing board space, power dissipation, and cost. The M3 memory has a 128-bit wide port and runs at 500 MHz using dense memory technology. The M3 memory supports partial, full, and burst accesses. The M3 memory includes hidden refresh with a low probability of conflict with core accesses, and it supports burstable accesses. If the full M3 memory is not required, power can be turned off to 1024 MB to reduce power consumption. MSC8156 Reference Manual, Rev. 2 1-20 Freescale Semiconductor Clocks 1.8 Clocks The MSC8156 device has three input clocks: A shared input clock. Two differential input clock for HSSI dual-SerDes port interface. The MSC8156 device includes five PLLs: Three system PLLs to support the different internal system clock requirements required by the peripherals and interfaces. Two SerDes PLLs. The ratios between the system clocks are selected during reset via reset configuration pins. The clock ratios are selected from a fixed table called clock modes table. The clock modes can be changed by the user after reset. 1.9 DDR Controllers (DDRC1 and DDRC2) The DDR SDRAM interface is useful when the channel storage size is relatively big (as for a modem) and also when more channels are required to supplement the internal memory. When the MSC8156 device works with channel data stored in the DDR SDRAM, the DMA controller can swap the data to and from the M2 memory, thus enabling the L1 DCache to fetch from M2 memory instead of accessing the DDR SDRAM memory directly. Fetch latency is thus reduced, significantly improving the average clock cycles required per task. The M2 and M3 memories are large enough to accommodate the number of channels processed by the DSP subsystems for a variety of packet telephony and wireless transcoding application, such as basic G.711 voice coding, G.729 or G.723 premium voice coding, AMR, and EFR. However, it is not large enough for such memory-consuming applications as a V.90 modem, especially when high channel densities are required. For these applications, the MSC8156 can interface with JEDEC-compliant DDR2 or DDR3 SDRAM devices. A DDR SDRAM can be used not only as an extension for the M2 and M3 memories but also to store code. In a typical application, infrequently used code is either swapped into M2/M3 memory when needed or executed directly from an external DDR SDRAM. The DDR SDRAM interface frequency is decoupled from the DSP subsystem frequency, and it has a separate PLL to deliver the required frequency according to the bandwidth requirements. It is 16/32 bits wide and can interface with up to two 16-bit wide devices, or four 8-bit wide devices. It has a separate strobe per byte. Two logical banks (chip select) are supported, each with logical programmable bank start and end addresses. A bank size of up to 128 MB is supported. Programmable parameters allow for a variety of SDRAM organizations and timings. Using data mask bits, the SDRAM controller enables partial write operations to bytes in a word or words in a burst. Optional ECC protection is provided for the DDR SDRAM data bus. Using ECC, the memory controller detects all two-bit errors and corrects all single-bit errors within the 32-bit data bus. For ECC, an additional ECC DDR SDRAM device is usually MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-21 Overview needed. Both the data DDR SDRAM and the ECC DDR SDRAM should have the same CAS latency. There is page retention for up to four simultaneous open pages, and the number of clocks for which the pages are kept open is programmable. Pages are replaced using a pseudo-LRU replacement algorithm. 1.10 DMA Controller The DMA controller enables data movement and rearrangement while the DSP cores work independently. The DMA controller transfers blocks of data to and from the M2 memory, M3 memory, and the DDR SDRAM controller. It has 16 high-speed bidirectional channels and can be commanded from each of the DSP subsystems, as well as from an off-device initiator through the RapidIO or PCI using BDs. All channels are capable of complex data movement and advanced transaction chaining. Operations such as descriptor fetches and block transfers are initiated by each of the sixteen channels. Full duplex operation allows the DMA controller to read data from one target and store it in its internal memory while concurrently writing another buffer to another a target. This capability can be used extensively when data is read from the M3 memory and written into the M2 memory. The bidirectional DMA controller reads from one of the CLASS target ports while writing to the second one. The DMA controller supports smart arbitration algorithms such as round robin, bandwidth control, and a timer-based mechanism using an earliest deadline first (EDF) algorithm. 1.11 High Speed System Interface The High Speed Serial Interface (HSSI) is a 8-port (two x4 SerDes PHYs) serial communications subsystem that supports the following multiplexed serial interface combinations: Two x1/x4 Serial RapidIO ports One x1/x4 Serial RapidIO ports, one x1 Serial RapidIO port, and two SGMII ports One x1/x4 Serial RapidIO port and a PCI Express port One x1 Serial RapidIO port, two SGMII ports, and a PCI Express port To support these interfaces, the HSSI includes the following blocks: One RapidIO controller with two ports and one RapidIO Messaging Unit (RMU) One PCI Express controller with a bridge to the OCN fabric. One 8-port OCN fabric with two DMA controllers to connect between the RapidIO and PCI Express controllers and the system CLASS module Two SRIO port controllers to link the RMU and OCN fabric to the SerDes ports. Two SerDes interfaces to connect to the external signal interface. These communication interfaces allow the cores to execute the data processing code and be relieved from the data transfer and handling overhead for processing serial data flow. MSC8156 Reference Manual, Rev. 2 1-22 Freescale Semiconductor High Speed System Interface Figure 1-3 shows a block diagram of the HSSI. HSSI to MBus Bridge HSSI OCNDMA0 DMA to OCN Bridge OCN to MBus Bridge DMA to OCN Bridge Port 2 Port 3 Port 6 Port 7 Port 1 OCN Fabric Port 0 Port 4 Port 5 PCI Express to OCN Bridge RMU SerDes 1 SRIO0 PHY1 PCI Express SRIO1 SerDes 2 Serial RapidIO x4 Interface at 3.125 Gbaud or two SGMII PHY2 QUICC Engine Subsystem QUICC Engine Subsystem OCN to MBus Bridge OCNDMA1 Serial RapidIO x4 Interface at 3.125 Gbaud or PCI-Express Figure 1-3. HSSI Block Diagram 1.11.1 Serial RapidIO Subsystem RapidIO is a high-performance, point-to-point, low-pin-count, packet-switched system-level interconnect that can be used in a variety of applications as an open standard. The RapidIO architecture provides a rich variety of features including high data bandwidth, low-latency capability, and support for high-performance I/O devices, as well as providing message-passing and software-managed programming models. The Serial RapidIO subsystem consists of a Serial RapidIO controller supporting two ports and a RapidIO Message Unit (RMU). The MSC8156 device can either connect directly to a host or to a Serial RapidIO switch. Each port in the switch is point-to-point connected to the MSC8156 device through a serial RapidIO link. This link typically carries packets in both directions. Packets ready for processing are transported from the host to the MSC8156, and the processed packets are transported from the MSC8156 back to the host. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-23 Overview 1.11.1.1 Serial RapidIO and Host Interactions The Serial RapidIO controller directs the traffic flow between a host processor and the MSC8156 device through the RMU. The host and the MSC8156 communicate as follows: The host may send messages to the destination MSC8156 device, which are sent back to the host after processing along with a short doorbell interrupt to indicate that the packets have been processed. Messages eliminate the latency of read accesses. The host writes to the MSC8156 and the MSC8156 writes to the host. In addition, messages can be used in applications where the host does not know the internal memory structure of the target DSP. The host may directly access the data in the MSC8156 memory for both reads and writes. It handshakes with the software running on a DSP core through a ring of descriptors in MSC8156 memory. The host may access the data in MSC8156 memory for both reads and writes, but instead of maintaining a ring of descriptors in the MSC8156 memory, it uses buffer descriptors (BDs) that are messaged from the DSP core to the host. The host may put all the data buffers into its memory and have the MSC8156 access the data. Any initiator on the RapidIO system can access any internal memory space as well as the DDR SDRAM using NREAD, NWRITE, MESSAGE, and DOORBELLS. In addition, it can configure the RapidIO messaging and configuration unit using MAINTENANCE packets. In the receive path, the following steps occur: 1. The clock is recovered using a dedicated PLL. 2. The data is deserialized, 8b/10b decoded, checked for the correct CRC, and passed to the higher-level protocol logic. 3. The control symbols are stripped and used to interface with the other peers without core intervention. 4. NWRITE packets are written to the destination memory. 5. MESSAGES are directed to the RapidIO messaging unit from which they are forwarded to their destination queue/memory location. 6. RESPONSE messages are associated with their respective NREAD and go back to the internal initiator that initiated the transaction. On the transmit path, packets are buffered. The CRC is calculated and arbitration is performed between packet data and control symbols. The data stream then passes through the 8b/10b encoder and the serializer and transmitted on the RapidIO link. The RapidIO endpoints support link initialization and training according to the RapidIO specification. The buffers in the RapidIO MSC8156 Reference Manual, Rev. 2 1-24 Freescale Semiconductor High Speed System Interface endpoints support packets of up to 256 bytes and four priority levels for both the receive and the transmit. 1.11.1.2 RapidIO Messaging Unit (RMU) Operation The messaging unit is divided into five parts: Inbound message controllers. Outbound message controllers. Inbound doorbell controllers. Outbound doorbell controller. Inbound maintenance controller. The message receiver performs the following steps: 1. Filters the received packets into multiple queues (controllers) based on selected (programmable) fields in the RapidIO message header (for example, mailbox number and letter number). This filtering mechanism can be used for filtering the messages to the different SC3850 cores or filtering the messages according to their size to the right queue. 2. Writes the message to a receive buffer pre-allocated by the SC3850 core. 3. Post-increments the buffer write pointer. 4. Optionally interrupts the SC3850 core. The core can then read the buffer, process the message data, and update the read pointer of the buffer by writing it to the messaging controller. The doorbell receiver functions in much the same way except for filtering according to a selected field in the header only. The message transmitter performs the following steps: 1. The SC3850 core sets the registers in the controller with the message parameters (read pointer, message length, destination, buffer size, available messages.) — Optionally, the SC3850 core initiates only a pointer to a BD queue. — The messaging controller reads the BD that includes the message parameters. 2. The controller reads data from memory according to predefined parameters. 3. The controller encapsulates the message and transfer it to a RapidIO endpoint. 4. The RapidIO endpoint sends the message. 5. Acknowledges are transferred from the RapidIO endpoint to the RMU. 6. Upon completion of a message the controller can: — Send an interrupt to the core, waiting for a new sets of parameters. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-25 Overview — Proceed to the next message in queue according to the previous parameters. — Proceed to the next BD in queue. The doorbell transmitter performs the following steps: 1. The SC3850 core sets the registers in the controller with the doorbell parameters (doorbell data, destination) 2. The controller encapsulates the doorbell and transfers it to the RapidIO endpoint. 3. The RapidIO endpoint sends the message. 4. Acknowledges are transferred from the RapidIO endpoint to the RMU. 5. Upon completion of a message the controller can send an interrupt to the SC3850 core and wait for a new sets of parameters. 1.11.2 PCI Express The PCI Express controller connects to a 2.5-GHz serial interface configurable for up to a x4 interface. As both an initiator and a target device, the PCI Express interface is capable of high-bandwidth data transfer and is designed to support next generation I/O devices. When selected and enabled by the device configuration, the PCI Express interface performs link width negotiation and exchanges flow control credits with its link partner after it completes its reset sequence. Once link autonegotiation is successful, the controller is available to transfer data. The PCI Express controller can be configured to operate as either a PCI Express root complex (RC) or an endpoint (EP) device. An RC device connects the core processor/memory subsystem to I/O devices while an EP device typically denotes a peripheral or I/O device. In RC mode, a PCI Express type 1 configuration header is used; in EP mode, a PCI Express type 0 configuration header is used. As an initiator, the PCI Express controller supports memory read and write operations with a maximum transaction size of 256 bytes. In RC mode, the controller also supports configuration and I/O transactions. As a target interface, the PCI Express controller accepts read and write operations to local memory space. When configured as an EP device, the PCI Express controller accepts configuration transactions to the internal PCI Express configuration registers. Message generation and acceptance are supported in both RC and EP modes. Locked transactions and inbound I/O transactions are not supported. MSC8156 Reference Manual, Rev. 2 1-26 Freescale Semiconductor High Speed System Interface 1.11.3 OCN-DMA Controllers The MSC8156 includes two dedicated DMA controllers that transfer blocks of data between the serial RapidIO controller and the PCI Express controller and the local address space independent of the DSP cores. This offloads the data management processing from the cores. Each dedicated DMA controller offers the following features: Four high-speed/high-bandwidth channels accessible by local and remote masters Basic DMA operation modes (direct, simple chaining) Extended DMA operation modes (advanced chaining and stride capability) Cascading descriptor chains Misaligned transfers Programmable bandwidth control between channels Three priority levels supported for source and destination transactions Interrupt on error and completed segment, list, or link An Address Translation Management Unit (ATMU) with 10 local access address windows. The ATMU translates a request address into a logical device source/destination. 1.11.4 OCN Fabric The On-Chip Network (OCN) fabric is a non-blocking high speed interconnect used for embedded system devices. The MSC8156 DSP HSSI uses an 8-port OCN to connect between the Serial RapidIO Controller, the PCI Express controller, the two supporting DMA controllers and the dual SerDes PHYs. The OCN requires no programming and provides a seamless interface for the HSSI. 1.11.5 SRIO Port Controller Modules (SRIOn) The SRIO0 and SRIO1 modules provide an interface bridge between the RMU and the two SerDes PHYs. The units require no programming, but transfers through the SRIO modules can be tracked by the performance monitor. 1.11.6 SerDes PHY Interfaces The HSSI includes two 4-port SerDes interfaces that are multiplexed between the two Serial RapidIO ports, the PCI Express port, and the two SGMII ports from the QUICC Engine subsystem. Multiplexing configuration is done using the HSSI general configuration registers. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-27 Overview 1.12 QUICC Engine Subsystem The MSC8156 QUICC Engine module is a versatile communications engine based on a subset of the MPC83XX QUICC Engine subsystem that integrates several communications peripheral controllers. The QUICC Engine module combines interface hardware and RISC firmware to support multimedia packet operations. The QUICC Engine module includes control registers and an interrupt controller to allow the DSP cores to control and monitor operations. These registers configure certain global options and create specific commands related to the communication protocols. The cores issue commands by writing to the QUICC Engine module Command Register (QECMDR). These commands are used to initialize the RISC processors and each specific communications controller while the RISC engines are running. The QUICC Engine module includes various blocks to provide the system with an efficient way to handle data communication tasks, including: Two RISC processors, each of which provide: — One instruction per clock — Code execution from internal ROM or multi-port RAM — 32-bit RISC architecture — Up to sixteen internal software timers maintained in the multi-port RAM — Interface with the core processors through a 48-KB dual-port RAM and virtual DMA channels for each interface controller — Ability to handle serial protocols and virtual DMA Multi-initiator 48-KB multi-port RAM 48-KB instruction RAM (IRAM) Serial DMA channel Three full-duplex communications controllers: — Communications controllers 1 and 3 support IEEE 802.3/Fast Ethernet controllers Interrupt controller Multiplexer and timers logic Baud-rate generators The internal clocks (RCLK/TCLK) for each communications controller can be programmed to use either an external or internal source. The rate of these clocks can be up to one-half of the QUICC Engine module clock frequency. However, the ability of an interface to support a sustained bit stream depends on the protocol settings and other factors. MSC8156 Reference Manual, Rev. 2 1-28 Freescale Semiconductor QUICC Engine Subsystem Figure 1-4 shows the MSC8156 QUICC Engine module block diagram. CLASS 32-Bit RISC Processor ROM 32-Bit RISC Processor SDMAs Multi-Initiator RAM 48 KB ROM IRAM Peripheral Bus Ethernet Controller Ethernet Controller RGMII/SGMII RGMII/SGMII Figure 1-4. QUICC Engine Module Block Diagram 1.12.1 Ethernet Controllers The two identical gigabit Ethernet controllers are based on the enhanced PowerQUICC II™ Ethernet controller with network statistics. The Ethernet controllers support two standard MAC-PHY interfaces to connect to an external Ethernet transceiver: 1000 Mbps SGMII with SerDes support 1000 Mbps RGMII (full duplex only) The Ethernet transmitter requires little core intervention. After the software driver initializes the system, the Ethernet controller activates its transmit scheduler. As a result, the controller starts polling the first transmit buffer descriptor (TxBD) in one of the eight transmit queues as chosen by the scheduler. The TxBD ring is polled every 512 transmit clocks. If TxBD[R] bit is set, the Ethernet controller begins moving transmit buffers from memory to the Tx virtual FIFO. The Ethernet MAC transmitter takes data from Tx virtual FIFO and transmits the data through the appropriate interface (RGMII/SGMII) to the physical media. The transmitter, once initialized, runs until the end-of-frame (EOF) condition is detected, unless a collision within the collision window occurs (in half-duplex mode) or an abort condition is encountered. The Ethernet Controller receiver can perform pattern matching, data extraction, Ethernet type recognition, CRC checking, VLAN detection, short frame checking, and maximum frame-length checking. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-29 Overview 1.12.2 Serial Peripheral Interface (SPI) The serial peripheral interface (SPI) allows the exchange of data with other devices containing an SPI. The SPI also communicates with peripheral devices such as EEPROMs, real-time clocks, A/D converters, and ISDN devices. The SPI is a full-duplex, synchronous, character-oriented channel that supports a four-wire interface (receive, transmit, clock, and slave select). The SPI block consists of transmitter and receiver sections, an independent baud-rate generator, and a control unit. The transmitter and receiver sections use the same clock, which is derived from the SPI baud rate generator in master mode and generated externally in slave mode. During an SPI transfer, data is sent and received simultaneously. 1.13 TDM The TDM interface connects gluelessly to common telecommunication framers, such as T1 and E1. It can interface with multiple buses, such as H-MVIP/H.110 devices, TSI, and codecs such as AC-97. It provides a total 4096 channels that are timing compliant with their clock, sync and data signals. The TDM is composed of eight identical and independent modules. Each TDM module can be configured in one of the following modes: Independent receive and transmit mode. The transmitter has an input clock, output data and a frame sync that can be configured as either input or output. There are up to 256 transmit channels and up to 256 receive channels. The receiver has an input clock, input data, and an input frame sync. Shared sync and clock mode. Two receive and two transmit links share the same clock and the frame sync: The sync can be configured as either input or output. Each of the two transmit and receive links supports up to 128 channels. Shared data link mode. Up to four full-duplex data links, which operate as either transmit or receive, have the same clock and frame sync. Each link supports up to 128 channels. If all are used, the TDM modules can support up to 500 Mbps (250 Mbps Tx and 250 Mbps Rx) with a clock frequency up to 62.5 MHz (62.5 Mbps × 4 TDMs in each direction). Each channel can be 2, 4, 8, or 16 bits wide. All the channels share the same width during the TDM operation. When the slot size is 8 bits wide, the selected channels can be defined as A-law/µ-law. These channels are converted to 13/14 bits, which are padded into 16 bits and stored in memory. Each receive and transmit channel can be active or not. An active channel has a configurable buffer located in either in M2, M3, or DDR memory. The TDMs support either 0.5 ms (4 frames) or 1 ms (8 frames) latency. The buffers of one TDM interface are the same size and are filled/emptied at the same rate. A-law/u-law buffers are filled at twice the rate, so their buffer size is twice that of the transparent channels. For receive, the buffers of specific TDM interface fill at the same rate and therefore share the same write pointer relative to the beginning of the buffer. When the write pointer reaches a predetermined threshold, an interrupt to the SC3850 core is generated. The SC3850 core empties the buffers while the TDM continues to fill the buffers until a second MSC8156 Reference Manual, Rev. 2 1-30 Freescale Semiconductor Global Interrupt Controller (GIC) threshold line is reached and then an additional interrupt is generated to the SC3850 core. The SC3850 core empties the data between the first and the second threshold lines. Both the first and the second threshold lines are programmable. Using these threshold lines, the SC3850 core and the TDM can perform a double-buffer handshake. For transmit, the SC3850 core fills all the buffers of a TDM interface, and the TDM empties them. A similar method employing two threshold line interrupts is used for a double-buffer handshake between the SC3850 core and the TDM. You can program the interrupt as either shared for receive and transmit or separated. 1.14 Global Interrupt Controller (GIC) The GIC receives the external and internal NMI and maskable interrupt sources and routes them to the SC3850 cores, to the INT_OUT lines, or to the NMI_OUT lines. 1.15 UART The UART is used mainly for debugging. It provides a full-duplex port for serial communications by transmit data (TXD) and receive data (RXD) lines. During reception, the UART generates an interrupt request when a new character is available to the UART data register. During transmission, the UART generates an interrupt request when its data register can be written with new character. When accepting an interrupt request, an SC3850 core or external host should read the UART status register to identify the interrupt source and service it accordingly. 1.16 Timers The MSC8156 device contains 16 identical 16-bit timers divided into four groups. Each group (TMR) contains four identical 16-bit timers, each with a prescaler, a counter, a load register, a hold register, a capture register, two compare registers, two status registers, and a control register. In addition, each SC3850 subsystem includes two general purpose 32-bit timers. The MSC8156 device also includes 8 software watchdog timers. Each of the software watchdog timers can be used by any of the cores within MSC8156 as well as by an external host. 1.17 Hardware Semaphores There are eight coded hardware semaphores. Each semaphore is an 8-bit register with a selective write protection mechanism. When the register value is zero, it is writable to any new value. When the register value is not zero, it is writable only to zero. Each SC3850 core/host/task has a unique predefined lock number (8-bit code). When trying to lock the semaphore, the SC3850 core writes its lock number to the semaphore and then reads it. If the read value equals its lock number, the semaphore belongs to that host and is essentially locked. An SC3850 core/host/task releases the semaphore by writing a 0 to it. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-31 Overview 1.18 Virtual Interrupts The global interrupt controller generates 26 virtual interrupts including 16 maskable interrupts, 8 VNMIs, and 2 interrupts for external interrupt and NMI outputs (INT_OUT and NMI_OUT, respectively). A virtual interrupt/VNMI is generated via a write access to the Virtual Interrupt Generation Register (VIGR) by one of the SC3850 cores or an external host CPU. 1.19 I2C Interface The inter-integrated circuit (I2C) controller enables the MSC8156 to exchange data with other I2C devices, such as microcontrollers, EEPROMs, real-time clock devices, A/D converters, and LCD displays. The I2C controller uses a synchronous, multi-initiator bus that can connect several integrated circuits on a board. Two signals, serial data (SDA) and serial clock (SCL), carry information between the integrated circuits connected to it. 1.20 GPIOs The MSC8156 has 32 general-purpose I/O (GPIO) ports that are multiplexed as either GPIO ports or dedicated peripheral interface ports. As GPIOs, each port is configured as an input or output (with a register for data output that is read or written at any time) by GPIO configuration registers. These registers also select the alternate functions and enable the open-drain function when ports are configured as outputs. In addition to the GPIO configuration registers, two general configuration registers (GPUER and GIER) also control the functionality when the ports are configured as inputs. The default configuration out of reset selects the primary GPIO input function with internal pull-ups. However, the ports are also disabled. GIER is used to enable the individual input ports and GPUER can disable the pull-ups for each port. Sixteen of the GPIs can also be configured as IRQ inputs. If configured as output, the GPIO ports can also be configured as open-drain (that is, configured in an active low wired-OR configuration on the board). In this mode, an output drives a zero voltage but goes to tri-state when driving a high voltage. The dedicated MSC8156 peripheral functions multiplexed with the GPIO ports are grouped to maximize the usefulness of the ports in the greatest number of MSC8156 applications. 1.21 Boot Options The boot program in the internal boot ROM initializes the MSC8156 after it completes a reset sequence. The MSC8156 device can boot from an external host through the serial RapidIO interface or download a user boot program through the I2C, SPI, or Ethernet ports. MSC8156 Reference Manual, Rev. 2 1-32 Freescale Semiconductor JTAG 1.22 JTAG The dedicated user-accessible test access port (TAP) is fully compatible with IEEE Std. 1149.1. The MSC8156 device supports circuit-board test strategies based on this standard. For details on the standard, refer to the standard documentation. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-33 Overview 1.23 Developer Environment Freescale supplies a complete set of DSP development tools for the MSC8156 device. The tools provide easier and more robust ways for designers to develop optimized DSP systems. Whether the application targets a 3G-LTE, TD-SCDMA, or WiMAX system, the development environment gives the designers everything they need to exploit the advanced capabilities of the MSC8156 architecture. 1.23.1 Tools The MSC8156 tool components include the following: Integrated development environment (IDE). Easy-to-use graphical user interface and project manager for configuring and managing multiple build configurations. C compiler with in-line assembly. The developer can generate highly optimized DSP code by exploiting the StarCore multiple-ALU architecture, with parallel fetch sets and high code density. Librarian. The developer can create application-specific DSP libraries for modularity. Linker. The developer can efficiently produce executables from object code and partition memory according to the application architecture; the linker supports code overlay. Multi-Core Debugger. Seamlessly integrated real-time, non-intrusive, multi-mode, multi-core, and multi-DSP debugger handles highly optimized DSP algorithms. The developer can choose to debug in source code, assembly code, or mixed mode. Supports RTOS-aware debugger. Royalty-free RTOS. Included with package and includes a graphical user interface (GUI) called Kernel Aware that shows task information, interrupts, and other processing elements. Software Simulator. Full chip simulation (FCS) that allows the developer to design an application and run it on the simulator before running it on the silicon. FCS is integrated under integrator developer environment (IDE), the simulator provides customers with tools to create projects and debug them as they would on silicon (high speed simultaneous transfers). In addition, there is an SC3850 subsystem performance accurate (PACC) simulator that is approximately 95% cycle accurate. Profiler. The developer can analyze and identify program design inefficiencies. High Speed Run Control. USB TAP high speed host-target interface allows users to program in Flash memory, ROM, and cache. Host Platform Support. Microsoft Windows and Solaris. Development Board. The application development system (ADS). Kit for MSC8156. A complete system for developing and debugging real-time hardware and software. MSC8156 Reference Manual, Rev. 2 1-34 Freescale Semiconductor Example Applications 1.23.2 Application Software Freescale offers a broad range of DSP applications through its third-party application software partners; these applications target IP telephony, telephony modem, wireless and multimedia transcoding, and wireless base stations. Applications and software modules are listed in Table 1-2. Table 1-2. Application Software Modules Application Baseband Modules WiMAX solution supporting Wave 1 features with future extension to Wave 2 and beyond. 3G-LTE evolving kernels library. Optimized FFT kernels, including matrix multiplication, and so forth. Device Drivers and Example Code MAPLE-B driver, DMA driver, serial RapidIO driver, TDM driver, Ethernet driver, UART driver, memory allocation, and interrupt handling. StarCore Libraries Rich set of StarCore software libraries, including: Math (Part 1 and 2), Signal, Complex vector, Control function, Frequency domain, Filter, Common, Image Processing, Communication, and Matrix. . 1.24 Example Applications This section describes seven use cases. 1.24.1 Use Case 1: 3G-LTE Basic System The system shown in Figure 1-5 can be used as a 10 MHz FDD LTE system supporting 2 × 2 UL MIMO, 2 × 2 DL MIMO, 50 Mbps DL, 25 Mbps UL. MPC8526 GigE x1 Serial RapidIO RLC, MAC MSC8156 x1 Serial RapidIO x4 Serial RapidIO RF Uplink, Downlink Figure 1-5. Use Case 1: 3G-LTE Basic System MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-35 Overview 1.24.2 Use Case 2: 3G-LTE System The system shown in Figure 1-6 can be used as an LTE 10 MHz FDD, 2 × 4 UL MIMO, 4 × 2 DL MIMO, 50 Mbit/s DL, 25 Mbps UL, 3 sectors. MPC8526 Serial RapidIO Switch x1 Serial RapidIO GigE RF x4 Serial RapidIO x4 Serial RapidIO x4 Serial RapidIO MSC8156 MSC8156 MSC8156 DDR DDR DDR Figure 1-6. Use Case 2: 3G-LTE System 1.24.3 Use Case 3: 3G-LTE System The system shown in Figure 1-7 can be used as an LTE 20 MHz FDD, 2 × 2 DL MIMO, 2 × 2 UL MIMO, 100 Mbit/s DL, 50 Mbps UL, 1 sector. MPC85xx GigE x1 Serial RapidIO DDR DDR MSC8156 MSC8156 x1 Serial RapidIO x4 Serial RapidIO x4 Serial RapidIO x4 Serial RapidIO RF Figure 1-7. Use Case 3: 3G-LTE System MSC8156 Reference Manual, Rev. 2 1-36 Freescale Semiconductor Example Applications 1.24.4 Use Case 4: TD-SCDMA System The system shown in Figure 1-8 can be used as a TD-SCDMA 1.6 MHz TDD, 8 × 8 no MIMO, 6 carriers. MPC85xx GigE x1 Serial RapidIO Bridge Serial RapidIO Switch x4 Serial RapidIO x4 Serial RapidIO x4 Serial RapidIO MSC8156 MSC8156 DDR DDR RF CPRI Note: Two devices may be required to support 6 carriers supporting chip-rate and symbol rate, depending on the system configuration. Figure 1-8. Use Case 4: TD-SCDMA System 1.24.5 Use Case 5: WiMAX Basic System The system shown in Figure 1-9 can be used as a WiMAX 10 MHz TDD, 2 × 2 MIMO, 1 sector. DDR MPC8526 MSC8156 Bridge GigE x1 Serial RapidIO RLC, MAC, MAC-hs x4 Serial RapidIO x4 Serial RapidIO x4 Serial RapidIO CPRI RF Uplink, Downlink Figure 1-9. Use Case 5: WiMAX Basic System MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 1-37 Overview 1.24.6 Use Case 6: WiMAX System The system shown in Figure 1-10 can be used as a WiMAX 10 MHz TDD, 4 × 4 MIMO, 4 sectors. MSC8156 MPC8572 x1 Serial RapidIO MSC8156 x1 Serial RapidIO DDR GigE x4 Serial RapidIO Serial RapidIO Switch MPC8572 DDR GigE x4 Serial RapidIO Bridge x4 Serial RapidIO CPRI RF x4 Serial RapidIO Figure 1-10. Use Case 6: WiMAX System 1.24.7 Use Case 7: WCDMA Basic System The system shown in Figure 1-11 can be used as a WCDMA 5 MHz FDD, 2 × 1, no MIMO, 3 sectors. DDR MPC8526 MSC8156 FPGA GigE x1 Serial RapidIO RLC, MAC x4 Serial RapidIO x4 Serial RapidIO Uplink, Downlink x4 Serial RapidIO CPRI RF IF, Routing, Spread/Despread, DUC/DDC Figure 1-11. Use Case 7: WiMAX System MSC8156 Reference Manual, Rev. 2 1-38 Freescale Semiconductor SC3850 Core Overview 2 The SC3850 digital signal processing (DSP) core features an innovative architecture that addresses the key market needs of DSP applications, especially in the fields of wireline and wireless infrastructure, subscriber communication, and multimedia packet transfer. This flexible DSP core supports compute-intensive applications by providing high performance, low power, efficient compile, and high code density. Each high-performance core is binary compatible with the SC140 core used in the MSC81xx DSP family, the SC1400 core, and the SC3400 core used in the MSC8144 family and delivers up to 8000 16-bit MMACS using an internal 1 GHz clock at 1 V. A MAC operation includes a multiply-accumulate command with the associated data moves and a pointer update. The StarCore SC3850 DSP core and subsystem is an evolution of the StarCore® SC3400 DSP core and subsystem that enhances many of the original core and subsystem components and optimizes overall performance and memory hierarchy to target future application needs. Optimizations target: Improved control/compiled code performance Better operation of DSP intensive kernels Minimizing memory system stalls to increase core use. Note: See the SC3850 DSP Core Reference Manual for a detailed description of core functionality and instruction set. The manual is only available with a signed non-disclosure agreement. Contact your local Freescale sales office or representative for details. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 2-1 SC3850 Core Overview 2.1 Core Architecture Features Key features of the SC3850 DSP core include the following: • Main core resources — 4 Data ALU execution units — 2 integer and address generation units — Sixteen 40-bit data registers with 8 guard bits, freely accessible by Data ALU instructions — Sixteen 32-bit address registers, freely accessible by Address generation instructions • Instruction set — 16-bit instruction set, expandable to 32 and 48 instructions — High orthogonality of operands — Rich instruction set for DSP and control features — A very good compiler target • Very high execution parallelism — Up to six instructions executed in a single clock cycle, statically scheduled — Variable Length Execution Set (VLES) execution model — Up to 4 Data ALU instructions and 2 Memory access/integer instructions per cycle • Data type support — Byte (8-bit), word (16-bit) and long (32-bit) data widths, supported by instructions and memory moves — Both Integer (signed and unsigned) and fractional data types — Packed fractional complex data type — Several packed data types (2 to 4 objects on the same register) for SIMD operations • Very high numerical throughput for DSP operations — Each Data ALU can perform two 16x16 multiplications per cycle (total of 8 multiplications for all ALUs), which can be used for: – Dot product acceleration (40 + (16x16) + (16x16)) – SIMD2 multiplication and accumulation into two 20-bit register portions – Acceleration of Complex multiplication – Acceleration of extended precision multiplication — Some performance summary metrics are listed in Table 2-1: Table 2-1. Multiplication Throughput Summary Figures for the SC3850 Operation Precision Instructions per Operation Result Throughput (4 ALUs) Real multiply 16 × 16 0.5 8 16 × 32 1 4 32 × 32 2 2 16 × 16 2 2 16 × 32 4 1 Complex multiply MSC8156 Reference Manual, Rev. 2 2-2 Freescale Semiconductor Core Architecture Features • • • • • • • • Application specific instructions for acceleration the following algorithms — FFT — Video processing — Viterbi — Baseband operations High throughput memory interface — Unified, 32-bit byte addressable memory space — Dual Harvard architecture that permits one 128-bit program access and two 64-bit data accesses per cycle — Core to data memory throughput of up to 16 Giga Bytes per second, at 1 GHz core frequency — Support of Big Endian, Little Endian and Mixed endian memory policies Powerful address generation model — Zero overhead modulo arithmetic support for address pointers — Several Advanced pipeline — 12 stage, fully interlocked pipeline — No stalls for memory load to register, MAC operation, and result storage to memory — Speculation of conditionally executed instructions and change of flow execution paths Control features — Zero-overhead hardware loops with up to four levels of nesting — A Branch Target Buffer (BTB) for accelerating execution of change of flow instructions OS support — Precise memory exception support, for advanced OS — User and Supervisor privilege levels, supporting a protected, task oriented execution model — Full support for memory protection and address translation in the off-core MMU — Exception and Normal stack pointer for software stack support — Low task switch overhead using wide stack save and restore instructions Rich set of real-time debug capabilities through an On-Chip Emulator (OCE) — Real-time PC, data address and data breakpoint capabilities — Up to six hardware breakpoint channels, and unlimited debugger-enabled SW breakpoints — Single stepping — Externally forced instructions in debug mode by the host processor — Precise detection of PC breakpoints — PC tracing with filtering and compression options — Support for Nexus IEEE-ISTO 5001-2003 standard with off-core ready modules Low Power Design — Low-power Wait and Stop instructions — A very low power design — Fully static logic MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 2-3 SC3850 Core Overview 2.2 StarCore SC3850 Core Architecture The SC3850 core contains a Data Arithmetic and Logic Unit (DALU) with four ALUs, and an Address Generation Unit (AGU) that includes two Address Arithmetic Units (AAU). The SC3850 efficiently deploys the variable-length execution set (VLES) execution model, allowing to group up to 4 DALU and 2 AGU instructions in a single clock cycle without sacrificing code size for execution slots that are not used. Figure 2-1 shows a block diagram of the SC3850 DSP core. Data and Program Memory Program Sequencer 64 XAD AGU Register File 64 XBD 32 XBA XAA 32 DALU Register File Internal bus OCE 128 XPD XPA 32 BTB 2 AAUs PSEQ 4 ALUs (2 16 × 16 MAC each) BMU AGU DALU Instruction bus Resource Stall Unit (RSU) SC3850 DSP Core Figure 2-1. SC3850 DSP Core Block Diagram The SC3850 uses dual-multiply ALUs supporting two 16-bit × 16-bit multipliers that can accumulate results into 40-bit wide destination data registers. In addition, it has a 40-bit parallel barrel shifter. Each ALU performs two MAC operations per clock cycle, so that a single core running at up to 1 GHz can perform 8 billion multiply-accumulates per second (GMACS). This rate is for both 16-bit operands, 8-bit operands, or mixed 8-bit and 16-bit operands. Each AAU in the AGU can perform one address calculation and drive one data memory access per cycle. Data access widths are flexible and can be between 8 to 64 bits wide. The AGU can support a throughput of up to 128 Gbps between the core and the memory. The program sequencer manages the instruction fetching from the program memory, dispatching the VLES to the execution units, performing change of flow (COF) and HW loop management MSC8156 Reference Manual, Rev. 2 2-4 Freescale Semiconductor StarCore SC3850 Core Architecture and exception processing. It includes a 48-entry branch target buffer which is used to accelerate the execution of COF operation. The Resource Stall Unit (RSU) detects dependency hazards and resource requirements as defined by the code semantics. It then activates the internal operand bypass logic or inserts stalls as needed. The SC3850 supports general microcontroller capabilities that make it a suitable target for advanced operating systems, including support for user and supervisor privilege levels that, with the MMU, enable implementation of a protected software model. The SC3850 supports precise exceptions for program and data accesses, allowing designs to implement advanced memory management schemes and soft error correction. The SC3850 also includes a 48-entry Branch Target Buffer (BTB) that improves performance by reducing the change of flow latency. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 2-5 SC3850 Core Overview MSC8156 Reference Manual, Rev. 2 2-6 Freescale Semiconductor 3 External Signals The MSC8156 external signals are organized into functional groups. Table 3-1 lists the functional groups and references the table that gives a detailed listing of signals within each group. Table 3-1. MSC8156 Functional Signal Groupings Functional Group Detailed Description Power and ground Table 3-3 on page 3-4 Clock Table 3-4 on page 3-6 Reset and Configuration Table 3-5 on page 3-6 DDR Memory Controllers Table 3-6 on page 3-10 SerDes Multiplexers (Serial RapidIO controllers, PCI Express interface, and SGMII signals) Table 3-7 on page 3-11 TDM and Ethernet Table 3-8 on page 3-16 Serial peripheral interface (SPI) Table 3-9 on page 3-20 GPIOs and maskable Interrupts Table 3-10 on page 3-20 Timers Table 3-11 on page 3-25 UART Table 3-12 on page 3-26 I2C Table 3-13 on page 3-26 External DMA Interface Table 3-14 on page 3-27 NMI/INT_OUT/NMI_OUT Table 3-15 on page 3-28 OCE module and JTAG Test Access Port Table 3-16 on page 3-29 Some signals are only sampled during the power-on reset sequence; most of these signal lines are are used by other modules and subsystems during normal operation. Signal multiplexing is determined at the following three levels: I/O Multiplexing. TDM channels and RGMII channels sharing. Selected during power-on reset by the GE1/GE2 bits in the high part of the Reset Configuration Word (see Chapter 5, Reset for details). Ethernet selections (RGMII/SGMII) are configured by the Ethernet registers (see the QUICC Engine Block Reference Manual with Protocol Interworking for details). SerDes Multiplexing. Serial RapidIO interfaces, PCI Express interface, and SGMII sharing on the 8-lane SerDes interface. Configured by the Reset Configuration Word (see Chapter 5, Reset for details). MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-1 External Signals GPIO Multiplexing. GPIOs, IRQs, I2C, SPI, DMA external request interface, Timers, and UART sharing. Configured by GPIO configuration registers (see Chapter 22, GPIO for details). The values of the GE1/GE2 RCW bits determine the sharing of signal lines between the TDM interfaces and the RGMII signals for Ethernet controllers 1 and 2. Table 3-2 lists the signal groups supported by each of the available multiplexing modes. Table 3-2. Ethernet/TDM Multiplexing by GE1/GE2 Bit Values RCW[GE1] Value RCW[GE2] Value 0 Interfaces TDM0 TDM1 TDM2 TDM3 GE1 RGMII GE2 RGMII 0 Available Available Available Available Unavailable Unavailable 0 1 Unavailable Unavailable Available Available Unavailable Available 1 0 Available Available Unavailable Unavailable Available Unavailable 1 1 Unavailable Unavailable Unavailable Unavailable Available Available The PCI Express, serial RapidIO interfaces, and the Ethernet SGMIIs share the two SerDes interfaces. Access to the SerDes interface blocks is configured via the RCW bits (see Chapter 5, Reset for details). The thirty-two GPIO ports have configurable functionality. Sixteen of the GPIO lines can be configured as IRQ inputs through the GPIO configuration registers; four of these lines can also be configured as the DMA external interface. Fifteen of the other sixteen GPIO lines are multiplexed with other interface units including the SPI, timers, UART, and I2C signals. The specific function is selected through configuration of the GPIO registers (see Chapter 22, GPIO for details). Figure 3-1 summarizes the various MSC8156 external signal multiplexing options. MSC8156 Reference Manual, Rev. 2 3-2 Freescale Semiconductor MSC8156 Device 1.0 V 1.5 V 1.8 V 2.5 V M1VREF, M2VREF GND GNDRIOPLL CLKIN CLKOUT → → → → → → → → ← PORESET HRESET SRESET STOP_BS → ↔ ↔ → INT_OUT ← NMI → NMI_OUT ← I/O Mode 1 I/O Mode 0 Power and Ground DDR Memory Controllers Clocks Resets Interrupts GE2_RD2 GE2_TD2 GE2_RD3 GE2_GTX_CLK GE2_RD0 GE2_TD3 TDM0RCK TDM0RSN TDM0RDT TDM0TCK TDM0TSN TDM0TDT ↔ ↔ ↔ ↔ ↔ ↔ TDM0/ Ethernet Controller 2 GE2_RD1 GE2_RX_CTL GE2_TX_CLK GE2_RX_CLK GE2_TD1 GE2_TD0 TDM1RCK TDM1RSN TDM1RDT TDM1TCK TDM1TSN TDM1TDT ↔ ↔ ↔ → ↔ ↔ TDM1/ Ethernet Controller 2 GE1_TD0 GE1_TD2 GE1_TD1 GE1_TD3 TDM2RCK TDM2RSN TDM2RDT TDM2TCK ↔ ↔ ↔ → TDM2TSN ↔ TDM2TDT ↔ TDM2/ Ethernet Controller 1 TDM3RCK TDM3RSN TDM3RDT TDM3TCK TDM3TSN TDM3TDT ↔ ↔ ↔ → ↔ ↔ TDM3/ Ethernet Controller 1 GPIO17/SPI_SCK GPIO18/SPI_MOSI GPIO19/SPI_MISO GPIO20/SPI_SL GPIO30/I2C_SCL GPIO31/I2C_SDA TCK TMS TDI TDO TRST EE0 EE1 ← → ← ↔ ↔ ↔ ↔ ↔ ↔ ↔ → → → ← → → ← GE1_TX_CTL GE1_TX_CLK GE1_GTX_CLK GE1_RD1 GE1_RD0 GE1_RD2 GE1_RX_CLK GE1_RD3 GE2_TX_CTL GE1_RX_CTL GE_MDC GE_MDIO SerDes Multiplexers Serial RapidIO Controllers/PCI Express/Serial Ethernet GPIO Dedicated Ethernet SPI I2C Timers JTAG/Debug UART DDR Controller 1 → → ↔ → ↔ ↔ → → → → → → → ↔ ↔ → → ← M1A[15–0] M1BA[2–0] M1DQ[63–0] M1DM[8–0] M1DQS[8–0] M1DQS[8–0] M1CK[0–2] M1CK[0–2] M1CKE[0–1] M1RAS M1CAS M1WE M1CS[0–1] M1ECC[0–7] M1MDIC[0–1] M1ODT[0–1] M1APAR_OUT M1APAR_IN ← ← ← ← ← ← → → ← ← → → ← ← → → ← ← → → SR1_REF_CLK SR1_REF_CLK SR1_IMP_CAL_RX SR1_IMP_CAL_TX SR1_RXD0 SR1_RXD0 SR1_TXD0 SR1_TXD0 SR1_RXD1 SR1_RXD1 SR1_TXD1 SR1_TXD1 SR1_RXD2/SG1_RX SR1_RXD2/SG1_RX SR1_TXD2/SG1_TX SR1_TXD2/SG1_TX SR1_RXD3/SG2_RX SR1_RXD3/SG2_RX SR1_TXD3/SG2_TX SR1_TXD3/SG2_TX ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ GPIO0/IRQ0 GPIO1/IRQ1 GPIO2/IRQ2 GPIO3/IRQ3/DRQ1 GPIO4/IRQ4/DDN1 GPIO5/IRQ5 GPIO6/IRQ6 GPIO7/IRQ7 GPIO8/IRQ8 GPIO9/IRQ9 GPIO10/IRQ10 GPIO11/IRQ11 GPIO12/IRQ12 GPIO13/IRQ13 GPIO14/IRQ14/DRQ0 GPIO15/IRQ15/DDN0 GPIO16 GPIO21 GPIO22 GPIO23/TMR0 GPIO24/TMR1 GPIO25/TMR2 GPIO26/TMR3 GPIO27/TMR4 GPIO28/UART_RXD GPIO29/UART_TXD SerDes Multiplexer 1 Note: See the individual signal description tables for details about individual power supplies and grounds. DDR Controller 2 M2A[15–0] M2BA[2–0] M2DQ[63–0] M2DM[8–0] M2DQS[8–0] M2DQS[8–0] M2CK[0–2] M2CK[0–2] M2CKE[0–1] M2RAS M2CAS M2WE M2CS[0–1] M2ECC[0–7] M2MDIC[0–1] M2ODT[0–1] M2APAR_OUT M2APAR_IN SerDes Multiplexer 2 SR2_REF_CLK SR2_REF_CLK SR2_IMP_CAL_RX SR2_IMP_CAL_TX SR2_RXD0/PE_RXD0 SR2_RXD0/PE_RXD0 SR2_TXD0/PE_TXD0 SR2_TXD0/PE_TXD0 SR2_RXD1/PE_RXD1 SR2_RXD1/PE_RXD1 SR2_TXD1/PE_TXD1 SR2_TXD1/PE_TXD1 SR2_RXD2/PE_RXD2/SG1_RX SR2_RXD2/PE_RXD2/SG1_RX SR2_TXD2/PE_TXD2/SG1_TX SR2_TXD2/PE_TXD2/SG1_TX SR2_RXD3/PE_RXD3/SG2_RX SR2_RXD3/PE_RXD3/SG2_RX SR2_TXD3/PE_TXD3/SG2_TX SR2_TXD3/PE_TXD3/SG2_TX Sampled at PORESET deassertion RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7 RC8 RC9 RC10 RC11 RC12 RC13 RC14 RC15 RC16 RCW_SRC2 RCW_SRC1 RCW_SRC0 Dedicated signals: RC17/RCW_LSEL0, RC18/RCW_LSEL1, RC19/RCW_LSEL2, RC20/RCW_LSEL3, RC21 Figure 3-1. MSC8156 External Signals MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-3 External Signals 3.1 Power Signals Table 3-3. Power and Ground Inputs Nominal Voltage Signal Name Symbol VDD VDD M3VDD VDDM3 MVDD VDDM PLL0_AVDD VDDPLL1 PLL1_AVDD VDDPLL1 PLL2_AVDD VDDPLL1 SXPVDD1 VDDSXP1 SXPVDD2 VDDSXP2 SXCVDD1 VDDSXC1 SXCVDD2 VDDSXC2 SR1_PLL_AVDD VDDPLL1 SR2_PLL_AVDD VDDPLL1 1.0 V 1.0 V (Differential) Description Power for Core Subsystems 0–5 A dedicated well-regulated power source for core subsystems 0–5. Provide an extremely low impedance path to the VDD power rail and adequate external decoupling capacitors. Power for M3 Memory A dedicated well-regulated power source for 1 Mbyte of the M3 memory. Provide an extremely low impedance path to the VDD power rail and adequate external decoupling capacitors. This input can be disabled when not used to reduce system power requirements. When this input is disabled, 32 Kbyte of M3 memory remains active. Power for MAPLE-B Subsystem A dedicated well-regulated power source for the MAPLE-B subsystem. Provide an extremely low impedance path to the VDD power rail and adequate external decoupling capacitors. This input can be disabled when not used to reduce system power requirements. System PLL 0 Power A dedicated well-regulated power for the system Phase Lock Loops (PLLs). System PLL 1 Power A dedicated well-regulated power for the system Phase Lock Loops (PLLs). System PLL 2 Power A dedicated well-regulated power for the system Phase Lock Loops (PLLs). Serial RapidIO Interface 1 Pad Power A dedicated well-regulated power for the Serial RapidIO interface 1 pad circuitry. Serial RapidIO Interface 2 Pad Power A dedicated well-regulated power for the Serial RapidIO interface 2 pad circuitry. Serial RapidIO Interface 1 Core Power A dedicated well-regulated power for the Serial RapidIO interface 1 core circuitry. Serial RapidIO Interface 2 Core Power A dedicated well-regulated power for the Serial RapidIO interface 2 core circuitry. Serial RapidIO PLL 1 Power A dedicated well-regulated power for the system Phase Lock Loops (PLLs). Serial RapidIO PLL 2 Power A dedicated well-regulated power for the system Phase Lock Loops (PLLs). MSC8156 Reference Manual, Rev. 2 3-4 Freescale Semiconductor Power Signals Table 3-3. Power and Ground Inputs (Continued) Nominal Voltage Signal Name 1.5 V or 1.8 V GVDD1 VDDDDR1 GVDD2 VDDDDR2 M1VREF M1VREF M2VREF M2VREF NVDD VDDIO QVDD VDDPLL0 VSS GND SR1_PLL_AGND GNDRIO1PLL SR2_PLL_AGND GNDRIO2PLL SXCVSS1 GNDSXC1 SXCVSS2 GNDSXC2 SXPVSS1 GNDSXP1 SXPVSS2 GNDSXP2 GVDD1 × 0.5 V GVDD2 × 0.5 V 2.5 V Symbol 0 V (GND) Note: Description SSTL IO Driver Power (1.5 V or 1.8 V) A dedicated power source for the DDR controller 1 DRAM interface buffers. Provide adequate external decoupling capacitors. The external decoupling capacitors recommendations are listed in the MSC8156 Technical Data Sheet. SSTL IO Driver Power (1.5 V or 1.8 V) A dedicated power source for the DDR controller 2 DRAM interface buffers. Provide adequate external decoupling capacitors. The external decoupling capacitors recommendations are listed in the MSC8156 Technical Data Sheet. SSTL Reference Power A reference power level for the DDR controller 1 memory interface. SSTL Reference Power A reference power level for the DDR controller 2 memory interface. Input/Output Power The power source for the external I/O signal lines. Provide adequate external decoupling capacitors. The external decoupling capacitors recommendations are listed in the MSC8156 Technical Data Sheet. Input/Output Power The power source for the external clock, reset, OCE, and JTAG signal lines. Provide adequate external decoupling capacitors. The external decoupling capacitors recommendations are listed in the MSC8156 Technical Data Sheet. System Ground An isolated ground for the internal processing logic and I/O buffers. This connection must be tied externally to all chip ground connections, except GNDSXC and GNDSXP. RapidIO Interface 1 PLL Ground Ground dedicated for RapidIO Interface 1 PLL use. The connection should be provided with an extremely low-impedance path to ground. RapidIO Interface 2 PLL Ground Ground dedicated for RapidIO interface 2 PLL use. The connection should be provided with an extremely low-impedance path to ground. RapidIO Interface 1 Core Ground A ground for the RapidIO port 1 Core circuitry. RapidIO Interface 2 Core Ground A ground for the RapidIO port 2 Core circuitry. RapidIO Interface 1 Pad Ground A ground for the RapidIO port 1 Pad circuitry. RapidIO Interface 2 Pad Ground A ground for the RapidIO port 2 Pad circuitry. The external decoupling capacitors recommendations are listed in the MSC8156 Technical Data Sheet. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-5 External Signals 3.2 Clock Signals Table 3-4. Clock Signals Signal Name CLKIN Input CLKOUT 3.3 Type Signal Description Clock In Primary clock input to the MSC8156 PLLs. Output Clock Out The bus clock output. Reset and Configuration Signals Table 3-5. Reset and Configuration Signals Signal Name Type Signal Description Input Power-On Reset When asserted, this line causes the MSC8156 to enter power-on reset state. Internally, this signal also resets the TAP and debugging modules. The power-on reset flow resets the MSC8156 device, configures various device attributes including its clock modes, and drives HRESET and SRESET as open-drain outputs. HRESET Input/ Output Hard Reset When asserted as an input, this signal causes the MSC8156 to abort all current internal and external transactions, set most registers to their default state, and enter the hard reset state. This signal must be asserted for at least 32 CLKIN cycles. While the device is in the hard reset state, it drives HRESET and SRESET as open-drain outputs. This signal requires an external pull-up resistor. The signal is tri-stated after the hard reset flow is complete. SRESET Input/ Output Soft Reset When asserted as an input, this signal causes the MSC8156 to enter the soft reset state, about all current internal transactions, configure most registers with their default values, and cause the cores to enter their reset state. The signal does not affect I/O signal functionality or direction or memory controller operations. While the device is in the soft reset state, it drives the SRESET as an open-drain output. This signal requires an external pull-up resistor. The signal is tri-stated after the soft reset flow is complete. Input Stop Boot Sequencer This signal is valid only when the reset configuration words are being loaded from an I2C EEPROM using the boot sequencer and is asserted only for a reset target device to prevent the loading of the reset configuration words until allowed by the Boot ROM. The signal level must be asserted as long as HRESET is asserted. For the reset master or a single device reading from I2C EEPROM, you must drive this low during the reset sequence. For details, see Chapter 5, Reset. This signal is also used for booting after reset (for details, see Chapter 6, Boot Program). PORESET STOP_BS MSC8156 Reference Manual, Rev. 2 3-6 Freescale Semiconductor Reset and Configuration Signals Table 3-5. Reset and Configuration Signals (Continued) Signal Name RCW_SRC0 Type Signal Description Input Reset Configuration Word Source 0 Along with the RCW_SRC[1–2], this signal is sampled at the deassertion of PORESET to identify the source of the reset configuration word. The required signal level must be maintained as long as HRESET is asserted. GPIO27 Input/ Output General-Purpose Input Output 27 One of 32 GPIO pins used as GPIO or as a dedicated input or output. For details, see Chapter 22, GPIO. TMR4 Input/ Output Timer 4 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For functional details, see Chapter 21, Timers. Input Reset Configuration Word Source 1 Along with the RCW_SRC[0, 2], this signal is sampled at the deassertion of PORESET to identify the source of the reset configuration word. The required signal level must be maintained as long as HRESET is asserted. RCW_SRC1 GPIO25 Input/ Output General-Purpose Input Output 25 One of 32 GPIO pins used as GPIO or as a dedicated input or output. For details, see Chapter 22, GPIO. TMR2 Input/ Output Timer 2 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For functional details, see Chapter 21, Timers. Input Reset Configuration Word Source 2 Along with the RCW_SRC[0–1], this signal is sampled at the deassertion of PORESET to identify the source of the reset configuration word. The required signal level must be maintained as long as HRESET is asserted. RCW_SRC2 GPIO24 Input/ Output General-Purpose Input Output 24 One of 32 GPIO pins used as GPIO or as a dedicated input or output. For details, see Chapter 22, GPIO. TMR1 Input/ Output Timer 1 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For functional details, see Chapter 21, Timers. RC[0–2] GPIO[0–2] IRQ[0–2] Input Input/ Output Input Reset Configuration Word Bit 0–2 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. General-Purpose Input Output 0–2 Three of the 32 GPIO pins used as GPIO or as a dedicated input or output. For details, see Chapter 22, GPIO. Interrupt Request 0–2 External lines that can request a service routine via the internal interrupt controller. Selected through GPIO configuration. For details, see Chapter 22, GPIO. For functional details, see Chapter 13, Interrupt Handling. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-7 External Signals Table 3-5. Reset and Configuration Signals (Continued) Signal Name RC3 GPIO3 Type Input Input/ Output Signal Description Reset Configuration Word Bit 3 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. General-Purpose Input Output 3 One of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ3 Input Interrupt Request 3 External line that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. DRQ1 Input DMA External Request 1 When enabled by GPIO multiplexing, asserting this input triggers external DMA request 1. For details, see Chapter 14, Direct Memory Access (DMA) Controller, RC4 Input Reset Configuration Word Bit 4 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. GPIO4 Input/ Output General-Purpose Input Output 4 One of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ4 Input Interrupt Request 4 External line that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. DDN1 Output DMA External DONE Indication 1 When enabled by GPIO multiplexing, this signal is asserted to indicate that DMA request 1 is done. For details, see Chapter 14, Direct Memory Access (DMA) Controller, RC[5–13] GPIO[5–13] Input Reset Configuration Word Bit 5–13 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. Input/ Output General-Purpose Input Output 5–13 Nine of the 32 GPIO pins used as GPIO or as a dedicated input or output. For details, see Chapter 22, GPIO. IRQ[5–13] Input Interrupt Request 5–13 External lines that can request a service routine via the internal interrupt controller. Selected through GPIO configuration. For details, see Chapter 22, GPIO. For functional details, see Chapter 13, Interrupt Handling. RC14 Input Reset Configuration Word Bit 14 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. GPIO14 Input/ Output General-Purpose Input Output 14 One of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ14 Input Interrupt Request 14 External line that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. DRQ0 Input DMA External Request 0 When enabled by GPIO multiplexing, asserting this input triggers external DMA request 0. For details, see Chapter 14, Direct Memory Access (DMA) Controller, MSC8156 Reference Manual, Rev. 2 3-8 Freescale Semiconductor Reset and Configuration Signals Table 3-5. Reset and Configuration Signals (Continued) Signal Name RC15 GPIO15 Type Input Input/ Output Signal Description Reset Configuration Word Bit 15 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. General-Purpose Input Output 15 One of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ15 Input Interrupt Request 15 External line that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. DDN0 Output DMA External DONE Indication 0 When enabled by GPIO multiplexing, this signal is asserted to indicate that DMA request 0 is done. For details, see Chapter 14, Direct Memory Access (DMA) Controller, RC16 Input GPIO16 RC17 RCW_LSEL0 RC18 RCW_LSEL1 RC19 RCW_LSEL2 RC20 RCW_LSEL3 Input/ Output Input Output Input Output Input Output Input Output Reset Configuration Word Bit 16 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. General-Purpose Input Output 16 One of 32 GPIO pins used as GPIO or as a dedicated input or output. For details, see Chapter 22, GPIO. Reset Configuration Word Bit 17 If RCW_SRC[0–2] equals 011, this input is sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. Reset Configuration Word Lane 0 Select If RCW_SRC[0–2] equals 000, this signal is used to enable loading of Lane 0 (RCWLR bits 15–0) of the RCW via RC[15–0] when asserted. See Chapter 5, Reset for details. Reset Configuration Word Bit 18 If RCW_SRC[0–2] equals 011, this input is sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. Reset Configuration Word Lane 1 Select If RCW_SRC[0–2] equals 000, this signal is used to enable loading of Lane 1 (RCWLR bits 31–16) of the RCW via RC[15–0] when asserted. See Chapter 5, Reset for details. Reset Configuration Word Bit 19 If RCW_SRC[0–2] equals 011, this input is sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. Reset Configuration Word Lane 2 Select If RCW_SRC[0–2] equals 000, this signal is used to enable loading of Lane 2 (RCWHR bits 15–0) of the RCW via RC[15–0] when asserted. See Chapter 5, Reset for details. Reset Configuration Word Bit 20 If RCW_SRC[0–2] equals 011, this input is sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. Reset Configuration Word Lane 3 Select If RCW_SRC[0–2] equals 000, this signal is used to enable loading of Lane 3 (RCWHR bits 31–16) of the RCW via RC[15–0] when asserted. See Chapter 5, Reset for details. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-9 External Signals Table 3-5. Reset and Configuration Signals (Continued) Signal Name RC21 Note: Type Input Signal Description Reset Configuration Word Bit 21 If RCW_SRC[0–2] equals 011, this input is sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. If RCW_SRC[0–2] does not equal 011, this input is ignored. When RCW_SRC[0–2] equals 011, RC[0–21] are valid only for driving a reduced external reset configuration word value. The signals are sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. The required signal levels must be maintained as long as HRESET is asserted. All other signal drivers connected to these inputs must be tri-stated while HRESET is asserted. When RCW_SRC[0–2] equals 000, the device loads all 64 bits of the RCW via RC[0–15] in four beats. In this case, RC[17–20] function as RCW_LSEL[0–3] outputs that are asserted to load the RCW 16 bits at a time and RC21 is ignored. See Chapter 5, Reset for details. 3.4 Memory Controller 1 and 2 Refer to Chapter 12, DDR SDRAM Memory Controller for details on configuring these signals. Table 3-6. Memory Controller Signals Signal Name Type Description M1A[15–0] M2A[15–0] Output Address Bus The memory interface address bus used to connect to external memory devices. MA0 is the lsb of the address driven by the DDR controller. M1BA[2–0] M2BA[2–0] Output Bank Address Selects the DDR DRAM bank. Each DDR SDRAM can support four or eight logically addressable sub-banks. MBA0 must connect to bit zero of the SDRAM input bank address. This line is asserted during the mode register set command to specify the extended mode register. M1DQ[63–0] M2DQ[63–0] Input/ Output Data Bus The MSC8156 device drives the bus during write cycles and the external memory drives the bus during read cycles. M1DM[8–0] M2DM[8–0] Output DDR SDRAM Data Output Mask Masks unwanted data bytes transferred during a burst write. These signals are used to support sub-burst-size transactions (such as single-byte writes) on SDRAM in which all transactions occur in multi-byte bursts. MDM0 corresponds to the MSB and MDM7 corresponds to the LSB. MDM8 acts as the ECC data mask. M1DQS[8–0] M2DQS[8–0] Input/Output DDR SDRAM DQS Strobe for byte-lane data capture. The signals are inputs driven by the DDR SRAM with read data and outputs driven by the DDR controller with write data. The data strobes may be single-ended or differential. Bit 8 is used as the ECC data mask. M1DQS[8–0] M2DQS[8–0] Input/Output DDR SDRAM DQS Complement Complement strobe for byte-lane data capture. The signals are inputs driven by the DDR SRAM with read data and outputs driven by the DDR controller with write data. The data strobes may be single-ended or differential. M1ECC[7–0] M2ECC[7–0] Input/Output DDR Error Checking and Correcting Codes As normal mode outputs the ECC signals represent the state of ECC driven by the DDR controller on writes. MSC8156 Reference Manual, Rev. 2 3-10 Freescale Semiconductor SerDes Multiplexed Signals for the Serial RapidIO, PCI Express, and SGMII Interfaces Table 3-6. Memory Controller Signals (Continued) Signal Name Type Description M1CK[2–0] M2CK[2–0] Output DDR Clock Out The DDR clock output. Each signal is part of a differential pair. M1CK[2–0] M2CK[2–0] Output DDR Clock Out Inverted The inverted DDR clock. Each signal is part of a differential pair. M1CKE[1–0] M2CKE[1–0] Output Clock Enable When asserted, this signal enables the DDR clock for the DDR DRAM. M1RAS M2RAS Output Row Address Strobe Connects to DDR DRAM RAS input. This line is asserted for activate commands and is used for mode register set and refresh commands. M1CAS M2CAS Output Column Address Strobe Connects to DDR DRAM CAS input. This line is asserted for read or write transactions and for mode register set, refresh, and precharge commands. M1WE M2WE Output Write Enable Connects to DDR DRAM WE input. M1CS[0–1] M2CS[0–1] Output Chip Select 0–1 Enables specific memory devices or peripherals connected to the bus. M1MDIC[0–1] M2MDIC[0–1] Input/Output M1ODT[0–1] M2ODT[0–1] Output On-Die Termination Memory controller outputs for the ODT to the SDRAM. Each signal represents the corresponding chip select. M1APAR_OUT M2APAR_OUT Output Parity Output If enabled, drives the parity bit for the bus. M1APAR_IN M2APAR_IN 3.5 Input Driver Impedance Calibration These lines are used for automatic calibration of the DDR I/O. Parity Input Receives the error indication from an open-drain parity error signal. SerDes Multiplexed Signals for the Serial RapidIO, PCI Express, and SGMII Interfaces Refer to Chapter 5, Reset, Chapter 16, Serial RapidIO Controller, Chapter 16, Serial RapidIO Controller, and the QUICC Engine Block Reference Manual with Protocol Interworking for configuration information. Table 3-7. SerDes Multiplexed Signals Signal Name Type Description SR1_IMP_CAL_RX Input Serial RapidIO Controller 1 Receiver Impedance Control Signal Receiver impedance calibration control signal. SR1_IMP_CAL_TX Input Serial RapidIO Controller 1 Transmitter Impedance Control Signal Transmitter impedance calibration control signal. SR1_RXD0 Input Serial RapidIO Controller 1 Receive Data 0 Serial data input for a x1 or x4 link. Each signal is part of a differential pair. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-11 External Signals Table 3-7. SerDes Multiplexed Signals (Continued) Signal Name Type Description SR1_RXD0 Input Serial RapidIO Controller 1 Receive Data 0 Inverted Inverted serial data input for a x1 or x4 link. Each signal is part of a differential pair. SR1_RXD1 Input Serial RapidIO Controller 1 Receive Data 1 Serial data input for a x4 link. Each signal is part of a differential pair. SR1_RXD1 Input Serial RapidIO Controller 1 Receive Data 1 Inverted Inverted serial data input for a x4 link. Each signal is part of a differential pair. SR1_RXD2 Input Serial RapidIO Controller 1 Receive Data 2 Serial data input for a x4 link. Each signal is part of a differential pair. SG1_RX Input Ethernet 1 SGMII Receive Data Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR1_RXD2 Input Serial RapidIO Controller 1 Receive Data 2 Inverted Inverted serial data input for a x4 link. Each signal is part of a differential pair. SG1_RX Input Ethernet 1 SGMII Receive Data Inverted Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR1_RXD3 Input Serial RapidIO Controller 1 Receive Data 3 Serial data input for a x4 link. Each signal is part of a differential pair. SG2_RX Input Ethernet 2 SGMII Receive Data Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR1_RXD3 Input Serial RapidIO Controller 1 Receive Data 3 Inverted Inverted serial data input for a x4 link. Each signal is part of a differential pair. SG2_RX Input Ethernet 2 SGMII Receive Data Inverted Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR1_TXD0 Output Serial RapidIO Controller 1 Transmit Data 0 Serial data output for a x1 or x4 link. Each signal is part of a differential pair. SR1_TXD0 Output Serial RapidIO Controller 1 Transmit Data 0 Inverted Inverted serial data output for a x1 or x4 link. Each signal is part of a differential pair. SR1_TXD1 Output Serial RapidIO Controller 1 Transmit Data 1 Serial data output for a x4 link. Each signal is part of a differential pair. SR1_TXD1 Output Serial RapidIO Controller 1 Transmit Data 1 Inverted Inverted serial data output for a x4 link. Each signal is part of a differential pair. SR1_TXD2 Output Serial RapidIO Controller 1 Transmit Data 2 Serial data output for a x4 link. Each signal is part of a differential pair. SG1_TX Output Ethernet 1 SGMII Transmit Data Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. MSC8156 Reference Manual, Rev. 2 3-12 Freescale Semiconductor SerDes Multiplexed Signals for the Serial RapidIO, PCI Express, and SGMII Interfaces Table 3-7. SerDes Multiplexed Signals (Continued) Signal Name Type Description SR1_TXD2 Output Serial RapidIO Controller 1 Transmit Data 2 Inverted Inverted serial data output for a x4 link. Each signal is part of a differential pair. SG1_TX Output Ethernet 1 SGMII Transmit Data Inverted Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR1_TXD3 Output Serial RapidIO Controller 1 Transmit Data 3 Serial data output for a x4 link. Each signal is part of a differential pair. SG2_TX Output Ethernet 2 SGMII Transmit Data Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR1_TXD3 Output Serial RapidIO Controller 1 Transmit Data 3 Inverted Inverted serial data output for a x4 link. Each signal is part of a differential pair. SG2_TX Output Ethernet 2 SGMII Transmit Data Inverted Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR1_REF_CLK Input Serial RapidIO Controller 1 Reference Clock Reference clock signal. Each signal is part of a differential pair. For SGMII operation, this provides the input clock. SR1_REF_CLK Input Serial RapidIO Controller 1 Reference Clock Inverted Inverted reference clock signal. Each signal is part of a differential pair. For SGMII operation, this provides the input clock. SR2_IMP_CAL_RX Input Serial RapidIO Controller 2 Receiver Impedance Control Signal Receiver impedance calibration control signal. SR2_IMP_CAL_TX Input Serial RapidIO Controller 2 Transmitter Impedance Control Signal Transmitter impedance calibration control signal. SR2_RXD0 Input Serial RapidIO Controller 2 Receive Data 0 Serial data input for a x1 or x4 link. Each signal is part of a differential pair. PE_RXD0 Input PCI Express Receive Data 0 Serial data input. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SR2_RXD0 Input Serial RapidIO Controller 2 Receive Data 0 Inverted Inverted serial data input for a x1 or x4 link. Each signal is part of a differential pair. PE_RXD0 Input PCI Express Receive Data 0 Inverted Inverted serial data input. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SR2_RXD1 Input Serial RapidIO Controller 2 Receive Data 1 Serial data input for a x4 link. Each signal is part of a differential pair. PE_RXD1 Input PCI Express Receive Data 1 Serial data input. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SG2_RX Input Ethernet 2 SGMII Receive Data Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-13 External Signals Table 3-7. SerDes Multiplexed Signals (Continued) Signal Name Type Description SR2_RXD1 Input Serial RapidIO Controller 2 Receive Data 1 Inverted Inverted serial data input for a x4 link. Each signal is part of a differential pair. PE_RXD1 Input PCI Express Receive Data 1 Inverted Inverted serial data input. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SG2_RX Input Ethernet 2 SGMII Receive Data Inverted Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR2_RXD2 Input Serial RapidIO Controller 2 Receive Data 2 Serial data input for a x4 link. Each signal is part of a differential pair. PE_RXD2 Input PCI Express Receive Data 2 Serial data input. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SG1_RX Input Ethernet 1 SGMII Receive Data Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR2_RXD2 Input Serial RapidIO Controller 2 Receive Data 2 Inverted Inverted serial data input for a x4 link. Each signal is part of a differential pair. PE_RXD2 Input PCI Express Receive Data 2 Inverted Inverted serial data input. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SG1_RX Input Ethernet 1 SGMII Receive Data Inverted Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR2_RXD3 Input Serial RapidIO Controller 2 Receive Data 3 Serial data input for a x4 link. Each signal is part of a differential pair. PE_RXD3 Input PCI Express Receive Data 3 Serial data input. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SR2_RXD3 Input Serial RapidIO Controller 2 Receive Data 3 Inverted Inverted serial data input for a x4 link. Each signal is part of a differential pair. PEI_RXD0 Input PCI Express Receive Data 1 Inverted Inverted serial data input. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SR2_TXD0 Output Serial RapidIO Controller 2 Transmit Data 0 Serial data output for a x1 or x4 link. Each signal is part of a differential pair. PE_TXD0 Output PCI Express Transmit Data 0 Serial data output. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. MSC8156 Reference Manual, Rev. 2 3-14 Freescale Semiconductor SerDes Multiplexed Signals for the Serial RapidIO, PCI Express, and SGMII Interfaces Table 3-7. SerDes Multiplexed Signals (Continued) Signal Name Type Description SR2_TXD0 Output Serial RapidIO Controller 2 Transmit Data 0 Inverted Inverted serial data output for a x1 or x4 link. Each signal is part of a differential pair. PE_TXD0 Output PCI Express Transmit Data 0 Inverted Serial data output. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SR2_TXD1 Output Serial RapidIO Controller 2 Transmit Data 1 Serial data output for a x1 or x4 link. Each signal is part of a differential pair. PE_TXD1 Output PCI Express Transmit Data 1 Serial data output. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SG2_TX Output Ethernet 2 SGMII Transmit Data Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR2_TXD1 Output Serial RapidIO Controller 2 Transmit Data 1 Inverted Inverted serial data output for a x1 or x4 link. Each signal is part of a differential pair. PE_TXD1 Output PCI Express Transmit Data 1 Inverted Inverted serial data output. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SG2_TX Output Ethernet 2 SGMII Transmit Data Inverted Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR2_TXD2 Output Serial RapidIO Controller 2 Transmit Data 2 Serial data output for a x1 or x4 link. Each signal is part of a differential pair. PE_TXD2 Output PCI Express Transmit Data 2 Serial data output. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SG1_TX Output Ethernet 1 SGMII Transmit Data Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SR2_TXD2 Output Serial RapidIO Controller 2 Transmit Data 2 Inverted Inverted serial data output for a x1 or x4 link. Each signal is part of a differential pair. PE_TXD2 Output PCI Express Transmit Data 2 Inverted Serial data output. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SG1_TX Output Ethernet 1 SGMII Transmit Data Inverted Part of the Ethernet signals. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-15 External Signals Table 3-7. SerDes Multiplexed Signals (Continued) Signal Name Type Description SR2_TXD3 Output Serial RapidIO Controller 2 Transmit Data 3 Serial data output for a x4 link. Each signal is part of a differential pair. PE_TXD3 Output PCI Express Transmit Data 3 Serial data output. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SR2_TXD3 Output Serial RapidIO Controller 2 Transmit Data 3 Inverted Inverted serial data output for a x1 or x4 link. Each signal is part of a differential pair. PE_TXD3 Output PCI Express Transmit Data 3 Inverted Serial data output. Each signal is part of a differential pair. For details, see Chapter 17, PCI Express Controller. SR2_REF_CLK Input Serial RapidIO Controller 2 Reference Clock Reference clock signal. Each signal is part of a differential pair. For SGMII operation, this provides the input clock. SR2_REF_CLK Input Serial RapidIO Controller 2 Reference Clock Inverted Inverted reference clock signal. Each signal is part of a differential pair. For SGMII operation, this provides the input clock. Note: For proper definition of serial RapidIO modes (x1/x4), PCI Express, and SGMII, configure the interfaces using the Reset Configuration Word settings. For details, see Chapter 5, Reset. 3.6 TDM and Ethernet Signals The TDM and RGMII signals are listed together because they are multiplexed using the same signal lines. The GE1 and GE2 bits in the RCW control the selection between the TDM signals and the RGMII signals. See Table 3-2 on page 3-2 for a detailed description of the multiplexing options. Table 3-8 describes the signals in this group. Table 3-8. TDM and Ethernet Signals Signal Name TDM3TDT Type Description Input/ TDM3 Serial Transmitter Data Output The serial transmit data signal for TDM 3. For configuration details, see Chapter 19, TDM Interface. GE1_RD3 Input Ethernet 1 Receive Data 3 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM3TCK Input TDM3 Transmit Clock Transmit Clock for TDM 3. For configuration details, see Chapter 19, TDM Interface. GE1_RD2 Input Ethernet 1 Receive Data 2 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM3TSN GE1_RX_CLK Input/ TDM3 Transmit Frame Sync Output Transmit frame sync for TDM 3. See Chapter 19, TDM Interface. Input Ethernet 1 Receive Clock For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. MSC8156 Reference Manual, Rev. 2 3-16 Freescale Semiconductor TDM and Ethernet Signals Table 3-8. TDM and Ethernet Signals (Continued) Signal Name TDM3RDT GE1_RD0 Type Description Input/ TDM3 Serial Receiver Data Output The receive data signal for TDM 3. For configuration details, see Chapter 19, TDM Interface. Input Ethernet 1 Receive Data 0 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM3RCK Input/ TDM3 Receive Clock Output The receive clock signal for TDM 3. For configuration details, see Chapter 19, TDM Interface. GE1_GTX_CLK Output Ethernet 1 Output Transmit Clock For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM3RSN Input/ TDM3 Receive Frame Sync Output The receive sync signal for TDM 3. For configuration details, see Chapter 19, TDM Interface. GE1_RD1 TDM2TDT Input Ethernet 1 Receive Data 1 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. Input/ TDM2 Serial Transmitter Data Output The transmit data signal for TDM 2. For configuration details, see Chapter 19, TDM Interface. GE1_TX_CLK Input Ethernet 1 Transmit Clock For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM2TCK Input TDM 2 Transmit Clock Transmit clock for TDM 2. For configuration details, see Chapter 19, TDM Interface. GE1_TD3 Output Ethernet 1 Transmit Data 3 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM2TSN Input/ TDM2 Transmit frame Sync Output Transmit frame sync for TDM 2. For configuration details, see Chapter 19, TDM Interface. GE1_TX_CTL Output Ethernet 1 Transmit Control For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM2RDT Input/ TDM2 Serial Receiver Data Output The receive data signal for TDM 2. For configuration details, see Chapter 19, TDM Interface. GE1_TD1 Output Ethernet 1 Transmit Data 1 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM2RCK Input/ TDM2 Receive Clock Output The receive clock signal for TDM 2. For configuration details, see Chapter 19, TDM Interface. GE1_TD0 Output Ethernet 1 Transmit Data 0 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM2RSN Input/ TDM2 Receive Frame Sync Output The receive sync signal for TDM 2. For configuration details, see Chapter 19, TDM Interface. GE1_TD2 Output Ethernet 1 Transmit Data 2 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM1TDT Input/ TDM1 Serial Transmitter Data Output The transmit data signal for TDM 1. For configuration details, see Chapter 19, TDM Interface. GE2_TD0 Output Ethernet 2 Transmit Data 0 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-17 External Signals Table 3-8. TDM and Ethernet Signals (Continued) Signal Name Type Description TDM1TCK Input TDM1 Transmit Clock Transmit clock for TDM 1. For configuration details, see Chapter 19, TDM Interface. GE2_RX_CLK Input Ethernet 2 Receive Clock For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM1TSN Input/ TDM1 Transmit Frame Sync Output Transmit frame sync for TDM 1. For configuration details, see Chapter 19, TDM Interface. GE2_TD1 Output Ethernet 2 Transmit Data 1 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM1RDT Input/ TDM1 Serial Receiver Data Output The receive data signal for TDM 1. For configuration details, see Chapter 19, TDM Interface. GE2_TX_CLK TDM1RCK GE2_RD1 TDM1RSN GE2_RX_CTL Input Ethernet 2 Transmit Clock For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. Input/ TDM1 Receive Clock Output The receive clock signal for TDM 1. For configuration details, see Chapter 19, TDM Interface. Input Ethernet 2 Receive Data 1 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. Input/ TDM1 Receive Frame Sync Output The receive sync signal for TDM 1. For configuration details, see Chapter 19, TDM Interface. Input Ethernet 2 Receive Control For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM0TDT Input/ TDM0 Serial Transmitter Data Output The transmit data signal for TDM 0. For configuration details, see Chapter 19, TDM Interface. GE2_TD3 Output Ethernet 2 Transmit Data 3 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM0TCK Input TDM 0 Transmit Clock Transmit Clock for TDM 0. For configuration details, see Chapter 19, TDM Interface. GE2_GTX_CLK Output Ethernet 2 Output Transmit Clock For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. TDM0TSN Input/ TDM0 Transmit Frame Sync Output Transmit Frame Sync for TDM 0. For configuration details, see Chapter 19, TDM Interface. GE2_RD0 TDM0RDT GE2_RD3 TDM0RCK GE2_RD2 Input Ethernet 2 Receive Data 0 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. Input/ TDM0 Serial Receiver Data Output The receive data signal for TDM 0. For configuration details, see Chapter 19, TDM Interface. Input Ethernet 2 Receive Data 3 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. Input/ TDM0 Receive Clock Output The receive clock signal for TDM 0. For configuration details, see Chapter 19, TDM Interface. Input Ethernet 2 Receive Data 2 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. MSC8156 Reference Manual, Rev. 2 3-18 Freescale Semiconductor TDM and Ethernet Signals Table 3-8. TDM and Ethernet Signals (Continued) Signal Name Type Description TDM0RSN Input/ TDM0 Receive Frame Sync Output The receive sync signal for TDM 0. For configuration details, see Chapter 19, TDM Interface. GE2_TD2 Output Ethernet 2 Transmit Data 2 For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. GE2_TX_CTL Output Ethernet 2 Transmit Control For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. GE1_RX_CTL Input Ethernet 1 Receive Control For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. GE_MDC Output Ethernet Management Data Clock For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. GE_MDIO Input/ Ethernet Management Data Input/Output Output For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-19 External Signals 3.7 Serial Peripheral Interface (SPI) Signal Summary Table 3-9 summarizes the Serial Peripheral Interface (SPI) signal lines, which are available in all modes. Table 3-9. SPI Signals Signal Name Type Signal Description Input/ General-Purpose Input Output 20 Output One of 32 GPIOs. For details, see Chapter 22, GPIO. Valid in all modes. GPIO20 Input SPI_SL SPI Select Enable input to the SPI slave in single master mode. In multi-master environment, SPI_SL detects an error when more one master is operating. Assertion of an SPI_SL, while it is master, causes an error. GPIO19 Input/ General-Purpose Input Output 19 Output One of 32 GPIOs. For details, see Chapter 22, GPIO. Valid in all modes SPI_MISO Input/ SPI Master Input Slave Output Output When the SPI is a master, SPI_SCK is the clock input signal that shifts received data in from SPI_MOSI and transmitted data out through SPI_MISO. GPIO18 Input/ General-Purpose Input Output 18 Output One of 32 GPIOs. For details, see Chapter 22, GPIO. Valid in all modes. SPI_MOSI Input/ SPI Master Output Slave Input Output When the SPI is a master, SPI_SCK is the clock input signal that shifts received data in from SPI_MOSI and transmitted data out through SPI_MISO. GPIO17 Input/ General-Purpose Input Output 17 Output One of 32 GPIOs. For details, see Chapter 22, GPIO. Valid in all modes. SPI_SCK Input/ SPI Clock Output Gated clock, active only during data transfers. Four combinations of SPI_SCK phase and polarity can be configured. When the SPI is a master, SPI_SCK is the clock output signal that shifts received data in from SPI_MOSI and transmitted data out through SPI_MISO. 3.8 GPIO/Maskable Interrupt Signal Summary Some of the GPIO and interrupt lines are multiplexed with other interfaces. Some of the lines are independent. In addition to the hardware interrupt inputs, there are also several signal lines used to reroute interrupts between the cores and an external host processor. Table 3-16 summarizes the GPIO and interrupt signal lines. Table 3-10. GPIO and Maskable Interrupt Summary Signal Name Type Description GPIO31 Input/ Output General-Purpose Input Output 31 One of 32 GPIOs. For details, see Chapter 22, GPIO. I2C_SDA Input/ Output I2C-Bus Data Line This is the data line for the I2C bus. For details, see Chapter 24, I2C. MSC8156 Reference Manual, Rev. 2 3-20 Freescale Semiconductor GPIO/Maskable Interrupt Signal Summary Table 3-10. GPIO and Maskable Interrupt Summary (Continued) Signal Name Type Description GPIO30 Input/ Output General-Purpose Input Output 30 One of 32 GPIOs. For details, see Chapter 22, GPIO. I2C_SCL Input/ Output I2C-Bus Clock Line This the clock line for the I2C bus. For details, see Chapter 24, I2C. GPIO29 Input/ Output General-Purpose Input Output 29 One of 32 GPIOs. For details, see Chapter 22, GPIO. UART_TXD Output UART Transmit Data For details, see Chapter 20, UART. GPIO28 Input/ Output General-Purpose Input Output 28 One of 32 GPIOs. For details, see Chapter 22, GPIO. UART_RXD Input/ Output UART Receive Data For details, see Chapter 20, UART. GPIO27 Input/ Output General-Purpose Input Output 27 One of 32 GPIOs. For details, see Chapter 22, GPIO. TMR4 Input/ Output Timer 4 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For timer functional details, see Chapter 21, Timers. Input Reset Configuration Word Source 0 Along with the RCW_SRC[1–2], this signal is sampled at the deassertion of PORESET to identify the source of the reset configuration word. The required signal level must be maintained as long as HRESET is asserted. GPIO26 Input/ Output TMR3 Input/ Output General-Purpose Input/Output 26 One of 32 GPIOs. For details, see Chapter 22, GPIO. . Timer 3 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For timer functional details, see Chapter 21, Timers. GPIO25 Input/ Output General-Purpose Input Output 25 One of 32 GPIOs. For details, see Chapter 22, GPIO. TMR2 Input/ Output Timer 2 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For timer functional details, see Chapter 21, Timers. Input Reset Configuration Word Source 1 Along with the RCW_SRC[0,2], this signal is sampled at the deassertion of PORESET to identify the source of the reset configuration word. The required signal level must be maintained as long as HRESET is asserted. RCW_SRC0 RCW_SRC1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-21 External Signals Table 3-10. GPIO and Maskable Interrupt Summary (Continued) Signal Name Type Description GPIO24 Input/ Output General-Purpose Input Output 24 One of 32 GPIOs. For details, see Chapter 22, GPIO. TMR1 Input/ Output Timer 1 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For timer functional details, see Chapter 21, Timers. Input Reset Configuration Word Source 2 Along with the RCW_SRC[0–1], this signal is sampled at the deassertion of PORESET to identify the source of the reset configuration word. The required signal level must be maintained as long as HRESET is asserted. RCW_SRC2 GPIO23 Input/ Output General-Purpose Input Output 23 One of 32 GPIOs. For details, see Chapter 22, GPIO. TMR0 Input/ Output Timer 0 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For timer functional details, see Chapter 21, Timers. GPIO22 Input/ Output General-Purpose Input Output 22 One of 32 GPIOs. For details, see Chapter 22, GPIO. GPIO21 Input/ Output General-Purpose Input Output 21 One of 32 GPIOs. For details, see Chapter 22, GPIO. GPIO20 Input/ Output General-Purpose Input Output 20 One of 32 GPIOs. For details, see Chapter 22, GPIO. SPI_SL Input GPIO19 Input/ Output General-Purpose Input Output 19 One of 32 GPIOs. For details, see Chapter 22, GPIO. SPI_MISO Input/ Output SPI Master Input Slave Output When the SPI is a master, SPI_SCK is the clock input signal that shifts received data in from SPI_MOSI and transmitted data out through SPI_MISO. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. GPIO18 Input/ Output General-Purpose Input Output 18 One of 32 GPIOs. For details, see Chapter 22, GPIO. SPI_MOSI Input/ Output SPI Master Output Slave Input When the SPI is a master, SPI_SCK is the clock input signal that shifts received data in from SPI_MOSI and transmitted data out through SPI_MISO. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. GPIO17 Input/ Output General-Purpose Input Output 17 One of 32 GPIOs. For details, see Chapter 22, GPIO. SPI_SCK Input/ Output SPI Clock Gated clock, active only during data transfers. Four combinations of SPI_SCK phase and polarity can be configured. When the SPI is a master, SPI_SCK is the clock output signal that shifts received data in from SPI_MOSI and transmitted data out through SPI_MISO. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. SPI Select Enable input to the SPI slave in single master mode. In multi-master environment, SPI_SL detects an error when more one master is operating. Assertion of an SPI_SL, while it is master, causes an error. For details, see the QUICC Engine Block Reference Manual with Protocol Interworking. MSC8156 Reference Manual, Rev. 2 3-22 Freescale Semiconductor GPIO/Maskable Interrupt Signal Summary Table 3-10. GPIO and Maskable Interrupt Summary (Continued) Signal Name GPIO16 RC16 GPIO15 Type Input/ Output Input Input/ Output IRQ15 Input DDN0 Output RC15 Input GPIO14 Input/ Output Description General-Purpose Input Output 16 One of 32 GPIOs. For details, see Chapter 22, GPIO. Reset Configuration Word Bit 16 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. General-Purpose Input Output 15 One of the 32 GPIOs. For details, see Chapter 22, GPIO. Interrupt Request 15 External line that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. DMA External DONE Indication 0 When enabled by GPIO multiplexing, this signal is asserted to indicate that DMA request 0 is done. For details, see Chapter 14, Direct Memory Access (DMA) Controller, Reset Configuration Word Bit 15 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. General-Purpose Input Output 14 One of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ14 Input Interrupt Request 14 External line that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. DRQ0 Input DMA External Request 0 When enabled by GPIO multiplexing, asserting this input triggers external DMA request 0. For details, see Chapter 14, Direct Memory Access (DMA) Controller, RC14 Input Reset Configuration Word Bit 14 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. GPIO[13–5] Input/ Output General-Purpose Input Output 13–5 Nine of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ[13–5] Input Interrupt Request 13–5 External lines that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. RC[13–5] Input Reset Configuration Word Bit 13–5 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-23 External Signals Table 3-10. GPIO and Maskable Interrupt Summary (Continued) Signal Name GPIO4 Type Input/ Output IRQ4 Input DDN1 Output RC4 GPIO3 Input Input/ Output Description General-Purpose Input Output 4 One of the 32 GPIOs. For details, see Chapter 22, GPIO. Interrupt Request 4 External lines that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. DMA External DONE Indication 1 When enabled by GPIO multiplexing, this signal is asserted to indicate that DMA request 1 is done. For details, see Chapter 14, Direct Memory Access (DMA) Controller, Reset Configuration Word Bit 4 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. General-Purpose Input Output 3 One of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ3 Input Interrupt Request 3 External line that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. DRQ1 Input DMA External Request 1 When enabled by GPIO multiplexing, asserting this input triggers external DMA request 1. For details, see Chapter 14, Direct Memory Access (DMA) Controller, RC3 Input Reset Configuration Word Bit 3 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. GPIO[2–0] Input/ Output General-Purpose Input Output 2–0 Three of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ[2–0] Input Interrupt Request 2–0 External lines that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. RC[2–0] Input Reset Configuration Word Bit 2–0 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. MSC8156 Reference Manual, Rev. 2 3-24 Freescale Semiconductor Timer Signals 3.9 Timer Signals Table 3-11 describes the signals in this group. Table 3-11. Timer Signals Signal Name Type Description TMR4 Input/ Output Timer 4 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For timer functional details, see Chapter 21, Timers. GPIO27 Input/ Output General-Purpose Input Output 27 One of 32 GPIOs. For details, see Chapter 22, GPIO. Input Reset Configuration Word Source 0 Along with the RCW_SRC[0–1], this signal is sampled at the deassertion of PORESET to identify the source of the reset configuration word. The required signal level must be maintained as long as HRESET is asserted. TMR3 Input/ Output Timer 3 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For timer functional details, see Chapter 21, Timers. GPIO26 Input/ Output General-Purpose Input Output 26 One of 32 GPIOs. For details, see Chapter 22, GPIO. TMR2 Input/ Output Timer 2 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For timer functional details, see Chapter 21, Timers. GPIO25 Input/ Output General-Purpose Input Output 25 One of 32 GPIOs. For details, see Chapter 22, GPIO. RCW_SRC0 RCW_SRC1 Input Reset Configuration Word Source 1 Along with the RCW_SRC[0,2], this signal is sampled at the deassertion of PORESET to identify the source of the reset configuration word. The required signal level must be maintained as long as HRESET is asserted. TMR1 Input/ Output Timer 1 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For timer functional details, see Chapter 21, Timers. GPIO24 Input/ Output General-Purpose Input Output 24 One of 32 GPIOs. For details, see Chapter 22, GPIO. RCW_SRC2 Input Reset Configuration Word Source 2 Along with the RCW_SRC[0–1], this signal is sampled at the deassertion of PORESET to identify the source of the reset configuration word. The required signal level must be maintained as long as HRESET is asserted. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-25 External Signals Table 3-11. Timer Signals (Continued) Signal Name Type Description TMR0 Input/ Output Timer 0 Configured as input to the counter or output from the counter. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For timer functional details, see Chapter 21, Timers. GPIO23 Input/ Output General-Purpose Input Output 23 One of 32 GPIOs. For details, see Chapter 22, GPIO. 3.10 UART Signals Table 3-12. UART Signals Signal Name Type Description UART_TXD Output UART Transmit Data Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For functional details, see Chapter 20, UART. GPIO29 Input/ Output General-Purpose Input Output 29 One of 32 GPIOs. For details, see Chapter 22, GPIO. UART_RXD Input/ Output UART Receive Data Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For functional details, see Chapter 20, UART. GPIO28 Input/ Output\ General-Purpose Input Output 28 One of 32 GPIO pins used as GPIO or as a dedicated input or output. For details, see Chapter 22, GPIO. 3.11 I2C Signals Table 3-13. I2C Signals Signal Name Type Description I2C_SDA Input/ Output I2C-Bus Data Line This is the data line for the I2C bus. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For functional details, see Chapter 24, I2C. GPIO31 Input/ Output General-Purpose Input Output 31 One of 32 GPIOs. For details, see Chapter 22, GPIO. Valid in all modes. I2C_SCL Input/ Output I2C-Bus Clock Line This the clock line for the I2C bus. Selected through the GPIO configuration. For details, see Chapter 22, GPIO. For functional details, see Chapter 24, I2C. GPIO30 Input/ Output General-Purpose Input/Output 30 One of 32 GPIOs. For details, see Chapter 22, GPIO. Valid in all modes. MSC8156 Reference Manual, Rev. 2 3-26 Freescale Semiconductor External DMA Signals 3.12 External DMA Signals Table 3-14. External DMA Signals Signal Name Type Description DDN0 Output DMA External DONE Indication 0 When enabled by GPIO multiplexing, this signal is asserted to indicate that DMA request 0 is done. For details, see Chapter 14, Direct Memory Access (DMA) Controller, GPIO15 Input/ Output General-Purpose Input Output 15 One of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ15 Input Interrupt Request 15 External line that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. RC15 Input Reset Configuration Word Bit 15 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. DRQ0 Input DMA External Request 0 When enabled by GPIO multiplexing, asserting this input triggers external DMA request 0. For details, see Chapter 14, Direct Memory Access (DMA) Controller, GPIO14 Input/ Output General-Purpose Input Output 14 One of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ14 Input Interrupt Request 14 External line that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. RC14 Input Reset Configuration Word Bit 14 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. DDN1 Output DMA External DONE Indication 1 When enabled by GPIO multiplexing, this signal is asserted to indicate that DMA request 1 is done. For details, see Chapter 14, Direct Memory Access (DMA) Controller, GPIO4 Input/ Output General-Purpose Input Output 4 One of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ4 Input Interrupt Request 4 External lines that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. RC4 Input Reset Configuration Word Bit 4 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-27 External Signals Table 3-14. External DMA Signals (Continued) Signal Name Type DRQ1 Input GPIO3 Input/ Output Description DMA External Request 1 When enabled by GPIO multiplexing, asserting this input triggers external DMA request 1. For details, see Chapter 14, Direct Memory Access (DMA) Controller, General-Purpose Input Output 3 One of the 32 GPIOs. For details, see Chapter 22, GPIO. IRQ3 Input Interrupt Request 3 External line that can request a service routine via the internal interrupt controller. For details, see Chapter 13, Interrupt Handling. RC3 Input Reset Configuration Word Bit 3 Sampled during the assertion of PORESET to set part of the bits of the Reset Configuration Word Registers. 3.13 Other Interrupt Signals Table 3-15 summarizes the other interrupt signal lines. Table 3-15. Other Interrupt Signals Signal Name INT_OUT NMI NMI_OUT Type Description Output Interrupt Output An open-drain output driven from the MSC8156 virtual interrupt 24. Assertion of this output indicates that an unmasked interrupt is pending in the MSC8156 internal interrupt controller. Input Non-Maskable Interrupt An external device may assert this line to generate a non-maskable interrupt to the MSC8156 device. Output Non-Maskable Interrupt Output An open-drain pin driven from the MSC8156 virtual interrupt 25. Assertion of this output indicates that a non-maskable interrupt is pending in the MSC8156 internal interrupt controller, waiting to be handled by an external host. MSC8156 Reference Manual, Rev. 2 3-28 Freescale Semiconductor OCE Event and JTAG Test Access Port Signals 3.14 OCE Event and JTAG Test Access Port Signals The MSC8156 uses two sets of debugging signals for the two types of internal debugging modules: OCE and the JTAG TAP controller. Each internal SC3850 core has an OCE module, but they are all accessed externally by the same two signals EE0 and EE1. The MSC8156 supports the standard set of test access port (TAP) signals defined by IEEE® Std. 1149.1™ Test Access Port and Boundary-Scan Architecture specification and described in Table 3-16. Table 3-16. JTAG TAP Signals Signal Name Type Signal Description EE0 Input OCE Event Bit 0 Used for putting the internal SC3850 cores into Debug mode. Pulling the signal high asserts the signal and requests that the cores enter Debug mode. EE1 Output TCK Input Test Clock A test clock signal for synchronizing JTAG test logic. TDI Input Test Data Input A test data serial signal for test instructions and data. TDI is sampled on the rising edge of TCK and has an internal pull-up resistor. TDO Output Test Data Output A test data serial signal for test instructions and data. TDO can be tri-stated. The signal is actively driven in the shift-IR and shift-DR controller states and changes on the falling edge of TCK. TMS Input Test Mode Select Sequences the test controller’s state machine, is sampled on the rising edge of TCK, and has an internal pull-up resistor. TRST Input Test Reset Asynchronous JTAG reset input. Initializes the TAP logic. This signal should always be asserted with PORESET. OCE Event Bit 1 Indicates that at least one on-chip SC3850 core is in Debug mode. A high output indicates that at least one SC3850 core is in Debug mode. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 3-29 External Signals MSC8156 Reference Manual, Rev. 2 3-30 Freescale Semiconductor Chip-Level Arbitration and Switching System (CLASS) 4 The Chip Level Arbitration and Switching System (CLASS) is the central internal interconnect system for the MSC8156 device. The CLASS is a non-blocking, full-fabric interconnect that allows any initiator to access any target in parallel with another initiator-target couple. The CLASS uses a fully pipelined low latency design. The CLASS demonstrates per-target prioritized round-robin arbitration, highly optimized to the target characteristics. The CLASS operates at 500 MHz, and is separate from the SC3850 core frequency to provide an optimized trade-off between power dissipation, memory technology, and miss latency. Controlling the intradevice data flow, the CLASS reduces bottle necks and permits high bandwidth fully pipe-lined traffic. The CLASS system is ready for use and does not require any special configuration to perform non-blocking pipelined transactions from any initiator to any memory. The configurable arbitration features described in this chapter are for fine-tuning the system for specific application requirements. The twelve CLASS initiators are: Six SC3850 core subsystems (initiator ports 0–5) Two MAPLE bridges (initiator ports 6–7) SerDes bridge shared by two Serial RapidIO controllers and the PCI Express controller (initiator port 8) Peripherals bridge shared by the SEC, four TDM interfaces, SPI, RGMII, SGMII, and JTAG interface (initiator port 9) Two DMA controllers (initiator ports 10–11) The eight CLASS targets are: Configuration Control and Status Registers (CCSR) (target port 0) MAPLE module (target port 1) Three core subsystem bridges (two core subsystems per bridge) (target ports 2–4) Two DDR controllers (target ports 5–6) M3 memory (target port 7) Reference Manual, Rev. 2 Freescale Semiconductor 4-1 Chip-Level Arbitration and Switching System (CLASS) The CLASS initiators and targets are shown in Figure 4-1. The arrows indicate the address direction from initiator to target. CCSR MAPLE Extended Core 4–5 Bridge 0 1 2 Target Devices Extended Extended Core 2–3 Core 0–1 Bridge Bridge 3 DDR Controller 1 DDR Controller 2 M3 5 6 7 4 Target Ports Chip Level Arbitration and Switching System (CLASS) 0 1 2 3 4 Initiator Ports 5 6 Extended Extended Extended Extended Extended Extended Core4 Core5 Core0 Core1 Core2 Core3 7 MAPLE 8 9 10 11 SerDes Peripherals DMA Controller Bridge Bridge Initiator Devices Figure 4-1. CLASS Initiators and Targets in the MSC8156 Device 4.1 CLASS Features The CLASS modules implement the following features: Non blocking, full fabric interconnect. Full bandwidth utilization toward each of the targets. Allows full pipeline when a specific initiator accesses a specific target. Allows full pipeline when accesses are generated by one or more initiators to specific targets. Read transactions can have a maximum pipeline of 16 acknowledged requests before completing the transaction toward the initiator. Write transactions can have a maximum pipeline of 3 acknowledged requests before completing the transaction toward the initiator. Programmable priority mapping. Programmable auto priority upgrade. Address decoding for target selection and multi target demultiplexing: — Programmable address space start/end registers per target, for flexible address decoding (resolution of 4 KB). Not supported in the reduced configuration option. — Fixed priority between address decoding results which allows overlapping address windows and deduction of address windows. Reference Manual, Rev. 2 4-2 Freescale Semiconductor Functional Description Per-target arbitration algorithm: — 4 level prioritization — Each level implements pseudo round-robin arbitration algorithm. — Weighted arbitration — Optimized data bus utilization mode Programmable masking priority for starvation elimination. Multiplexing the initiator buses according to the arbitration winner. Normalizing mode that splits non-aligned transactions according to the target capabilities (maximal burst size, power-of-2 burst, burst alignment, full size burst, data-beat alignment, wrap size) Error detection and handling: — The CLASS identifies illegal addresses; addresses that do not belong to any of the address windows or fall inside the negative windows. — The CLASS stores the illegal address, reports the error, and generates an interrupt. Debug and profiling unit (CDPU) support. 4.2 Functional Description The CLASS is a non blocking interconnect between up to 16 initiators and up to 16 targets. The main sub-blocks of the CLASS are: expander, multiplexer and arbiter, normalizer, and the CLASS control interface (CCI) unit that implements the interface and interrupt lines and the CLASS register files. The CLASS also implements an inherent debug and profiling unit (CDPU). To implement the protocol that deals with the point-to-point bus, the CLASS includes an expander module per initiator that performs address decoding and is used as sampling stage on the initiator side. Each expander module can detect an error address and generate an interrupt. For more details about the expander module see Section 4.2.1. From the target side, the CLASS includes a multiplexer and arbiter module and a normalizer module for each target. The multiplexer and arbiter module performs a pseudo round-robin (RR) arbitration algorithm between all the initiators and concentrates them toward one target. For details about multiplexer and arbiter module see Section 4.2.2. Each multiplexer and arbiter module has a dedicated normalizer module that is used as the sampling stage on the target side. The normalizer can also be used for normalizing transactions. For more details about normalizer module see Section 4.2.3. Reference Manual, Rev. 2 Freescale Semiconductor 4-3 Chip-Level Arbitration and Switching System (CLASS) 4.2.1 Expander Module and Transaction Flow Each expander module connects to one initiator. The expander module performs address decoding according to the configuration register settings. Each target is presented by a start address and an end address that define a window in the memory space. The address decoding is done by checking whether the transaction address hits one of the active windows. Each expander module is connected to all of the multiplexer and arbiter blocks in the CLASS to implement a full-fabric and non-blocking interconnect between any initiator to any target. If the address decoding hits in more than one window, the CLASS arbiter chooses a window by fixed priority arbitration (target 0 has the lowest priority). After detecting the requested target and the arbiter selects the target window, the expander module starts a transaction toward the associated multiplexer and arbiter module. The CLASS prevents the possibility of simultaneous accessing to more than one target by the same initiator. If there are accesses from one initiator to different targets, the expander module start the transactions to other targets only after all the open accesses to the current target are completed. The expander module is a sampling stage of transaction. For each request (address + attribute), write data is sampled from the initiator and driven to the normalizer module through multiplexer and arbiter module in the following clock cycle; read data is sampled from the normalizer module through multiplexer and arbiter module and driven to the initiator in the following clock cycle. 4.2.2 Multiplexer and Arbiter Module The multiplexer and arbiter module connects to all the expander modules on one side and to a dedicated normalizer module on the other side. The multiplexer and arbiter module block is a pure logic data path design, that supports up to 16 initiators, performs an arbitration, and concentrates them towards a specific target normalizer module. 4.2.2.1 CLASS Arbiter The CLASS arbiter performs weighted arbitration algorithm for requestors simultaneously using a pseudo round-robin arbitration algorithm for each of the priority levels and chooses the highest level request. The CLASS arbiter supports four priority levels, where 3 is the highest and 0 is the lowest. The arbitration operation can be done every clock cycle or delayed according to the number of datums of acknowledged transaction (Late Arbitration mode). The CLASS arbiter supports priority upgrade, so the initiator can upgrade the priority level at any clock cycle. To eliminate starvation for initiators with low priority, the Masking Priority should be enabled. Starvation can occur when the higher priority initiators access continuously and the lower priority initiators can not perform any access (no priority upgrade ability by the initiator and auto priority upgrade in the expander module is disabled). When the Masking Priority is enabled, the arbiter dedicates slots for lower priority initiator in which the higher priority initiators are masked. Reference Manual, Rev. 2 4-4 Freescale Semiconductor Functional Description 4.2.2.1.1 Weighted Arbitration The CLASS arbiter supports limited weighted arbitration. Weighted arbitration is needed to apply non-uniform distribution of the bandwidth from all initiators toward each target. Weighted arbitration is configurable per CLASS target and gives configurable weights to each initiator. The CLASS arbiter ensures that when a weighted initiator wins the arbitration, it performs Weight + 1 consecutive transactions before transferring control to another initiator with the same or lower priority level. 4.2.2.1.2 Late Arbitration In late arbitration mode, the request is initiated by the class arbiters as late as possible. At the end of a data burst, this can give better or worse performance for the initiators. The performance depends on the bursty character of the application and the utilization to the target. This mode is activated/deactivated by the appropriate bit in the C0ACR (see Section 4.8.26, CLASS Arbitration Control Register (C0ACR)). 4.2.2.1.3 Priority Masking When C0ACR[PME] is set, the class arbiters are configured to preserve cycle slots for low priority accesses. They reserve 1/16 of all cycles for priority 0, 2/16 of all cycles for priority 1 or 0, and 2/16 of all cycles for priority 2, 1, or 0. This mode can decrease overall performance. This is one of two approaches to eliminate starvation. The other is to use auto-priority upgrade. 4.2.2.1.4 Auto Priority Upgrade This mode is activated by setting the C0PACRx[AUE] bit (see Section 4.8.3, CLASS Priority Auto Upgrade Control Registers (C0PACRx)). When active, a pending request has its priority upgraded to the next higher priority after a specified number of cycles specified by C0PAVRx[AUV] (see Section 4.8.2, CLASS Priority Auto Upgrade Value Registers (C0PAVRx)). The upgrade level and timing depend on the current priority value assigned, as follows: For priority 0 requests, the priority is upgraded to priority 1 after AUV cycles. For priority 1 requests, the priority is upgraded to priority 2 after AUV/2 cycles. For priority 2 requests, the priority is upgraded to priority 3 (highest) after AUV/4 cycles. The upgrade process continues until the request is processed or it reaches priority 3. 4.2.2.2 CLASS Multiplexer The CLASS multiplexer includes two FIFOs that connect between the appropriate initiator and the target. The FIFO depth is 16, thus enabling the multiplexer and arbiter module to deal with 16 open transactions, which received their request acknowledge and are waiting for the end-of-data or end-of-transaction signals. The CLASS multiplexer is pure logic for the data path and does not cause any latency. Reference Manual, Rev. 2 Freescale Semiconductor 4-5 Chip-Level Arbitration and Switching System (CLASS) 4.2.3 Normalizer Module Each normalizer module is connected to the appropriate multiplexer and arbiter module on one side and to a specific CLASS target interface on the other side. Each normalizer module is used as a sampler for full pipeline towards the target. The normalizer module is the only module within the CLASS that can manipulate the transaction (for example, splitting non-aligned transactions). An internal signal is used to indicate that optimization is needed. Only the last normalizer module on the way to the target is used for normalization. All the other normalizer modules should be used only as samplers. The normalizer module supports the fast confirm mechanism for writes. 4.2.4 CLASS Control Interface (CCI) The CLASS control interface (CCI) enables access to the CLASS configuration, control, and status registers. All write accesses to these registers should use supervisor mode. See Section 4.8 for programming details. 4.3 MSC8156 Initiator CLASS Access Priorities Table 4-1 summarizes the priorities of the CLASS initiators when accessing targets over the CLASS. The priority listed in this table is the priority of the accesses by the initiator before any CLASS remapping (that is, C0PMRx = 0x3210). If the CLASS is remapped (using C0PMRx), this table represents the arrival priority of the initiator to the CLASS and not the new mapped value. Note that start-up code (for example, the CodeWarrior initialization files) and boot code can change the value of C0PMRx from its reset value. Table 4-1. Initiator CLASS Access Priorities Initiator Priority 0 Priority 1 Priority 2 Priority 3 “Low” priority (0) NA NA NA Cores and subsystems - Read NA NA “High” priority (2) NA Cores and subsystems - Write “Low” priority (0) - Normal write NA “High” priority (2) - If the write stalls the core NA (0) NA NA NA SRIO priority (0) SRIO priority (1) SRIO priority (2) NA NA SRIO priority (0), SRIO priority (1) SRIO priority (2) NA Cores and subsystems Prefetch MAPLE SRIO - Inbound (IO, Maintenance, Doorbell) SRIO - Inbound (Message) comments A core read transaction reaches the CLASS in case of L1/L2 miss or non-cacheable address SRIO priority (0) and (1) both result in CLASS priority 1 Reference Manual, Rev. 2 4-6 Freescale Semiconductor MSC8156 Initiator CLASS Access Priorities Table 4-1. Initiator CLASS Access Priorities (Continued) Initiator Priority 0 Priority 1 Priority 2 Priority 3 NA NA Priority (2) NA RMU - DATA Read (Outbound Doorbell or Message) Priority (0), Priority (1) Priority (2) NA NA OCNDMA BD Read (0) NA NA NA OCNDMA DATA Read/Write (0) NA NA NA System DMA BD Read NA NA NA (3) PP (0) PP (1) PP (2) PP (3) PCI Express Inbound NA NA (2) NA TDM NA Default Priority (1) NA Emergency (Defined by progrmable threshold of TDM FIFO fill) RMU - BD Read System DMA DATA Read/Write QUICC Engine subsystem Normal mode (0) Normal mode (1) Normal mode (2) comments Serial RapidIO priority (0) and (1) both result in CLASS priority 0 See Section 14.7.22.1, Buffer Attributes (BD_ATTR) and Section 14.7.22.2, Multi-Dimensional Buffer Attributes (BD_MD_ATTR). Normal/emergency See Section 18.3.4, mode (3) MBus Access and the Serial DMA Mode Register (SDMR) in the QUICC Engine Block Reference Manual with Interworking Protocol. Reference Manual, Rev. 2 Freescale Semiconductor 4-7 Chip-Level Arbitration and Switching System (CLASS) 4.4 CLASS Error Interrupts The CLASS can generate one error interrupt that is common for all initiators. The error interrupt is created when the CLASS receives a transaction request with an illegal address. Illegal addresses are defined as any one of the following 2 cases: 1. An address which does not belong to any of the address space windows of the enabled address decoders. 2. An address which falls within any of the address space windows of the enabled error address decoders. When an illegal address is identified by the CLASS, the following events occur. The associated AEIx bit in the CISR is set. The address that was identified as illegal is stored in the associated CEARx and CEEARx. These registers are locked until the associated AEIx bit in the CISR is cleared either by a hardware reset or by writing 1 to this bit. Note: If the associated AEIx bit in the CISR is already set when the illegal address is identified (due to a prior illegal address), then the new error address is not stored. If the corresponding AEIEx bit in the CIER is set, an IRQ is issued. The CLASS does not initiate a transaction to any target. However, the CLASS will continue normally on the initiator side until completion, and report the error. In case of a read transaction, the CLASS delivers invalid data to the initiator. If, at the time of the error transaction, there are open transactions that did not receive the end-of-transaction, the expander module stalls all new transaction until all prior transactions receive the end-of-transaction, close the error transaction, report the end-of-transaction, report the error, and only then continue with subsequent transactions. Any subsequent requests with a legal address are serviced normally. Note: The CLASS does not produce an error when a transaction starts inside a target address window and finishes outside of the window. This situation must be avoided by the user. If it occurs, the results are unpredictable. The error interrupt is logically ORed with internal error interrupts. The internal error interrupts are associated with each initiator. Thus, the CLASS error interrupt is asserted when at least one internal interrupt is asserted. Reference Manual, Rev. 2 4-8 Freescale Semiconductor CLASS Debug Profiling Unit 4.5 CLASS Debug Profiling Unit The CLASS supports debug and profiling measurements by the CLASS debug and profiling unit (CDPU). 4.5.1 Profiling The user can configure the desired measurement in the CIPCRs and CTPCRs. Note: For each CLASS module, only one PMM field among all C0IPCRx and C0TPCRx can be greater than 0 during profiling. You can activate the CDPU by: Writing a 1 to the CPCR[PE] bit. Configuring a watch point event in CPCR[WPEC] field. The CDPU is deactivated by: Writing a 0 to the CPCR[PE] bit. Configuring a watch point event in CPCR[WPEC] field. Reaching a time-out in the CPTOR when the CPCR[TOE] bit is set. CPRCR overflow. After the desired profiling mode has been chosen, activate the CDPU to perform the measurement. At the beginning of every measurement, the CLASS Profiling Reference Counter (CPRCR) starts counting the clock cycles. Read the CPISR[OVE] bit to verify that the measurement is complete and that the profiling counter values are valid. If the CPISR[OVE] is clear, read the profiling counters CPRCR and CPGCR and analyze the results. Reference Manual, Rev. 2 Freescale Semiconductor 4-9 Chip-Level Arbitration and Switching System (CLASS) 4.5.2 Watch Point Unit The CLASS includes a watch point unit (WPU) for each of the initiator interfaces and for each of the target interfaces. The WPU can compare programmed values to the real transactions and generate a watch point event when a match occurs. Note: For each CLASS module, only one WPEN field can be set among all C0IWPCRx and C0TWPCRx when snooping watch point events. That is, only one watch point unit can be active at a time. Use the following steps to use the watch point unit: 1. Clear C0PCR. 2. Clear C0IPCRx and C0TPCR. 3. For the time-out mechanism, program C0PTOR and set the C0PCR[TOE] bit. 4. Define the transaction to be monitored by writing the desired configuration to C0WPCR, C0WPACR, C0WPEACR, and C0WPAMR. 5. Enable the watch point units through C0IWPCRx and C0TWPCR. 6. Set the C0WPRCR[CE] bit to enable counting of the watch point events. If you use the watch point events to enable/disable the profiling unit according to WPCE, clear this bit. 7. After the measurement are finished check the following registers: — — — — Read the C0PISR[OVE] bit. In time-out mode, read C0PRCR. If C0PISR[OVE] is set or if C0PRCR is equal to C0PTOR, the results are not valid. Read C0PGCRx to get the number of watch point events during the measurement. Reference Manual, Rev. 2 4-10 Freescale Semiconductor CLASS Debug Profiling Unit 4.5.3 Event Selection Events are selected using a combination of the CLASS watch point and profiling registers. Table 4-2 lists the measurement modes, the required configuration settings, and the events measured by the specific CLASS Profiling General Registers for each CLASS module. See Section 4.8 for the register details. Table 4-2. C0PGCRx Events Selection Configuration Settings for Each Mode Measurement Mode None selected Initiator Priority and Auto-Upgrade Initiator Access Type Initiator Stall C0WPCR [CE] C0TPCR [TT] C0TPCR [PMM] C0IPCRx [PMM] 0 0 — — 00 00 00000 00001 Events Measured C0PGCR0 C0PGCR1 C0PGCR2 C0PGCR3 — — — — No. of No. of No. of No. of Initiator Initiator Initiator Initiator Requests Requests Requests Autowith with with Upgrade Priority 1 Priority 2 Priority 3 Allows the user to profile a statistical distribution of transaction priorities. This information can be used to consider whether other arbitration methods (priority mapping, Auto-upgrade, weighted arbitration, priority mask enable) should be considered 0 — 00 00010 Initiator No. of No. of No. of Pending Initiator Initiator Initiator Request Read Real Write Fast Write cycles (not Requests Requests Requests acknow(not (not ledged) confirmed) confirmed) Real/Fast confirmation refers to the type of eot for writes that are requested per MBus transaction. • Real means that for coherency reasons the eot for write should be high only after the data is written to the target. • Fast means that for performance reasons the eot can be high even before the data is written to the target. Real/Fast confirmation support is initiator dependent and the user cannot change the related settings. A summary follows below: • DSP Cores − Write through uses fast confirmation − Write through with SYNCIO generate real confirmation − Last burst in a line write-back is sent with real confirmation • DMA. Channel transfers come with fast confirm and real confirm on the last data of a transfer. • Serial RapidIO Inbound Transactions. When the transfer comes with a response (NWRITE_R), the last data uses real confirmation and fast confirm for the previous transfer. For NWRITE, data is transferred with fast confirmation • Serial RapidIO Outbound Transactions. Supports fast confirm on the last data transfer per channel transfer and fast confirm for the previous transfer. • QUICC Engine and PCI Express Transactions. Always uses real confirmation The resulting information can be used to redesign the code to minimize stalls related to real confirmations. Use of large transactions reduces the number of real confirmations because they are only required for the last beat of the transfer. No. of stall — No. of stall 0 — 00 00011 No. of cycles due Write After cycles due to WAR to TS Read events events (WAR) events By managing WAR and target switching, an initiator can enhance the performance for memory accesses and thus minimize run time. Note: Stall at the initiator does not mean that the initiator target data phase is idle; it indicates the delay after which the next access from the initiator starts at the target after a WAR or TS event. Reference Manual, Rev. 2 Freescale Semiconductor 4-11 Chip-Level Arbitration and Switching System (CLASS) Table 4-2. C0PGCRx Events Selection (Continued) Configuration Settings for Each Mode Measurement Mode Initiator Priority Upgrade Initiator Priority Non-Upgrade Initiator Supervisor Initiator Bandwidth Initiator-target Bandwidth C0WPCR [CE] C0TPCR [TT] C0TPCR [PMM] C0IPCRx [PMM] 0 — 00 00100 Events Measured C0PGCR0 C0PGCR1 C0PGCR2 C0PGCR3 Initiator Initiator Initiator — Sample 0 Sample 1 Sample 2 Upgrade Upgrade Upgrade cycles cycles cycles Initiator Priority Upgrade measurement counts the number of cycles a low-priority transaction is upgraded because a high-priority transaction was scheduled into the CLASS pipeline. This upgrading mechanism is necessary to reduce the service latency of newly issued transactions because the CLASS is ordered in nature and does not do preemption. A high-priority transaction could otherwise be delayed by preceding lower priority accesses for long periods of time. The upgrade is to the priority level of the high-priority transaction and it is only possible if the transaction is upgradable. The upgrade attribute of a transaction is initiator dependent and it is hard-wired. The system DMA is the only initiator issuing non-upgradable transactions. The counter measurements take place in the early stages of the CLASS pipeline at different sample locations. Transactions in sample 0 are older than transactions on sample 1, and transactions in sample 1 are older than the ones in sample 2. Any type of priority upgrade, including auto-upgrade, is captured by these counters. These counters provide a good view of the starvation dynamics of the system. 0 — 00 00101 Initiator Initiator Initiator — Sample 0 Sample 1 Sample 2 No No No Upgrade Upgrade Upgrade cycles cycles cycles Initiator Priority No-Upgrade measurement counts the number of cycles an older low-priority transaction is not upgraded despite the fact that a newer high-priority is scheduled by the same initiator. Compare with “Initiator Priority Upgrade”. This applies only to System DMA transactions because they are not upgradable by default. All other initiator transactions can be upgraded. These counts are not very useful for performance analysis, but they provide a good view of the starvation dynamics of the system. 0 — 00 00110 Request No. of No. of non— pending supervisor supervisor cycles accesses accesses Supervisor/user accesses can be used to profile the amount of time the OS spends running and how much time is left for the users application. Effective for evaluating the core subsystem supervisor/user mode usage. The implementation depends on the values configured in M_DSDAx[DAPU]/M_DSDAx[DAPS], and so forth. See the SC3850 Core Subsystem Reference Manual for configuration details. — — No. of 0 — 00 00111 No. of Initiator Initiator Read Data Write Data AcknowAcknowledges. ledges Can be used to profile the number of data reads and writes. The amount of data that passes through the initiator port = [(NumberOfReadAck + NumberOfWriteAck) × W]. where W is the port width. Note that an access may be smaller than the port width. 0 — 00 10000 + T No. of No. of — — Read Data Write Data AcknowAcknowledges ledges between between Initiator Initiator and Target and Target T T Can be used to profile the number of data reads and writes. between an initiator and a specific target The amount of data that passes through the initiator port = [(NumberOfReadAck + NumberOfWriteAck) × W]. where W is the port width. Note that an access may be smaller than the port width. Reference Manual, Rev. 2 4-12 Freescale Semiconductor CLASS Debug Profiling Unit Table 4-2. C0PGCRx Events Selection (Continued) Configuration Settings for Each Mode Measurement Mode Arbitration Winner Priority Target Access Splitting Arbitration Collision Target Bandwidth Target Stall Watch Point C0WPCR [CE] C0TPCR [TT] C0TPCR [PMM] C0IPCRx [PMM] 0 0 01 00000 Events Measured C0PGCR0 C0PGCR1 C0PGCR2 C0PGCR3 No. of No. of No. of No. of priority 0 priority 1 priority 2 priority 3 transtranstranstransactions at actions at actions at actions at Target T Target T Target T Target T Can be used to see the priority distribution for a target port 0 1 01 00000 No. of No. of — — M-byte N-byte accesses accesses toward toward target T. target T. M= N= Initiator Initiator requests requests (pre (post splitting splitting accesses) accesses) Target access splitting gives statistical information about the ratio between initiator and target accesses towards every target. It returns the number of accesses in pre and post splitting. For example, say there are only 2 types of accesses to some target #T: 64-Byte and 16-Byte, and this target only supports 16-Byte accesses. Then, if the count shows 10000 initiator accesses and 34000 target accesses, this translates to 8000 × (64-Byte accesses) + 2000 × (16-Byte accesses), and they were split into 8000 × (4 × 16-Byte accesses) + 2000 × (16-Byte access) = 32000 + 2000 = 34000 accesses 0 0 10 00000 Target T — — — Pending Request cycles This represents the number of cycles with more than one request directed to Target T. 0 1 10 00000 No. of No. of — — Target T Target T Read Data Write Data AcknowAcknowledges ledges Can be used to profile the number of data reads and writes to Target T. The amount of data that passes through the target port = [(NumberOfReadAck + NumberOfWriteAck) × W] where W is the port width.Note that an access can be less than the port width 0 — 11 00000 No. of No. of stall — — Write after cycles due to WAR Read (WAR) events events By managing WAR event, the system designer can enhance memory access performance and thus minimize run time. Note: A WAR stall at the target does not mean that the target bus is idle. It indicates the delay after which the next access from the initiator starts at the target after a WAR event. 1 — 00 00000 No. of — — — Watch Point Event Watch point event scan be snooped on any initiator and any target. It can be used for debug and also for triggering profiling counts that are pre-configured, this is non-intrusive (eliminating the need to write to the registers in the middle of an application) Reference Manual, Rev. 2 Freescale Semiconductor 4-13 Chip-Level Arbitration and Switching System (CLASS) 4.5.4 Debug and Profiling Events The CLASS generates two event interrupts: Watch point event (WPE) Overflow event (OVE) 4.6 CLASS Reset The CLASS implements 2 kinds of reset: Synchronous hard reset. Synchronous soft reset. 4.6.1 Soft Reset This kind of reset has the following effects: All the CLASS state machines return to their idle state. All the CLASS operation FFs return to their idle state. The CLASS configuration registers are reset as described in the table for each register in Section 4.8, Programming Model. 4.6.2 Hard Reset This reset brings all states machines to idle state and sets all CLASS registers to the reset values. 4.7 Limitations The CLASS does not support split transaction between targets. A split transaction starts inside a targets address space but ends outside of this window. The CLASS does not report an error in this event and the results are unpredictable. You must avoid this situation. The CLASS does not support pipelined transactions between different targets by the same initiator. The pipeline is stalled until all transaction to one target are closed before issuing a transaction to a different target. Arbitration Fairness. Requests with the higher priority levels may cause transactions with lower priority levels not to be acknowledged, resulting in a starvation condition. This situation can be prevented by using the auto priority upgrade supported by the expander module and/or by the multiplexer and arbiter module priority mask mechanism. Do not allow the TDM or QUICC Engine interfaces (Ethernet and SPI) to access the MAPLE-B block. Do not allow MAPLE-B to access itself. Do not allow cores to access each other. Reference Manual, Rev. 2 4-14 Freescale Semiconductor Programming Model 4.8 Programming Model All the CLASS registers are 32-bit registers. All the read and write accesses are executed through the bus. The CLASS modules use the following registers: Note: CLASS Priority Mapping Registers (see page 4-16) CLASS Priority Auto Upgrade Value Registers (see page 4-18) CLASS Priority Auto Upgrade Control Registers (see page 4-19) CLASS Error Address Registers (see page 4-20) CLASS Error Extended Address Registers (see page 4-21) CLASS Initiator Profiling Configuration Registers (see page 4-23) CLASS Initiator Watch Point Control Registers (see page 4-25) CLASS Arbitration Weight Registers (see page 4-26) CLASS Start Address Decoder x (see page 4-27) CLASS End Address Decoder x (see page 4-28) CLASS Attributes Decoder x (see page 4-29) CLASS IRQ Status Register (see page 4-30) CLASS IRQ Enable Register (see page 4-31) CLASS Target Profiling Configuration Register (see page 4-32) CLASS Profiling Control Register (see page 4-33) CLASS Watch Point Control Register (see page 4-34) CLASS Watch Point Access Configuration Register (page 4-36) CLASS Watch Point Extended Access Configuration Register (see page 4-37) CLASS Watch Point Address Mask Register (see page 4-38) CLASS Profiling Time Out Register (see page 4-39) CLASS Target Watch Point Control Register (see page 4-40) CLASS Profiling IRQ Status Register (see page 4-41) CLASS Profiling IRQ Enable Register (see page 4-42) CLASS Profiling Reference Counter Register (see page 4-42) CLASS Profiling General Counter Registers (see page 4-43) CLASS Arbitration Control Register (see page 4-44) The base address for addressing CLASS registers is 0xFFF18000. Reference Manual, Rev. 2 Freescale Semiconductor 4-15 Chip-Level Arbitration and Switching System (CLASS) 4.8.1 CLASS Priority Mapping Registers (C0PMRx) C0PMR[0–11] Bit 31 CLASS Priority Mapping Registers 30 29 28 27 26 25 24 23 22 Offset 0x800 + x*0x04 21 20 19 18 17 16 — PB Type Reset Boot 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset Boot PM3 — PM2 — PM1 — PM0 R/W 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 C0PMRx is used as a look-up table for mapping the priority received from the initiator. By default the input priority is mapped to an identical value on the output. This register also enables/disables the priority derivation feature. Note: You cannot write to this register while there are open CLASS transactions. The boot overrrides the default reset value for C0PMR[0–5] only. Table 4-3 lists the C0PMRx bit field descriptions. Table 4-3. C0PMRx Bit Descriptions Name Reset Description — 31–17 PB 16 0 Reserved. Write to 0 for future compatibility. 0 Priority Bypass Enables/disables the priority derivation mechanism. — 15–14 PM3 13–12 — 11–10 PM2 9–8 — 7–6 PM1 5–4 0 Reserved. Write to 0 for future compatibility. 11 Priority Mapping 3 Holds the priority value assigned to transactions that arrive with a value of 3. 0 Reserved. Write to 0 for future compatibility. 10 Priority Mapping 2 Holds the priority value assigned to transactions that arrive with a value of 2. 0 Reserved. Write to 0 for future compatibility. 01 Priority Mapping 1 Holds the priority value assigned to transactions that arrive with a value of 1. Settings 0 1 Filter the mapped priority with the priority derivation mechanism. Pass the mapped priority from initiator to target with no filtering. 00 01 10 11 Priority 0 Priority 1 Priority 2 Priority 3 00 01 10 11 Priority 0 Priority 1 Priority 2 Priority 3 00 01 10 11 Priority 0 Priority 1 Priority 2 Priority 3 Reference Manual, Rev. 2 4-16 Freescale Semiconductor Programming Model Table 4-3. C0PMRx Bit Descriptions (Continued) Name Reset Description — 3–2 PM0 1–0 0 Reserved. Write to 0 for future compatibility. 0 Priority Mapping 0 Holds the priority value assigned to transactions that arrive with a value of 0. Settings 00 01 10 11 Priority 0 Priority 1 Priority 2 Priority 3 Reference Manual, Rev. 2 Freescale Semiconductor 4-17 Chip-Level Arbitration and Switching System (CLASS) 4.8.2 CLASS Priority Auto Upgrade Value Registers (C0PAVRx) C0PAVR[0–11] Bit 31 30 CLASS Priority Auto Upgrade Value Registers Offset 0x840 + x*0x04 29 28 27 26 25 24 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 1 1 1 1 1 1 1 Type Reset AUV R/W 1 1 1 1 1 1 1 1 C0PAVRx holds the value loaded to the priority auto-upgrade counter. Note: You can write to this register while there are open CLASS transactions. The AUV field is loaded into the auto-upgrade counter only when you set the AUE bit in C0PACRx. Therefore, always update the AUV field in the C0PAVRx before you set the AUE bit. Table 4-4 lists the C0PAVRx bit field descriptions. Table 4-4. C0PAVRx Bit Descriptions Name Reset — 31–16 0 AUV 15—0 0xFFFF Description Reserved. Write to 0 for future compatibility. Auto-Upgrade Value The value loaded into the auto-upgrade counter. The priority of the access determines which bits of this value are used, as follows: • Priority 0: All 16 bits are loaded into the counter. • Priority 1: Bits 15–1 are loaded into bit 14–0 of the counter and a 0 into bit 15. • Priority 2: Bits 15–2 are loaded into bits 13–0 of the counter and 0 into bits 15 and 14. Reference Manual, Rev. 2 4-18 Freescale Semiconductor Programming Model 4.8.3 CLASS Priority Auto Upgrade Control Registers (C0PACRx) C0PACR[0–11] Bit 31 30 CLASS Priority Auto Upgrade Control Registers Offset 0x880 + x*0x04 29 28 27 26 25 24 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset AUE R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C0PACRx controls the priority auto-upgrade mechanism. Note: You can write to this register while there are open CLASS transactions. Table 4-5 lists the C0PACRx bit field descriptions. Table 4-5. C0PACRx Bit Descriptions Name Reset Description — 31–1 AUE 0 0 Reserved. Write to 0 for future compatibility. 0 Auto-Upgrade Enable Enables/disables the auto-upgrade mechanism. Note: Settings 0 1 Auto-upgrade mechanism disabled. Auto-upgrade mechanism enabled. This bit can only be cleared by a hardware reset. Reference Manual, Rev. 2 Freescale Semiconductor 4-19 Chip-Level Arbitration and Switching System (CLASS) 4.8.4 CLASS Error Address Registers (C0EARx) C0EAR[0–11] Bit 31 CLASS Error Address Registers 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 ERR_ADD R 0 0 0 0 0 0 0 0 0 6 5 4 3 2 1 0 0 0 0 0 0 0 0 Type Reset 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 Type Reset 0 0 0 0 0 0 Offset 0x980 + x*0x04 0 8 7 ERR_ADD R 0 0 The C0EAR is used to store the address (32 least significant bits) of the internal transaction when an error has been identified by the CLASS. When an error occurs and an error bit is set in the C0ISR, the internal transaction address is stored and the C0EARx is locked and does not update even if another error with a different transactions address occurs. Only when the AEIx bit in the C0ISR is cleared (either by a hardware reset or by writing a 1 to it) is C0EARx unlocked. Table 4-6 lists the C0EARx bit field descriptions. Table 4-6. C0EARx Bit Descriptions Name Reset ERR_ADD 31–0 0 Note: Description Error Address This field stores the 32 lsbs of the address of the internal transaction that caused the error. The generated interrupts correspond to the following sources: — — — — — — — — — — C0EAR0 = Address generated by core 0. C0EAR1 = Address generated by core 1. C0EAR2 = Address generated by core 2. C0EAR3 = Address generated by core 3. C0EAR4 = Address generated by core 4. C0EAR5 = Address generated by core 5. C0EAR6 = Address generated by MAPLE-B port 0. C0EAR7 = Address generated by MAPLE-B port 1. C0EAR8 = Address generated by HSSI (serial RapidIO or PCI Express interface). C0EAR9 = Address generated by SEC, QUICC Engine subsystem (Ethernet or SPI), Debug system, or TDM. — C0EAR10 = DMA port 0. — C0EAR11 = DMA port 1. Reference Manual, Rev. 2 4-20 Freescale Semiconductor Programming Model 4.8.5 CLASS Error Extended Address Registers (C0EEARx) C0EEAR[0–11] Bit 31 30 CLASS Extended Error Address Registers 29 28 27 26 25 24 23 22 21 Offset 0x9C0 + x*0x04 20 19 18 17 — 16 RW Type Reset 0 0 0 0 0 0 0 0 R 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — SA Type Reset — SRC_ID ERR_ADD R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The C0EEAR stores the most significant 4 bits of the address of the internal transaction when an error has been identified by the CLASS. This register also stores the attributes and the source ID of this transaction. When an error occurs and an error bit is set in the C0ISR, the internal transaction address is stored and the C0EEAR is locked and is not updated even if another error with a different transactions address/attributes occurs. Only when the AEI bit in the CISR is cleared (either by a hardware reset or by writing a 1 to it) is C0EEAR unlocked. Table 4-7 lists the C0EEARx bit field descriptions. Table 4-7. C0EEARx Bit Descriptions Name Reset — 31–17 RW 16 0 Reserved. Write to 0 for future compatibility. 0 0 1 Write. Read. — 15 SA 14 0 Read/Write This field indicates whether the transaction that caused the error was a read or a write. Reserved. Write to 0 for future compatibility. 0 1 Not supervisor. Supervisor. — 13–9 SRC_ID 8–4 0 Supervisor Access This field indicates whether the transaction that caused the error was in supervisor mode. Reserved. Write to 0 for future compatibility. 0 Source ID Identifies the source ID of the initiator that caused the error. 0x00 Core 0 0x01 Core 1 0x02 Core 2 0x03 Core 3 0x06 MAPLE-B 0x07 MAPLE-B 0x08 DMA Controller 0x09 DMA Controller 0x0B QUICC Engine subsystem 0x0C Serial RapidIO Port 0 0x0D Serial RapidIO Port 1 0x0E TDM All other values reserved. ERR_ADD 3–0 0 Error Address This field stores the 4 msbs of the address of the internal transaction that caused the error. 0 Description Settings Reference Manual, Rev. 2 Freescale Semiconductor 4-21 Chip-Level Arbitration and Switching System (CLASS) Reference Manual, Rev. 2 4-22 Freescale Semiconductor Programming Model 4.8.6 CLASS Initiator Profiling Configuration Registers (C0IPCRx) C0IPCR[0–11] Bit 31 30 CLASS Initiator Profiling Configuration Registers‘Offset 0xA00 + x*0x04 29 28 27 26 25 24 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 — Type Reset PMM R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C0IPCRx controls the CLASS initiator profiling measurements. Each initiator has a dedicated C0IPCR which is numbered according to the initiator number within each CLASS module. The CLASS can perform only one measurement for a specific module at a time. Select the desired measurement for the initiator, enter the PMM value in the associated C0IPCR and make sure all the other C0IPCR and the C0TPCR for that CLASS are cleared. Note: Only one PMM field among all C0IPCRx and C0TPCR can be greater than 0 during profiling. Table 4-8 lists the C0IPCRx bit field descriptions. Table 4-8. C0IPCRx Bit Descriptions Name Reset Description — 31–5 PMM 4–0 0 Reserved. Write to 0 for future compatibility. 0 Profiling Measurement Mode Determines the profiling measurement mode for the matching initiator. Note: This register can only be cleared by a hardware reset. Settings 00000 00001 00010 00011 00100 00101 00110 00111 01000– 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000– 11111 No measurement. Initiator priority and auto-upgrade. Initiator access type. Initiator stall. Initiator priority upgrade. Initiator priority non-upgrade. Initiator supervisor. Initiator bandwidth. reserved Target 0 bandwidth. Target 1 bandwidth. Target 2 bandwidth. Target 3 bandwidth. Target 4 bandwidth. Target 5 bandwidth. Target 6 bandwidth. Target 7 bandwidth. reserved Reference Manual, Rev. 2 Freescale Semiconductor 4-23 Chip-Level Arbitration and Switching System (CLASS) Table 4-9. Initiator Numbers Initiator Number Initiator Module 0 DSP core subsystem 0 1 DSP core subsystem 1 2 DSP core subsystem 2 3 DSP core subsystem 3 4 DSP core subsystem 4 5 DSP core subsystem 5 6 MAPLE port 0 7 MAPLE port 1 8 HSSI 9 SEC, Ethernet, SPI, TDM, or Debug 10 DMA port 0 11 DMA port 1 Reference Manual, Rev. 2 4-24 Freescale Semiconductor Programming Model 4.8.7 CLASS Initiator Watch Point Control Registers (C0IWPCRx) C0IWPCR[0–11] Bit 31 30 CLASS Initiator Watch Point Control Registers Offset 0xA40 + x*0x04 29 28 27 26 25 24 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset WPEN R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C0IWPCRx controls the Watch Point Unit operation for the associated initiator. The Watch Point Unit monitors a specific access defined by the C0WPCRx, C0WPACRx, C0WPEACRx, and C0WPAMR. Each initiator can be enabled/disabled to monitor the selected access. You can write to this register while there are open CLASS transactions. Note: Only one WPEN field can be set among all C0IWPCRx and C0TWPCRx when snooping watch point events. Table 4-10 lists the C0IWPCRx bit field descriptions. Table 4-10. C0IWPCRx Bit Descriptions Name Reset Description — 31–1 WPEN 0 0 Reserved. Write to 0 for future compatibility. 0 Watch Point Enable Enables/disables the auto-upgrade mechanism. Note: Settings 0 1 The watch point is disabled. The watch point is enabled. This bit can only be cleared by a hardware reset. Reference Manual, Rev. 2 Freescale Semiconductor 4-25 Chip-Level Arbitration and Switching System (CLASS) 4.8.8 CLASS Arbitration Weight Registers (C0AWRx) C0AWR[0–11] Bit 31 30 CLASS Arbitration Weight Registers 29 28 27 26 25 24 Offset 0xA80 + x*0x04 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset WEIGHT R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The value in C0AWRx determines the arbitration weight for the associated initiator. An initiator with arbitration weight of W is allowed to initiate up to W+1 consecutive transactions. Note: When another initiator requests for access with higher priority level, the CLASS Arbiter chooses the higher priority request instead of the weighted winner. Table 4-11 lists the C0AWRx bit field descriptions. Table 4-11. C0AWRx Bit Descriptions Name Reset Description — 31–4 0 Reserved. Write to 0 for future compatibility. WEIGHT 3–0 0 Weight Contains the arbitration weight assigned to the associated initiator. Note: Settings Recommended Values: 0011 Use for C0AWR0 through C0AWR9 0111 Use for C0AWR10 and C0AWR11 This register can only be cleared by a hardware reset. Using the reset values can result in poor initial system performance. Table 4-11 lists the recommended initial arbitration weight settings to apply after reset to increase initial performance levels during application development. These are just initial recommendations and can be changed by the designer according to the application requirements. However, the recommended settings will yield much higher performance than using the hardware default values. As a general rule, these recommended settings select a weighted arbitration of 3 for cores, MAPLE-B, RapidIO controllers, and other peripheral controllers; these are controlled by C0AWR0 through C0AWR9. Use a weighted arbitration of 7 for DMA transactions, which are controlled by C0AWR10 and C0AWR11. Also, see Table 4-29 for recommended initial settings for the CLASS Arbitration Control Register (C0ACR). Reference Manual, Rev. 2 4-26 Freescale Semiconductor Programming Model 4.8.9 CLASS0 Start Address Decoder x (C0SADx) C0SAD5 C0SAD6 Bit 31 CLASS0 Start Address Decoders 30 29 28 27 26 25 24 — 23 22 21 Offset 0xC00 +x*0x04 20 19 18 17 16 SA35 SA34 SA33 SA32 SA31 SA30 SA29 SA28 R/W Type Reset SAD5 SAD6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Type Reset SAD5 SA27 SA26 SA25 SA24 SA23 SA22 SA21 SA20 SA19 SA18 SA17 SA16 SA15 SA14 SA13 SA12 R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C0SADx configure the address decoding of CLASS toward the DDR controllers (C0SAD5 and C0SAD6). They contain the start address of the window assigned to the specific port. Note: To ensure proper operation, never modify the contents of the register while the specific decoder is enabled. Always clear the associated CATDx[DEN] bit before changing the contents of C0SADx. These registers are reset by a hardware reset only. Table 4-25 lists the C0SADx bit field descriptions. Table 4-12. C0SADx Bit Descriptions Name Reset — 31–24 0 SA[35–12] 23–0 Port 5 = 0x040000 (DDR1 start) Port 6 = 0x080000 (DDR2 start) Note: Description Reserved. Write to 0 for future compatibility. Start Address 35–12 The 24 msb of the start address of the specified port window. The lsbs are all zeros. Never write to these registers when there are open transactions being handled by the CLASS to the specified target controlled by the register. Reference Manual, Rev. 2 Freescale Semiconductor 4-27 Chip-Level Arbitration and Switching System (CLASS) 4.8.10 CLASS End Address Decoder x (C0EADx) C0EAD5 C0EAD6 Bit 31 CLASS End Address Decoders 30 29 28 27 26 25 24 — 23 22 Offset 0xC40 + x*0x04 21 20 19 18 17 16 EA35 EA34 EA33 EA32 EA31 EA30 EA29 EA28 R/W Type Reset EAD5 EAD6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Type Reset EAD5 EAD6 EA27 EA26 EA25 EA24 EA23 EA22 EA21 EA20 EA19 EA18 EA17 EA16 EA15 EA14 EA13 EA12 R/W 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 C0EADx configure the address decoding of CLASS toward the DDR controllers (C0EAD5 and C0EAD6). They contain the end address of the window assigned to the specific port. Note: To ensure proper operation, never modify the contents of the register while the specific decoder is enabled. Always clear the associated CATDx[DEN] bit before changing the contents of C0EADx. These registers are reset by a hardware reset only. Table 4-25 lists the C0EADx bit field descriptions. Table 4-13. C0EADx Bit Descriptions Name Reset — 31–24 0 EA[35–12] 23–0 Port 5 = 0x05FFFF (DDR1 end) Port 6 = 0x09FFFF (DDR2 end) Note: Description Reserved. Write to 0 for future compatibility. End Address 35–12 The 24 msb of the end address of the specified port window. The lsbs are all zeros. You must make sure that this value is greater than or equal to the start address for the same window. If the end address is equal to the start address, the window size is 4 Kbytes. Never write to these registers when there are open transactions being handled by the CLASS to the specified target controlled by the register. Reference Manual, Rev. 2 4-28 Freescale Semiconductor Programming Model 4.8.11 CLASS Attributes Decoder x (C0ATDx) C0ATD5 C0ATD6 Bit CLASS0 Attributes Decoders 31 30 29 28 27 26 25 24 Offset 0xC80 + X*0x04 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset DEN R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 C0ATDx controls the functionality of each specific decoder for CLASS toward the DDR controllers (C0ATD5 and C0ATD6). They contain the bit that enables/disables the specific port. If a decoder is disabled, it never indicates a hit, even if the address corresponds to the decoder address window. In this case the CLASS treats the space as if it is not assigned to any port. However, any transaction that was acknowledged up to and including the cycle in which DEN is cleared continues normally until completed. Note: To ensure proper operation, do not enable the specific decoder before the start and end addresses are specified in the associated C0SADx and C0EADx. These registers are reset by a hardware reset only. Table 4-25 lists the C0ATDx bit field descriptions. Table 4-14. C0ATDx Bit Descriptions Name Reset — 31–1 0 Reserved. Write to 0 for future compatibility. DEN 0 1 Decoder Enable Enables/disables the specified decoder. Note: Description Settings 0 1 Disables the decoder. Enables the decoder. Never write to these registers when there are open transactions being handled by the CLASS to the specified target controlled by the register. Reference Manual, Rev. 2 Freescale Semiconductor 4-29 Chip-Level Arbitration and Switching System (CLASS) 4.8.12 CLASS IRQ Status Register (C0ISR) C0ISR Bit CLASS IRQ Status Register 31 30 29 28 27 26 25 24 Offset 0xD80 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AEI6 AEI5 AEI4 AEI3 AEI2 AEI1 AEI0 0 0 0 0 0 0 0 — Type Reset 0 0 AEI11 AEI10 AEI9 0 0 0 0 0 AEI8 AEI7 R/W 0 0 The C0ISR indicates when an event occurs that requires the generation of an interrupt. There is a dedicated bit for each initiator. An interrupt is generated only when a status bit is set and the corresponding bit in the IRQ Enable register is set. Bits are cleared by writing ones to them. Writing a zero has no effect. Note: You can write to or read this register at any time. The register is reset by a hard or soft reset. Table 4-15 lists the C0ISR bit field descriptions. Table 4-15. C0ISR Bit Descriptions Name Reset Description — 31–12 AEI[11–0] 11–0 0 Reserved. Write to 0 for future compatibility. 0 Address Error Interrupt 11–0 A bit is set if for a received transaction request, it does not belong to any port address space or falls inside one of the error areas. Settings 0 1 No error. Error detected. Reference Manual, Rev. 2 4-30 Freescale Semiconductor Programming Model 4.8.13 CLASS IRQ Enable Register (C0IER) C0IER Bit CLASS IRQ Enable Register 31 30 29 28 27 26 25 24 Offset 0xDC0 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset AEIE11 AEIE10 AEIE9 AEIE8 AEIE7 AEIE6 AEIE5 AEIE4 AEIE3 AEIE2 AEIE1 AEIE0 R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The C0IER is used to enable/disable the generation of interrupts that have occurred. There is a dedicated bit for each initiator. If a C0IER bit is cleared the corresponding bit in the C0ISR is masked. This register is reset by the hardware reset only. Table 4-16 lists the C0IER bit field descriptions. Table 4-16. C0IER Bit Descriptions Name Reset Description — 31–12 AEIE[11–0] 11–0 0 Reserved. Write to 0 for future compatibility. 0 Address Error Interrupt Enable Used to enable/disable the address error interrupt for an initiator. Settings 0 1 Interrupt masked. Interrupt enabled. Reference Manual, Rev. 2 Freescale Semiconductor 4-31 Chip-Level Arbitration and Switching System (CLASS) 4.8.14 CLASS Target Profiling Configuration Register (C0TPCR) C0TPCR Bit 31 CLASS Target Profiling Configuration Register 30 29 28 27 26 25 24 Offset 0xE00 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 TT — — Type Reset TN — PMM R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C0TPCR is used to control the CLASS target profiling measurements. Each CLASS module can perform only one measurement for a specific module at a time. Use the values of TT and TN to select the module. Use the PMM value to select the measurement. Only write the PMM value to this register when all the C0IPCRx are cleared. Note: For each CLASS module, you can only monitor one transaction. Therefore, only one PMM field in C0IPCRx and C0TPCR can be greater than 0 during profiling. Table 4-17 lists the C0TPCR bit field descriptions. Table 4-17. C0TPCR Bit Descriptions Name Reset Description — 31–13 0 Reserved. Write to 0 for future compatibility. TT 12 0 Target Type Selects the module used for target profiling. Used with PMM. See PMM settings. — 11 0 Reserved. Write to 0 for future compatibility. TN 10–8 0 Target Number Indicates the number of selected target. Settings 0 1 000 001 010 011 100 101 110 111 Arbiter. Normalizer. CCSR MAPLE Core 4 and 5 Bridge Core 2 and 3 Bridge Core 0 and 1 Bridge DDR1 DDR2 M3 Reference Manual, Rev. 2 4-32 Freescale Semiconductor Programming Model Table 4-17. C0TPCR Bit Descriptions (Continued) Name Reset Description Settings — 7–2 0 Reserved. Write to 0 for future compatibility. PMM 1–0 0 Profiling Measurement Mode Selects the profiling measurement for the selected target. If TT = 0: 00 No profiling measurement. 01 Arbitration winner priority measurement. 10 Collisions measurement. 11 reserved. If TT = 1: 00 No profiling measurement. 01 Transaction splitting measurement. 10 Bandwidth measurement. 11 Stall measurement. 4.8.15 CLASS Profiling Control Register (C0PCR) C0PCR CLASS Profiling Control Register Bit 31 30 29 28 27 26 25 24 Offset 0xE04 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset WPEC — TOE — PE R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C0PCR controls the CLASS profiling operation. The register is reset only by a hardware reset. Table 4-18 lists the C0PCR bit field descriptions. Table 4-18. C0PCR Bit Descriptions Name Reset Description — 31–10 0 Reserved. Write to 0 for future compatibility. WPEC 9–8 0 Watch Point Event Configuration Controls the effects of a Watch Point Unit event. — 7–5 0 Reserved. Write to 0 for future compatibility. TOE 4 0 Time-Out Enable Enables/disables the time-out mechanism. — 3–1 0 Reserved. Write to 0 for future compatibility. PE 0 0 Profiling Enable Enables/disables the debug profiling unit operation. Settings 00 01 10 11 No effect. Assertion of watch point event sets PE. Assertion of watch point event clears PE. Assertion of watch point event toggles PE. 0 1 Time-out function disabled. Time-out function enabled. 0 1 Profiling unit disabled. Profiling unit enabled. Reference Manual, Rev. 2 Freescale Semiconductor 4-33 Chip-Level Arbitration and Switching System (CLASS) 4.8.16 CLASS Watch Point Control Registers (C0WPCR) C0WPCR Bit 31 CLASS Watch Point Control Registers 30 29 28 27 26 25 24 23 22 21 Offset 0xE08 20 19 18 17 — 16 UPE Type Reset 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — SIE PRE AE CE 0 0 0 0 0 WCE EATE Type Reset 0 0 BCE ATRE ATAE R/W 0 0 0 0 — 0 SPVE RWE 0 0 0 0 C0WPCR controls the CLASS watch point unit operation. You can configure this register to monitor a selected access type and count the number of times it occurs. The register is reset only by a hardware reset. Table 4-19 lists the C0WPCR bit field descriptions. Table 4-19. C0WPCR Bit Descriptions Name Reset Description — 31–17 UPE 16 0 Reserved. Write to 0 for future compatibility. Settings 0 Upgradeable Compare Enable Enables/disables the time-out mechanism. 0 1 WCE 15 0 Write-with-Confirm Compare Enable Enables/disables the write-with-confirm type comparison. 0 1 EATE 14 0 EOT Attributes Compare Enable Enables/disables the EOT attributes comparison. 0 1 — 13 SIE 12 0 Reserved. Write to 0 for future compatibility. 0 0 1 Source ID compare disabled. Source ID compare with C0WPEACR enabled. PRE 11 0 Source ID Compare Enable Enables/disables the source ID comparison. Priority Level Compare Enable Enables/disables the priority level comparison. 0 1 BCE 10 0 Byte Count Compare Enable Enables/disables the byte count field comparison. 0 1 ATRE 9 0 Atomic Result Compare Enable Enables/disables the atomic result type comparison. 0 1 ATAE 8 0 Atomic Access Compare Enable Enables/disables the atomic access type comparison. 0 1 Priority level compare disabled. Priority level compare with C0WPEACR enabled. Byte count compare disabled. Byte count compare with the field in C0WPEACR enabled. Atomic result type compare disabled. Atomic result type compare with C0WPACR enabled. Atomic access type compare disabled. Atomic access type compare with C0WPACR enabled. — 7–4 SPVE 3 0 Reserved. Write to 0 for future compatibility. 0 Supervisor Access Compare Enable Enables/disables supervisor access comparison. 0 1 Upgradeable type compare disabled. Upgradeable type compare with C0WPEACR enabled. Write-with-confirm type compare disabled. Write-with-confirm type compare with C0WPEACR enabled. EOT attributes compare disabled. EOT attributes compare with C0WPEACR enabled. Supervisor type compare disabled. Supervisor type compare with C0WRACR enabled. Reference Manual, Rev. 2 4-34 Freescale Semiconductor Programming Model Table 4-19. C0WPCR Bit Descriptions (Continued) Name Reset Description Settings RWE 2 0 Read/Write Compare Enable Enables/disables read/write type comparison. 0 1 AE 1 0 0 1 CE 0 0 Address Compare Enable Enables/disables comparison of the access address. Count Enable Enables/disables the counter for watch point events. Read/write type compare disabled. Read/write type compare with C0WPACR enabled. Address compare disabled. Address compare with C0WPACR enabled. 0 1 Counter 1 disabled for watch point events. Counter 1 enabled for watch point events. Reference Manual, Rev. 2 Freescale Semiconductor 4-35 Chip-Level Arbitration and Switching System (CLASS) 4.8.17 CLASS Watch Point Access Configuration Register (C0WPACR) C0WPACR Bit CLASS Watch Point Access Configuration Registers 31 30 ATR ATA Type Reset 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 0 Type Reset 0 29 0 28 27 26 — 0 0 25 SPV 0 0 24 23 22 RW R/W 0 0 21 20 Offset 0xE0C 19 18 17 16 ADDR 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 ADDR R/W 0 0 0 0 0 0 0 0 0 C0WPACR, along with C0WPEACR, configures the selected access to monitor. The watch point monitoring occurs only if the respective function is enabled in the C0WPCR. The register is reset only by a hardware reset. Table 4-20 lists the C0WPACR bit field descriptions. Table 4-20. C0WPACR Bit Descriptions Name Reset Description Settings ATR 31 0 Atomic Result Defines the atomic result type to monitor. 0 1 Atomic access failed. Atomic access succeeded. ATA 30 0 Atomic Access Defines the atomic access type to monitor. 0 1 Non-atomic access. Atomic access. — 29–26 0 Reserved. Write to 0 for future compatibility. SPV 25 0 Supervisor Access Defines the supervisor access type to monitor. 0 1 Non-supervisor access. Supervisor access. RW 24 0 Read/Write Access Defines the access type to monitor. 0 1 Write. Read. ADDR 23–0 0 Address[35–12] This field, along with the ADDM field in C0WPAWMR, defines the start and range of the addresses the watch point unit monitors. Note: For every bit in C0WPAMR[ADDM] that is cleared, make sure the corresponding bit is cleared in the ADDR. The bit location in ADDM (b) corresponds to the b + 12 bit location in ADDR. Reference Manual, Rev. 2 4-36 Freescale Semiconductor Programming Model 4.8.18 CLASS Watch Point Extended Access Configuration Register (C0WPEACR) C0WPEACR Bit CLASS Watch Point Extended Access Configuration Registers 31 30 29 UP WC 28 27 — 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 4 3 2 1 0 0 0 0 0 EATTR Type Reset 0 0 0 0 0 0 Bit 15 14 13 12 11 10 Offset 0xE10 — R/W SI Type Reset 0 0 0 0 0 9 8 7 6 5 PR BC R/W 0 0 0 0 0 0 0 0 0 0 0 0 C0WPEACR, along with C0WPACR, configures the selected access to monitor. The watch point monitoring occurs only if the respective function is enabled in the C0WPCR. The register is reset only by a hardware reset. Table 4-21 lists the C0WPEACR bit field descriptions. Table 4-21. C0WPEACR Bit Descriptions Name Reset Description Settings UP 31 0 Upgradeable Access Defines the upgradeable access type to monitor. 0 1 Non-upgradeable access. Upgradeable access. WC 30 0 Write-with-Confirm Access Defines the write-with-confirm access type to monitor. 0 1 Fast confirm access. Write-with-confirm access. — 29–28 0 Reserved. Write to 0 for future compatibility. EATTR 27–24 0 EOT Attributes Defines the EOT attributes to monitor. — 23–16 0 0x0– 0x7 0x8 0x9 0xA 0xB 0xC‘ 0xD 0xE 0xF Reserved Target port 0 CCSRs Target port 1 MAPLE-B Target port 2 Reserved Target port 3 Cores 2 and 3 Target port 4 Cores 0 and 1 Target port 5 DDRC1 memory Target port 6 DDRC2 memory Target port 7 M3 memory Reserved. Write to 0 for future compatibility. Reference Manual, Rev. 2 Freescale Semiconductor 4-37 Chip-Level Arbitration and Switching System (CLASS) Table 4-21. C0WPEACR Bit Descriptions (Continued) Name Reset SI 15–11 0 Source Defines the source ID to monitor. 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B PR 10–9 0 Priority Defines the priority level to monitor. 00 01 10 11 BC 8–0 0 Byte Count This field defines the value of the byte count that the watch point unit monitors. The byte count to monitor can be from 1 to 511 bytes. 4.8.19 Description Core0 Core1 Core2 Core3 Core 4 Core 5 MAPLE Port 0 MAPLE Port 1 SerDes Bridge Peripherals Bridge DMA Port 0 DMA Port 1 Priority 0 (highest) Priority 1 Priority 2 Priority 3 (lowest) CLASS Watch Point Address Mask Registers (C0WPAMR) C0WPAMR Bit Settings 31 CLASS Watch Point Address Mask Registers 30 29 28 27 26 25 24 Offset 0xE14 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 — Type Reset ADDM R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 C0WPAMR controls the address range monitored by the watch point unit. The register is reset only by a hardware reset. Table 4-22 lists the C0WPAMR bit field descriptions. Reference Manual, Rev. 2 4-38 Freescale Semiconductor Programming Model Table 4-22. C0WPAMR Bit Descriptions Name Reset — 31–8 0 Reserved. Write to 0 for future compatibility. ADDM 7–0 0 Address Mask Defines the range and alignment of the address to monitor if address monitoring is enabled. The start address is defined in C0WPACR[ADDR]. Note: For every bit in ADDM that is cleared, make sure the corresponding bit is cleared in the C0WPACR. 4.8.20 Description 00000000 Aligned with a range of 1 MB. 10000000 Aligned with a range of 512 KB. 11000000 Aligned with a range of 256 KB. 11100000 Aligned with a range of 128 KB. 11110000 Aligned with a range of 64 KB. 11111000 Aligned with a range of 32 KB. 11111100 Aligned with a range of 16 KB. 11111110 Aligned with a range of 8 KB. 11111111 Aligned with a range of 4 KB. All other values are reserved. CLASS Profiling Time-Out Registers (C0PTOR) C0PTOR Bit Settings 31 CLASS Profiling Time-Out Registers 30 29 28 27 26 25 24 Offset 0xE18 23 22 21 20 19 18 17 16 TO R/W Type Reset 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 1 1 1 1 1 1 1 Type Reset TO R/W 1 1 1 1 1 1 1 1 C0PTOR is used to stop the profiling unit operation. When the C0PRCR reaches the value stored in C0PTOR and C0PCR[TOE] is set, the CLASS clears the C0PCR[PE] bit to disable the profiling unit. When C0PCR[PE] clears, the CLASS stops all profiling counters. The register is reset only by a hardware reset. Table 4-23 lists the C0PTOR bit field descriptions. Table 4-23. C0PTOR Bit Descriptions Name Reset Description TO 31–0 0xFFFFFFFF Time-Out Holds the time-out value used to stop the profiling unit when the time-out function is enabled. Reference Manual, Rev. 2 Freescale Semiconductor 4-39 Chip-Level Arbitration and Switching System (CLASS) 4.8.21 CLASS Target Watch Point Control Registers (C0TWPCR) C0TWPCR Bit 31 CLASS Target Watch Point Control Registers 30 29 28 27 26 25 24 Offset 0xE1C 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset WPEN7 WPEN6 WPEN5 WPEN4 WPEN3 WPEN2 WPEN1 WPEN0 R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The C0TWPCR controls the watch point unit operation for CLASS targets. The watch point unit monitors a specific access defined in C0WPCR, C0WPACR, C0WPEACR, and C0WPAMR. Each target can be enabled/disabled for monitoring the specified access type. The register is reset by a hard reset only. Note: Only one WPEN field can be set among all the C0IWPCRx and C0TWPCR. That is, only one watch point unit can be active at a time. Table 4-15 lists the C0TWPCR bit field descriptions. Table 4-24. C0TWPCR Bit Descriptions Name Reset Description — 31–8 WPEN[7–0] 7–0 0 Reserved. Write to 0 for future compatibility. 0 Watch Point Enable 7–0 Each bit enables monitoring of access by the associated target. Settings 0 1 The watch point unit for the associated target is disabled. The watch point unit for the associated target is enabled. Reference Manual, Rev. 2 4-40 Freescale Semiconductor Programming Model 4.8.22 CLASS Profiling IRQ Status Register (C0PISR) C0PISR Bit 31 CLASS Profiling IRQ Status Registers 30 29 28 27 26 25 24 Offset 0xE20 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 WPE OVE 0 0 — Type Reset R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C0PISR indicates that a watch point event occurred or that the C0PRCR overflowed. An interrupt is generated if the status bit is set and the corresponding bit in C0PIERx is set to enable the interrupt. You can write to or read the register at any time. Write a 1 to a bit to clear it; writing a 0 has no effect. The register is reset by a hard or soft reset. Table 4-25 lists the C0PISR bit field descriptions. Table 4-25. C0PISR Bit Descriptions Name Reset Description Settings — 31–2 0 Reserved. Write to 0 for future compatibility. WPE 1 0 Watch Point Event Enables monitoring of access by the associated target. 0 1 No watch point event occurred. Watch point event captured. OVE 0 0 Overflow Event Enables monitoring of access by the associated target. 0 1 No overflow occurred. C0PRCR overflowed (reached 0xFFFFFFFF) during the last measurement. Reference Manual, Rev. 2 Freescale Semiconductor 4-41 Chip-Level Arbitration and Switching System (CLASS) 4.8.23 CLASS Profiling IRQ Enable Register (C0PIER) C0PIER Bit 31 CLASS Profiling IRQ Enable Registers 30 29 28 27 26 25 24 Offset 0xE24 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset WPEE OVEE R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C0PIER enables/disables the generation of interrupts by the debug profiling unit. You can write to the register at any time. The register is reset by a hard reset only. Table 4-26 lists the C0PIER bit field descriptions. Table 4-26. C0PIER Bit Descriptions Name Reset Description — 31–2 0 Reserved. Write to 0 for future compatibility. WPEE 1 0 Watch Point Event Enable Enables/disables a watch point interrupt. 0 1 Watch point interrupt is masked. Watch point interrupt is enabled. OVEE 0 0 Overflow Event Enable Enables/disables an overflow interrupt. 0 1 Overflow interrupt is masked. Overflow interrupt is enabled. 4.8.24 CLASS Profiling Reference Counter Register (C0PRCR) C0PRCR Bit Settings 31 CLASS Profiling Reference Counter Registers 30 29 28 27 26 25 24 Offset 0xE40 23 22 21 20 19 18 17 16 C0T R Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 Type Reset CNT R 0 0 0 0 0 0 0 0 C0PRCR is the reference counter for all profiling measurements. This read-only register counts the number of cycles occurring during the profiling measurement or during the watch point unit operation. The counter starts counting from zero when the profiling unit is enabled. The C0PRCR stops when the profiling unit is disabled, or when the C0PRCR reaches the value stored in C0PTOR and TOE is set, which causes the CLASS to clear the PE bit to disable the profiling Reference Manual, Rev. 2 4-42 Freescale Semiconductor Programming Model unit. When PE clears, the CLASS stops all profiling counters. The register is reset only by a hardware reset only. Table 4-27 lists the C0PRCR bit field descriptions. Table 4-27. C0PRCR Bit Descriptions Name Reset CNT 31–0 0 4.8.25 Description Counter Holds the reference counter for the profilers. CLASS Profiling General Counter Registers (C0PGCRx) C0PGCR[0–3] Bit 31 CLASS Profiling General Counter Registers 30 29 28 27 26 25 24 Offset 0xE44 + x*0x04 23 22 21 20 19 18 17 16 CNT R Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 Type Reset CNT R 0 0 0 0 0 0 0 0 C0PGCRx is used to count profiling unit or watch point unit events. This read-only register counts the number of cycles occurring during the profiling measurement or during the watch point unit operation. The counter starts counting from zero when the profiling unit is enabled. The C0PRCR stops when the profiling unit is disabled, or when the C0PRCR reaches the value stored in C0PTOR and TOE is set, which causes the CLASS to clear the PE bit to disable the profiling unit. When PE clears, the CLASS stops all profiling counters. The register is reset only by a hardware reset. Table 4-28 lists the C0PGCR bit field descriptions. Table 4-28. C0PGCR Bit Descriptions Name Reset Description CNT 31–0 0 Counter Holds the counter value of the selected measurement. Table 4-2 lists the measurements counted by each counter for each configuration combination. Reference Manual, Rev. 2 Freescale Semiconductor 4-43 Chip-Level Arbitration and Switching System (CLASS) 4.8.26 CLASS Arbitration Control Register (C0ACR) C0ACR Bit 31 CLASS Arbitration Control Registers 30 29 — 28 27 26 25 24 23 22 PME Offset 0xFC0 21 20 19 18 17 16 — Type Reset 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LA6 LA5 LA4 LA3 LA2 LA1 LA0 0 LA7 R/W 0 0 0 0 0 0 0 0 0 — Type Reset 0 0 0 0 0 0 The C0ACR controls the CLASS arbiters. There is a dedicated bit for each arbiter that controls the Late Arbitration mode of the associated arbiter. When Late Arbitration mode is enabled, the arbiter delays the decision according to the size of the last winner access. The arbiter calculates the number of cycles to allow until a winner decision must be made. This is done to keep the bus always full, and make the winner decision as late as possible. When Late Arbitration mode is disabled, the arbiter makes a decision every clock cycle.The register is reset by a hard reset only. Table 4-29 lists the C0ACR bit field descriptions. Table 4-29. C0ACR Bit Descriptions Name Reset Description — 31–29 PME 28 0 Reserved. Write to 0 for future compatibility. 0 Priority mask disabled. Priority mask enabled. — 27–8 LA[7–0] 7–0 0 Priority Mask Enable 0 Enables/disables the operation of the 1 priority mask unit for starvation elimination. Reserved. Write to 0 for future compatibility. Late Arbitration 7–0 Enables/disables late arbitration mode for the associated arbiter. Note: As with the arbitration weight (see Section 4.8.8, CLASS Arbitration Weight Registers (C0AWRx), on page 4-26), the default value for this field does not yield optimal performance. Freescale recommends that after reset, write a value of 0xFC to this field. This value assigns late arbitration to the cores, the M2 memory, DDR memory, and the M3 memory. This is just an initial value, and can be changed according to the application requirements and system traffic. Late arbitration disabled. Late arbitration enabled. 0 Settings 0 1 Reference Manual, Rev. 2 4-44 Freescale Semiconductor 5 Reset The reset and control signals provide many options for MSC8156 operation by configuring various modes and features during power-on reset. Most of these features are configured by loading a reset configuration word to the MSC8156 device that combine with a few direct configuration inputs sampled during the reset sequence. This section describes the various ways to reset and configure the MSC8156 device. 5.1 Reset Operations The MSC8156 has several inputs to the reset logic: Power-on reset (PORESET) External hard reset (HRESET) External soft reset (SRESET) Software watchdog reset JTAG reset RapidIO reset Software hard reset Software soft reset All of these reset sources are fed into the reset controller and, depending on the source of the reset, different actions are taken. The reset status register described in Section 5.3.3 indicates the last sources to cause a reset. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-1 Reset 5.1.1 Reset Sources Table 5-1 describes reset sources. Table 5-1. Reset Sources Name Description Power-on reset (PORESET) Input pin. Asserting this pin initiates the power-on reset flow that resets all the device and configures various attributes of the device including its clock modes. Hard reset (HRESET) This is a bidirectional I/O pin. The MSC8156 can detect an external assertion of HRESET only if it occurs while the MSC8156 is not asserting reset. During HRESET, SRESET is asserted. HRESET is an open-drain pin. Soft reset (SRESET) Bidirectional I/O pin. The MSC8156 can only detect an external assertion of SRESET if it occurs while the MSC8156 is not asserting reset. SRESET is an open-drain pin. Software watchdog reset After the MSC8156 watchdog timer counts to zero, a software watchdog reset is generated. The enabled software watchdog event then generates an internal hard reset sequence. RapidIO reset When the RapidIO logic asserts the RapidIO hard reset signal, an internal hard reset sequence is generated. JTAG reset When JTAG logic asserts the JTAG soft reset signal, an internal soft reset sequence is generated. Software hard reset A hard reset sequence can be initialized by writing to a memory mapped register (RCR) Software soft reset A soft reset sequence can be initialized by writing to a memory mapped register (RCR) 5.1.2 Reset Actions The MSC8156 reset control logic determines the cause of reset, synchronizes it if necessary, and resets the appropriate internal hardware. Each reset flow has different impact on the device logic. Power-on reset has the greatest impact, resetting the entire device, including clock logic and error capture registers. Hard reset resets the entire device excluding clock logic and error capture registers, while Soft reset initializes the internal logic while maintaining the system configuration. All reset types generate a reset to the cores. The memory controllers, system protection logic, interrupt controller, and I/O pins are initialized only on hard reset. Soft reset initializes the internal logic while maintaining the system configuration. Asserting external SRESET generates a soft reset to the DSP cores and to the remainder of the device. Table 5-2 identifies reset actions for each reset source. MSC8156 Reference Manual, Rev. 2 5-2 Freescale Semiconductor Reset Operations Table 5-2. Reset Actions for Each Reset Source Reset Source Clocks and PLLs Reset Logic Error Capture Registers Performance Monitor HSSI PLLs and Logic Timers CLASS (most registers, see Section 4.8, Programming Model, on page 4-15 for details) Reset Configuration Words Loaded Other Internal Logic HRESET Driven SRESET and Soft Reset Driven to Cores • Power-on reset Yes Yes Yes Yes Yes Yes • External hard reset • Software watchdog reset • RapidIO reset • Software hard reset No Yes No Yes Yes Yes • External soft reset • JTAG soft reset • Software soft reset No No No Yes No Yes 5.1.3 Power-On Reset Flow Assertion of the external PORESET signal initiates the power-on reset flow. PORESET should be asserted externally for at least 32 input clock cycles after stable external power is applied to the MSC8156 device. When PORESET is deasserted, the MSC8156 starts the configuration process. The MSC8156 asserts HRESET and SRESET throughout the power-on reset sequence, including during configuration. Configuration time varies according to the configuration source and CLKIN frequency. Initially, the reset configuration inputs are sampled to determine the configuration source and the input clock division mode. Next, the MSC8156 starts loading the reset configuration words. When the clock mode values in the reset configuration word low load, the PLLs begin to lock, after locking, each PLL distributes clock signals to the device. When all clocks are locked and the reset configuration words are loaded, HRESET is released. SRESET is released 21 or 36 clocks later (depending on the reset configuration word source). MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-3 Reset 5.1.4 Detailed Power-On Reset Flow The detailed power-on reset (PORESET) flow for the MSC8156 is as follows: 1. The user asserts PORESET (and optionally HRESET). 2. Power is applied to meet the specifications in the MSC8156 Technical Data Sheet. The user asserts PORESET (and optionally HRESET) causing all registers to be initialized to their default states and most I/O drivers to be tri-stated (some clock, clock enabled, and system control signals are active). 4. The user applies a stable CLKIN signal and stable reset configuration inputs (RCW_SRC, RC, STOP_BS). 5. Deassert PORESET after at least 32 stable CLKIN clock cycles; counting the 32 cycles should only start after VDDIO has reached its nominal value as specified in the MSC8156 Technical Data Sheet. 6. The device samples the reset configuration input signals to determine the reset configuration word source. 7. The device starts loading the reset configuration word. Loading time depends on the reset configuration word source. 8. Once Reset Configuration Word Low is loaded, the system PLL begins to lock. 9. The device keeps driving HRESET low until all PLLs are locked and the reset configuration words are loaded. 10. Deassert the optional HRESET, if not done earlier. 3. Note: The JTAG logic must always be initialized by asserting TRST. There is no need to assert SRESET when HRESET is asserted. The internal reset to the cores and the remaining logic is deasserted. I/O drivers are enabled. 12. After HRESET is deasserted, it can take 41000 OCN cycles for the SerDes block to exit reset and lock its internal PLL. Read the HSSI_SR[SERDES1_RST_DONE] and HSSI_SR[SERDES2_RST_DONE] bits to determine when the SerDes reset is complete. See the High Speed Serial Interface Status Register (HSSI_SR] description in Chapter 8 General Configuration Registers for details. 13. If enabled, the HSSI complex interfaces are now ready to accept external requests, and the core boot code fetch can proceed, if enabled. The MSC8156 is now in its ready state. 11. Figure 5-1 shows a timing diagram of the power-on reset flow. MSC8156 Reference Manual, Rev. 2 5-4 Freescale Semiconductor Reset Operations CLKIN PORESET (input) stable clock Min. 32 CLKIN cycles PLLs are locked (no external indication) HRESET (output) Device is ready SRESET (output) TRST (input) Reset Configuration input signals Reset Configuration Words loading Start loading reset configuration words End loading reset configuration words. Duration depends on source Figure 5-1. Power-On Reset Flow MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-5 Reset Figure 5-2 shows a timing diagram of power-on reset flow with RCW_SRC = 000. In this mode, the external pins RC[15–0] are sampled four times in order to get all the 64 bits RCW. stable clock CLKIN Min. 32 CLKIN cycles PORESET (input) PLLs are locked (no external indication) HRESET (output) Device is ready SRESET (output) TRST (input) Reset Configuration input signals RCWHR[31:16] RCWHR[15:0] RCWLR[31:16] Start loading reset configuration words RCWLR[15:0] RC[15:0] (input) End loading reset configuration words. RCW_LSEL_0 (output) RCW_LSEL_1 (output) RCW_LSEL_2 (output) RCW_LSEL_3 (output) Figure 5-2. Power-on Reset Flow for RCW_SRC = 000 MSC8156 Reference Manual, Rev. 2 5-6 Freescale Semiconductor Reset Operations 5.1.5 HRESET Flow The HRESET flow may be initiated externally by asserting HRESET or internally when the MSC8156 detects a reason to assert HRESET. In both cases, the device continues asserting HRESET and SRESET throughout the HRESET flow. The hard reset sequence time is 1286 CLKIN cycles. The reset configuration source, the reset configuration word, and the input clock division mode are not affected by hard reset (they are only affected by a power-on reset), so the MSC8156 immediately configures the device. After the configuration sequence completes, the MSC8156 releases both HRESET and SRESET signals and exits the HRESET flow. Use an external pull-up resistor to deassert the signals. After deassertion is detected, the device waits for a 16-cycle period before testing the presence of an external (hard/soft) reset. The HSSI complex logic and PLL are out of reset after about 41000 OCN cycles. Read the HSSI_SR[SERDES1_RST_DONE] and HSSI_SR[SERDES2_RST_DONE] bits to determine when the SerDes reset is complete. See the High Speed Serial Interface Status Register (HSSI_SR] description in Chapter 8 General Configuration Registers for details. Note: Because the MSC8156 does not sample the reset configuration signals (RCW_SRC, RC, STOP_BS) during a hard reset flow, setting a new value on those pins (different from the settings during power-on reset) has no effect. Figure 5-3 shows a timing diagram of the hard reset flow. CLKIN stable clock PORESET (input) HRESET (input or output) Device is ready SRESET (output) Reset Configuration input signals Figure 5-3. Hard Reset Flow 5.1.6 SRESET Flow The SRESET flow is initiated externally by asserting SRESET or internally when the MSC8156 detects a cause to assert SRESET. In both cases, the MSC8156 asserts SRESET for 512 CLKIN clock cycles, after which the MSC8156 releases SRESET and exits the SRESET state. An external pull-up resistor should be used to deassert SRESET; after deassertion is detected, the device waits for a 16-cycle period before testing for the presence of an external (hard/soft) reset. When SRESET is asserted, internal hardware is reset, but the hard reset configuration does not change. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-7 Reset 5.2 Reset Configuration The MSC8156 is initialized using two complementary methods. Initially, a small number of input signals (RCW_SRC[0–2]) are sampled during the first two CLKIN cycles after the deassertion of PORESET (during the power-on reset flow). These signals determine whether a reset configuration word is required and the device source interface from which it is loaded (see Table 5-1). The RCW_SRC[0–2] signals should remain valid until the deassertion of HRESET. Depending on the configuration signal values, the MSC8156 may continue with loading the reset configuration word. 5.2.1 Reset Configuration Signals Reset configuration input signals are located on device pins that have other functions when the device is not in the reset state. These input signals sampled values are written into registers during the assertion of PORESET after a stable clock is supplied (the power-on reset flow). The inputs must be pulled high or low by external resistors as long as HRESET is asserted. During the PORESET flow, all other signal drivers connected to these signals must be tri-stated. Refer to the MSC8156 Technical Data Sheet for the recommended resistor values used to pull reset configuration signals high or low. The values loaded from these sampled inputs are accessible to software through memory-mapped registers described in Section 5.3. They are used to configure the device operation. 5.2.2 Reset Configuration Words Source The reset configuration word source options permit the MSC8156 to load reset configuration words from an EEPROM via the I2C interface, a combination of external pins and hard-coded values, or to use hard-coded default options. Table 5-3. Reset Configuration Word Sources (Defined by RCW_SRC[0–2]) Value (Binary) Meaning 000 Multiplexed external RCW loading. The RCW is driven by external logic on RC[15–0]. The RCW_LSEL[3–0] selects which bits should be driven on RC[15–0]. 001 Reset configuration word is loaded from an I2C EEPROM in 8-bit addressing mode. The internal MSC8156 hardware reads the RCW from EEPROM slave address 1010000 (or 1010111 in case of multi device and reset slave) with single byte addressing. 010 Reset configuration word is loaded from an I2C EEPROM in 16-bit addressing mode. MSC8156 hardware reads the RCW from EEPROM slave address 1010000 (or 1010111 in case of multi device and reset slave) with two byte addressing. 011 Some bits of the reset configuration word are loaded from external pins and others by default. 100 Hard coded option #1. Reset configuration word is loaded from internal hard coded option 1. 101 Hard coded option #2. Reset configuration word is loaded from internal hard coded option 2. Note: The value of the reset configuration signals affects the duration of power-on and hard reset sequences. MSC8156 Reference Manual, Rev. 2 5-8 Freescale Semiconductor Reset Configuration 5.2.3 Reset Configuration Input Signal Selection and Reset Sequence Duration Table 5-4 shows how to pull down (0) or pull up (1) the reset configuration input signals (RCW_SRC) for various configurations. The reset sequence duration is measured from the deassertion of PORESET to the deassertion of HRESET. The SRESET signal is deasserted 21 CLKIN cycles after the deassertion of HRESET for sources that do not use the I2C interface and 36 CLKIN cycles for sources that use the I2C interface. Table 5-4. Selecting Reset Configuration Input Signals CLKIN Frequency RCW_SRC[0–2] Reset Sequence Duration in CLKIN Cycles Duration in ms 66 MHz 000, 011–101 17426 0.264 66 MHz 001, 010 255156 3.866 100 MHz 000, 011-101 17426 0.174 100 MHz 001, 010 255156 2.552 5.2.4 Reset Configuration Words Various device functions are initialized by loading the reset configuration words during the power-on reset flow. All configurable features are reconfigured only during a power-on reset flow. The MSC8156 decides which interface is used according to reset configuration input signals, as described in Section 5.2.2. Section 5.3 describes the functions and modes configured by the reset configuration words. Note that the reset configuration settings are accessible to software through the following read-only memory-mapped registers: Reset Configuration Word Low Register (RCWLR). See Section 5.3.1 for details. Reset Configuration Word High Register (RCWHR). See Section 5.3.2 for details. Reset Status Register (RSR). See Section 5.3.3 for details. 5.2.5 Loading The Reset Configuration Words The MSC8156 loads the reset configuration words from an I2C serial EEPROM, or combination of default values and external pins, or uses a hard-coded configuration, as selected by the reset configuration inputs described in Section 5.2.2. The following subsections describe these options in detail. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-9 Reset 5.2.5.1 Loading From an I2C EEPROM (RCW_SRC[0–2] = 001 or 010) When a MSC8156 is configured by the reset configuration input signals to load the reset configuration words from an EEPROM via the I2C interface, it uses the I2C unit boot sequencer in a special mode. In this mode, the I2C boot sequencer is activated to load the reset configuration words while the rest of the device remains in the reset state (HRESET is asserted). 5.2.5.1.1 Using The Boot Sequencer For Reset Configuration Note: For detailed description about the I2C interface and the boot sequencer, refer to Chapter 24, I2C. When used to load the reset configuration words, the I2C module addresses the first EEPROM, reads the preamble, and then reads the first two data structures. The device latches the reset configuration words internally and the I2C module enters its reset state until HRESET is deasserted. There should be no other I2C traffic when the boot sequencer is active. After HRESET is deasserted, the boot sequencer mode is disabled. 5.2.5.1.2 EEPROM Slave Address A reset master MSC8156 is selected by holding its STOP_BS signal low during the power-on reset flow. The reset master uses 0b1010000 for the EEPROM calling address. A reset slave uses 0b1010111 for the EEPROM calling address. The EEPROM to be addressed must contain the reset configuration information and be programmed to respond to the 0b1010000 address. The EEPROM device must have address inputs connected to GND in multi device reset applications. No additional EEPROMs are accessed by the boot sequencer in reset configuration mode. See also Section 5.2.5.1.5, Loading Multiple Devices From a Single I2C EEPROM, on page 5-11. 5.2.5.1.3 EEPROM Data Format In Reset Configuration Mode The I2C module expects a specific data format in the EEPROM. The first three bytes should be the preamble and should contain a value of 0xAA55AA. The I2C module verifies that this preamble is correctly detected before proceeding further. The two reset configuration words, should follow the preamble and should use the required format provided in Section 6.2.2.3, Boot File Format, on page 6-16. Within each configuration word, the first 3 bytes are reserved and must contain the value 0xFFFFFF. After the first 3 bytes, 4 bytes of data should hold the desired value of the reset configuration word. The boot sequencer assumes that a big endian address is stored in the EEPROM. If a preamble fail or any other I2C bus error is detected, the device stops processing and remains in a hard reset state with HRESET asserted and most of the I/O drivers are disabled. If reset configuration word loading from the EEPROM fails, the user must assert the PORESET signal for at least 100 µs duration to resume operation. MSC8156 Reference Manual, Rev. 2 5-10 Freescale Semiconductor Reset Configuration 5.2.5.1.4 Single Device Loading From I2C EEPROM The MSC8156 can be the only device loading the reset configuration word from the I2C EEPROM. In this case STOP_BS pin must be driven low during the power on and hard reset sequences. The hardware connection is shown in Figure 5-4. RCW_SRC[0–2] MSC8156E VDD I2C EEPROM 3 SRESET I2C_SCL I2C_SCL I2C_SDA I2C_SDA HRESET PORESET STOP_BS VDD Figure 5-4. Single Device I2C Reset Configuration 5.2.5.1.5 Loading Multiple Devices From a Single I2C EEPROM When the MSC8156 device shares the I2C EEPROM device with other MSC8156 devices to load the reset configuration words, one device must be a reset master and the rest must be reset slaves. The definition of reset slave or reset master is latched internally during power-on reset sequence. In this mode, the RCW_SRC inputs must be the same for all slaves and the master. The reset configuration implementation involves a software for the reset master and glue logic. The hardware connection is shown in Figure 5-5. The STOP_BS signal input to the reset master must be driven low during the power on reset sequence while all the slaves inputs must be driven high. During the power on reset assertion, the master cannot drive the STOP_BS output bus because its role as master is not enabled yet. Pull-ups are required; refer to the MSC8156 Technical Data Sheet for appropriate resistor values to pull the slave STOP_BS input signal high. In the first stage of reset configuration, the reset master reads its own reset configuration words. It accesses the I2C EEPROM while all other reset slaves are stopped. When PORESET is deasserted, the STOP_BS is latched in the reset block after few cycles and defines the reset master and slaves. It also keeps all the reset slave I2C controllers in idle state while the reset master starts to access the EEPROM slave using address 0b1010000. Then the reset master must exit from reset and run the internal code. In the second stage, the reset master reads the slave RCWs and stores the values in its memory. See Chapter 6, Boot Program for how to determine the number of reset slaves to be configured. The reset master core reads the slave RCWs from the I2C EEPROM. Then, it configures its I2C controller to emulate an EEPROM device for each reset slave. The reset master emulates EEPROM using the slave address 0b1010111. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-11 Reset In the last stage, the reset master releases the STOP_BS for each slave in a known order. The released reset slave accesses the I2C bus to read from slave address 0b1010111. The order of reading the slave RCWs is the order for their connection. Note: The STOP_SLV_BS glue logic supports a five pin bus. For up to five reset slaves, the master drives STOP_SLV_BS directly to the selected slave. For five to fifteen slaves, the glue logic encodes the signals from the master and selects the slave to drive with STOP_SLV_BS based on its decoded value. The external reset logic may reset the system as a unit, or it may be configured to reset individual devices. Individual resets permit redundancy support during system debugging to allow problematic devices to be disabled and replaced by a redundant device. Multi device is described in detail in Section 6.1.4, Multi Device Support for the I2C Bus, on page 6-4. VDD RCW_SRC[0–2] Reset Logic MSC8156E I2C EPROM 3 SRESET I2C_SCL A[0–2] I2C_SDA I2C_SCL I2C_SDA HRESET GPIO Decoder PORESET VDD STOP_BS RCW_SRC[0–2] SRESET MSC8156E I2C_SCL I2C_SDA HRESET VDD PORESET STOP_BS Figure 5-5. Multi Device I2C Reset Configuration Hardware MSC8156 Reference Manual, Rev. 2 5-12 Freescale Semiconductor Reset Configuration 5.2.5.2 Loading Multiplexed RCW from External Pins (RCW_SRC[0–2] = 000) When the MSC8156 device is configured to use the multiplexed loading method, it latches all bits of the reset configuration word from the external pins. In this case, the sampled RCW bits are transferred with RCW_LSEL[0–3] glue logic using the hardware shown in Figure 5-6. In this mode, the 64 bits of the RCW are loaded in four passes using only RC[15–0]. RC16 is not used, and RC[20–17] are redefined as the lane select signals (RCW_LSEL[0–3], respectively), which provide the gating signals for each set of 16 bits transferred. . MSC8156 16 RC SRESET 4 RCW_LSEL[0–3] HRESET RCW_SRC 4 3 PORESET STOP_BS Figure 5-6. Multiplexed External Pins Reset Configuration Figure 5-2 on page 5-6 shows the timing of the gating signals and indicates which RCW bits are loaded by each lane signal. See Table 3-5 for a detailed description of the lane select signals. The gating summary is as follows: Lane 0 (RCW_LSEL0) gates RC[15–0] to RCWLR bits 15–0 Lane 1 (RCW_LSEL1) gates RC[15–0] to RCWLR bits 31–16 Lane 2 (RCW_LSEL2) gates RC[15–0] to RCWHR bits 15–0 Lane 3 (RCW_LSEL3) gates RC[15–0] to RCWHR bits 31–16 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-13 Reset 5.2.5.3 Loading Reduced RCW From External Pins (RCW_SRC[0–2] = 011) When the MSC8156 device is configured to use the reduced RCW, the MSC8156 latches some bits of the reset configuration word from external pins. The other bits of the RCWs are loaded from default hard coded values. The hardware connection is shown in Figure 5-7. RCW_SRC[0–2] MSC8156E RC[21–0] 3 SRESET HRESET PORESET STOP_BS Figure 5-7. External Pins Reduced Reset Configuration 5.2.5.3.1 Reduced External Reset Configuration Word Low Field Values Table 5-5 defines the combined External and Hard Coded Reset Configuration Word Low field values. Table 5-5. Combined External and Hard Coded Reset Configuration Word Low Values Bits Name Value Meaning 31–30 CLKO 00 Select PLL0 divided output clock to be driven on CLKO 29 — 0 Reserved. Should be cleared. 28–24 S2P 0, RC[21–18] S2P. See Table 5-9 for details. 22–20 S1P 0, RC[17–15] S1P. See Table 5-9 for details. 19–18 — 00 Reserved. Should be cleared. 17 SCLK2 RC14 SerDes2 (RapidIO interface 2) reference clock. A 0 selects 100 Mhz and a 1 selects 125 MHz. See Table 5-9 for details and limitations. 16 SCLK1 RC14 SerDes1 (RapidIO interface 1) reference clock. This clock is identical to SCLK2 in reduced mode and is driven by RC14. 15–6 — 0000000000 5–0 MODCK 00, RC[13–10] Reserved. Should be cleared. MODCK[5–4] = 00, MODCK[3–0] = RC[13–10]. MSC8156 Reference Manual, Rev. 2 5-14 Freescale Semiconductor Reset Configuration 5.2.5.3.2 Reduced External Reset Configuration Word High Field Values Table 5-6 defines the combined External and Hard Coded Reset Configuration Word High field values. Table 5-6. Combined External and Hard Coded Reset Configuration Word High Field Values Bits Name Value Meaning 31–30 — 00 Reserved. Should be cleared. 29 EWDT 0 Disable Watch Dog Timers. 28 PRDY 0 PCI Express not ready. 27–24 BPRT 0, RC[9–7] See for details Table 5-10. 23 RIO 1 RapidIO access enabled. 22 RPT RC6 21 RHE 0 RapidIO host mode disabled. 20–19 — 00 Reserved. Should be cleared. 18 RM 0 Not reset master. 17 BP 0 Boot patch disabled. 16–13 — 00000 12 GE1 RC5 0 - TDM2 and TDM3 are driven on pins. 1 - RGMII of GE1 is driven on pins. 11 GE2 RC4 0 - TDM0 and TDM1 are driven on pins. 1 - RGMII of GE2 is driven on pins. 10 R1A 0 SerDes Port 1 RapidIO interface does not accept all. 9 R2A 0 SerDes Port 2 RapidIO interface does not accept all. 8–3 DEVID 00, RC[3–0] 2 — 0 Reserved. Should be cleared. 1 RMU 0 RMU access local memory on internal port number 0 0 CTLS 1 Common transport type is Large System. RapidIO pass-through enable bit. Reserved. Should be cleared. DEVID[5–4] = 00, DEVID[3–0] = RC[3–0] 5.2.5.4 Default Reset Configuration Words (RCW_SRC[0–2] = 100 or 101) When the MSC8156 device is configured not to load the RCW from I2C EEPROM or external pins, it can be initialized using one of the two hard-coded default options listed in Table 5-7 and Table 5-8. 5.2.5.4.1 Hard Coded Reset Configuration Word Low Field Values Table 5-7 defines the Hard Coded Reset Configuration Word Low field values. Table 5-7. Hard Coded Reset Configuration Word Low Field Values Bits Name Value Meaning 31–30 CLKO 00 Select PLL0 divided output clock to be driven on CLKO 29 — 0 Reserved. Should be cleared. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-15 Reset Table 5-7. Hard Coded Reset Configuration Word Low Field Values (Continued) Bits Name Value Meaning 28–24 S2P 01010 SerDes Port 2 PCI Express 1x, SGMII1, SGMII2 23–20 S1P 0011 SerDes Port 1 Serial RapidIO 4x 3.125 GHz 19–18 — 00 Reserved. Should be cleared. 17 SCLK2 1 SerDes2 (RapidIO interface 2) reference clock is 125 MHz 16 SCLK1 1 SerDes1 (RapidIO interface 1) reference clock is 125 MHz 15–6 — 0000000000 5–0 MODCK 000000 000001 Reserved. Should be cleared. RCW_SRC = 100. RCW_SRC = 101 5.2.5.4.2 Hard Coded Reset Configuration Word High Field Values Table 5-8 defines the Hard Coded Reset Configuration Word High field values. Table 5-8. Hard Coded Reset Configuration Word High Field Values Bits Name Value Meaning 31–30 — 00 Reserved. Should be cleared 29 EWDT 0 Disable Watch Dog Timers 28 PRDY 0 PCI Express not ready. 27–24 BPRT 0000 23 RIO 1 RapidIO access is enabled. 22 RPT 0 RapidIO pass-through is disabled. 21 RHE 0 RapidIO host mode is disabled. 20-19 — 00 Reserved. Should be cleared 18 RM 0 Not reset master 17 BP 0 Boot patch disabled. 16–13 — 00000 12 GE1 1 RGMII GE1 on GPIO pins 11 GE2 1 RGMII GE2 on GPIO pins 10 R1A 0 SerDes Port 1 RapidIO interface does not accept all 9 R2A 0 SerDes Port 2 RapidIO interface does not accept all 8-3 DEVID 000000 2 — 0 Reserved. Should be cleared 1 RMU 0 RMU access local memory on internal port number 0 0 CTLS 1 Common transport type is Large System. In Hard Coded RCW, this field is ignored, and the boot port is Serial RapidIO interface 1 Reserved. Should be cleared Device ID MSC8156 Reference Manual, Rev. 2 5-16 Freescale Semiconductor Reset Programming Model 5.3 Reset Programming Model This section describes the following reset registers in detail: Reset Configuration Word Low Register (RCWLR), page 5-17. Reset Configuration Word High Register (RCWHR), page 5-19. Reset Status Register (RSR), page 5-22. Reset Protection Register (RPR), page 5-24. Reset Control Register (RCR), page 5-25. Reset Control Enable Register (RCER), page 5-26. Note: The Reset register base address is 0xFFF24800. 5.3.1 Reset Configuration Word Low Register (RCWLR) RCWLR Bit Reset Configuration Word Low Register 31 30 29 — CLKO Type Reset Bit 15 14 13 28 27 26 25 23 22 21 20 19 18 S2P — S1P R Value depends on the reset configuration word low loaded during reset flow. 12 11 10 9 — Type Reset 24 Offset 0x00 8 7 6 PLL1 DIS — 5 4 3 17 16 SCLK2 SCLK1 2 1 0 MODCK R Value depends on the reset configuration word low loaded during reset flow. The RCWLR is a read-only register set according to the reset configuration word low loaded during the reset flow. Table 5-9 defines the RCWLR bit fields. Table 5-9. RCWLR Bit Descriptions Name Reset Description CLKO 31–30 0 CLKOUT Source This field selects the source for CLKOUT. See Chapter 7, Clocks for source clock definitions. Settings 00 PLL0 divided output clock. 01 PLL1 divided output clock. 10 PLL2 divided output clock. 11 CLKOUT is always low. — 29 0 Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-17 Reset Table 5-9. RCWLR Bit Descriptions (Continued) Name Reset Description S2P 28–24 0 SerDes2 Protocol Selects the SerDes protocol to use. Note: It is valid to program RCWLR[S1P] and RCWLR[S2P] to have SGMII1 on both ports, SGMII2 on both ports, or to have SGMII1 and SGMII2 on both ports. An internal multiplexer always routes only two physical connections to the QUICC Engine controllers. If the SGMII interfaces are configured by S1P and S2P, SGMII1 (if selected by S1P and S2P) is physically connected to SerDes Port 1 and SGMII2 (if selected by S1P and S2P) is physically connected to SerDes Port 2 S1P 23–20 0 SerDes1 Protocol Selects the SerDes protocol to use. Note: It is valid to program RCWLR[S1P] and RCWLR[S2P] to have SGMII1 on both ports, SGMII2 on both ports, or to have SGMII1 and SGMII2 on both ports. An internal multiplexer always routes only two physical connections to the QUICC Engine controllers. If the SGMII interfaces are configured by S1P and S2P, SGMII1 (if selected by S1P and S2P) is physically connected to SerDes Port 1 and SGMII2 (if selected by S1P and S2P) is physically connected to SerDes Port 2 — 19–18 0 Reserved. Write to zero for future compatibility. SCLK2 17 0 SerDes2 Reference Clock Selects the SerDes2 reference clock. 100 MHz clock can work for all protocols and frequencies except for 3.125 Gbaud RapidIO; 125 MHz works for all protocols and frequencies with no exceptions. Settings 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010– 11111 No protocol active. RapidIO 4x 1.25 GHz RapidIO 4x 2.5 GHz RapidIO 4x 3.125 GHz RapidIO 1x 3.125 GHz RapidIO 1x 1.25 GHz/SGMII1/SGMII2 RapidIO 1x 2.5 GHz/SGMII1/SGMII2 RapidIO 1x 1.25 GHz/SGMII2 Reserved Reserved PCI Express 1x/SGMII1/SGMII2 PCI Express 1x/SGMII2 PCI Express 1x/RapidIO 1x 1.25 GHz PCI Express 4x PCI Express 2x/SGMII1/SGMII2 Reserved. PCI Express 1x/RapidIO 1x 2.5 GHz PCI Express 1x RapidIO 1x 1.25 GHz RapidIO 1x 2.5 GHz RapidIO 1x 2.5 GHz/SGMII2 Reserved. PCI Express 2x/SGMII2 PCI Express 2x/RapidIO 1x 1.25 GHz PCI Express 2x/RapidIO 1x 2.5 GHz PCI Express 2x 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011– 1111 No protocol active. RapidIO 4x 1.25 GHz RapidIO 4x 2.5 GHz RapidIO 4x 3.125 GHz RapidIO 1x 3.125 GHz RapidIO 1x 1.25 GHz/SGMII1/SGMII2 RapidIO 1x 2.5 GHz/SGMII1/SGMII2 RapidIO 1x 1.25 GHz/SGMII1 RapidIO 1x 2.5 GHz/SGMII1 RapidIO 1x 1.25 GHz RapidIO 1x 2.5 GHz Reserved Reserved. 0 SerDes reference clock = 100 MHz. 1 SerDes reference clock = 125 MHz. MSC8156 Reference Manual, Rev. 2 5-18 Freescale Semiconductor Reset Programming Model Table 5-9. RCWLR Bit Descriptions (Continued) Name Reset Description SCLK1 16 0 SerDes1 Reference Clock Selects the SerDes1 reference clock. 100 MHz clock can work for all protocols and frequencies except for 3.125Gbaud RapidIO; 125 MHz works for all protocols and frequencies with no exceptions. — 15–8 0 Reserved. Write to zero for future compatibility. PLL1DIS 7 0 Disable PLL1 Setting this bit disables PLL1. When using clock modes 1 or 37, set this bit to reduce power consumption. — 6 0 Reserved. Write to zero for future compatibility. MODCK 5–0 0 Clock Mode Defines the clock operating mode. 5.3.2 SerDes reference clock = 100 MHz. 1 SerDes reference clock = 125 MHz. 0 PLL1 enabled. 1 PLL1 disabled. See Chapter 7, Clocks. Reset Configuration Word High Register 31 30 — RC 15 14 29 28 27 26 13 — Type Reset 25 24 23 22 21 Offset 0x04 18 17 16 RIO RPT RHE SBETH — RM R Value depends on the reset configuration word high loaded during reset flow. BP — 1 0 EWDT PRDY Type Reset Bit 0 Reset Configuration Word High Register (RCWHR) RCWHR Bit Settings 20 19 BPRT 12 11 10 9 GE1 GE2 R1A R2A 8 7 6 5 4 3 DEVID 2 — RMU CTLS R Value depends on the reset configuration word high loaded during reset flow. The RCWHR is a read-only register that derives its values from the reset configuration word high loaded during the reset flow. Table 5-10 defines the RCWHR bit fields. Table 5-10. RCWHR Bit Descriptions Name Description — 31 Reserved. Write to one for future compatibility. RC 30 Selects PCI Express RC Mode When set, selects the PCI Express root complex (RC) mode of operation. An RC device connects the core processor/memory subsystem to I/O devices while an EP device typically denotes a peripheral or I/O device. See Chapter 17, PCI Express Controller for details. This field is always 0 in the preconfigured modes (reduced RCW or hard-coded). Settings 0 PCI Express end point (EP) mode on the PCI Express bus. 1 PCI Express root complex (RC) mode on the PCI Express bus. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-19 Reset Table 5-10. RCWHR Bit Descriptions (Continued) Name Description EWDT 29 Enable Watchdog Timers Selects the status of the software watchdog timers when coming out of reset. The user can override this value by writing to any of the System Watchdog Control Registers (SWCRR[SWEN]) during system initialization. 0 Watchdog timers initially disabled. 1 Watchdog timers initially enabled. PRDY 28 PCI Express Ready Indicates whether the PCI Express controller is ready to be configured. 0 PCI Express not ready. 1 PCI Express ready. BPRT 27–24 Boot Port Select Defines the boot port interface configuration. If RapidIO port is selected as boot port, the RapidIO interface, used for boot port, must be configured to a valid RapidIO protocol using fields S1P/S2P in RCWLR. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100– 1111 RIO 23 RapidIO Host Access Enable Enables RapidIO host access to internal memory after boot. When this bit is set, host access is enabled for the following configurations: • BPRT. Chosen host is SGMII. • S1P/S2P. One port is configured as SGMII for boot and the other SerDes does not contain SGMII. Note: For both modes, any lane not used for SGMII closes after boot is disabled. To use these lanes after boot, the user should open the lanes as part of the boot code execution. 0 Host access after boot disabled. 1 Host access after boot enabled. RPT 22 RapidIO Pass-Through Enable Selects the reset value of P0PTAACR[PTE] and P1PTAACR[PTE] which determines whether pass-through is disabled or enabled. 0 Pass-through disabled. (P0PTAACR[PTE] and P1PTAACR[PTE] reset value is 0) 1 Pass-through enabled. (P0PTAACR[PTE] and P1PTAACR[PTE] reset value is 1) RHE 21 RapidIO Host Enable Selects whether the RapidIO controller can act as a host. When enabled as host, it uses the base device ID (RapidIO register BDIDCSR) taken from the three least significant bits of the device ID (RCWHR[DEVID]). 0 RapidIO controller is agent. 1 RapidIO controller is host. SBETH 20 Simple Boot Over Ethernet Indicates whether the device uses a simple boot over Ethernet. See Section 6.2.3, Simple Ethernet Boot, on page 6-19 for details. This field is always 0 in the preconfigured modes (reduced RCW or hard-coded). 0 Not simple boot over Ethernet. 1 Simple boot over Ethernet. — 19 Settings I2C. RapidIO interface without I2C RapidIO interface with I2C SPI RGMII1 without I2C SGMII1 without I2C RGMII1 with I2C SGMII1 with I2C RGMII2 without I2C SGMII2 without I2C RGMII2 with I2C SGMII2 with I2C Reserved. Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 5-20 Freescale Semiconductor Reset Programming Model Table 5-10. RCWHR Bit Descriptions (Continued) Name Description Settings RM 18 Reset Master This bit should be set when the device is a reset master or when booting from a dedicated I2C EEPROM device. 0 Reset slave. 1 Reset master. BP 17 Boot Patch This bit enables loading patch code for booting from I2C. 0 Boot patch disabled. 1 Boot patch enabled. — 16–13 Reserved. Write to zero for future compatibility. GE1 12 GE1 Select Selects the pins multiplexing between GE1 and TDM[2–3]. 0 TDM[2–3] signals are driven on pins. 1 RGMII1 signals are driven on pins. GE2 11 GE2 Select Selects the pins multiplexing between GE2 and TDM[0–1]. 0 TDM[0–1] signals are driven on pins. 1 RGMII2 signals are driven on pins. R1A 10 RapidIO Interface 1 Accept All Selects the reset value of P0PTAACR[AA]. When set, RapidIO Interface 1 accepts all device IDs. 0 Do not accept all device IDs. (P0PTAACR[AA] reset value is 0). 1 Accept all device IDs. (P0PTAACR[AA] reset value is 1). RapidIO Interface 2 Accept All Selects the reset value of P1PTAACR[AA]. When set, RapidIO Interface 2 accepts all device IDs. 0 Do not accept all device IDs. (P1PTAACR[AA] reset value is 0). 1 Accept all device IDs. (P1PTAACR[AA] reset value is 1). DEVID 8–3 Device ID Stores the value of the signals sampled during reset. 000000 Master device/Device 0. 000001– 111111 Slave device number (from 1 to 63). — 2 Reserved. Write to zero for future compatibility. R2A 9 RMU 1 CTLS 0 Note: RapidIO RMU Local Memory Access Internal Port Select Selects the internal port, the RMU uses, to access local memory. 0 Access local memory using internal port 0 [OCN to MBus Bridge 0 (O2M0)]. 1 Access local memory using internal port 1[OCN to MBus Bridge 1 (O2M1)]. RapidIO Common Transport Large System This value is written to the RapidIO register PEFCAR[CTLS] 0 Common transport type is small system 1 Common transport type is large system The value of fields in the reset configuration word registers (RCWLR and RCWHR) reflect only their state during the reset flow. Some of these parameters and modes can be modified by changing their values in other unit memory mapped registers. Modifying values in other unit memory mapped registers does not affect RCWLR and RCWHR. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-21 Reset 5.3.3 Reset Status Register (RSR) RSR Bit Reset Status Register 31 30 29 28 27 RCWSRC 25 24 RCW_SRC[0–2] 1 0 0 0 15 12 11 10 9 8 JPO JH JS — Type Reset 14 — 23 SW0 R/W 0 0 Type Reset Bit 26 13 BSF SWSR SWHR RM 7 Offset 0x10 22 21 20 19 18 17 16 SW1 SW2 SW3 SW4 SW5 SW6 SW7 0 0 0 0 0 0 0 6 5 4 3 2 1 0 SRS HRS 0 0 — RIO2 RIO1 R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The reset status register captures various reset events in the device. This register fields are sticky and can be cleared by writing 1, writing 0 has no effect (except RM field which is read-only). Table 5-11 defines the RSR bit fields. Table 5-11. RSR Bit Descriptions Name Reset Description RCWSRC 31–29 0 Reset Configuration Word Source Stores the value of the RCW_SRC[0–2] signals sampled during reset. See Section 5.2.2, Reset Configuration Words Source. Changing this field has no effect. — 28–24 10000 SW0 23 0 SW1 22 0 SW2 21 Settings 000 001 010 011 100 101 Multiplexed external RCW loading. I2C EEPROM in 8-bit addressing mode. I2C EEPROM in 16-bit addressing mode. Input pins and default settings. Hard coded option 1. Hard coded option 2. Reserved. Write to 0b10000 for future compatibility. Software Watchdog Timer 0 Indicates whether watchdog timer 0 expired. 0 Software watchdog timer 0 not expired. 1 Software watchdog timer 0 expired. Software Watchdog Timer 1 Indicates whether watchdog timer 1 expired. 0 Software watchdog timer 1 not expired. 1 Software watchdog timer 1 expired. 0 Software Watchdog Timer 2 Indicates whether watchdog timer 2 expired. 0 Software watchdog timer 2 not expired. 1 Software watchdog timer 2 expired. SW3 20 0 Software Watchdog Timer 3 Indicates whether watchdog timer 3 expired. 0 Software watchdog timer 3 not expired. 1 Software watchdog timer 3 expired. SW4 19 0 Software Watchdog Timer 4 Indicates whether watchdog timer 4 expired. 0 Software watchdog timer 4 not expired. 1 Software watchdog timer 4 expired. SW5 18 0 Software Watchdog Timer 5 Indicates whether watchdog timer 5 expired. 0 Software watchdog timer 5 not expired. 1 Software watchdog timer 5 expired. SW6 17 0 Software Watchdog Timer 6 Indicates whether watchdog timer 6 expired. 0 Software watchdog timer 6 not expired. 1 Software watchdog timer 6 expired. SW7 16 0 Software Watchdog Timer 7 Indicates whether watchdog timer 7 expired. 0 Software watchdog timer 7 not expired. 1 Software watchdog timer 7 expired. — 15 0 Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 5-22 Freescale Semiconductor Reset Programming Model Table 5-11. RSR Bit Descriptions (Continued) Name Reset BSF 14 0 SWSR 13 0 SWHR 12 0 RM 11 0 JPO 10 0 JH 9 0 JS 8 0 — 7–4 0 Reserved. Write to zero for future compatibility. RIO2 3 0 RIO1 2 0 SRS 1 0 HRS 0 0 Note: Description Settings Boot Sequencer Fail If set, indicates the I2C boot sequencer has failed while loading the reset configuration words. 0 No boot sequencer failure. 1 Boot sequencer failure. Software Soft Reset Indicates whether a software soft reset has occurred. 0 No software soft reset. 1 Software soft reset initiated. Software Hard Reset Indicates whether a software hard reset has occurred. 0 No software hard reset. 1 Software hard reset initiated. Reset Master Indicates whether the device is the reset master. 0 Reset slave. 1 Reset master. JTAG Power-On Reset Indicates whether a power-on reset request was received via a JTAG command. When this bit is set, out of reset, it also sets RSR[HRS] and RSR[SRS]. 0 No JTAG power-on reset request. 1 JTAG power-on reset request received. JTAG Hard Reset Indicates whether JTAG hard reset request was received via a JTAG command. 0 No JTAG hard reset. 1 JTAG hard reset initiated. JTAG Soft Reset Indicates whether JTAG soft reset request was received via a JTAG command. 0 No JTAG reset. 1 JTAG soft reset initiated. RapidIO Interface 2 Reset Status Indicates whether the RapidIO interface 2 received a reset request. 0 No reset request received. 1 Reset request received. RapidIO Interface 1 Reset Status Indicates whether the RapidIO interface 1 received a reset request. 0 No reset request received. 1 Reset request received. Soft Reset Status When an external or internal soft reset event is detected, SRS is set. 0 No soft reset event. 1 A soft reset event was detected. Hard Reset Status When an external or internal hard reset event is detected, HRS is set. 0 No hard reset event. 1 A hard reset event was detected. The RSR accumulates reset events. For example, because a software watchdog timer expiration results in a hard reset that in turn results in a soft reset, RSR[SWSR], RSR[SRS], and RSR[HRS] are all set after a software watchdog reset. These must be cleared individually. RSR only returns to its complete reset value when a power-on reset occurs. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-23 Reset 5.3.4 Reset Protection Register (RPR) RPR Bit Reset Protection Register 31 30 29 28 27 26 Offset 0x18 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 Type Reset 0 0 0 0 0 0 0 RCPW R/W 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 RCPW R/W 0 0 0 0 0 0 0 0 0 Type Reset 0 0 0 0 0 0 The RPR enables or disables writing to the reset control register (RCR). The RPR protects unintended software reset requests due to writes to the reset control register (RCR). To enable the RPR, write the value 0x52535445 (“RSTE” in ASCII) to the RPR. When enabled, the control register enable bit in the reset control enable register (RCER[CRE]) is set. Reading the RPR always returns all zeros. To disable writes to the RCR, write a 1 to the RCER[CRE] bit. Table 5-12 defines the bit fields of RPR. Table 5-12. RPR Bit Descriptions Name Reset Description RCPW 31–0 0 Reset Control Protection Word Protects unintended software reset request caused by writes to the RCR. Write the value 0x52535445 (“RSTE” in ASCII) to the RCPW to enable the RCR. When the RCR is enabled, the RCER[CRE] bit is set. Reading the RPR always returns all zeros. To disable write to the RCR, write a 1 to RCER[CRE]. MSC8156 Reference Manual, Rev. 2 5-24 Freescale Semiconductor Reset Programming Model 5.3.5 Reset Control Register (RCR) RCR Bit Reset Control Register 31 30 29 28 27 26 25 24 Offset 0x1C 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset SRH SWHR SWSR R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The RCR is used by software to initiate a soft or hard reset sequence. To allow writing to this register, the user must first enable it by writing the value 0x52535445 to the reset protection register (RPR). Table 5-13 defines the RCR bit fields. Table 5-13. RCR Bit Descriptions Name Reset Description — 31–3 0 Reserved. Write to zero for future compatibility. SHR 2 0 Soft Hard Reset Setting this bit cause the MSC8156 to convert all hard reset flows to soft reset flows. This feature can be used for debug. This bit returns to its reset state during the reset sequence, so reading it always returns a 0. 0 Normal hard reset flow. 1 Hard reset flow converted to soft reset flow. SWHR 1 0 Software Hard Reset Setting this bit cause the MSC8156 to begin a hard reset flow. This bit returns to its reset state during the reset sequence, so reading it always returns a 0. 0 Normal operation. 1 Initiates a hard reset. SWSR 0 0 Software Soft Reset Setting this bit cause the MSC8156 to begin a soft reset flow. This bit returns to its reset state during the reset sequence, so reading it always returns a 0. 0 Normal operation. 1 Initiates a soft reset. Note: Settings When issuing a reset command by accessing the register, the device enters reset mode immediately. The host transaction does not terminate normally. Always consider the possible outcome when any host is programmed to issue the software reset command. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 5-25 Reset 5.3.6 Reset Control Enable Register (RCER) RCER Bit Reset Control Enable Register 31 30 29 28 27 26 25 24 Offset 0x20 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset CRE R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The reset control enable register shown in indicates by the CRE field that the reset protection register (RPR) was accessed with a value that enables the reset control register (RCR). Table 5-14 defines the RCER bit fields. Table 5-14. RCER Bit Descriptions Name Reset Description — 31–1 CRE 0 0 Reserved. Write to zero for future compatibility. 0 Control Register Enabled Indicates the status of the reset control register (RCR). Writing 1 to this bit disables the RCR and clears this bit. Writing zero has no effect. Settings 0 RCR is disabled. 1 The enable value is written to the reset protection register (RPR) to enable the RCR. MSC8156 Reference Manual, Rev. 2 5-26 Freescale Semiconductor 6 Boot Program The boot program initializes the MSC8156 after it completes a reset sequence. The MSC8156 can boot from an external host through the RapidIO interface or download a user boot program through the I2C, SPI, or Ethernet ports. The default boot code is located in an internal 96 KB ROM at 0xFEF00000–0xFEF17FFF and is accessible to all cores. For readability, the internal boot code is written in C and is based on the Freescale SmartDSP OS. When cores finish the reset sequence, they all jump to the ROM starting address (0xFEF00000), and run the boot code. Specific tasks may differ based on the core ID. Note: Boot data is located in the M3 memory at 0xC0101C00–0xC0107FFF (25 KB). Do not write to this area during boot loading. When the cores finish the boot sequence, they all jump to a user-defined address. Special conditions for boot code operation include the following: The boot code services the watchdog timer if the EWDT bit in the reset configuration word high register (RCWHR) is set (recommended). If the boot process fails, the core goes into a debug state and writes an indication of the root error cause to address 0xC0101C04 in M3 memory (see Section 6.5, Boot Errors, on page 6-23 for details). The boot program does not configure the DDR controller. Therefore, if you want to place data in the DDR memory, you must first configure the DDR controller to support the type of DDR memory in the system. To configure the controller, write the configuration data to the DDR controller memory-mapped registers before writing data to the DDR memory. See Chapter 12, DDR SDRAM Memory Controller for details. In any reset state other than PORESET, the device does not execute the multi-device support for using the reset configuration word (RCW) flow with I2C as described in Section 6.1.4. The rest of the boot flow remains the same as described in this chapter. The boot code is run by all cores. Task differ by core ID. Note: Parity error checking is not supported by the boot code because parity errors are unlikely to occur. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-1 Boot Program 6.1 Functional Description The boot code is divided into four parts shown in Figure 6-1: Private configuration (all cores). Includes general configuration of all cores. Shared configuration (core 0). Includes general configuration of internal CLASS, I2C, RapidIO interface, and QUICC Engine subsystem. Patch mode. Allows loading patch code for boot from I2C. Boot mode select (core 0). This part includes downloading of code from one of the MSC8156 bootable ports as defined by the RCWHR[BPRT] field. Boot completion. All cores complete the boot operation and jump to a user-specified address. Private Configuration No Core 0? Yes Shared Configuration No Boot patch patch through through I22C Boot HSMPR[0] = 0? Yes Boot Mode Select? I2C Code HSMPR[0] = 0 Ethernet Code Serial RapidIO Code Simple Ethernet Code SPI Code Core 0 Releases Cores 1–N by Hardware Semaphore All Cores Jump To User Code Figure 6-1. Boot Sequence Diagram MSC8156 Reference Manual, Rev. 2 6-2 Freescale Semiconductor Functional Description 6.1.1 Private Configuration Private configuration includes the following: VBA register initialization. The value stored in ROM (0xFEF17000) is used to initialize the Vector Base Address (VBA) register in the SC3850 core. After initialization of the VBA register, any interrupt places the core in debug mode. The EPIC is programmed to handle all NMIs correctly. The L1 ICache is enabled. The stack pointer is set to reside in the M3 memory space dedicated to the boot operation. The Error Detection Code (EDC) exception is enabled. Note: The EPIC, L1 ICache, and MMU are part of the SC3850 DSP core subsystem. See the the MSC8156 SC3850 DSP Core Subsystem Reference Manual for configuration details. The manual is only available with a signed non-disclosure agreement (NDA). Contact your Freescale sales office or representative for more information. 6.1.2 Shared Configuration The shared configuration includes the following: If the I2C controller is used to load the RCW for multi-device slaves (see Section 6.1.4, Multi Device Support for the I2C Bus, on page 6-4) the necessary number of GPIO lines from the {GPIO[0–3], GPIO[21]} of the master device are set to output and used to drive STOP_BS signals as follows: — For up to 5 slaves, the lines drive the signals directly, and the number of lines equals the number of slaves. — For up to 15 slaves, using glue logic to drive the STOP_BS signals; the number of required lines is equal to 1 + log 2numSlaves . If RCWHR[RIO] is set or boot is over the RapidIO interface: — LCSBA1CSR is set to 0x1FFE0000, thereby allowing the configuration register space to be physically mapped. This allows configuration and maintenance of the registers through regular read and write operations rather than by maintenance operations. — The necessary bits of HSSI_CR1[0:1] are set in order to disable the tri-state on the Serial RapidIO lanes. — The necessary bits of P0CCSR and P1CCSR (RapidIO) are set to force 1x or 4x based on RCWLR[S1P] and RCWLR[S2P]. QUICC Engine module priority is set to be 1 with emergency not masked (that is SDMR[EB1_PR] = 01). MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-3 Boot Program 6.1.3 Patch Mode Patch mode is defined as follows: Patch Mode is enabled when RCWHR[BP] is set. See Chapter 5, Reset for details. Boot loads patch code from I2C and executes in the same manner as boot over I2C. After the patch is executed, the patch code jumps to the address in the boot code defined in address 0xC0101C14. The jump address can be changed by the patch code. By default, the boot code continues Boot Flow from same place after returning from the patch loading. Execution continues to load boot code from the boot port defined by RCWHR[BPRT]. If boot port is I2C, the boot code generates an error and the core goes into a debug state. 6.1.4 Multi Device Support for the I2C Bus The MSC8156 can share the I2C EEPROM device with other MSC8156 devices for loading the reset configuration word (RCW), as well as for reading configuration during boot loading and execution. When the bus is shared, the bus must distinguish among reset masters, reset slaves, and EEPROM slaves: The reset master (indicated by RCWHR[RM]) holds the STOP_BS signals of all the slaves high and releases them one by one, thus arbitrating which slave has access to the bus at any moment. When the master deasserts STOP_BS for a slave, the slave device attempts to access an EEPROM at address 0x57. The actual EEPROM address is 0x50, but the master emulates the EEPROM using address 0x57 to drive the RCW to each slave in turn. There are a number of assumptions and limitations imposed when multiple devices share the I2C bus: 1. For each EEPROM in the system, there must be at least one EEPROM master. The EEPROM master is also the reset master (RCWHR[RM]) 2. For each EEPROM, there can be 0 or more EEPROM slaves. An EEPROM slave is defined as a device that reads is RCW from the EEPROM and uses data on the bus during boot. The number of EEPROM slaves is stored as a single byte at address 0x8F of the EEPROM. 3. For each EEPROM, there can be 0 or more reset slaves. A reset slave is defined as a device that only reads its RCW from the EEPROM but does not read data from it during boot. The number of reset slaves is stored as a single byte at address 0x11 of the EEPROM. 4. Every EEPROM slave must also be a reset slave. 5. There may be up to 15 reset slaves per EEPROM MSC8156 Reference Manual, Rev. 2 6-4 Freescale Semiconductor Functional Description 6. As a consequence of the conditions listed in 1–5, the limitations on the number of slaves is defined as 0 ≤ #EEPROM slaves ≤ #reset slaves ≤ 15 7. The lowest numbered reset slave must be a higher numbered slave than the highest numbered EEPROM slave (for example, if EEPROM slaves are slaves 0–4, then reset slaves are slaves 5–12). 8. EEPROM slaves must be numbered sequentially from 0 upward. 9. All devices connected to the same EEPROM must have PORESET asserted simultaneously, that is, no single device go through the PORESET sequence without the others. 10. For multi-device RCW only. The EEPROM master can have HRESET/SRESET asserted without the slaves being reset as well. Each reset slave can have its HRESET/SRESET asserted without the master being reset. 11. For multi-device RCW and Boot using I2C. If the EEPROM master has its HRESET/SRESET asserted, the EEPROM slaves must have their HRESET/SRESET asserted as well. Each reset slaves can have its HRESET/SRESET asserted without the master being reset. However, there must be external logic that performs the actions that the master performs during its boot sequence. The logic may be implemented as periodic polling by the master, asserting NMI to the reset master, or using an FPGA or other implementation. 12. If there is a shared EEPROM in use in any stage of the reset/boot flow (RCW, serial RapidIO interface configuration, MAC address, I2C boot), all devices MUST load their RCW from the shared EEPROM. Note: If the reset master (RCWHR[RM]) fails (due to a stuck I2C_SDA) to read the data at 0x11 or 0x8F of the EEPROM or fails during the sequence of driving the RCW to the reset slaves, the core goes into a debug state and writes the appropriate error code to the M3 memory (see Section 6.5). MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-5 Boot Program 6.1.5 Example Configuration Figure 6-2 describes a I2C multi device system in which MSC8156 #0 is a reset master and MSC8156 #1 is a reset slave. The reset master uses {GPIO[0–3], GPIO[21]} to release the reset slaves. The MSC8156 boot supports up to 15 slaves on a single EEPROM (for RCW). There are two possibilities as to how the reset slave STOP_BS signals are handled: If there are 5 slaves or less, connect each GPIO line directly to one of the slaves. The master deasserts and asserts the lines when necessary. If there are more than 5 slaves, GPIO[21] is used to latch the values of GPIO[0–3] into the decoder glue logic (latch when high). This value indicates which of the slave STOP_BS signals to pull low. When an all 1 values are latched, all STOP_BS signals should be pulled high. DSP Device 0 VDD RCW_SRC Reset Logic I2C EPROM 3 I2C_SCL A[0–2] I2C_SDA I2C_SCL SRESET HRESET PORESET I2C_SDA GPIO Decoder STOP_BS VDD DSP Device 1 RCW_SRC 3 I2C_SCL SRESET I2C_SDA HRESET PORESET VDD STOP_BS Figure 6-2. I2C Multi Device System MSC8156 Reference Manual, Rev. 2 6-6 Freescale Semiconductor Functional Description Figure 6-3 shows the I2C initialization and multi device support. RCWLR[MODCK] PCMR0[INP_RNG] need to reach 400 KHz Write freq. division ratio & sampling rate No Yes RCWHR[RM] 1. Read slave RCW and generate STOP 2. Configure I2C controller to emulate EEPROM with address 0x57 No numSlaves > 5 Decoded STOP_SLV_BS == 0 Yes Encoded STOP_SLV_BS == 0 1. Reload time out counter 2. Drive corresponding slave RCWs 3. Disable time out counter RCWHR[BPRC] = I2C Last Slave? Yes No No No STOP_BS == 1 RCWHR[BPRC] = I2C Yes No Yes All STOP_BS == 1 End of flow Figure 6-3. I2C initialization and Multi Device Support MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-7 Boot Program The following stages are performed to serve as the master chip on a multi-device board. 1. The MSC8156 reads RSR to determine if the reset is PORESET. If it is not PORESET, this section of the boot is bypassed entirely. 2. The MSC8156 reads RCWHR[RM] to determine if it is the master on the multi-device board or a slave on the multi-device board. 3. If the MSC8156 is the master on the multi-device board: a. I2CFDR and I2CDFSSR are programed based on the following data — RCWLR[MODCK] — RSR[RSTSRC] b. c. d. e. f. g. 4. Note: The frequency used for I2C_SCL is set as closely as possible to 400 kHz. The Reset master reads the slaves RCW from their location in the I2C EEPROM (with address 0x50) and stores them into M3. The reset masters I2C controller is configured to work as an EEPROM (slave mode) with address 0x57. The reset master deassert STOP_BS for the current slave (directly or via the decoder). The reset master: • Drives preamble 0xAA55AA • Drives header 0xFFFFFF • Drives RCWLR • Drives header 0xFFFFFF • Drives RCWHR for each read request of the reset slave, and then generates a STOP condition on the bus in order to free it up because the slave I2C controller does not generate a STOP condition. Repeat steps a–e for all slaves. {GPIO[0–3}, GPIO[21]} are set to 0x1F thus deasserting all the slaves STOP_BS signals, and the master can continue performing its boot flow. After getting its RCS, the reset slave starts to run the boot program. If the MSC8156 is a an EEPROM slave, the boot waits until STOP_BS is to pulled high before continuing with the boot program, thus allowing all reset slaves to read their reset word before any device tries to access the EEPROM for boot code. MSC8156 Reference Manual, Rev. 2 6-8 Freescale Semiconductor Boot Modes 6.2 Boot Modes The Boot Mode is selected by the value in the RCWHR[BPRT] field. The following sections describe the operation of each boot mode. 6.2.1 I2C EEPROM The MSC8156 boot expects the I2C EEPROM to be divided in to four sections: 1. Reset words. This section starts at address 0x0000 of the EEPROM and includes the reset words for the reset master, an indication as to the number of reset slaves and the reset words for all the slaves. 2. Reserved. 3. Boot configuration. This section starts at address 0x0090 of the EEPROM and can contain one of the following: — MAC addresses for up to 64 devices (6 bytes per address). The boot knows to associate each address with the appropriate device based on an offset of 6 × RCWHR[DEVID]. The expected format is consecutive 6 byte fields. — Serial RapidIO configuration. This option allows the user to configure up to 471 registers and should be used to set the appropriate values of HSSI_CR1 and HSSI_CR2 in the general configuration block. The expected format is address, data pairs. The 8 bytes following the last pair should always be set to {0xFFFFFFFF, 0xFFFFFFFF}, regardless of the actual number of pairs placed in the EEPROM to signal that no more configurations are necessary. 4. Boot code. This section starts at address 0x0210 of the EEPROM and contains the user code. The boot code must be of the size (n × 4) + m[bytes], where n is any integer greater than or equal to 0 and m is either 0 or 1. If n is larger than 0, the value in the Destination Address field must be 32-bit aligned. Note: Although not all sections are used by all boot options, the section addresses are fixed. However, any section not used by a specific boot option can be used for general purposes within the following guideline examples: • • In a system with only two DSP devices that supports multi-device boot, only addresses 0x0 to 0x19 within the reset word section must carry the appropriate valid values, as shown in Figure 6-4. Addresses 0x20 to 0x89 are available for any general-purpose use. For boot scenarios without I2C support, addresses 0x90 to 0x20F are available for any general-purpose use. 1.47 pairs along with 8 bytes end flag of {0xFFFFFFFF, 0xFFFFFFFF} is the amount that fits in the same space as 64 MAC addresses ( ( 64 ⋅ 6 ) ⁄ ( 2 ⋅ 4 ) = 47 + 1 ) MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-9 Boot Program • • For boot scenarios that do not use I2C and do not use boot patch, addresses 0x210 and above are available for general-purpose use. Addresses 0x11 (number of reset slaves) and 0x8F (number of EEPROM slaves) must be used for their defined function for all boot options. These addresses are never available for general-purpose use. Figure 6-4 shows a complete example of an EEPROM contents: Address 0 1 2 3 4 5 6 7 Description 0x0000 1 0 1 0 1 0 1 0 Preamble 0x0001 0 1 0 1 0 1 0 1 0x0002 1 0 1 0 1 0 1 0 0x0003 1 1 1 1 1 1 1 1 0x0004 1 1 1 1 1 1 1 1 0x0005 1 1 1 1 1 1 1 1 0x0006 Reset Configuration Word Low [31–24] 0x0007 Reset Configuration Word Low [23–16] 0x0008 Reset Configuration Word Low [15–8] 0x0009 Reset Configuration Word Low [7–0] 0x000A 1 1 1 1 1 1 1 1 0x000B 1 1 1 1 1 1 1 1 0x000C 1 1 1 1 1 1 1 1 Master Reset Configuration Word Low Preload Command Master Reset Configuration Word High Preload Command 0x000D Reset Configuration Word High [31–24] 0x000E Reset Configuration Word High [23–16] 0x000F Reset Configuration Word High [15–8] 0x0010 Reset Configuration Word High [7–0] 0x0011 numResetSlaves ∈ [ 0 – 15 ] Number of Reset Slaves 0x0012 Reset Configuration Word Low [31–24] 0x0013 Reset Configuration Word Low [23–16] Reset Configuration Word Low of Slave 1 0x0014 Reset Configuration Word Low [15–8] 0x0015 Reset Configuration Word Low [7–0] 0x0016 Reset Configuration Word High [31–24] 0x0017 Reset Configuration Word High [23–16] 0x0018 Reset Configuration Word High [15–8] 0x0019 Reset Configuration Word High [7–0] Reset Configuration Word High of Slave 1 .................. .................. 0x0082 Reset Configuration Word Low [31–24] 0x0083 Reset Configuration Word Low [23–16] 0x0084 Reset Configuration Word Low [15–8] 0x0085 Reset Configuration Word Low [7–0] Reset Configuration Word Low of Slave 15 Figure 6-4. EEPROM Contents MSC8156 Reference Manual, Rev. 2 6-10 Freescale Semiconductor Boot Modes Address 0 1 2 3 4 5 0x0086 Reset Configuration Word High [31–24] 0x0086 Reset Configuration Word High [23–16] 0x0088 Reset Configuration Word High [15–8] 0x0089 Reset Configuration Word High [7–0] 0x008A .................. 6 7 Description Reset Configuration Word High of Slave 15 Reserved 0x008B .................. 0x008C .................. 0x008D .................. 0x008E .................. 0x008F 15 ≤ numResetSlaves ≤ numEEPROMslaves ≤ 0 Number of EEPROM Slaves 0x0090 Configuration/MAC Address First Byte .................. 0x020F 0x0210 Configuration Last Byte/ Device 0x2F Last MAC Address Byte 1 0 1 1 1 1 1 1 Block Control (Block #0) size[0–7] 0x0211 0x0212 size[8–15] 0x0213 size[16–23] 0x0214 NBA[31–24] 0x0215 NBA[23–16] 0x0216 NBA[15–8] 0x0217 NBA[7–0] 0x0218 DA[31–24] 0x0219 DA[23–16] 0x021A DA[15–8] 0x021B DA[7–0] Block Size Next Block Address Destination Address Payload Data CODE Checksum[15–8] Checksum and Checksum Checksum[7–0] Checksum[15–8] Checksum[7–0] 1 0 1 1 1 1 1 1 Block Control (Block #1) .................. End of EEPROM Note: The value shown for Block Control is an example only. Figure 6-4. EEPROM Contents (Continued) MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-11 Boot Program The I2C boot loading is performed with the I2C controller. To allow for EEPROMs of up to 64 Kbytes, 19-bit addressing is used. The 7 most significant bits (msb) of the I2C slave address are always 0b1010000. The I2C controller expects a specific memory image when trying to read data from the EEPROM. The I2C memory image consists of the following: 1. Block Control. A 1-byte control field that contains: — 1 bit of CSE. A 1 indicates that the checksum is enabled. — 1 reserved bit that should be cleared (0). — 6 bits of CHIP_ID indicate the destination chip. 0x3F means broadcast. 2. Block Size. These 3 bytes represent the number of bytes in the payload data field (e.g if the payload size is 12 bytes, Block Size = {0x00, 0x00, 0x0C}). 3. Next Block Address. The address in which the next block is located. If the next block address equals 0x0 the bootloader assumes that the next block is sequential. If next block address equals 0xFFFFFFFF, this block is the end block. 4. Destination Address. The address to which the payload data should be written. 5. Payload Data. Holds 1≤size<216 bytes (up to 64 Kbytes) of data to be written to on-device memory according to the destination address. 6. Checksum. A 2-byte field that holds the XOR of all previous data (Block Control and on). The boot code XORs each received 2 bytes with the previous checksum value and verifies the validation by comparing it to this field. 7. Checksum. A 2-byte field that holds bitwise-not of the Checksum. The I2C bootloader expects the 4 bytes of Checksum and Checksum regardless of the CSE value. If the Checksum is disabled, these 4 bytes are not checked. By using Checksum and Checksum, the boot ensures that all values of the bits are real values and that there are no stuck signals. If both Checksum and Checksum are erroneous in a block, core 0 enters the debug state. The I2C_SCL frequency is set as closely to 400KHz as possible, as mentioned in Section 6.1.4. For each block, the Software I2C read access begins with the boot code driving the device select ({A0,A1,A2} = 0b000) and 2 bytes of address, followed by a RESTART condition. The I2C slave drives its data (beginning with the Block Control byte) until the end of the block. The last byte of each block is not acknowledged by the MSC8156. After the ninth unacknowledged bit, the boot code generates a STOP condition. Figure 6-5 describes the Software I2C read access. MSC8156 Reference Manual, Rev. 2 6-12 Freescale Semiconductor Boot Modes ACK ACK BYTE ADDR A3 A4 A5 A6 A7 A8 A9 A10 BYTE ADDR A11 A12 A13 A14 A15 A16 A17 A18 R/W ACK DEVICE SELECT 1 0 1 0 A0 A1 A2 STOP START START DEVICE SELECT A0 A1 A2 1 0 1 0 =0 =0 =0 ACK ACK NO ACK ACK DATA OUT 1 D0 D1 D2 D3 D4 D5 D6 D7 R/W STOP DATA OUT N D0 D1 D2 D3 D4 D5 D6 D7 Note: A0 and D0 are the most significant bits. Figure 6-5. I2C Read Access 6.2.2 Ethernet The MSC8156 device can load files through the Ethernet port using DHCP (Dynamic Host Configuration Protocol) and TFTP (Trivial File Transfer Protocol).Supports RGMII @1000 Mbps and SGMII @1000 Mbps full duplex. For DHCP, each client must have its own unique MAC (Media Access Control) address. This MAC address can be based on RCWHR[DEVID] or be user-defined. This DHCP implementation supports IPv4. Booting over Ethernet is enabled on GE1 (UCC1) and GE2 (UCC3) depending on the values of the following bit fields: RCWHR[BPRT]. Determines which ports to use for boot loading. — 0x4 = RGMII1 without I2C — 0x5 = SGMII1 without I2C — 0x6 = RGMII1 with I2C — 0x7 = SGMII1 with I2C — 0x8 = RGMII2 without I2C — 0x9 = SGMII2 without I2C — 0xA = RGMII2 with I2C — 0xB = SGMII2 with I2C RCWHR[GE1]. Determines whether the signals lines are TDM[2–3] or RGMII1. RCWHR[GE2]. Determines whether the signal lines are TDM[0–1] or RGMII2 RCWLR[S1P]. Determines which SGMII signals are enabled on SerDes port 1: — 0x5 = SGMII1 and SGMII2. — 0x6 = SGMII1 and SGMII2 — 0x7 = SGMII1 — 0x8 = SGMII1 RCWLR[S2P]. Determines which SGMII signals are enabled on SerDes port 2. — 0x5 = SGMII1 and SGMII2 — 0x6 = SGMII1 and SGMII2 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-13 Boot Program — — — — — — Note: 0x7 = SGMII2 0xA = SGMII1 and SGMII2 0xB = SGMII2 0xE = SGMII1 and SGMII2 0x14 = SGMII2 0x16 = SGMII2 It is valid to program RCWLR[S1P] and RCWLR[S2P] to have SGMII1 on both ports, SGMII2 on both ports, or to have SGMII1 and SGMII2 on both ports. An internal multiplexer always routes only two physical connections to the QUICC Engine controllers. If the SGMII interfaces are configured by S1P and S2P, SGMII1 (if selected by S1P and S2P) is physically connected to SerDes Port 1 and SGMII2 (if selected by S1P and S2P) is physically connected to SerDes Port 2 Figure 6-6 describes the Ethernet bootloader flow. BOOT CODE DHCP Server DHCP Client filename, next server address TFTP Server TFTP Client TFTP Data Block Read S-R Code Installation ecord application code Temporary Storage Space In M3 Internal Memory Space Figure 6-6. Ethernet Bootloader Flow MSC8156 Reference Manual, Rev. 2 6-14 Freescale Semiconductor Boot Modes :The Ethernet bootloader flow includes: 1. Configuring the QUICC Engine drivers based on RCWHR[BPRT]. 2. Finding a DHCP server and receive configuration parameters (filename, server address, and so on). 3. Reading a block of the boot file, in S-Record format, from a TFTP server. 4. Processing each TFTP data block and placing it in its memory destination. 5. Sending a TFTP acknowledge to the TFTP server. 6. Repeating steps 2–5 until the end of the data is transferred. 6.2.2.1 DHCP Client The basic steps that occur when a DHCP client requests an IP address from a DHCP server are shown in Figure 6-7. DHCP Discover (broadcast) DHCP Offer (unicast) DHCP CLIENT DHCP Request (broadcast) DHCP SERVER DHCP Ack (unicast) Figure 6-7. DHCP Transactions The client sends a DHCP DISCOVER broadcast message to locate a DHCP server. A DHCP server offers configuration parameters (such as an IP address, a TFTP server IP address, bootfile name...). The client returns a formal request for the first offered IP address to the DHCP server in a DHCPREQUEST broadcast message. The DHCP server confirms that the IP address has been allocated to the client by returning a DHCPACK unicast message to the client. There are two possibilities for setting the MSC8156 MAC address during the boot: User defined and read from an I2C EEPROM. See Section 6.2.1 for details. Predefined default using the following fields: — A constant of 32 bits: {0x1E, 0xF7, 0xD5, 0x00} — 8 bits consisting of (RCWHR[DEVID]) (aligned to the right and padded with 0) — A constant of 8 bits: {0x00} MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-15 Boot Program The predefined option is configured to be an individual locally administered address in accordance with IEEE Std. 802-2001™. This MAC address scheme allows for more that 8 unique MAC addresses per device by changing the last 4 bit values, thus allowing each core to have 2 MAC addresses for use during operational mode. 6.2.2.2 TFTP Client This implementation supports three types of messages: TFTP REQUEST, TFTP DATA and TFTP ACK. Figure 6-8 describes the TFTP handshake. TFTP REQUEST TFTP DATA TFTP CLIENT TFTP ACK TFTP SERVER TFTP DATA (last) TFTP ACK Figure 6-8. TFTP Transactions The TFTP transfer is initiated by the client when it issues a TFTP REQUEST (which contains the file name to download). In response, the server provides the application with a series of TFTP DATA messages. The client handshakes each data block by issuing a TFTP ACK allowing the server to proceed with subsequent TFTP DATA messages. This process repeats until all data blocks are received. 6.2.2.3 Boot File Format The Ethernet bootloader expects an application file in the form of an S-Record file. The S-Record file is a text representation of the binary program code. The S-Record file structure is describes in Figure 6-9. MSC8156 Reference Manual, Rev. 2 6-16 Freescale Semiconductor Boot Modes Start Record Data Record 1 Data Record 2 Data Record n End Record Figure 6-9. S-Record File Structure Each line of an S-Record file corresponds to any of the following: start record, data record, or end record. Each record is terminated with a line feed. Note: The S-Record that is downloaded during boot over Ethernet should include no whitespaces (including newlines). A record has the following format: S<type><length><address><data><checksum> Note: This implementation supports only record of types: S0, S3 or S7. The description of fields is described in Table 6-1. Table 6-1. S-Record description of Fields Field Width in Characters S<type> 2 The type of record (S0, S3 or S7) <length> 2 The count of remaining character pairs in the record <address> 4 The address at which the data field is to be loaded into memory <data> ≤64 <checksum> 2 Description The memory loadable data or descriptive information The least significant byte of the ones complement of the sum of the byte values represented by the pairs of characters making up the length, the address, and the data fields S0 Record. Starting record. The address and data fields are ignored and checksum check is executed. S3 Record. Data record. The address field is interpreted as a 4-byte address. The data field is composed of memory loadable data. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-17 Boot Program S7 Record. Termination record. The address fields is interpreted as the 4-byte address to which to jump after boot. No checksum check is executed. Shown below is a typical S-record format file: S0030000FC S30D00002FE731DC3180BEF09E7062 S705000000000C The S0 record is composed as follows: S0. Indicating it is a starting record. 03. Hexadecimal 03 (decimal 3). Indicating that three character pairs (or ASCII bytes) follow. 0000. Information string (ignored) FC. Checksum field. The S3 record is composed as follows: S3. Indicating it is a data record to be loaded at a 4-byte address. 0D. Hexadecimal D (decimal 13), representing a 4 byte address, 8 bytes of binary data, and a 1 byte checksum, follow. 00002FE7. Eight character 4-byte address field. 31DC3180BEF09E70. 8-character pairs representing the actual binary data. 62. Checksum field. The S7 record is composed as follows: S7. Indicating it is the last record. 05. Hexadecimal 05 (decimal 5). Indicating that five character pairs (4 byte address and a 1 byte checksum follow). 00000000. Address field to jump to at the end of boot (is written to 0xC0101C10). 0C. Checksum field. Each S-Record line includes an address field that maps the lines data content to a memory location in MSC8156. Core 0 moves the data to this address. Note: Because the MSC8156 uses 32-bit addressing, use of S3 and S7 is recommended. MSC8156 Reference Manual, Rev. 2 6-18 Freescale Semiconductor Boot Modes 6.2.3 Simple Ethernet Boot The MSC8156 supports a simple Ethernet boot mode. This mode is selected by setting the RCWHR[SBETH] bit during the PORESET sequence (see Section 5.3.2, Reset Configuration Word High Register (RCWHR), on page 5-19 for details). 6.2.3.1 Simple Ethernet Boot Flow The simple Ethernet boot mode uses the following sequence for processing: The bootloader configures the QUICC Engine subsystem drivers based on the RCWHR[BPRT]. There are two possibilities for setting the MAC address during the boot. See Section 6.2.2.1 for details. When the Ethernet interface is configured, the bootloader sends the start handshake data 0x17171717. The boot data is read a block at a time by the bootloader using a simple Ethernet frame format: <MAC Dest><MAC Source><Type><2 Bytes Data_Length><4 Bytes Address><Data> Simple boot over Ethernet packets should have the ethertype field of the MAC header set to 0x0004. The bootloader processes each data block: <data_length><address><data> and places it in the destination memory location. The bootloader continues to process blocks until the end handshake data 0xA5A5A5A5 is written to address 0xC0101C00. All cores jump to the address written in 0xC0101C10. The value in the address should be written during the boot loading process. 6.2.3.2 Simple Ethernet Boot Ports Booting over Ethernet is enabled on GE1 (UCC1) and GE2 (UCC3) depending on the values of RCWHR[BPRT], RCWHR[GE1], RCWHR[GE2], RCWLR[S1P] and RCWLR[S2P]. Note: Use the following guidelines to configure bits to support the selected boot modes: For boot over Ethernet in RGMII mode the following bits should be configured: — RCWHR[GE1] = 1 for boot over port 1 — RCWHR[GE2] = 1 for boot over port 2 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-19 Boot Program 6.2.3.3 Boot File Format The Ethernet bootloader expects an application file in the format of a Simple Ethernet frame. The Simple Ethernet frame has the following format: <Length><Address><Data> The description of fields is described in Table 6-2. Table 6-2. Simple Ethernet Description of Fields Field Width in Characters <length> 2 The count of remaining character pairs in the record <address> 4 The address at which the data field is to be loaded into memory <data> Description The memory loadable data or descriptive information Each Simple Ethernet address field maps the data content to a memory location in the DSP. Core 0 moves the data to this address. The following example shows a typical Simple-Ethernet packet for End-of-handshake between the Ethernet master and the MSC8156 boot: 1E7FD5000000 1E7FD5100000 0004 0004 C0101C00 A5A5A5A5 The End-of-handshake packet sent by the Ethernet Master comprises the following: 1E7FD5000000, Destination MAC address (default MSC8156 address) 1E7FD5100000. Source MAC address. 0004. Ethernet type. The MSC8156 expects Ethernet type 0x0004. 0004. Length is 4 bytes. C0101C00. The address at which the data field is to be loaded into memory. This is the Handshake address for the MSC8156. A5A5A5A5. Handshake data. MSC8156 Reference Manual, Rev. 2 6-20 Freescale Semiconductor Boot Modes 6.2.4 Serial RapidIO Interconnect In this procedure a Serial RapidIO master waits for the MSC8156 boot program to finish its default initialization and then initializes the device by typically loading code and data to the on device memory. 6.2.4.1 Serial RapidIO Without I2C Support The boot code configures HSSI_CR[0–1] and PxCCSR according to RCWLR[S1P] and RCWLR[S2P] and writes 0x17171717 to address 0xC0101C00. The flow is: 1. Disable port by writing to PxCCS register. 2. Set x1 or x4 by writing to PxCCSR. 3. Enable lanes by writing to the HSSI_CR1[0–1]. 4. Enable the port by writing to PxCCSR. 5. Afterwards, it polls this address until the serial RapidIO master writes 0xA5A5A5A5 to it, thereby indicating that it has finished its code loading. Figure 6-10 describes the boot flow from Serial RapidIO interconnect. boot mode select = Serial RapidIO interface Disable tri-state on lanes Set 0xC0101C00 to 0x17171717 read address 0xC0101C00 ==0xA5A5A5A5 No Yes Continue Boot Flow Figure 6-10. Serial RapidIO Interface Boot Flow MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-21 Boot Program 6.2.4.2 Serial RapidIO Interface with I2C Support The user can place {addr, data} pairs in the I2C EEPROM to configure various registers. The address field should be as seen by the SC3850 DSP core. This feature is most commonly used to configure registers in the general configuration block (see Section 6.2.1, I2C EEPROM, on page 6-9 for details). The boot supports up to 47 such pairs. The 8 bytes following the last pair should always be set to {0xFFFFFFFF, 0xFFFFFFFF}, regardless of the actual number of pairs placed in the I2C EEPROM. Note: Multiple devices connected to a shared EEPROM see the same address/data pairs. 6.2.5 SPI The MSC8156 can boot from a Flash memory on the SPI. The boot expects a Flash memory that latches on the rising edge of the clock and on which data is valid after the falling edge. The chip-select should be a CS low signal. The boot code expects to see the same data format used for the I2C EEPROM (see described in Section 6.2.1, I2C EEPROM, on page 6-9, item 4 for details on the boot code requirements) starting at address 0 of the SPI. A shared SPI bus is arbitrated by all the devices connected to it by polling CS. All signals should be connected as open-drain if more than one device is connected to the SPI flash. The SPI bus will run no faster than 400 KHz to support multiple devices connected with an open drain. Note: If the RCW is read from EEPROM, the device for which RCWHR[RM] equals 1 should have RCWHR[DEVID] of 0. Using this configuration setting saves on arbitration cycles towards the SPI flash. Note: During boot over SPI, the pins described in Chapter 22, GPIO are used per their SPI functionality. In addition, GPIO23 is used as a chip-select signal (CS) to control access to the SPI Flash memory. 6.3 Jump to User Code Before finishing its tasks the boot code preforms these actions: If RCWHR[RIO] is cleared, the boot code disables host accesses by RapidIO interface to internal memory space by putting the lanes into tri-state high impedance state. Invalidate all range of ICaches and close MMU program windows. Core internal registers (other than R0 and VBA) are set to 0x00000000. All configurations which were done by the boot code are cleared. — Module registers — GPIO configurations — Write 0x00000000 to GIER (see Chapter 8, General Configuration Registers) to clear the register. MSC8156 Reference Manual, Rev. 2 6-22 Freescale Semiconductor System after Boot — Disable all interrupts (NMI excluded) — Clear all QUICC Engine registers by writing 1 to QECMDR[RST] 0x900D900D is written to 0xC0101C0C in M3 indicating that the boot has finished executing. All cores jump to the address written in 0xC0101C10. The value in this address should be written during the boot loading process. 6.4 System after Boot All MATTs in the MMUs are set to their reset value values (except M_xSDBx[PBS] which is set to 0x2). L1 I-Cache is enabled, but there are no cacheable windows. All NMIs will be configured as NMIs in the EPIC. VBA equals 0xFEF17000. Any interrupt in the EPIC puts the core in debug. EDC is enabled. Core register values are not guaranteed and should be initialized before use. 6.5 Boot Errors If the boot code fails, an indication as to the root cause is written to 0xC0101C04. The possible reasons are listed in Table 6-3. Table 6-3. Boot Error Codes Error Code Description 0x003FEFFF Catastrophic Error. SmartDSP OS Function failed 0x003FEFFE DHCP server time out 0x003FEFFD Corrupted boot file. The possible causes are: • Checksum wrong in TFTP file • Checksum wrong in I2C file • Unsupported S-Record type 0x003FEFFC TFTP server time out 0x003FEFFA TFTP server sent ERROR code (05) 0x003FEFF9 Unsupported boot port 0x003FEFF8 Reset slave does not respond 0x003FEFF5 Boot over Ethernet or RapidIO isn’t supported with current RCW configuration 0x003FEFF4 Too many I2C RCW slaves in address 0x11 of the EEPROM 0x003FEFF3 Error in protocol between I2C RCW master and slave 0x003FEFF2 Boot port trying to write to area designated for boot (0xC0101C18–0xC0107FFF) 0x003FEFF1 In patch mode, the boot port is I2C. 0x0027EFFE Lost arbitration on I2C us. 0x0027EFFD Time-out on I2C acknowledge (9th clock). MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 6-23 Boot Program Table 6-3. Boot Error Codes Error Code Description 0x0027EFFC Stuck I2C_SDA (I2C bus). 0x00000000 Unexpected debug condition in the SC3850 Core (unexpected interrupt, EE0 asserted and so on) MSC8156 Reference Manual, Rev. 2 6-24 Freescale Semiconductor 7 Clocks The clock circuits contains five PLLs: Three PLLs driven from a single CLKIN signal generated by a crystal-based oscillator that generate the clocks for the DSP core subsystems, the internal CLASS buses, the RapidIO controller, the QUICC Engine subsystem, the MAPLE-B subsystem, the TDM interfaces, internal memory, the DDR-SDRAM memory controllers, and the PCI Express interface. Two PLLs that generate clocks for the SerDes interfaces in the HSSI. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 7-1 Clocks 7.1 Clock Generation Components and Modes The clock generation components and clock scheme are shown in Figure 7-1. CLKIN PLL0 PLL 0 clk PLL 0 clk PLL 1 clk 0 1 DIV CLASS Subsystem DSP Core Subsystem 0 DSP Core Subsystem 1 PLL 0 clk PLL 1 clk 0 1 DIV DSP Core Subsystem 2 DSP Core Subsystem 3 DSP Core Subsystem 4 DSP Core Subsystem 5 PLL1 PLL2 PLL 1 clk PLL 0 clk PLL 1 clk 0 1 DIV PLL 0 clk PLL 1 clk 0 1 DIV QUICC Engine Subsystem PLL 0 clk PLL 2 clk 0 1 DIV MAPLE-B Subsystem PLL 0 clk PLL 2 clk 0 1 DIV DDR1 Controller PLL 0 clk PLL 2 clk 0 1 DIV DDR2 Controller HSSI Subsystem PLL 2 clk SerDes PLL = SerDes Clock SerDes1_REF_CLK SerDes1 PLL SERDES1CLK SerDes PLL = SerDes Clock SerDes2_REF_CLK SerDes2 PLL SERDES2CLK Note: The source for CLKOUT is selected at reset via the Reset Configuration Word (RCW). See Chapter 5, Reset for details. Figure 7-1. MSC8156 Clock Scheme Each PLL uses its input clock to generate a fast clock that is synchronized to the input clock. The fast clock is distributed to each of the clock dividers to generate the clocks that are distributed to the system blocks. The clock circuits are locked, according to the selected clock mode, when the first stage of the system reset configuration is done (reset configuration is controlled by the RESET block). The clock circuits are initialized after the first phase of the reset configuration, when the low part of the reset configuration word is loaded, according to the selected clock mode. MSC8156 Reference Manual, Rev. 2 7-2 Freescale Semiconductor Clock Generation Components and Modes The MSC8156 clock modes are listed in Table 7-1. Table 7-1. MSC8156 Clock Modes QUICC MAPLE-B Engine Subsystem Mode CLKIN PLL0 PLL1 PLL2 CLASS DSP Core Subsystems HSSI 0 100 900 1000 800 500 1000 333 500 1 66.67 800 0 667 400 800 267 4 100 900 1000 667 500 1000 19 100 900 1000 800 450 21 100 900 1000 667 36 100 900 1000 37 66.67 800 39 100 45 100 Notes: 1. 2. DDR1 DDR2 450 800 800 400 400 667 667 333 450 450 667 667 1000 333 500 450 800 800 450 1000 333 450 450 667 667 800 500 1000 333 500 450 800 267 0 667 400 800 267 400 400 667 267 900 1000 667 500 1000 333 450 450 667 222 900 1000 667 450 1000 333 450 450 667 222 The color of each cell, states which PLL drives its clock domain. PLL 0 is red, PLL1 is yellow, and PLL2 is blue with white lettering. In clock modes 1 and 37, PLL1 is not used. In order to save power and reduce noise, this PLL should be disabled by setting bit 7 of RCW low (for RCW details, see Chapter 5, Reset). CLK_OUT pin can be driven from either PLL with selection determined by the value of RCWLR[CLKO] (bits 31–30 of the low part of the reset configuration word—for details, see Chapter 5, Reset). The possible CLK_OUT frequencies are listed in Table 7-2. Table 7-2. MSC8156 CLK_OUT Frequencies Mode PLL0 PLL1 PLL2 CLK_OUT from PLL0 CLK_OUT from PLL1 CLK_OUT from PLL2 0 900 1000 800 75 100 80 1 800 0 667 66.67 6.7 66.67 4 900 1000 667 75 100 66.67 19 900 1000 800 75 100 80 21 900 1000 667 75 100 66.67 36 900 1000 800 75 100 80 37 800 0 667 66.67 6.7 66.67 39 900 1000 667 75 100 66.67 45 900 1000 667 75 100 66.67 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 7-3 Clocks 7.2 .Programming Model The registers covered in this section are as follows: System Clock Control Register (SCCR), page 7-4. Clock General Purpose Register 0 (CLK_GRP0), page 7-5. Note: The clock registers use a base address of: 0xFFF24000. 7.2.1 System Clock Control Register (SCCR) SCCR Bit System Clock Control Register 31 30 29 28 27 26 25 24 Offset 0x000 23 22 21 20 19 18 17 16 — R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 CLASS CORE CORE HSSI DIS 3-0DIS 5-4DIS DIS Type Reset QEDIS MAPLE DDR1 DIS DIS DDR2 DIS — R/W 0 0 0 0 0 0 0 0 0 0 0 0 The SCCR can be used to shut down the clock for some of the clock domains. This register can only be reset by a power-on reset. Table 7-3 defines the SCCR bit fields. Table 7-3. SCCR Bit Descriptions Name Reset Description Settings — 31–16 0 Reserved. Write to zero for future compatibility. CLASSDIS 15 0 CLASS Clock Domain Disable Used to disable the CLASS clock domain to conserve power. 0 CLASS clock domain enabled. 1 CLASS clock domain disabled. CORE3-0 DIS 14 0 Core 3–0 Clock Domain Disable Used to disable the Core 3–0 clock domain to conserve power. 0 Core 3–0 clock domain enabled. 1 Core 3–0 clock domain disabled. CORE5-4 DIS 13 0 Core 5–4 Clock Domain Disable Used to disable the Core 5–4 clock domain to conserve power. 0 Core 5–4 clock domain enabled. 1 Core 5–4 clock domain disabled. HSSIDIS 12 0 HSSI Clock Domain Disable Used to disable the HSSI clock domain to conserve power. 0 HSSI clock domain enabled. 1 HSSI clock domain disabled. QEDIS 11 0 QUICC Engine Clock Domain Disable Used to disable the QUICC Engine subsystem clock domain to conserve power. 0 QUICC Engine clock domain enabled. 1 QUICC Engine clock domain disabled. MAPLEDIS 10 0 MAPLE-B Clock Domain Disable Used to disable the MAPLE-B clock domain to conserve power. 0 MAPLE-B clock domain enabled. 1 MAPLE-B clock domain disabled. MSC8156 Reference Manual, Rev. 2 7-4 Freescale Semiconductor .Programming Model Table 7-3. SCCR Bit Descriptions (Continued) Name Reset DDR1DIS 9 0 DDR2DIS 8 0 — 7–0 0 Description Settings DDR1 Clock Domain Disable Used to disable the DDR1 controller clock domain to conserve power. 0 DDR1 clock domain enabled. 1 DDR1 clock domain disabled. DDR2 Clock Domain Disable Used to disable the DDR2 controller clock domain to conserve power. 0 DDR2 clock domain enabled. 1 DDR2 clock domain disabled. Reserved. Write to zero for future compatibility. 7.2.2 Clock General Purpose Register 0 (CLK_GPR0) CLK_GPR0 Bit 31 Clock General Purpose Register 0 30 29 28 27 26 24 23 22 21 20 19 18 17 16 5 4 3 2 1 0 — R Determined by MODCK Type Reset Bit 25 Offset 0x004 15 14 13 12 11 10 9 8 7 6 RPTE R/W — Type Reset R Determined by MODCK The CLK_GPR0 is used to set the RapidIO prescale value to yield the 8 MHz clock required for event timing. Table 7-4 defines the CLK_GPR0 bit fields. Table 7-4. CLK_GPR0 Bit Descriptions Name Reset Description Settings — 31–6 MODCK value Reserved. RPTE 5–0 MODCK value RapidIO Prescaler for Timed Event Clock 100000 For MODCK 1 This value is used to scale the OCN clock (which is equal to the HSSI and 37. clock that is derived from the MODCK settings; see Table 7-1) to yield 101001 For MODCK 0, an 8 MHz clock used by the RapidIO subsystem to calculate different 4, 21, 36, 39, 45 event times. The value to enter into this field is computed by the All other values reserved. formula: (ocn_clk_freq/8 MHz) – 1, rounded to the nearest whole value (ocn_clk_freq = HSSI clock frequency). The default is selected by the MODCK settings at power-up reset. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 7-5 Clocks MSC8156 Reference Manual, Rev. 2 7-6 Freescale Semiconductor General Configuration Registers 8 The MSC8156 device includes a general configuration block that includes fifty-six 32-bit registers. This block provides sets of control and status registers for modules in the device that do not include their own control and status registers. 8.1 Programming Model The general configuration registers include the following: General Control Register 1 (GCR1), see page 8-2 General Control Register 2 (GCR2), see page 8-3 General Status Register 1 (GSR1), see page 8-5 High Speed Serial Interface Status Register (HSSI_SR), see page 8-7 DDR General Configuration Register (DDR_GCR), see page 8-10 High Speed Serial Interface Control Register 1 (HSSI_CR1), see page 8-12 High Speed Serial Interface Control Register 2 (HSSI_CR2), see page 8-15 QUICC Engine Control Register (QECR), see page 8-16 GPIO Pull-Up Enable Register (GPUER), see page 8-17 GPIO Input Enable Register (GIER), see page 8-18 System Part and Revision ID Register (SPRIDR), see page 8-19 General Control Register 4 (GCR4), see page 8-20 General Control Register 5 (GCR5), see page 8-22 General Status Register 2 (GSR2), see page 8-24 Core Subsystem Slave Port Priority Control Register (TSPPCR), see page 8-26 QUICC Engine First External Request Multiplex Register (CPCE1R), see page 8-27 QUICC Engine Second External Request Multiplex Register (CPCE2R). see page 8-28 QUICC Engine Third External Request Multiplex Register (CPCE3R), see page 8-29 QUICC Engine Fourth External Request Multiplex Register (CPCE4R), see page 8-30 General Control Register 10 (GCR10), page 8-31 General Interrupt Register 1 (GIR1), see page 8-32 General Interrupt Enable Register 1 for Cores 0–5 (GIER1_[0–5]), see page 8-35 General Interrupt Register 3 (GIR3), see page 8-37 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-1 General Configuration Registers Note: General Interrupt Enable Register 3 for Cores 0–5 (GIER3_[0–5]), see page 8-39 General Interrupt Register 5 (GIR5), see page 8-40 General Interrupt Enable Register 5 for Cores 0–5 (GIER5_[0–5]), see page 8-42 General Control Register 11 (GCR11), see page 8-43 General Control Register 12 (GCR12), see page 8-44 DMA Request0 Control Register (GCR_DREQ0), see page 8-46 DMA Request1 Control Register (GCR_DREQ1), see page 8-50 DMA Done Control Register (GCR_DDONE), see page 8-54 DDR1 General Configuration Register (DDR1_GCR), see page 8-57 DDR2 General Configuration Register (DDR2_GCR), see page 8-58 Core Subsystem Slave Port General Configuration Register (CORE_SLV_GCR), see page 8-59 The base address for the general configuration registers is: 0xFFF28000. 8.2 Detailed Register Descriptions 8.2.1 General Configuration Register 1 (GCR1) GCR1 Bit General Configuration Register 1 31 30 29 Type Reset 0 R 0 0 Bit 23 22 21 28 Offset 0x00 27 26 25 24 0 0 R/W 0 0 0 20 19 18 17 16 — — Type Reset 0 0 0 Bit 15 14 UART_STOP R/W 0 0 0 13 12 11 10 0 0 1 0 3 2 1 0 0 0 — Type Reset 0 1 0 DDR2_PIPE_LMT R/W 0 Bit 7 6 5 4 0 9 8 DDR1_PIPE_LMT DDR1_PIPE_LMT Type Reset 0 TDM_PIPE_LMT R/W 0 0 0 1 0 0 MSC8156 Reference Manual, Rev. 2 8-2 Freescale Semiconductor Detailed Register Descriptions GCR1 configures various general functions for the MSC8156 device. Table 8-1 lists the GCR1 bit field descriptions. Table 8-1. GCR1 Bit Descriptions Name Reset Description — 31–17 UART_STOP 16 0 Reserved. Write to 0 for future compatibility. 0 UART Stop Stops the UART clock. — 15 DDR2_PIPE_LMT 14–10 0 Reserved. Write to 0 for future compatibility. 10000 DDR2 Pipeline Limit Specifies the DDR2 complex pipeline depth. DDR1 Pipeline Limit Specifies the DDR1 complex pipeline depth. TDM Pipeline Limit Specifies the TDM complex pipeline depth. DDR1_PIPE_LMT 9–5 10000 TDM_PIPE_LMT 4–0 10000 8.2.2 0 1 Normal operation. UART clock stopped. General Configuration Register 2 (GCR2) GCR2 Bit Settings General Configuration Register 2 31 30 29 28 Offset 0x04 27 26 25 24 0 — R/W Type Reset 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 — 16 DMA_DBG Type Reset R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type Reset 0 0 Bit 7 6 — Type Reset 0 0 CORE5_STP_ CORE4_STP_ CORE3_STP_ CORE2_STP_ CORE1_STP_ CORE0_STP_ EN EN EN EN EN EN R/W 0 0 0 0 0 0 5 4 3 2 1 0 CORE5_DBG CORE4_DBG CORE3_DBG CORE2_DBG CORE1_DBG CORE0_DBG _REQ _REQ _REQ _REQ _REQ _REQ R/W 0 0 0 0 0 0 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-3 General Configuration Registers GCR2 configures various general functions for the MSC8156 device. Table 8-2 lists the GCR2 bit field descriptions. Table 8-2. GCR2 Bit Descriptions Name Reset Description Settings — 31–17 DMA_DBG 16 0 Reserved. Write to 0 for future compatibility. 0 No request. DMA debug request. — 15–14 CORE5_STP_EN 13 0 DMA Debug Mode Request 0 When set, initiates a request for the DMA 1 controller to enter Debug mode. See Section 14.7.17, DMA Debug Event Status Register (DMADESR), on page 14-43. Reserved. Write to 0 for future compatibility. 0 Core 5 Stop Enable Enables core 5 subsystem to stop. CORE4_STP_EN 12 0 Core 4 Stop Enable Enables core 4 subsystem to stop. CORE3_STP_EN 11 0 Core 3 Stop Enable Enables core 3 subsystem to stop. CORE2_STP_EN 10 0 Core 2 Stop Enable Enables core 2 subsystem to stop. CORE1_STP_EN 9 0 Core 1 Stop Enable Enables core 1subsystem to stop. CORE0_STP_EN 8 0 Core 0 Stop Enable Enables core 0 subsystem to stop. 0 1 0 1 0 1 0 1 0 1 0 1 Stop disabled. Stop enabled. Stop disabled. Stop enabled. Stop disabled. Stop enabled. Stop disabled. Stop enabled. Stop disabled. Stop enabled. Stop disabled. Stop enabled. — 7–6 CORE5_DBG_REQ 5 0 Reserved. Write to 0 for future compatibility. 0 Core 5 Debug Request Asserts a debug request to core 5. CORE4_DBG_REQ 4 0 Core 4 Debug Request Asserts a debug request to core 4. CORE3_DBG_REQ 3 0 Core 3 Debug Request Asserts a debug request to core 3. CORE2_DBG_REQ 2 0 Core 2 Debug Request Asserts a debug request to core 2. CORE1_DBG_REQ 1 0 Core 1 Debug Request Asserts a debug request to core 1. CORE0_DBG_REQ 0 0 Core 0 Debug Request Asserts a debug request to core 0. 0 1 0 1 0 1 0 1 0 1 0 1 No debug request. Debug request. No debug request. Debug request. No debug request. Debug request. No debug request. Debug request. No debug request. Debug request. No debug request. Debug request. MSC8156 Reference Manual, Rev. 2 8-4 Freescale Semiconductor Detailed Register Descriptions 8.2.3 General Status Register 1 (GSR1) GSR1 Bit General Status Register 1 31 30 29 — Type Reset 0 0 Bit 23 22 28 21 20 0 0 Bit 15 14 13 12 — M3_PU_1 M3_PU_0 MAPLE_PU 0 Bit 7 6 25 24 19 18 17 16 11 10 9 8 — R 0 0 0 0 0 0 0 5 4 3 2 1 0 CORE_DBG_ CORE_DBG_ CORE_DBG_ CORE_DBG_ CORE_DBG_ CORE_DBG_ STS5 STS4 STS3 STS2 STS1 STS0 R 0 0 0 0 0 0 — Type Reset 26 CORE_ CORE_ CORE_ CORE_ CORE_ CORE_ STOP_ACK5 STOP_ACK4 STOP_ACK3 STOP_ACK2 STOP_ACK1 STOP_ACK0 R 0 0 0 0 0 0 Type Reset 0 27 CORE_ CORE_ CORE_ CORE_ CORE_ CORE_ WAIT_ACK5 WAIT_ACK4 WAIT_ACK3 WAIT_ACK2 WAIT_ACK1 WAIT_ACK0 R 0 0 0 0 0 0 — Type Reset Offset 0x08 0 GSR1 reports the status various general functions for the MSC8156 device. Table 8-3 lists the GSR1 bit field descriptions. Table 8-3. GSR1 Bit Descriptions Name Reset Description — 31–30 CORE_WAIT_ACK5 29 0 Reserved. Write to 0 for future compatibility. 0 Core Wait Acknowledge 5 Reflects whether core 5 subsystem is in Wait state. Core Wait Acknowledge 4 Reflects whether core 4 subsystem is in Wait state Core Wait Acknowledge 3 Reflects whether core 3 subsystem is in Wait state. Core2 Wait Acknowledge 2 Reflects whether core 2 subsystem is in Wait state Core1 Wait Acknowledge 1 Reflects whether core 1 subsystem is in Wait state. Core Wait Acknowledge 0 Reflects whether core 0 subsystem is in Wait state. CORE_WAIT_ACK4 28 0 CORE_WAIT_ACK3 27 0 CORE_WAIT_ACK2 26 0 CORE_WAIT_ACK1 25 0 CORE_WAIT_ACK0 24 0 Settings 0 1 Core subsystem not in Wait state. Core subsystem in Wait state. 0 1 Core subsystem not in Wait state. Core subsystem in Wait state. 0 1 Core subsystem not in Wait state. Core subsystem in Wait state. 0 1 Core subsystem not in Wait state. Core subsystem in Wait state. 0 1 Core subsystem not in Wait state. Core subsystem in Wait state. 0 1 Core subsystem not in Wait state. Core subsystem in Wait state. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-5 General Configuration Registers Table 8-3. GSR1 Bit Descriptions (Continued) Name Reset Description — 23–22 CORE_STOP_ACK5 21 0 Reserved. Write to 0 for future compatibility. 0 Core Stop Acknowledge 5 Reflects whether core 5 subsystem is in Stop state. Core Stop Acknowledge 4 Reflects whether core 4 subsystem is in Stop state Core Stop Acknowledge 3 Reflects whether core 3 subsystem is in Stop state. Core Stop Acknowledge 2 Reflects whether core 2 subsystem is in Stop state Core Stop Acknowledge 1 Reflects whether core 1 subsystem is in Stop state. Core Stop Acknowledge 0 Reflects whether core 0 subsystem is in Stop state. Reserved. Write to 0 for future compatibility. CORE_STOP_ACK4 20 0 CORE_STOP_ACK3 19 0 CORE_STOP_ACK2 18 0 CORE_STOP_ACK1 17 0 CORE_STOP_ACK0 16 0 — 15 M3_PU_1 14 0 0 M3 Power Up Second Half Reflects the M3 512 KB power up status. M3_PU_0 13 0 M3 Power Up First Half Reflects the M3 512 KB power up status. MAPLE_PU 12 0 MAPLE Power Up Reflects the MAPLE block power status. — 11–6 CORE_DBG_STS5 5 0 Reserved. Write to 0 for future compatibility. 0 Core Debug Status 5 Reflects the mode of core 5. CORE_DBG_STS4 4 0 Core Debug Status 4 Reflects the mode of core 4. CORE_DBG_STS3 3 0 Core Debug Status 3 Reflects the mode of core 3. CORE_DBG_STS2 2 0 Core Debug Status 2 Reflects the mode of core 2. CORE_DBG_STS1 1 0 Core Debug Status 1 Reflects the mode of core 1. CORE_DBG_STS0 0 0 Core0 Debug Status 0 Reflects the mode of core 0. Settings 0 1 Core subsystem not in Stop state. Core subsystem in Stop state. 0 1 Core subsystem not in Stop state. Core subsystem in Stop state. 0 1 Core subsystem not in Stop state. Core subsystem in Stop state. 0 1 Core subsystem not in Stop state. Core subsystem in Stop state. 0 1 Core subsystem not in Stop state. Core subsystem in Stop state. 0 1 Core subsystem not in Stop state. Core subsystem in Stop state. 0 1 0 1 0 1 512 KB M3 (2nd half) powered down. 512 KB M3 (2nd half) powered up. 512 KB M3 (1st half) powered down. 512 KB M3 (1st half) powered up. MAPLE powered down. MAPLE powered up. 0 1 0 1 0 1 0 1 0 1 0 1 Not in Debug mode. In Debug mode. Not in Debug mode. In Debug mode. Not in Debug mode. In Debug mode. Not in Debug mode. In Debug mode. Not in Debug mode. In Debug mode. Not in Debug mode. In Debug mode. MSC8156 Reference Manual, Rev. 2 8-6 Freescale Semiconductor Detailed Register Descriptions 8.2.4 High Speed Serial Interface Status Register (HSSI_SR) HSSI_SR Bit High Speed Serial Interface Status Register 31 30 29 — 28 27 SERDES2_ PD Offset 0x0C 26 25 24 DMA1_PD SRIO1_PD SERDES1_ PD Type Reset R 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 DMA0_PD SRIO0_PD PEX_PD OCN_PD RMU_PD SRIO1_STOP _ACK SERDES1_PD Type Reset 0 0 0 0 R 0 0 0 0 Bit 15 14 13 12 11 10 9 8 SRIO0_STOP _ACK SERDES2_ RST_DONE — SERDES2_ SRIO_1_ IDLE SRIO_1_OB_I PD DLE Type Reset 0 0 0 0 R 0 0 0 0 Bit 7 6 5 4 3 2 1 0 PEX_IDLE — RMU_IDLE 0 0 0 SERDES1_ RST_DONE Type Reset 0 SERDES1_ SRIO_0_ IDLE SRIO_0_OB_I PEX_OB_ PD DLE IDLE R 0 0 0 0 HSSI_SR controls part of the SerDes operation for the MSC8156 device. The register is reset on a Hard reset. Write accesses can only be performed in Supervisor mode. Table 8-4 lists the HSSI_SR bit field descriptions. Table 8-4. HSSI_SR Bit Descriptions Name Reset — 31–30 SERDES2_PD 29–27 0 000 DMA1_PD 26 0 SRIO1_PD 25 0 SERDES1_PD 24–22 000 Description Settings Reserved. Write to 0 for future compatibility. SERDES2 Power Down Status Indicates the power status of the SERDES2 port. Can be powered down by the Reset Control Word or GCR control. DMA1 Power Down Status Indicates the power status of DMA1. Can be powered down by the Reset Control Word or GCR control. Serial RapidIO Interface 1 Power Down Status Indicates the power status of the serial RapidIO interface 1. Can be powered down by the Reset Control Word or GCR control. SERDES1 Power Down Status Indicates the power status of the SERDES2 port. Can be powered down by the Reset Control Word or GCR control. 000 Power up. 111 Power down. All other values reserved. 0 1 Power up. Power down. 0 1 Power up. Power down. 000 Power up. 111 Power down. All other values reserved. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-7 General Configuration Registers Table 8-4. HSSI_SR Bit Descriptions (Continued) Name Reset Description DMA0_PD 21 0 SRIO0_PD 20 0 PEX_PD 19 0 OCN_PD 18 0 RMU_PD 17 0 SRIO1_STOP_ACK 16 0 SRIO0_STOP_ACK 15 0 — 14–12 SERDES2_RST_DONE 11 0 DMA0 Power Down Status Indicates the power status of DMA0. Can be powered down by the Reset Control Word or GCR control. Serial RapidIO Interface 0 Power Down Status Indicates the power status of the serial RapidIO interface 0. Can be powered down by the Reset Control Word or GCR control. PCI Express Power Down Status Indicates the power status of the PCI Express interface. Can be powered down by the Reset Control Word or GCR control. OCN Fabric Power Down Status Indicates the power status of the OCN fabric. Can be powered down by the Reset Control Word or GCR control. RapidIO Messaging Unit Power Down Status Indicates the power status of the RapidIO Messaging Unit. Can be powered down by the Reset Control Word or GCR control. Serial RapidIO Interface 1 Stop Acknowledge Status Indicates the serial RapidIO interface 1 Stop Acknowledge status. Serial RapidIO Interface 0 Stop Acknowledge Status Indicates the serial RapidIO interface 0 Stop Acknowledge status. Reserved. Write to 0 for future compatibility. SERDES2_PD 10 0 SRIO1_IDLE 9 0 SRIO1_OB_IDLE 8 0 SERDES1_RST_DONE 7 0 0 SERDES2 Reset Done Indicates whether the SERDES2 has completed the reset sequence. Note: Although the reset value is 0, the bit will change to 1 within 160 µs after reset depending on whether the SerDes port is used. SERDES2 Power Down Status Indicates the power status of the SERDES2 PHY. SRIO1 Idle Indicates whether the SRIO1 unit is idle, that is, no transactions in progress. SRIO1 Outbound Idle Indicates whether the SRIO1 outbound activity is idle, that is, no outbound transactions in progress. SERDES1 Reset Done Indicates whether the SERDES1 has completed the reset sequence. Note: Although the reset value is 0, the bit will change to 1 within 160 µs after reset depending on whether the SerDes port is used. Settings 0 1 Power up. Power down. 0 1 Power up. Power down. 0 1 Power up. Power down. 0 1 Power up. Power down. 0 1 Power up. Power down. 0 1 Not stopped. Stop ACK issued. 0 1 Not stopped. Stop ACK issued. 0 1 Reset not complete. Reset complete. 0 1 Power up. Power down (PLL is not working). 0 1 Active. Idle. 0 1 Active. Idle. 0 1 Reset not complete. Reset complete. MSC8156 Reference Manual, Rev. 2 8-8 Freescale Semiconductor Detailed Register Descriptions Table 8-4. HSSI_SR Bit Descriptions (Continued) Name Reset Description SERDES1_PD 6 0 SRIO0_IDLE 5 0 SRIO0_OB_IDLE 4 0 PEX_OB_IDLE 3 0 PEX_IDLE 2 0 — 1 RMU_IDLE 0 0 SERDES1 Power Down Status Indicates the power status of the SERDES1 PHY. SRIO0 Idle Indicates whether the SRIO0 unit is idle, that is, no transactions in progress. SRIO0 Outbound Idle Indicates whether the SRIO0 outbound activity is idle, that is, no outbound transactions in progress. PCI Express Outbound Idle Indicates whether the PCI Express outbound activity is idle, that is, no outbound transactions in progress. PCI Express Idle Indicates whether the PCI Express is idle, that is, no transactions in progress. Reserved. Write to 0 for future compatibility. 0 RMU Idle Indicates whether the RMU is idle, that is, no transactions in progress. Settings 0 1 Power up. Power down (PLL is not working). 0 1 Active. Idle. 0 1 Active. Idle. 0 1 Active. Idle. 0 1 Active. Idle. 0 1 Active. Idle. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-9 General Configuration Registers 8.2.5 DDR General Control Register (DDR_GCR) DDR_GCR Bit DDR General Control Register 31 30 29 28 27 Offset 0x10 26 25 24 DDR2_GCR_ VSEL — Type Reset R 0 0 0 0 1 1 0 1 Bit 23 22 21 20 19 18 17 16 — R/W DDR2_COP_TERMSEL_OVERRIDE_ VALUE DDR2_COP_ DDR2_ TERMSEL_ DISABLE_BIT OVERRIDE_ _DESKEW EN — Type Reset 0 0 0 0 R/W 0 0 0 0 Bit 15 14 13 12 11 10 9 8 DDR1_GCR_ VSEL — Type Reset R/W 0 0 0 0 1 1 0 1 Bit 7 6 5 4 3 2 1 0 — Type Reset DDR1_COP_TERMSEL_OVERRIDE_ VALUE DDR1_COP_ DDR1_ TERMSEL_ DISABLE_BIT OVERRIDE_ _DESKEW EN — R/W 0 0 0 0 0 0 0 0 DDR_GCR controls the DDR operation the MSC8156 device. The register is reset on a Hard reset. Write accesses can only be performed in Supervisor mode. Table 8-5 lists the DDR_GCR bit field descriptions. Table 8-5. DDR_GCR Bit Descriptions Name Reset Description — 31–25 DDR2_GCR_VSEL 24 0 Reserved. Write to 0 for future compatibility. 1 DDRC2 Voltage Select Indicates the type of memory used. — 23–22 DDR2_COP_TERMSEL_ OVERRIDE_VALUE 21–19 0 Reserved. Write to 0 for future compatibility. 0 DDRC2 Termination Select Override Value Sets the value for the termination select override. DDRC2 Termination Select Override Enable Disables/enables the termination select override. DDR2_COP_TERMSEL_ OVERRIDE_EN 18 0 Settings 0 1 DDR3. DDR2. 0 1 Disable Enable. MSC8156 Reference Manual, Rev. 2 8-10 Freescale Semiconductor Detailed Register Descriptions Table 8-5. DDR_GCR Bit Descriptions (Continued) Name Reset DDR2_DISABLE_BIT_ DESKEW 17 — 16–9 DDR1_GCR_VSEL 8 0 — 7–6 DDR1_COP_TERMSEL_ OVERRIDE_VALUE 5–3 Description Settings DDRC2 Disable Per-Bit Deskew 0 Disables/enables per-bit deskew calibration 1 initialization. Reserved. Write to 0 for future compatibility. Enable. Disable. 1 DDRC1 Voltage Select Indicates the type of memory used. 0 1 DDR3. DDR2. 0 Reserved. Write to 0 for future compatibility. 0 DDRC1 Termination Select Override Value Sets the value for the termination select override. DDRC1 Termination Select Override Enable Disables/enables the termination select override. DDRC1 Disable Per-Bit Deskew Disables/enables per-bit deskew calibration initialization. Reserved. Write to 0 for future compatibility. 0 1 Disable Enable. 0 1 Enable. Disable. 0 DDR1_COP_TERMSEL_ OVERRIDE_EN 2 0 DDR1_DISABLE_BIT_ DESKEW 1 — 0 0 0 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-11 General Configuration Registers 8.2.6 High Speed Serial Interface Control Register 1 (HSSI_CR1) HSSI_CR1 Bit High Speed Serial Interface Control Register 1 31 30 29 SERDES2_ STOP SERDES2_ CB_ PD SERDES2_ ISOR_PD Type Reset 0 0 0 Bit 23 22 21 SRIO1_PD — Type Reset 0 0 Bit 15 14 13 12 SRIO0_DOZE — SRIO0_PD — Type Reset 0 0 0 Bit 7 6 27 SERDES2_ DOZE R/W 0 20 26 — 25 24 SRIO1_DOZE — 0 0 0 0 19 18 17 16 SRIO1_ECC_ SERDES1_ SERDES1_ D CB_ PD ISOR_PD R/W 0 0 0 SERDES1_ DOZE — 0 0 0 11 10 9 8 — SERDES1_ STOP PEX_PD PEX_DOZE 0 0 0 0 0 5 4 3 2 1 0 OCN_PD RMU_PD RMU_DOZE — SERDES2_ CONFIG_ DISABLE SERDES1_ CONFIG_ DISABLE 0 0 0 1 1 R/W — Type Reset 28 Offset 0x14 R/W 0 0 0 HSSI_CR1 controls various functions within the SerDes block for the MSC8156 device. The register is reset on a hard reset. Write accesses can only be performed in Supervisor mode. Table 8-6 lists the HSSI_CR1 bit field descriptions. Table 8-6. HSSI_CR1 Bit Descriptions Name Reset Description Settings SERDES2_STOP 31 0 SERDES2 PHY Stop Holds the SERDES2 PHY in reset. SERDES2_CB_PD 30 0 SERDES2_ISOR_PD 29 0 SERDES2_DOZE 28 0 — 27–26 0 SERDES2 Control Block Power Down Shuts down SERDES2 control block ring power. SERDES2 Isolation Ring Power Down 0 Shuts down SERDES2 isolation ring power. 1 SERDES2 Doze 0 Used to select Doze mode, in which all 1 register accesses are acknowledged, but writes are not written and reads do not contain valid data. Setting this bit prevents lockup of the device internal bus while the SerDes port is stopped. Reserved. Write to 0 for future compatibility. 0 1 0 1 PHY not stopped. PHY stopped. Power up. Power down. Power up. Power down. Normal operation. Doze mode. MSC8156 Reference Manual, Rev. 2 8-12 Freescale Semiconductor Detailed Register Descriptions Table 8-6. HSSI_CR1 Bit Descriptions (Continued) Name Reset SRIO1_DOZE 25 0 — 24 SRIO1_PD 23 0 — 22–21 SERDES1_CB_PD 20 0 SERDES1_ISOR_PD 19 0 SERDES1_DOZE 18 0 — 17–16 SRIO0_DOZE 15 0 — 14 SRIO0_PD 13 0 — 12–11 SERDES1_STOP 10 0 Description Settings Serial RapidIO Interface 1 Doze 0 Used to select Doze mode, in which all 1 register accesses are acknowledged, but writes are not written and reads do not contain valid data. Setting this bit prevents lockup of the device internal bus while the Serial RapidIO interface clock is stopped. Reserved. Write to 0 for future compatibility. Normal operation. Doze mode. Serial RapidIO Interface 1 Power Down 0 Shuts down serial RapidIO interface 1 1 power. Reserved. Write to 0 for future compatibility. Power up. Power down. SERDES1 Control Block Power Down Shuts down SERDES1 control block ring power. SERDES1 Isolation Ring Power Down Shuts down SERDES1 isolation ring power. 0 1 Power up. Power down. 0 1 0 1 Power up. Power down. Normal operation. Doze mode. Serial RapidIO Interface 0 Doze 0 Used to select Doze mode, in which all 1 register accesses are acknowledged, but writes are not written and reads do not contain valid data. Setting this bit prevents lockup of the device internal bus while the Serial RapidIO clock is stopped. Reserved. Write to 0 for future compatibility. Normal operation. Doze mode. Serial RapidIO Interface 0 Power Down 0 Shuts down serial RapidIO interface 0 1 power. Reserved. Write to 0 for future compatibility. Power up. Power down. 0 SERDES1 PHY Stop Holds the SERDES1 PHY in reset. PEX_PD 9 0 PCI Express Power Down Shuts down PCI Express power. PEX_DOZE 8 0 PCI Express Doze Used to select Doze mode, in which all register accesses are acknowledged, but writes are not written and reads do not contain valid data. Setting this bit prevents lockup of the device internal bus while the PCI Express clock is stopped. PHY not stopped. PHY stopped. Power up. Power down. Normal operation. Doze mode. 0 0 0 0 SERDES1 Doze Used to select Doze mode, in which all register accesses are acknowledged, but writes are not written and reads do not contain valid data. Setting this bit prevents lockup of the device internal bus while the SerDes port is stopped. Reserved. Write to 0 for future compatibility. 0 1 0 1 0 1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-13 General Configuration Registers Table 8-6. HSSI_CR1 Bit Descriptions (Continued) Name Reset Description — 7–6 OCN_PD 5 0 Reserved. Write to 0 for future compatibility. 0 OCN Power Down Shuts down OCN fabric power. RMU_PD 4 0 RMU Power Down Shuts down RMU power. RMU_DOZE 3 0 Settings 0 1 0 1 0 1 Power up. Power down. Power up. Power down. Normal operation. Doze mode. RMU Doze Used to select Doze mode, in which all register accesses are acknowledged, but writes are not written and reads do not contain valid data. Setting this bit prevents lockup of the device internal bus while the RMU is stopped. —2 0 Reserved. Write to 0 for future compatibility. SERDES2_CONFIG_ 1 SERDES2 SRDS2CR2 Override 0 Disabled. DISABLE Enables/disables SERDES2 SRDS2CR2. 1 Enabled. 1 When enabled (1), overrides the values in SRDS2CR2[X3SA/X3SB/X3SE/X3SF] and forces them to be 1. This forces all four SerDes lanes to be tri-stated. When disabled (0), there is no override and the values defined for each channel by SRDS2CR2[X3SA/X3SB/X3SE/X3SF] are used to determine whether the port is in a normal operation mode or tri-stated. The value of this bit has no effect on any other fields in SRDS2CR2 and only overrides the specified fields. SERDES1_CONFIG_ 1 SERDES1 SRDS1CR2 Override 0 Disabled. DISABLE Enables/disables SERDES1 SRDS1CR2. 1 Enabled. 0 When enabled (1), overrides the values in SRDS1CR2[X3SA/X3SB/X3SE/X3SF] and forces them to be 1. This forces all four SerDes lanes to be tri-stated. When disabled (0), there is no override and the values defined for each channel by SRDS1CR2[X3SA/X3SB/X3SE/X3SF] are used to determine whether the port is in a normal operation mode or tri-stated. The value of this bit has no effect on any other fields in SRDS1CR2 and only overrides the specified fields. Note: Doze mode is a special mode used by the MSC8156 to allow register reads/writes to continue and be acknowledged without changing or reporting any register contents while the peripheral clocking is stopped. Processing of reads/writes can continue after the peripheral has entered power down mode. Without Doze mode, the device could hang up waiting for a response from the peripheral. This mode permits acknowledgement of the read or write, but does not read or write any meaningful data. MSC8156 Reference Manual, Rev. 2 8-14 Freescale Semiconductor Detailed Register Descriptions 8.2.7 High Speed Serial Interface Control Register 2 (HSSI_CR2) HSSI_CR2 Bit High Speed Serial Interface Control Register 2 31 30 29 28 Offset 0x18 27 26 25 24 — Type Reset 0 0 0 0 R 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — R Type Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type Reset 0 0 0 0 R 0 0 0 0 Bit 7 6 5 4 3 2 1 0 — RMU_COL_D 0 MAG2SB_ STOP R/W 0 0 0 — Type Reset R 0 0 0 0 HSSI_CR2 controls various functions within the SerDes block for the MSC8156 device. The register is reset on a hard reset. Write accesses can only be performed in Supervisor mode. Table 8-7 lists the HSSI_CR2 bit field descriptions. Table 8-7. HSSI_CR2 Bit Descriptions Name Reset — 31–3 MAG2SB_STOP 2 0 Reserved. Write to 0 for future compatibility. 0 Not stopped. Stopped. — 1 RMU_COL_D 0 0 MBus to SBus Stop 0 Stops the master bus to slave bus bridge. The MBus is the internal 1 bus controlled by internal master devices. The SBus is used to access internal registers. This bridge is the interface between the MBus and the SBus. To prevent. lockup if a master device read/writes a peripheral register when the clock is stopped, the MBus completes the access, but read data is invalid and no data is written. This bit can be used to determine if read data is valid or if the write occurred. Reserved. Write to 0 for future compatibility. RapidIO Messaging Unit Collision Disable Enables/disables the RMU collision detection. Collision detection enabled. Collision detection disabled. 0 Description Settings 0 1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-15 General Configuration Registers 8.2.8 QUICC Engine Control Register (QECR) QECR Bit QUICC Engine Control Register 31 30 29 28 Offset 0x1C 27 26 25 24 — R Type Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — R Type Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type Reset R 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 — Type Reset R 0 0 0 0 ENET_SGMII ENET_SGMII _MODE1 _MODE0 R/W 0 0 — 0 0 QECR controls various functions within the QUICC Engine module for the MSC8156 device. The register is reset on a Hard reset. Write accesses can only be performed in Supervisor mode. Table 8-8 lists the QECR bit field descriptions. Table 8-8. QECR Bit Descriptions Name Reset Description — 31–4 ENET_SGMII_MODE1 3 0 Reserved. Write to 0 for future compatibility. 0 Selects GMII or RGMII for Ethernet Controller 2 Selects SGMII mode for Ethernet controller 2. Selects GMII or RGMII for Ethernet Controller 1 Selects SGMII mode for Ethernet controller 1. Reserved. Write to 0 for future compatibility. ENET_SGMII_MODE0 2 0 — 1–0 0 Settings 0 1 RGMII selected. SGMII selected. 0 1 RGMII1 selected. SGMII1 selected. MSC8156 Reference Manual, Rev. 2 8-16 Freescale Semiconductor Detailed Register Descriptions 8.2.9 GPIO Pull-Up Enable Register (GPUER) GPUER Bit GPIO Pull-Up Enable Register Offset 0x20 31 30 29 28 27 26 25 24 PUE_B31 PUE_B30 PUE_B29 PUE_B28 PUE_B27 PUE_B26 PUE_B25 PUE_B24 Type Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 PUE_B23 PUE_B22 PUE_B21 PUE_B20 PUE_B19 PUE_B18 PUE_B17 PUE_B16 0 0 0 0 Type Reset Bit R/W R/W 0 0 0 0 15 14 13 12 11 10 9 8 PUE_B15 PUE_B14 PUE_B13 PUE_B12 PUE_B11 PUE_B10 PUE_B9 PUE_B8 Type Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 PUE_B7 PUE_B6 PUE_B5 PUE_B4 PUE_B3 PUE_B2 PUE_B1 PUE_B0 0 0 0 0 Type Reset R/W R/W 0 0 0 0 GPUER enables/disables the individual GPIO pull-up resistors. The register is reset on a Hard reset. Write accesses can only be performed in Supervisor mode. Table 8-9 lists the GPUER bit field descriptions. Table 8-9. GPUER Bit Descriptions Name Reset PUE_B[31–0] 31–0 0 Description Pull-Up Enable 31–0 Each bit in this field enables/disables the GPIO pull-up resistor corresponding to the bit index number. Settings 0 1 Pull-up input is enabled. Pull-up input is disabled. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-17 General Configuration Registers 8.2.10 GPIO Input Enable Register (GIER) GIER Bit GPIO Input Enable Register Offset 0x24 31 30 29 28 27 26 25 24 IE31 IE30 IE29 IE28 IE27 IE26 IE25 IE24 Type Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 IE23 IE22 IE21 IE20 IE19 IE18 IE17 IE16 0 0 0 0 Type Reset Bit R/W R/W 0 0 0 0 15 14 13 12 11 10 9 8 IE15 IE14 IE13 IE12 IE11 IE10 IE9 IE8 Type Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 IE7 IE6 IE5 IE4 IE3 IE2 IE1 IE0 0 0 0 0 Type Reset R/W R/W 0 0 0 0 GIER enables/disables the individual GPIO signals. The register is reset on a hard reset. Write accesses can only be performed in Supervisor mode. Table 8-10 lists the GIER bit field descriptions. Table 8-10. GIER Bit Descriptions Name Reset IE[31–0] 31–0 0 Description Input Enable 31–0 Each bit in this field enables/disables the individual GPIO corresponding to the bit index number. Settings 0 1 Input is disabled. Input is enabled. MSC8156 Reference Manual, Rev. 2 8-18 Freescale Semiconductor Detailed Register Descriptions 8.2.11 System Part and Revision ID Register (SPRIDR) SPRIDR Bit System Part and Revision ID Register 31 30 29 28 Offset 0x28 27 26 25 24 PARTID R Type Reset 1 0 0 0 0 0 1 1 Bit 23 22 21 20 19 18 17 16 0 0 1 0 11 10 9 8 PARTID R Type Reset 0 0 0 0 Bit 15 14 13 12 REVID R Type Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 0 0 0 0 Type Reset REVID R 0 0 0 0 SPRIDR provides information about the device and revision numbers. Table 8-11 lists the SPRIDR bit field descriptions. Table 8-11. SPRIDR Bit Descriptions Name Reset Description PARTID 31–16 REVID 15–0 0x8302 Part Identification Mask-programmed with a code corresponding to the device number. Revision Identification Mask-programmed with a code corresponding to the revision number of the part identified by the PARTID value. 0x0000 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-19 General Configuration Registers 8.2.12 General Control Register 4 (GCR4) GCR4 Bit General Control Register 4 31 30 29 28 Offset 0x30 27 26 25 24 — R/W Type Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — UCC3RCLKID Type Reset 0 0 0 Bit 15 14 13 UCC3TCLKID R/W UCC3CLKOD 0 0 12 11 0 0 0 10 9 8 UCC3TXDD UCC3RXDD UCC1RCLKID Type Reset R/W 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 UCC1TCLKID Type Reset UCC1CLKOD UCC1RXDD UCC1TXDD R/W 0 0 0 0 0 0 0 0 GCR4 controls the delay lines for UCC1 and UCC3. The register is reset on a Hard reset. Write accesses can only be performed in Supervisor mode. The MSC8156 Data Sheet includes recommended default values for this register to use with a standard RGMII PHY device. AN3811 Using GCR4 to Adjust Ethernet Timing in MSC8144 DSPs (available under NDA) provides guidelines for adjusting GCR4 values for specific applications, if required. Although this application note is directed toward designs using the MSC8144 DSP, the procedures used to adjust GCR4 apply to the MSC8156 DSP. Table 8-8 lists the GCR4 bit field descriptions. Table 8-12. GCR4 Bit Descriptions Name Reset Description — 31–20 UCC3RCLKID 19–18 0 Reserved. Write to 0 for future compatibility. 0 UCC3 RX Clock In Delay Adds a delay to the specified signal. 0 UCC3 TX Clock In Delay Adds a delay to the specified signal. UCC3TCLKID 17–16 Settings 00 01 10 11 00 01 10 11 No delay. One delay unit. Two delay units. Three delay units. No delay. One delay unit. Two delay units. Three delay units. MSC8156 Reference Manual, Rev. 2 8-20 Freescale Semiconductor Detailed Register Descriptions Table 8-12. GCR4 Bit Descriptions (Continued) Name Reset UCC3CLKOD 15–14 0 UCC3 Clock Out Delay Adds a delay to the specified signal. UCC3RXDD 13–12 0 UCC3 RX Data Delay Adds a delay to the specified signal. UCC3TXDD 11–10 0 UCC3 TX Data Delay Adds a delay to the specified signal. UCC1RCLKID 9–8 0 UCC1 RX Clock In Delay Adds a delay to the specified signal. UCC1TCLKID 7–6 0 UCC1 TX Clock In Delay Adds a delay to the specified signal. UCC1CLKOD 5–4 0 UCC1 Clock Out Delay Adds a delay to the specified signal. UCC1RXDD 3–2 0 UCC1 RX Data Delay Adds a delay to the specified signal. UCC1TXDD 1–0 0 UCC1 TX Data Delay Adds a delay to the specified signal. Note: Description Settings 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11 No delay. One delay unit. Two delay units. Three delay units. No delay. One delay unit. Two delay units. Three delay units. No delay. One delay unit. Two delay units. Three delay units. No delay. One delay unit. Two delay units. Three delay units. No delay. One delay unit. Two delay units. Three delay units. No delay. One delay unit. Two delay units. Three delay units. No delay. One delay unit. Two delay units. Three delay units. No delay. One delay unit. Two delay units. Three delay units. The clock for the delay unit is the TX clock. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-21 General Configuration Registers 8.2.13 General Control Register 5 (GCR5) GCR5 Bit General Control Register 5 31 30 29 28 Offset 0x34 27 26 25 24 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 PEX_IRQ_ OUT OCNDMA1_ POWER DOWN OCNDMA1_ DOZE OCNDMA1_ STOP — — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 OCNDMA0_ POWER DOWN OCNDMA0_ DOZE OCNDMA0_ STOP — 0 0 0 — Type Reset R/W 0 0 0 0 0 GCR5 performs various control functions. All bits are cleared on reset. Table 8-13. GCR5 Bit Descriptions Name Reset Description Settings — 31–13 0 Reserved. Write to zero for future compatibility. PEX_IRQ_ OUT 12 0 PCI Express Message Signal Interrupt 0 No PCI Express message. Triggers the PCI Express message signal interrupt. 1 PCI Express message interrupt. OCNDMA1_ POWER DOWN 11 0 OCNDMA 1 Complex Power Down 0 OCNDMA1 powered up. Makes the OCNDMA1 complex power down. 1 OCNDMA1 power down (Stop ACK). OCNDMA1_ DOZE 10 0 OCNDMA 1 Doze Used to select Doze mode, in which all register accesses are acknowledged, but writes are not written and reads do not contain valid data. Setting this bit prevents lockup of the device internal bus while the OCNDMA1 is stopped. 0 Normal operation. 1 Doze mode. MSC8156 Reference Manual, Rev. 2 8-22 Freescale Semiconductor Detailed Register Descriptions Table 8-13. GCR5 Bit Descriptions (Continued) Name Reset Description OCNDMA1_ STOP 9 0 — 8–4 0 Reserved. Write to zero for future compatibility. OCNDMA0_ POWER DOWN 3 0 OCNDMA0_ DOZE 2 0 OCNDMA0_ STOP 1 0 — 0 0 Settings OCNDMA 1 Stop 0 OCNDMA1 normal operation. Makes the OCNDMA1 enter Stop mode. 1 OCNDMA1 Stop mode. OCNDMA 0 Complex Power Down Drives the ips_wait signal to 0 in preparation for power down to avoid ips transactions becoming stuck. 0 OCNDMA0 powered up. 1 OCNDMA0 power down (Stop ACK). OCNDMA 0 Doze Used to select Doze mode, in which all register accesses are acknowledged, but writes are not written and reads do not contain valid data. Setting this bit prevents lockup of the device internal bus while the OCNDMA0 is stopped. 0 Normal operation. 1 Doze mode. OCNDMA 0 Stop 0 OCNDMA0 normal operation. Makes the OCNDMA0 enter Stop mode. 1 OCNDMA0 Stop mode. Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-23 General Configuration Registers 8.2.14 General Status Register 2 (GSR2) GSR2 Bit General Status Register 2 31 30 29 28 27 Offset 0x38 26 DDR2_IDLE_ DDR2_YMMC DDR1_IDLE_ DDR1_YMMC MEM _STOP_ACK MEM _STOP_ACK Type 25 24 — R Reset 1 0 1 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — CORE_STOP CORE_STOP CORE_STOP CORE_STOP CORE_STOP CORE_STOP _REQ5 _REQ4 _REQ3 _REQ2 _REQ1 _REQ0 Type R Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 SCOP_IDLE — OCNDMA1_ IDLE — OCNDMA0_ IDL:E — 1 0 1 0 — Type Reset R 0 0 1 0 GSR2 reflects the status of various functions. All bits are cleared on reset. Table 8-14. GSR2 Bit Descriptions Name Reset DDR2_IDLE_ MEM 31 0 DDR2_YMMC_ STOP_ACK 30 0 DDR1_IDLE_ MEM 29 0 DDR1_YMMC_ STOP_ACK 30 0 — 27–22 0 Description Settings DDR2 Controller Idle Reflects the current status of DDR Controller 2. 0 Memory controller 2 active. 1 Memory controller 2 idle. DDR2 Controller Refresh Mode Reflects the current status of DDR Controller 2 refresh mode. 0 Memory controller 2 not in self-refresh mode. 1 Memory controller 2 in self-refresh mode. DDR1 Controller Idle Reflects the current status of DDR Controller 1. 0 Memory controller 1 active. 1 Memory controller 1 idle. DDR1 Controller Refresh Mode Reflects the current status of DDR Controller 1 refresh mode. 0 Memory controller 1 not in self-refresh mode. 1 Memory controller 1 in self-refresh mode. Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 8-24 Freescale Semiconductor Detailed Register Descriptions Table 8-14. GSR2 Bit Descriptions (Continued) Name Reset Description CORE_STOP_ REQ5 21 0 CORE_STOP_ REQ4 20 0 CORE_STOP_ REQ3 19 0 CORE_STOP_ REQ2 18 0 CORE_STOP_ REQ1 17 0 CORE_STOP_ REQ0 16 0 — 15–6 0 Reserved. Write to zero for future compatibility. SCOP_IDLE 5 0 SEC Idle Reflects the current status of the SEC block. — 4 0 Reserved. Write to zero for future compatibility. OCNDMA1_ IDLE 3 0 OCNDMA1 Idle Reflects the current status of the OCNDMA1 block. — 2 0 Reserved. Write to zero for future compatibility. OCNDMA0_ IDLE 1 0 OCNDMA0 Idle Reflects the current status of the OCNDMA0 block. — 0 0 Settings Core 5 Stop Request Reflects whether a core stop was requested. 0 Core 5 stop not requested. 1 Core 5 stop requested. Core 4 Stop Request Reflects whether a core stop was requested. 0 Core 4 stop not requested. 1 Core 4 stop requested. Core 3 Stop Request Reflects whether a core stop was requested. 0 Core 3 stop not requested. 1 Core 3 stop requested. Core 2 Stop Request Reflects whether a core stop was requested. 0 Core 2 stop not requested. 1 Core 2 stop requested. Core 1 Stop Request Reflects whether a core stop was requested. 0 Core 1 stop not requested. 1 Core 1 stop requested. Core 0 Stop Request Reflects whether a core stop was requested. 0 Core 0 stop not requested. 1 Core 0 stop requested. 0 Active 1 Idle 0 Active 1 Idle 0 Active 1 Idle Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-25 General Configuration Registers 8.2.15 Core Subsystem Slave Port Priority Control Register (TSPPCR) TSPPCR Bit Core Subsystem Slave Port Priority Control Register 31 30 29 28 Offset 0x3C 27 26 25 24 — Type R Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 Type Reset 0 0 — SPP_P3_MAP SPP_P2_MAP SPP_P1_MAP SPP_P0_MAP R R/W 0 0 1 1 0 0 TSPPCR reflects the priority assigned to the core subsystem slave ports. Table 8-15. TSPPCR Bit Descriptions Name Reset — 31–4 0x0000000 SPP_P3_MAP 3 1 SPP_P2_MAP 2 SPP_P1_MAP 1 SPP_P0_MAP 0 Description Settings Reserved. Write to zero for future compatibility. Slave Port Mapping for Priority 3 0 All transactions with priority 3 are assigned priority 0. 1 All transactions with priority 3 are assigned priority 1. 0 All transactions with priority 2 are assigned priority 0. 1 All transactions with priority 2 are assigned priority 1. 0 All transactions with priority 1 are assigned priority 0. 1 All transactions with priority 1 are assigned priority 1. 0 All transactions with priority 0 are assigned priority 0. 1 All transactions with priority 0 are assigned priority 1. Indicates the priority for the core slave port. 1 Slave Port Mapping for Priority 2 Indicates the priority for the core slave port. 0 Slave Port Mapping for Priority 1 Indicates the priority for the core slave port. 0 Slave Port Mapping Priority 0 Indicates the priority for the core slave port. MSC8156 Reference Manual, Rev. 2 8-26 Freescale Semiconductor Detailed Register Descriptions 8.2.16 QUICC Engine First External Request Multiplex Register (CPCE1R) CPCE1R Bit QUICC Engine First External Request Multiplex Register 31 30 29 28 Offset 0x40 27 26 25 24 — Type R Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 Type Reset 0 0 0 — QE_INT1_MNG R R/W 0 0 0 0 0 CPE1R determines how the first QUICC Engine external request is assigned. All bits are cleared on reset. Table 8-16. CPE1R Bit Descriptions Name Reset Description — 31–2 0 Reserved. Write to zero for future compatibility. QE_INT1_ MNG 1–0 0 QUICC Engine External Request 1 Multiplexing Indicates how to process the external request. Settings 00 01 10 11 RapidIO interrupt. Reserved. SEC primary interrupt. Reserved. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-27 General Configuration Registers 8.2.17 QUICC Engine Second External Request Multiplex Register (CPCE2R) CPCE2R Bit QUICC Engine Second External Request Multiplex Register 31 30 29 28 Offset 0x44 27 26 25 24 — Type R Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 Type Reset 0 0 0 — QE_INT2_MNG R R/W 0 0 0 0 0 CPE2R determines how the second QUICC Engine external request is assigned. All bits are cleared on reset. Table 8-17. CPE2R Bit Descriptions Name Reset Description — 31–2 0 Reserved. Write to zero for future compatibility. QE_INT2_ MNG 1–0 0 QUICC Engine External Request 2 Multiplexing Indicates how to process the external request. Settings 00 01 10 11 RapidIO interrupt. Reserved. SEC primary interrupt. Reserved. MSC8156 Reference Manual, Rev. 2 8-28 Freescale Semiconductor Detailed Register Descriptions 8.2.18 QUICC Engine Third External Request Multiplex Register (CPCE3R) CPCE3R Bit QUICC Engine Third External Request Multiplex Register 31 30 29 28 Offset 0x48 27 26 25 24 — Type R Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 Type Reset 0 0 0 — QE_INT3_MNG R R/W 0 0 0 0 0 CPE3R determines how the third QUICC Engine external request is assigned. All bits are cleared on reset. Table 8-18. CPE3R Bit Descriptions Name Reset Description — 31–2 0 Reserved. Write to zero for future compatibility. QE_INT3_ MNG 1–0 0 QUICC Engine External Request 3 Multiplexing Indicates how to process the external request. Settings 00 01 10 11 RapidIO interrupt. Reserved. SEC primary interrupt. Reserved. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-29 General Configuration Registers 8.2.19 QUICC Engine Fourth External Request Multiplex Register (CPCE4R) CPCE4R Bit QUICC Engine Fourth External Request Multiplex Register 31 30 29 28 Offset 0x4C 27 26 25 24 — Type R Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 Type Reset 0 0 0 — QE_INT4_MNG R R/W 0 0 0 0 0 CPE4R determines how the fourth QUICC Engine external request is assigned. All bits are cleared on reset. Table 8-19. CPE4R Bit Descriptions Name Reset Description — 31–2 0 Reserved. Write to zero for future compatibility. QE_INT4_ MNG 1–0 0 QUICC Engine External Request 4 Multiplexing Indicates how to process the external request. Settings 00 01 10 11 RapidIO interrupt. Reserved. SEC primary interrupt. Reserved. MSC8156 Reference Manual, Rev. 2 8-30 Freescale Semiconductor Detailed Register Descriptions 8.2.20 General Control Register 10 (GCR10) GCR10 Bit General Control Register 10 31 30 29 28 Offset 0x74 27 26 25 24 — Type R/W Reset 1 1 1 1 1 1 1 1 Bit 23 22 21 20 19 18 17 16 — Type R/W Reset 1 1 1 1 1 1 1 1 Bit 15 14 13 12 11 10 9 8 — Type R/W Reset 0 1 1 1 1 1 1 1 Bit 7 6 5 4 3 2 1 0 MCK1_EN_ DDR1 MCK2_EN_ DDR1 MCK1_EN_ DDR2 MCK2_EN_ DDR2 1 1 1 — Type R/W Reset 1 1 1 1 1 GCR10 is used to control the DDR controller clocks. Table 8-20. GCR10 Bit Descriptions Name Reset — 31–4 0xFFFFFFF MCK1_EN_DDR1 3 1 MCK2_EN_DDR1 2 1 MCK1_EN_DDR2 1 1 MCK2_EN_DDR2 0 1 Description Settings Reserved. Write to zero for future compatibility. DDR1 MCK1 Enable Enables/disables MCK1 for DDR1 0 Disabled. 1 Enabled DDR1 MCK2 Enable Enables/disables MCK2 for DDR1 0 Disabled. 1 Enabled DDR2 MCK1 Enable Enables/disables MCK1 for DDR2 0 Disabled. 1 Enabled DDR2 MCK2 Enable Enables/disables MCK2 for DDR2 0 Disabled. 1 Enabled MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-31 General Configuration Registers 8.2.21 General Interrupt Register 1 (GIR1) GIR1 General Interrupt Register 1 Bit Offset 0x80 31 30 29 28 27 26 25 24 SWT7 SWT6 SWT5 SWT4 SWT3 SWT2 SWT1 SWT0 Type R/W Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 O2M1_ERR O2M0_ERR — DMA_ERR CE_IECC CE_DECC — TDM_P0ECC Type R/W Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 TDM3_TERR TDM3_RERR TDM2_TERR TDM2_RERR TDM1_TERR TDM1_RERR TDM0_TERR TDM0_RERR Type Reset R/W 0 0 0 0 0 0 0 0 GIR1 includes the interrupt status of several events that are rare. Those bits are not sticky and only sample the events. The GIR1 is reset by a hard reset event. All bits are cleared on reset. Table 8-21. GIR1 Bit Descriptions Name Reset SWT7 31 0 SWT6 30 0 SWT5 29 0 SWT4 28 0 SWT3 27 0 Description Settings Software Watchdog Timer 7 Reflects the status of the watchdog timer interrupt. See Section 21.3, Software Watchdog Timers, on page 21-13. 0 Interrupt not asserted 1 Interrupt asserted Software Watchdog Timer 6 Reflects the status of the watchdog timer interrupt. See Section 21.3, Software Watchdog Timers, on page 21-13. 0 Interrupt not asserted 1 Interrupt asserted Software Watchdog Timer 5 Reflects the status of the watchdog timer interrupt. See Section 21.3, Software Watchdog Timers, on page 21-13. 0 Interrupt not asserted 1 Interrupt asserted Software Watchdog Timer 4 Reflects the status of the watchdog timer interrupt. See Section 21.3, Software Watchdog Timers, on page 21-13. 0 Interrupt not asserted 1 Interrupt asserted Software Watchdog Timer 3 Reflects the status of the watchdog timer interrupt. See Section 21.3, Software Watchdog Timers, on page 21-13. 0 Interrupt not asserted 1 Interrupt asserted MSC8156 Reference Manual, Rev. 2 8-32 Freescale Semiconductor Detailed Register Descriptions Table 8-21. GIR1 Bit Descriptions (Continued) Name Reset Description SWT2 26 0 SWT1 25 0 SWT0 24 0 O2M1_ERR 23 0 O2M0_ERR 22 0 — 21 0 Reserved. Write to zero for future compatibility. DMA_ERR 20 0 CE_IECC 19 0 CE_DECC 18 0 — 17 0 Reserved. Write to zero for future compatibility. TDM_P0ECC 16 0 TDM Parity Error Reflects the ORed status of the TDM[0–3] parity error interrupts. — 15–8 0 Reserved. Write to zero for future compatibility. TDM3_TERR 7 0 TDM3 Transmit Error Reflects the status of the TDM3 transmit error interrupt. Settings Software Watchdog Timer 2 Reflects the status of the watchdog timer interrupt.See Section 21.3, Software Watchdog Timers, on page 21-13. 0 Interrupt not asserted 1 Interrupt asserted Software Watchdog Timer 1 Reflects the status of the watchdog timer interrupt. See Section 21.3, Software Watchdog Timers, on page 21-13. 0 Interrupt not asserted 1 Interrupt asserted Software Watchdog Timer 0 Reflects the status of the watchdog timer interrupt. See Section 21.3, Software Watchdog Timers, on page 21-13. 0 Interrupt not asserted 1 Interrupt asserted O2M 1 Error Reflects the status of the O2M1 error interrupt. Possible causes for an interrupt include: • Unsupported packet type detected on the OCN outbound interface. • OCN end-of-packet signal is asserted before the expected end-of-transaction. • Data error. Data is corrupted on the O2M bridge. 0 Interrupt not asserted 1 Interrupt asserted O2M 0 Error Reflects the status of the O2M0 error interrupt. Possible causes for an interrupt include: • Unsupported packet type detected on the OCN outbound interface. • OCN end-of-packet signal is asserted before the expected end-of-transaction. • Data error. Data is corrupted on the O2M bridge. 0 Interrupt not asserted 1 Interrupt asserted DMA Error Reflects the status of the DMA error interrupt. See Section 14.7.16, DMA Error Register (DMAERR), on page 14-41. 0 Interrupt not asserted 1 Interrupt asserted QUICC Engine IRAM Error Reflects the status of the QUICC Engine IRAM ECC error interrupt. 0 Interrupt not asserted 1 Interrupt asserted QUICC Engine DRAM Error Reflects the status of the QUICC Engine DRAM ECC error interrupt. 0 Interrupt not asserted 1 Interrupt asserted 0 Interrupt not asserted 1 Interrupt asserted 0 Interrupt not asserted 1 Interrupt asserted MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-33 General Configuration Registers Table 8-21. GIR1 Bit Descriptions (Continued) Name Reset TDM3_RERR 6 0 TDM2_TERR 5 0 TDM2_RERR 4 0 TDM1_TERR 3 0 TDM1_RERR 2 0 TDM0_TERR 1 0 TDM0_RERR 0 0 Description Settings TDM3 Receive Error Reflects the status of the TDM3 receive error interrupt. 0 Interrupt not asserted 1 Interrupt asserted TDM2 Transmit Error Reflects the status of the TDM2 transmit error interrupt. 0 Interrupt not asserted 1 Interrupt asserted TDM2 Receive Error Reflects the status of the TDM2 receive error interrupt. 0 Interrupt not asserted 1 Interrupt asserted TDM1 Transmit Error Reflects the status of the TDM1 transmit error interrupt. 0 Interrupt not asserted 1 Interrupt asserted TDM1 Receive Error Reflects the status of the TDM1 receive error interrupt. 0 Interrupt not asserted 1 Interrupt asserted TDM0 Transmit Error Reflects the status of the TDM0 transmit error interrupt. 0 Interrupt not asserted 1 Interrupt asserted TDM0 Receive Error Reflects the status of the TDM0 receive error interrupt. 0 Interrupt not asserted 1 Interrupt asserted MSC8156 Reference Manual, Rev. 2 8-34 Freescale Semiconductor Detailed Register Descriptions 8.2.22 General Interrupt Enable Register 1 (GIER1_x) GIER1_0 GIER1_1 GIER1_2 GIER1_3 GIER1_4 GIER1_5 Bit ‘General Interrupt Enable Register 1 for Cores 0–5 Offset 0x84 Offset 0x88 Offset 0x8C Offset 0x90 Offset 0x94 Offset 0x98 31 30 29 28 27 26 25 24 SWT7_EN_n SWT6_EN_n SWT5_EN_n SWT4_EN_n SWT3_EN_n SWT2_EN_n SWT1_EN_n SWT0_EN_n Type Reset R/W 1 1 1 1 1 1 1 1 Bit 23 22 21 20 19 18 17 16 — TDM_P0ECC_ EN_n O2M1_ERR_EN O2M0_ERR_EN _n _n — DMA_ERR_EN_ CE_IECC_EN_nCE_DECC_EN_ n n Type Reset 0 0 0 0 R/W Bit 15 14 13 12 0 0 0 0 11 10 9 8 — R/W Type Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 TDM3_TERR_ TDM3_RERR_ TDM2_TERR_ TDM2_RERR_ TDM1_TERR_ TDM1_RERR_ TDM0_TERR_ EN_n EN_n EN_n EN_n EN_n EN_n EN_n Type Reset TDM0_RERr_ EN_n R/W 0 0 0 0 0 0 0 0 GIER1_[0–5] includes interrupt enable bits of for the interrupts defined in GIR1 for cores 0–5. The register is reset by a hard reset event. All bits are cleared by reset. Write accesses to this register can only be performed in supervisor mode. Table 8-22. GIER1_n Bit Descriptions Name Reset Description SWT7_EN_n 31 0 SWT 7 Interrupt Enable SWT6_EN_n 30 0 SWT 6 Interrupt Enable SWT5_EN_n 29 0 SWT 5 Interrupt Enable SWT4_EN_n 28 0 SWT 4 Interrupt Enable SWT3_EN_n 27 0 SWT 3 Interrupt Enable SWT2_EN_n 26 0 SWT 2 Interrupt Enable Settings 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-35 General Configuration Registers Table 8-22. GIER1_n Bit Descriptions Name Reset Description SWT1_EN_n 25 0 SWT0_EN_n 24 0 O2M1_ERR_EN _n 23 0 O2M0_ERR_EN _n 22 0 — 21 0 Reserved. Write to zero for future compatibility. DMA_ERR_EN_ n 20 0 DMA Error Interrupt Enable CE_IECC_EN_n 19 0 CE_DECC_EN_ n 18 0 — 17 0 Reserved. Write to zero for future compatibility. TDM_P0ECC_E N_n 16 0 Parity Error Interrupt of TDM[0–3] Enable — 15–8 0 Reserved. Write to zero for future compatibility. TDM3_TER_EN _n 7 0 TDM3 Transmit Error Interrupt Enable TDM3_RER_EN _n 6 0 TDM2_TER_EN _n 5 0 TDM2_RER_EN _n 4 0 TDM1_TER_EN _n 3 0 TDM1_RER_EN _n 2 0 TDM0_TER_EN _n 1 0 TDM0_RER_EN _n 0 0 SWT 1 Interrupt Enable SWT 0 Interrupt Enable O2M1 Error Interrupt Enable O2M0 Error Interrupt Enable Settings 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled ECC Error Interrupt of the QUICC Engine IMEM Enable 0 Interrupt disabled 1 Interrupt enabled ECC Error Interrupt of the QUICC Engine DRAM Enable 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled TDM3 Receive Error Interrupt Enable TDM2 Transmit Error Interrupt Enable TDM2 Receive Error Interrupt Enable TDM1 Transmit Error Interrupt Enable TDM1 Receive Error Interrupt Enable TDM0 Transmit Error Interrupt Enable TDM0 Receive Error Interrupt Enable 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled MSC8156 Reference Manual, Rev. 2 8-36 Freescale Semiconductor Detailed Register Descriptions 8.2.23 General Interrupt Register 3 (GIR3) GIR3 Bit General Interrupt Register 3 31 30 29 28 Offset 0xA4 27 26 25 24 — R/W Type Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — DDR2_ERR DDR1_ERR Type Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 MAPLE_ECC_ MAPLE_ECC_ MAPLE_ECC_ MAPLE_ECC_ DRAM IMEM DFT FFT — R/W — MAPLE_GEN_ ERR — PM Type Reset R/W 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 CLS0_WP CLS0_OV 0 0 — Type Reset CLS0_ERR — R/W 0 0 0 0 0 0 GIR3 includes interrupt status of some debug/profiling events within MSC8156. Those bits are not sticky but only sample the events. The GIR3 register is reset by a hard reset event. All bits are cleared on reset. Table 8-23. GIR3 Bit Descriptions Name Reset Description Settings — 31–23 0 Reserved. Write to zero for future compatibility. DDR2_ERR 22 0 DDR2 Error Interrupt Reflects the status of the interrupt. See Section 12.6, Error Management, on page 12-35. 0 Interrupt not asserted 1 Interrupt asserted DDR1_ERR 21 0 DDR1 Error Interrupt Reflects the status of the interrupt. See Section 12.6, Error Management, on page 12-35. 0 Interrupt not asserted 1 Interrupt asserted MAPLE_ECC_DRAM 20 0 MAPLE DRAM Error Interrupt Reflects the status of the interrupt. 0 Interrupt not asserted 1 Interrupt asserted MAPLE_ECC_IMEM 19 0 MAPLE IMEM Error Interrupt Reflects the status of the interrupt. 0 Interrupt not asserted 1 Interrupt asserted MAPLE_ECC_DFT 18 0 MAPLE DFT ECC Error Interrupt Reflects the status of the interrupt. 0 Interrupt not asserted 1 Interrupt asserted MAPLE_ECC_FFT 17 0 MAPLE FFT0 ECC Error Interrupt Reflects the status of the interrupt. 0 Interrupt not asserted 1 Interrupt asserted — 16–13 0 Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-37 General Configuration Registers Table 8-23. GIR3 Bit Descriptions Name Reset Description MAPLE_GEN_ERR 12 0 — 11–9 0 Reserved. Write to zero for future compatibility. PM 8 0 Performance Monitor Interrupt Reflects the performance monitor interrupt — 7–5 0 Reserved. Write to zero for future compatibility. CLS0_ERR 4 0 CLASS0 Error Interrupt 0 Interrupt not asserted Reflects CLASS0 Error Interrupt 1 Interrupt asserted — 3–2 0 Reserved. Write to zero for future compatibility. CLS0_WP 1 0 CLASS0 Watchpoint Interrupt 0 Interrupt not asserted Reflects Class0 watchpoint interrupt 1 Interrupt asserted CLS0_OV 0 0 CLASS0 Overrun Interrupt 0 Interrupt not asserted Reflects CLASS0 overrun interrupt 1 Interrupt asserted MAPLE General Error Interrupt Reflects the status of the interrupt. This is an aggregation of errors that can occur in the MAPLE-B. See Section 26.3.3.2, Interrupts. Settings 0 Interrupt not asserted 1 Interrupt asserted 0 Interrupt not asserted 1 Interrupt asserted MSC8156 Reference Manual, Rev. 2 8-38 Freescale Semiconductor Detailed Register Descriptions 8.2.24 General Interrupt Enable Register 3 for Cores 0–3 (GIER3_x) GIER3_0 GIER3_1 GIER3_2 GIER3_3 GIER3_4 GIER3_5 Bit General Interrupt Enable Register 3 for Cores 0–3 31 30 29 28 Offset 0xA8 Offset 0xAC Offset 0xB0 Offset 0xB4 Offset 0xB8 Offset 0xBC 27 26 25 24 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — DDR2_ERR_EN DDR1_ERR_EN MAPLE_ECC_ MAPLE_ECC_ MAPLE_ECC_ MAPLE_ECC_ _n _n DRAM_EN_n IMEM_EN_n DFT_EN_n FFT_EN_n Type — R/W Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — MAPLE_GEN_ ERR_EN_n Type — PM_EN_n R/W Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 — CLS0_ERR_EN _n Type Reset — CLS0_WP_EN_ CLS0_OV_EN_ n n R/W 0 0 0 0 0 0 0 0 GIER3_[0–5] include interrupt enable bits for cores 0–5 for debug/profiling events within MSC8156. GIER3_[0–5] are reset by a hard reset event. All bits are cleared on reset. Write accesses to this register can be performed only in supervisor mode. Table 8-24. GIER3_[0–5] Bit Descriptions Name Reset Description Settings — 31–23 0 Reserved. Write to zero for future compatibility. DDR2_ERR_EN_n 22 0 DDR2 Error Interrupt Enable 0 1 Interrupt enabled DDR1_ERR_EN_n 21 0 DDR1 Error Interrupt Enable 0 Interrupt disabled 1 Interrupt enabled MAPLE_ECC_DRAM_EN_n 20 0 MAPLE DRAM Error Interrupt Enable 0 Interrupt disabled 1 Interrupt enabled MAPLE_ECC_IMEM_EN_n 19 0 MAPLE IMEM Error Interrupt Enable 0 Interrupt disabled 1 Interrupt enabled Interrupt disabled MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-39 General Configuration Registers Table 8-24. GIER3_[0–5] Bit Descriptions Name Reset MAPLE_ECC_DFT_EN_n 18 0 MAPLE_ECC_FFT_EN_n 17 0 — 13–16 0 Reserved. Write to zero for future compatibility. MAPLE_GEN_ERR_EN_n 12 0 MAPLE General Error Interrupt Enable — 11–9 0 Reserved. Write to zero for future compatibility. PM_EN_n 8 0 Performance Monitor Interrupt Enable — 7–5 0 Reserved. Write to zero for future compatibility. CLS0_ERR_EN_n 4 0 CLASS0 Error Interrupt Enable — 3–2 0 Reserved. Write to zero for future compatibility. CLS0_WP_EN_n 1 0 CLASS0 Watchpoint Interrupt Enable CLS0_OV_EN_n 0 0 8.2.25 Settings MAPLE FFT1 ECC Error Interrupt Enable MAPLE FFT0 ECC Error Interrupt Enable CLASS0 Overrun Interrupt Enable 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled 0 Interrupt disabled 1 Interrupt enabled General Interrupt Register 5 (GIR5) GIR5 Bit Description General Interrupt Register 5 31 30 29 28 Offset 0xEC 27 26 25 24 — W1C Type Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — W1C Type Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — W1C Type Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 T4_T5_AE T2_T3_AE T0_T1_AE 0 0 0 — Type Reset W1C 0 0 0 0 0 MSC8156 Reference Manual, Rev. 2 8-40 Freescale Semiconductor Detailed Register Descriptions GIR5 includes interrupt status of some internal events within MSC8156. Those bits are sticky and cleared by writing a 1 to the bit. The GIR5 register is reset by a hard reset event. All bits are cleared on reset. Write accesses to this register can only be performed in supervisor mode. Table 8-25. GIR5 Bit Descriptions Name Reset Description — 31–3 0 Reserved. Write to zero for future compatibility. T4_T5_AE 2 0 Core 4 or Core 5 L2/M2 Access Error Interrupt Reflects L2/M2 Access Error Interrupt which occurs when the referenced core is in Stop mode. One of the cores tried to access core subsystem 4 or core subsystem 5 M2/L2 memory. T2_T3_AE 1 0 T0_T1_AE 0 0 Settings 0 Interrupt not asserted 1 Interrupt asserted Core 2 or Core3 L2/M2 Access Error Interrupt 0 Reflects L2/M2 Access Error Interrupt which occurs 1 when the referenced core is in Stop mode.One of the cores tried to access core subsystem 2 or core subsystem 3 M2/L2 memory. Core 0 or Core 1 L2/M2 Access Error Interrupt 0 Reflects L2/M2 Access Error Interrupt which occurs 1 when the referenced core is in Stop mode.One of the cores tried to access core subsystem 0 or core subsystem 1 M2/L2 memory. Interrupt not asserted Interrupt asserted Interrupt not asserted Interrupt asserted MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-41 General Configuration Registers 8.2.26 General Interrupt Enable Register 5 (GIER5_x) GIER5_0 GIER5_1 GIER5_2 GIER5_3 GIER5_4 GIER5_5 Bit General Interrupt Enable Register 5 for Cores 0–5 31 30 29 28 Offset 0xF0 Offset 0xF4 Offset 0xF8 Offset 0xFC Offset 0x100 Offset 0x104 27 26 25 24 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 — T4_T5_AE_EN T2_T3_AE_EN T0_T1_AE_EN Type Reset R/W 0 0 0 0 0 0 0 0 GIER5_[0–5] include interrupt enable bits for cores 0–5 for interrupts defined by GIR5. GIER5_[0–5] are reset by a hard reset event. All bits are cleared on reset. Write accesses to this register can be performed only in supervisor mode. Table 8-26. GIER5_[0–5] Bit Descriptions Name Reset Description Settings — 31–3 0 Reserved. Write to zero for future compatibility. T4_T5_AE_EN_n 2 0 Core 4 or Core 5 L2/M2 Access Error Interrupt Enable Enables/disable the interrupt. 0 Interrupt disabled 1 Interrupt enabled T2_T3_AE_EN_n 1 0 Core 2 or Core 3 L2/M2 Access Error Interrupt Enable Enables/disable the interrupt. 0 Interrupt disabled 1 Interrupt enabled T0_T1_AE_EN_n 0 0 Core 0 or Core 1 L2/M2 Access Error Interrupt Enable Enables/disable the interrupt. 0 Interrupt disabled 1 Interrupt enabled MSC8156 Reference Manual, Rev. 2 8-42 Freescale Semiconductor Detailed Register Descriptions 8.2.27 General Control Register 11 (GCR11) GCR11 Bit General Control Register 11 31 30 29 28 27 Offset 0x110 26 25 — 24 PERIPHER_ SYS_LATE_ ARBITARTION Type Reset 0 0 0 0 R/W 0 0 0 0 Bit 23 22 21 20 19 18 17 16 0 0 0 10 9 8 — R/W Type Reset 0 0 Bit 15 14 0 0 0 13 12 11 — PERIPHER_ SYS_INIT2_WEIGHT Type Reset 0 0 0 0 R/W 0 0 0 0 Bit 7 6 5 4 3 2 1 0 PERIPHER_ SYS_INIT1_WEIGHT Type Reset PERIPHER_ SYS_INIT0_WEIGHT R/W 0 0 0 0 0 0 0 0 GCR11 controls the initial values for weighted and late arbitration operation of the peripheral system. All bits are cleared on reset. Table 8-27. GCR11 Bit Descriptions Name Reset Description — 31–25 PERIPHER_ SYS_LATE_ ARBITRATION 24 — 23–12 PERIPHER_ SYS_INIT2_ WEIGHT 11–8 PERIPHER_ SYS_INIT1_ WEIGHT 7–4 PERIPHER_ SYS_INIT0_ WEIGHT 3–0 0 Reserved. Write to zero for future compatibility. 0 Late Arbitration Enables/disables late arbitration for the peripheral system. 0 Reserved. Write to zero for future compatibility. 0 Initial TDM Arbitration Weight Sets the initial weight given to TDM transactions for peripheral system arbitration. 0 Initial QUICC Engine Module Arbitration Weight Sets the initial weight given to the QUICC Engine module for peripheral system arbitration. 0 Initial SEC Arbitration Weight Sets the initial weight given to the SEC for peripheral system arbitration. Settings 0 Do not allow late arbitration. 1 Allow late arbitration. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-43 General Configuration Registers 8.2.28 General Control Register 12 (GCR12) GCR12 Bit General Control Register 12 31 30 29 28 Offset 0x114 27 26 25 24 — R/W Type Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type Reset 0 0 0 0 Bit 15 14 13 12 HSSI_SYS_ LATE_ ARBITARTION R/W 0 0 0 0 11 10 9 8 — R/W Type Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 HSSI_SYS_INIT1_WEIGHT Type Reset HSSI_SYS_INIT0_WEIGHT R/W 0 0 0 0 0 0 0 0 GCR12 controls the initial values for weighted and late arbitration operation of the HSSI CLASS. All bits are cleared on reset. Table 8-28. GCR12 Bit Descriptions Name Reset — 31–17 HSSI_SYS_ LATE_ ARBITRATION 16 — 15–8 0 Reserved. Write to zero for future compatibility. 0 Late Arbitration Enables/disables late arbitration for the HSSI system. 0 Description Settings 0 Do not allow late arbitration. 1 Allow late arbitration. Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 8-44 Freescale Semiconductor Detailed Register Descriptions Table 8-28. GCR12 Bit Descriptions (Continued) Name Reset Description HSSI_SYS_ INIT1_ WEIGHT 7–4 0 HSSI Internal Interface 1 Arbitration Weight Sets the initial weight given to the internal interface 1 (MBus side) of the HSSI. The interface can have a maximum weight of 16. HSSI_SYS_ INIT0_ WEIGHT 3–0 0 HSSI Internal Interface 0 Arbitration Weight Sets the initial weight given to the internal interface 0 (MBus side) of the HSSI. The interface can have a maximum weight of 16. Settings 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Weight = 1 Weight = 2 Weight = 3 Weight = 4 Weight = 5 Weight = 6 Weight = 7 Weight = 8 Weight = 9 Weight = 10 Weight = 11 Weight = 12 Weight = 13 Weight = 14 Weight = 15 Weight = 16 Weight = 1 Weight = 2 Weight = 3 Weight = 4 Weight = 5 Weight = 6 Weight = 7 Weight = 8 Weight = 9 Weight = 10 Weight = 11 Weight = 12 Weight = 13 Weight = 14 Weight = 15 Weight = 16 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-45 General Configuration Registers 8.2.29 DMA Request0 Control Register (GCR_DREQ0) GCR_DREQ0 Bit DMA Request0 Control Register 31 30 29 28 27 Offset 0x120 26 25 24 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 _D15 _S15 _D14 _S14 _D13 _S13 _D12 _S12 Type R/W Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 _D11 _S11 _D10 _S10 _D9 _S9 _D8 _S8 Type R/W Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 _D7 _S7 _D6 _S6 _D5 _S5 _D4 _S4 Type R/W Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 DMA_DREQ0 _D3 _S3 _D2 _S2 _D1 _S1 _D0 _S0 Type Reset R/W 0 0 0 0 0 0 0 0 GCR_DREQ0 associates an external peripheral DMA request 0 to the DMA Controller channel with its destination or source. The user must clear the corresponding bits for a channel for memory-only transactions. Table 8-29. GCR_DREQ0 Bit Descriptions Name Reset DMA_DREQ0_ D15 31 0 DMA_DREQ0_ S15 30 0 DMA_DREQ0_ D14 29 0 Description Settings DMA DREQ0 Destination Channel 15 Associates the DREQ with the destination for Channel 15. 0 DREQ not associated with Channel 15 destination. 1 DREQ associated with Channel 15 destination. DMA DREQ0 Source Channel 15 Associates the DREQ with the source for Channel 15. 0 DREQ not associated with Channel 15 source. 1 DREQ associated with Channel 15 source. DMA DREQ0 Destination Channel 14 Associates the DREQ with the destination for Channel 14. 0 DREQ not associated with Channel 14 destination. 1 DREQ associated with Channel 14 destination. MSC8156 Reference Manual, Rev. 2 8-46 Freescale Semiconductor Detailed Register Descriptions Table 8-29. GCR_DREQ0 Bit Descriptions (Continued) Name Reset DMA_DREQ0_ S14 28 0 DMA_DREQ0_ D13 27 0 DMA_DREQ0_ S13 26 0 DMA_DREQ0_ D12 25 0 DMA_DREQ0_ S12 24 0 DMA_DREQ0_ D11 23 0 DMA_DREQ0_ S11 22 0 DMA_DREQ0_ D10 21 0 DMA_DREQ0_ S10 20 0 DMA_DREQ0_ D9 19 0 DMA_DREQ0_ S9 18 0 Description Settings DMA DREQ0 Source Channel 14 Associates the DREQ with the source for Channel 14. 0 DREQ not associated with Channel 14 source. 1 DREQ associated with Channel 14 source. DMA DREQ0 Destination Channel 13 Associates the DREQ with the destination for Channel 13. 0 DREQ not associated with Channel 13 destination. 1 DREQ associated with Channel 13 destination. DMA DREQ0 Source Channel 13 Associates the DREQ with the source for Channel 13. 0 DREQ not associated with Channel 13 source. 1 DREQ associated with Channel 13 source. DMA DREQ0 Destination Channel 12 Associates the DREQ with the destination for Channel 12. 0 DREQ not associated with Channel 12 destination. 1 DREQ associated with Channel 12 destination. DMA DREQ0 Source Channel 12 Associates the DREQ with the source for Channel 12. 0 DREQ not associated with Channel 12 source. 1 DREQ associated with Channel 12 source. DMA DREQ0 Destination Channel 11 Associates the DREQ with the destination for Channel 11. 0 DREQ not associated with Channel 11 destination. 1 DREQ associated with Channel 11 destination. DMA DREQ0 Source Channel 11 Associates the DREQ with the source for Channel 11. 0 DREQ not associated with Channel 11 source. 1 DREQ associated with Channel 11 source. DMA DREQ0 Destination Channel 10 Associates the DREQ with the destination for Channel 10. 0 DREQ not associated with Channel 10 destination. 1 DREQ associated with Channel 10 destination. DMA DREQ0 Source Channel 10 Associates the DREQ with the source for Channel 10. 0 DREQ not associated with Channel 10 source. 1 DREQ associated with Channel 10 source. DMA DREQ0 Destination Channel 9 Associates the DREQ with the destination for Channel 9. 0 DREQ not associated with Channel 9 destination. 1 DREQ associated with Channel 9 destination. DMA DREQ0 Source Channel 9 Associates the DREQ with the source for Channel 9. 0 DREQ not associated with Channel 9 source. 1 DREQ associated with Channel 9 source. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-47 General Configuration Registers Table 8-29. GCR_DREQ0 Bit Descriptions (Continued) Name Reset DMA_DREQ0_ D8 17 0 DMA_DREQ0_ S8 16 0 DMA_DREQ0_ D7 15 0 DMA_DREQ0_ S7 14 0 DMA_DREQ0_ D6 13 0 DMA_DREQ0_ S6 12 0 DMA_DREQ0_ D5 11 0 DMA_DREQ0_ S5 10 0 DMA_DREQ0_ D4 9 0 DMA_DREQ0_ S4 8 0 DMA_DREQ0_ D3 7 0 Description Settings DMA DREQ0 Destination Channel 8 Associates the DREQ with the destination for Channel 8. 0 DREQ not associated with Channel 8 destination. 1 DREQ associated with Channel 8 destination. DMA DREQ0 Source Channel 8 Associates the DREQ with the source for Channel 8. 0 DREQ not associated with Channel 8 source. 1 DREQ associated with Channel 8 source. DMA DREQ0 Destination Channel 7 Associates the DREQ with the destination for Channel 7. 0 DREQ not associated with Channel 7 destination. 1 DREQ associated with Channel 7 destination. DMA DREQ0 Source Channel 7 Associates the DREQ with the source for Channel 7. 0 DREQ not associated with Channel 7 source. 1 DREQ associated with Channel 7 source. DMA DREQ0 Destination Channel 6 Associates the DREQ with the destination for Channel 6. 0 DREQ not associated with Channel 6 destination. 1 DREQ associated with Channel 6 destination. DMA DREQ0 Source Channel 6 Associates the DREQ with the source for Channel 6. 0 DREQ not associated with Channel 6 source. 1 DREQ associated with Channel 6 source. DMA DREQ0 Destination Channel 5 Associates the DREQ with the destination for Channel 5. 0 DREQ not associated with Channel 5 destination. 1 DREQ associated with Channel 5 destination. DMA DREQ0 Source Channel 5 Associates the DREQ with the source for Channel 5. 0 DREQ not associated with Channel 5 source. 1 DREQ associated with Channel 5 source. DMA DREQ0 Destination Channel 4 Associates the DREQ with the destination for Channel 4. 0 DREQ not associated with Channel 4 destination. 1 DREQ associated with Channel 4 destination. DMA DREQ0 Source Channel 4 Associates the DREQ with the source for Channel 4. 0 DREQ not associated with Channel 4 source. 1 DREQ associated with Channel 4 source. DMA DREQ0 Destination Channel 3 Associates the DREQ with the destination for Channel 3. 0 DREQ not associated with Channel 3 destination. 1 DREQ associated with Channel 3 destination. MSC8156 Reference Manual, Rev. 2 8-48 Freescale Semiconductor Detailed Register Descriptions Table 8-29. GCR_DREQ0 Bit Descriptions (Continued) Name Reset DMA_DREQ0_ S3 6 0 DMA_DREQ0_ D2 5 0 DMA_DREQ0_ S2 4 0 DMA_DREQ0_ D1 3 0 DMA_DREQ0_ S1 2 0 DMA_DREQ0_ D0 1 0 DMA_DREQ0_ S0 0 0 Description Settings DMA DREQ0 Source Channel 3 Associates the DREQ with the source for Channel 3. 0 DREQ not associated with Channel 3 source. 1 DREQ associated with Channel 3 source. DMA DREQ0 Destination Channel 2 Associates the DREQ with the destination for Channel 2. 0 DREQ not associated with Channel 2 destination. 1 DREQ associated with Channel 2 destination. DMA DREQ0 Source Channel 2 Associates the DREQ with the source for Channel 2. 0 DREQ not associated with Channel 2 source. 1 DREQ associated with Channel 2 source. DMA DREQ0 Destination Channel 1 Associates the DREQ with the destination for Channel 1. 0 DREQ not associated with Channel 1 destination. 1 DREQ associated with Channel 1 destination. DMA DREQ0 Source Channel 1 Associates the DREQ with the source for Channel 1. 0 DREQ not associated with Channel 1 source. 1 DREQ associated with Channel 1 source. DMA DREQ0 Destination Channel 0 Associates the DREQ with the destination for Channel 0. 0 DREQ not associated with Channel 0 destination. 1 DREQ associated with Channel 0 destination. DMA DREQ0 Source Channel 0 Associates the DREQ with the source for Channel 0. 0 DREQ not associated with Channel 0 source. 1 DREQ associated with Channel 0 source. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-49 General Configuration Registers 8.2.30 DMA Request1 Control Register (GCR_DREQ1) GCR_DREQ1 Bit DMA Request1 Control Register 31 30 29 28 27 Offset 0x124 26 25 24 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 _D15 _S15 _D14 _S14 _D13 _S13 _D12 _S12 Type R/W Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 _D11 _S11 _D10 _S10 _D9 _S9 _D8 _S8 Type R/W Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 _D7 _S7 _D6 _S6 _D5 _S5 _D4 _S4 Type R/W Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 DMA_DREQ1 _D3 _S3 _D2 _S2 _D1 _S1 _D0 _S0 Type Reset R/W 0 0 0 0 0 0 0 0 GCR_DREQ1 associates an external peripheral DMA request 1 to the DMA Controller channel with its destination or source. The user must clear the corresponding bits for a channel for memory-only transactions. Table 8-30. GCR_DREQ1 Bit Descriptions Name Reset DMA_DREQ1_ D15 31 0 DMA_DREQ1_ S15 30 0 DMA_DREQ1_ D14 29 0 Description Settings DMA DREQ1 Destination Channel 15 Associates the DREQ with the destination for Channel 15. 0 DREQ not associated with Channel 15 destination. 1 DREQ associated with Channel 15 destination. DMA DREQ1 Source Channel 15 Associates the DREQ with the source for Channel 15. 0 DREQ not associated with Channel 15 source. 1 DREQ associated with Channel 15 source. DMA DREQ1 Destination Channel 14 Associates the DREQ with the destination for Channel 14. 0 DREQ not associated with Channel 14 destination. 1 DREQ associated with Channel 14 destination. MSC8156 Reference Manual, Rev. 2 8-50 Freescale Semiconductor Detailed Register Descriptions Table 8-30. GCR_DREQ1 Bit Descriptions (Continued) Name Reset DMA_DREQ1_ S14 28 0 DMA_DREQ1_ D13 27 0 DMA_DREQ1_ S13 26 0 DMA_DREQ1_ D12 25 0 DMA_DREQ1_ S12 24 0 DMA_DREQ1_ D11 23 0 DMA_DREQ1_ S11 22 0 DMA_DREQ1_ D10 21 0 DMA_DREQ1_ S10 20 0 DMA_DREQ1_ D9 19 0 DMA_DREQ1_ S9 18 0 Description Settings DMA DREQ1 Source Channel 14 Associates the DREQ with the source for Channel 14. 0 DREQ not associated with Channel 14 source. 1 DREQ associated with Channel 14 source. DMA DREQ1 Destination Channel 13 Associates the DREQ with the destination for Channel 13. 0 DREQ not associated with Channel 13 destination. 1 DREQ associated with Channel 13 destination. DMA DREQ1 Source Channel 13 Associates the DREQ with the source for Channel 13. 0 DREQ not associated with Channel 13 source. 1 DREQ associated with Channel 13 source. DMA DREQ1 Destination Channel 12 Associates the DREQ with the destination for Channel 12. 0 DREQ not associated with Channel 12 destination. 1 DREQ associated with Channel 12 destination. DMA DREQ1 Source Channel 12 Associates the DREQ with the source for Channel 12. 0 DREQ not associated with Channel 12 source. 1 DREQ associated with Channel 12 source. DMA DREQ1 Destination Channel 11 Associates the DREQ with the destination for Channel 11. 0 DREQ not associated with Channel 11 destination. 1 DREQ associated with Channel 11 destination. DMA DREQ1 Source Channel 11 Associates the DREQ with the source for Channel 11. 0 DREQ not associated with Channel 11 source. 1 DREQ associated with Channel 11 source. DMA DREQ1 Destination Channel 10 Associates the DREQ with the destination for Channel 10. 0 DREQ not associated with Channel 10 destination. 1 DREQ associated with Channel 10 destination. DMA DREQ1 Source Channel 10 Associates the DREQ with the source for Channel 10. 0 DREQ not associated with Channel 10 source. 1 DREQ associated with Channel 10 source. DMA DREQ1 Destination Channel 9 Associates the DREQ with the destination for Channel 9. 0 DREQ not associated with Channel 9 destination. 1 DREQ associated with Channel 9 destination. DMA DREQ1 Source Channel 9 Associates the DREQ with the source for Channel 9. 0 DREQ not associated with Channel 9 source. 1 DREQ associated with Channel 9 source. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-51 General Configuration Registers Table 8-30. GCR_DREQ1 Bit Descriptions (Continued) Name Reset DMA_DREQ1_ D8 17 0 DMA_DREQ1_ S8 16 0 DMA_DREQ1_ D7 15 0 DMA_DREQ1_ S7 14 0 DMA_DREQ1_ D6 13 0 DMA_DREQ1_ S6 12 0 DMA_DREQ1_ D5 11 0 DMA_DREQ1_ S5 10 0 DMA_DREQ1_ D4 9 0 DMA_DREQ1_ S4 8 0 DMA_DREQ1_ D3 7 0 Description Settings DMA DREQ1 Destination Channel 8 Associates the DREQ with the destination for Channel 8. 0 DREQ not associated with Channel 8 destination. 1 DREQ associated with Channel 8 destination. DMA DREQ1 Source Channel 8 Associates the DREQ with the source for Channel 8. 0 DREQ not associated with Channel 8 source. 1 DREQ associated with Channel 8 source. DMA DREQ1 Destination Channel 7 Associates the DREQ with the destination for Channel 7. 0 DREQ not associated with Channel 7 destination. 1 DREQ associated with Channel 7 destination. DMA DREQ1 Source Channel 7 Associates the DREQ with the source for Channel 7. 0 DREQ not associated with Channel 7 source. 1 DREQ associated with Channel 7 source. DMA DREQ1 Destination Channel 6 Associates the DREQ with the destination for Channel 6. 0 DREQ not associated with Channel 6 destination. 1 DREQ associated with Channel 6 destination. DMA DREQ1 Source Channel 6 Associates the DREQ with the source for Channel 6. 0 DREQ not associated with Channel 6 source. 1 DREQ associated with Channel 6 source. DMA DREQ1 Destination Channel 5 Associates the DREQ with the destination for Channel 5. 0 DREQ not associated with Channel 5 destination. 1 DREQ associated with Channel 5 destination. DMA DREQ1 Source Channel 5 Associates the DREQ with the source for Channel 5. 0 DREQ not associated with Channel 5 source. 1 DREQ associated with Channel 5 source. DMA DREQ1 Destination Channel 4 Associates the DREQ with the destination for Channel 4. 0 DREQ not associated with Channel 4 destination. 1 DREQ associated with Channel 4 destination. DMA DREQ1 Source Channel 4 Associates the DREQ with the source for Channel 4. 0 DREQ not associated with Channel 4 source. 1 DREQ associated with Channel 4 source. DMA DREQ1 Destination Channel 3 Associates the DREQ with the destination for Channel 3. 0 DREQ not associated with Channel 3 destination. 1 DREQ associated with Channel 3 destination. MSC8156 Reference Manual, Rev. 2 8-52 Freescale Semiconductor Detailed Register Descriptions Table 8-30. GCR_DREQ1 Bit Descriptions (Continued) Name Reset DMA_DREQ1_ S3 6 0 DMA_DREQ1_ D2 5 0 DMA_DREQ1_ S2 4 0 DMA_DREQ1_ D1 3 0 DMA_DREQ1_ S1 2 0 DMA_DREQ1_ D0 1 0 DMA_DREQ1_ S0 0 0 Description Settings DMA DREQ1 Source Channel 3 Associates the DREQ with the source for Channel 3. 0 DREQ not associated with Channel 3 source. 1 DREQ associated with Channel 3 source. DMA DREQ1 Destination Channel 2 Associates the DREQ with the destination for Channel 2. 0 DREQ not associated with Channel 2 destination. 1 DREQ associated with Channel 2 destination. DMA DREQ1 Source Channel 2 Associates the DREQ with the source for Channel 2. 0 DREQ not associated with Channel 2 source. 1 DREQ associated with Channel 2 source. DMA DREQ1 Destination Channel 1 Associates the DREQ with the destination for Channel 1. 0 DREQ not associated with Channel 1 destination. 1 DREQ associated with Channel 1 destination. DMA DREQ1 Source Channel 1 Associates the DREQ with the source for Channel 1. 0 DREQ not associated with Channel 1 source. 1 DREQ associated with Channel 1 source. DMA DREQ1 Destination Channel 0 Associates the DREQ with the destination for Channel 0. 0 DREQ not associated with Channel 0 destination. 1 DREQ associated with Channel 0 destination. DMA DREQ1 Source Channel 0 Associates the DREQ with the source for Channel 0. 0 DREQ not associated with Channel 0 source. 1 DREQ associated with Channel 0 source. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-53 General Configuration Registers 8.2.31 DMA Done Control Register (GCR_DDONE) GCR_DDONE Bit DMA Done Control Register 31 30 29 28 Offset 0x128 27 26 25 24 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — V1 DONE1_CH Type R/W Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 0 0 — V0 DONE0_CH Type R/W Reset 0 0 0 0 0 0 GCR_DONE controls DMA external request DONE for requestor 1 and 2. Table 8-31. GCR_DDONE Bit Descriptions Name Reset Description — 31–14 0 Reserved. Write to zero for future compatibility. V1 13 0 Valid DONE1 Indicates whether the value of DONE1_CH is valid. Settings 0 DONE1_CH is not valid. 1 DONE1_CH is valid. MSC8156 Reference Manual, Rev. 2 8-54 Freescale Semiconductor Detailed Register Descriptions Table 8-31. GCR_DDONE Bit Descriptions (Continued) Name Reset Description DONE1_CH 12–8 0 DMA DONE1 Channel Select Defines the unidirectional channel that drives the DONE1 signal. The signal is valid when GCR_DDONE[V1] is set. — 7–6 0 Reserved. Write to zero for future compatibility. Settings 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 Channel 0 source. Channel 0 destination. Channel 1 source. Channel 1 destination. Channel 2 source. Channel 2 destination. Channel 3 source. Channel 3 destination. Channel 4 source. Channel 4 destination. Channel 5 source. Channel 5 destination. Channel 6 source. Channel 6 destination. Channel 7 source. Channel 7 destination. Channel 8 source. Channel 8 destination. Channel 9 source. Channel 9 destination. Channel 10 source. Channel 10 destination. Channel 11 source. Channel 11 destination. Channel 12 source. Channel 12 destination. Channel 13 source. Channel 13 destination. Channel 14 source. Channel 14 destination. Channel 15 source. Channel 15 destination. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-55 General Configuration Registers Table 8-31. GCR_DDONE Bit Descriptions (Continued) Name Reset Description Settings V0 5 0 Valid DONE0 Indicates whether the value of DONE0_CH is valid. 0 DONE0_CH is not valid. 1 DONE0_CH is valid. DONE0_CH 4–0 0 DMA DONE0 Channel Select Defines the unidirectional channel that drives the DONE0 signal. The signal is valid when GCR_DDONE[V0] is set. 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 Channel 0 source. Channel 0 destination. Channel 1 source. Channel 1 destination. Channel 2 source. Channel 2 destination. Channel 3 source. Channel 3 destination. Channel 4 source. Channel 4 destination. Channel 5 source. Channel 5 destination. Channel 6 source. Channel 6 destination. Channel 7 source. Channel 7 destination. Channel 8 source. Channel 8 destination. Channel 9 source. Channel 9 destination. Channel 10 source. Channel 10 destination. Channel 11 source. Channel 11 destination. Channel 12 source. Channel 12 destination. Channel 13 source. Channel 13 destination. Channel 14 source. Channel 14 destination. Channel 15 source. Channel 15 destination. MSC8156 Reference Manual, Rev. 2 8-56 Freescale Semiconductor Detailed Register Descriptions 8.2.32 DDR1 General Configuration Register (DDR1_GCR) DDR1_GCR Bit DDR1 General Configuration Register 31 30 29 28 Offset 0x12C 27 26 25 24 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 — DDR1_STOP DDR1_DOZE DDR1_PWR_ DOWN Type R/W Reset 0 0 0 0 0 0 0 0 DDR1_GCR controls part of the DDR1 operation. All bits are cleared on a hard reset event. Table 8-32. DDR1_GCR Bit Descriptions Name Reset Description Settings — 31–3 0 Reserved. Write to zero for future compatibility. DDR1_STOP 2 0 DDR1 Stop With the DDRC Stop ACK, actively stops the controller and DDR memory clock. If the memory is not put in self-refresh mode prior to activating Stop mode, data is lost. 0 DDR1 Stop not requested. 1 DDR1 Stop requested. DDR1_DOZE 1 0 DDR1 Doze Used to select Doze mode, in which all register accesses are acknowledged, but writes are not written and reads do not contain valid data. Setting this bit prevents lockup of the device internal bus while the DDR controller 1 is stopped. Note: To conserve power, when DDR1 is not used by an application, set this bit as soon as possible after reset. This step should be included as part of the initialization code. 0 Normal operation. 1 Doze mode. DDR1_ POWER_ DOWN 0 0 DDR1 Power Down When set, powers down all DDR1 areas with gated clocks. 0 DDR1 power up. 1 DDR1 power down. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-57 General Configuration Registers 8.2.33 DDR2 General Configuration Register (DDR2_GCR) DDR2_GCR Bit DDR2 General Configuration Register 31 30 29 28 Offset 0x130 27 26 25 24 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 — DDR2_STOP DDR2_DOZE DDR2_PWR_ DOWN Type R/W Reset 0 0 0 0 0 0 0 0 DDR2_GCR controls part of the DDR2 operation. All bits are cleared on a hard reset event. Table 8-33. DDR2_GCR Bit Descriptions Name Reset Description Settings — 31–3 0 Reserved. Write to zero for future compatibility. DDR2_STOP 2 0 DDR2 Stop With the DDRC Stop ACK, actively stops the controller and DDR memory clock. If the memory is not put in self-refresh mode prior to activating Stop mode, data is lost. 0 DDR2 Stop not requested. 1 DDR2 Stop requested. DDR2_DOZE 1 0 DDR2 Doze Used to select Doze mode, in which all register accesses are acknowledged, but writes are not written and reads do not contain valid data. Setting this bit prevents lockup of the device internal bus while the DDR2 controller is stopped. Note: To conserve power, when DDR2 is not used by an application, set this bit as soon as possible after reset. This step should be included as part of the initialization code. 0 Normal operation. 1 Doze mode. DDR2_ POWER_ DOWN 0 0 DDR2 Power Down When set, powers down all DDR2 areas with gated clocks. 0 DDR2 power up. 1 DDR2 power down. MSC8156 Reference Manual, Rev. 2 8-58 Freescale Semiconductor Detailed Register Descriptions 8.2.34 Core Subsystem Slave Port General Configuration Register (CORE_SLV_GCR) CORE_SLV_GCRCore Subsystem Slave Port General Configuration Register Bit 31 30 29 28 Offset 0x138 27 26 25 24 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 23 22 21 20 19 18 17 16 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 — Type R/W Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 0 — CORE_SLV_ CORE_SLV_ CORE_SLV_ CORE_SLV_ CORE_SLV_ CORE_SLV_ WIN_CLOSE5 WIN_CLOSE4 WIN_CLOSE3 WIN_CLOSE2 WIN_CLOSE1 WIN_CLOSE0 Type R/W Reset 0 0 0 0 0 0 0 0 CORE_SLV_GCR controls the status of the slave ports for the core subsystems. Table 8-34. CORE_SLV_GCR Bit Descriptions Name Reset Description Settings — 31–6 0 Reserved. Write to zero for future compatibility. CORE_SLV_ WIN_CLOSE5 5 0 Peripheral Access to Core 5 L2/M2 Disable Set the bit to 1 to disable accesses by the device peripherals (that is, DMAC, QUICC Engine module, and so on) to M2/L2 in core 5. 0 Enable peripheral access to Core 5 M2/L2 memory. 1 Disable peripheral access to Core 5 M2/L2 memory. CORE_SLV_ WIN_CLOSE4 4 0 Peripheral Access to Core 4 L2/M2 Disable Set the bit to 1 to disable accesses by the device peripherals (that is, DMAC, QUICC Engine module, and so on) to M2/L2 in core 4. 0 Enable peripheral access to Core 4 M2/L2 memory. 1 Disable peripheral access to Core 4 M2/L2 memory. CORE_SLV_ WIN_CLOSE3 3 0 Peripheral Access to Core 3 L2/M2 Disable Set the bit to 1 to disable accesses by the device peripherals (that is, DMAC, QUICC Engine module, and so on) to M2/L2 in core 3. 0 Enable peripheral access to Core 3 M2/L2 memory. 1 Disable peripheral access to Core 3 M2/L2 memory. CORE_SLV_ WIN_CLOSE2 2 0 Peripheral Access to Core 2 L2/M2 Disable Set the bit to 1 to disable accesses by the device peripherals (that is, DMAC, QUICC Engine module, and so on) to M2/L2 in core 2. 0 Enable peripheral access to Core 2 M2/L2 memory. 1 Disable peripheral access to Core 2 M2/L2 memory. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 8-59 General Configuration Registers Table 8-34. CORE_SLV_GCR Bit Descriptions (Continued) Name Reset Description Settings CORE_SLV_ WIN_CLOSE1 1 0 Peripheral Access to Core 1 L2/M2 Disable Set the bit to 1 to disable accesses by the device peripherals (that is, DMAC, QUICC Engine module, and so on) to M2/L2 in core 1. 0 Enable peripheral access to Core 15 M2/L2 memory. 1 Disable peripheral access to Core 1 M2/L2 memory. CORE_SLV_ WIN_CLOSE0 0 0 Peripheral Access to Core 0 L2/M2 Disable Set the bit to 1 to disable accesses by the device peripherals (that is, DMAC, QUICC Engine module, and so on) to M2/L2 in core 0. 0 Enable peripheral access to Core 0 M2/L2 memory. 1 Disable peripheral access to Core 0 M2/L2 memory. MSC8156 Reference Manual, Rev. 2 8-60 Freescale Semiconductor 9 Memory Map This section describes the memory map of MSC8156. The MSC8156 incorporates four address groups: Shared memory (M3, DDR, QUICC Engine subsystem, and MAPLE-B) address space. Shared SC3850 DSP core subsystem M2/L2 memories SC3850 DSP core subsystem internal address space is accessible only by the SC3850 core. Each SC3850 core can access its own internal address space. Control Configuration and Status Registers (CCSR) address space. 9.1 Shared Memory Address Space The shared memory address space resides within addresses 0x40000000–0xFEFFFFFF. It includes the M3 memory, two DDR memories, MAPLE-B, QUICC Engine subsystem, and the boot ROM. Note: The CCSR address space is not part of the shared memory space because the SC3850 DSP core subsystem internal memory resides in the middle (the CCSR address space starts at address 0xFFF10000). Table 9-1. Shared Memory Address Space Address Purpose Size in Bytes 0x40000000–0x5FFFFFFF DDR1 Memory (default value) 512 M 0x60000000–0x7FFFFFFF Reserved; used for DDR1 memory if configured for 1 GB. 512 M 0x80000000–0x9FFFFFFF DDR2 Memory (default value) 512 M 0xA0000000–0xBFFFFFFF Reserved; used for DDR2 memory if configured for 1 GB 512 M 0xC0000000–0xC0107FFF M3 Memory 0xC0108000–0xFECFFFFF Reserved 511 M – 32 K 0xFED00000–0xFEDFFFFF MAPLE-B 1M 0xFEE00000–0xFEE3FFFF QUICC Engine Subsystem 256 K 0xFEE40000–0xFEEFFFFF Reserved (QUICC Engine Subsystem) 768 K 0xFEF00000–0xFEF17FFF Boot ROM 96 K 0xFEF18000–0xFEFFFFFF Reserved 928 K 1 M + 32 K MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-1 Memory Map 9.2 Shared SC3850 DSP Core Subsystem M2/L2 Memories Each SC3850 core subsystem includes 512 KB of level-2 memory that can be partitioned into M2 memory and L2 cache. The minimal size of each partition is 64 KB and each core can have a unique combination of M2 and L2 memory partitions. The partition size can be changed during operation, but the user must make sure that all ongoing accesses are terminated before making the change. The default partitioning out of reset defines all of the level-2 memory as shared M2 memory. The boot program configures the MMU to support that configuration and sets the CLASS values accordingly. When partitioned as M2 memory, the memory is available as a shared memory that can be used as private memory by the core to which it belongs and accessed by all other system masters and external hosts, but not by the other cores. Although the M2 memories have different physical addresses, all cores use a virtual address of 0x0 to access its own M2 memory and uses MMU translation to access the correct memory space. When partitioned as L2 cache memory, the L2 cache can be accessed by the core to which it belongs and by other masters in the system, but not by other cores. The L2 accesses are translated through the core subsystem slave ports to the L2 cache, allowing DDR access for specific core cache. The size in bytes shown in Table 9-2 indicates the total DDR access range. The shared M2/L2 memory space resides within the address range 0x20000000–0x3FFFFFFF and includes all cores. As shown at the Table 9-2, when an initiator other than the core accesses L2 cache, its address range is limited to 32 MB. Before hitting the cache, this address range is always mapped to the first 32 MB of DDR0 which uses the address range 0x40000000–0x41FFFFFF. The mapping is the same for all DSP subsystems. If L2 acts as a shared cache by the core and the additional initiators, this feature has the following benefits: In the DMA model in which the DMA controller transfers data to L2 cache and the core can use it, the scheduling restriction between DMA job completion and core job start is relaxed (in comparison to DMA and M2). If the core starts reading data not written by the DMA controller, a miss is generated to the DDR and data is read directly. If an initiator must read the same data from DDR several times to save DDR bandwidth, the data resides in L2 after the first read and is than read from L2 repeatedly without having to access the DDR memory. This feature can be used in conjunction with cache partitioning in which the cache can be used as two separate caches, one for the core and the other for another initiator. Table 9-2. Shared M2/L2 Memories Address Space Address 0x20000000–0x23FFFFFF 0x24000000–0x25FFFFFF Purpose Reserved DDR through Core 5 L2 Size in Bytes 64 M 32 M MSC8156 Reference Manual, Rev. 2 9-2 Freescale Semiconductor SC3850 DSP Core Subsystem Internal Address Space Table 9-2. Shared M2/L2 Memories Address Space (Continued) Address Purpose Size in Bytes 0x26000000–0x27FFFFFF DDR through Core 4 L2 32 M 0x28000000–0x29FFFFFF DDR through Core 3 L2 32 M 0x2A000000–0x2BFFFFFF DDR through Core 2 L2 32 M 0x2C000000–0x2DFFFFFF DDR through Core 1 L2 32 M 0x2E000000–0x2FFFFFFF DDR through Core 0 L2 32 M 0x30000000–0x3007FFFF Core 0 M2 memory 512 K max. 0x30080000–0x30FFFFFF Reserved 16 M – 512 K 0x31000000–0x3107FFFF Core 1 M2 memory 512 K max. 0x31080000–0x31FFFFFF Reserved 16 M – 512 K 0x32000000–0x3207FFFF Core 2 M2 memory 512 K max. 0x32080000–0x32FFFFFF Reserved 16 M – 512 K 0x33000000–0x3307FFFF Core 3 M2 memory 512 K max. 0x33080000–0x33FFFFFF Reserved 16 M – 512 K 0x34000000–0x3407FFFF Core 4 M2 memory 512 K max. 0x34080000–0x34FFFFFF Reserved 16 M – 512 K 0x35000000–0x3507FFFF Core 5 M2 memory 512 K max. 0x35080000–0x37FFFFFF Reserved 48 M – 512 K Note: Each of the M2 memory areas is configurable in size in 64 KB increments starting from the lowest 64 KB address block up to the maximum 512 KB. Any blocks not allocated as M2 memory are reserved. 9.3 SC3850 DSP Core Subsystem Internal Address Space Each SC3850 core can access the internal address space of its DSP core subsystem. The SC3850 internal address space is located from address 0xFF000000–0xFFF0FFFF (15 MB + 64 KB). Table 9-3 lists details for the DSP core subsystem internal address space. Table 9-3. SC3850 DSP Core Subsystem Internal Address Space Address Purpose Size (Bytes) Remarks 0xFF000000–0xFFEFFDFF Reserved 15 M – 512 0xFFEFFE00–0xFFEFFFFF OCE 512 User/Supervisor Reserved 1K 0xFFF000002–0xFFF003FF 0xFFF00400–0xFFF007FF EPIC 1K Supervisor 0xFFF00800–0xFFF00BFF Data Cache registers 1K Supervisor 0xFFF00C00–0xFFF00FFF Instruction Cache registers 1K Supervisor 0xFFF01000–0xFFF05FFF Reserved 20 K 0xFFF06000–0xFFF09FFF MMU 16 K Supervisor 0xFFF0A000–0xFFF0A2FF DPU 768 User/Supervisor 0xFFF0A300–0xFFF0A3FF TIMERS 256 User/Supervisor 0xFFF0A400–0xFFF0FFFF Reserved 23 K Note: Access in both User and Supervisor modes is allowed only if enabled via the EMR[EMEA] bit in the core. Note: See the MSC8156 SC3850 DSP Subsystem Reference Manual for details. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-3 Memory Map 9.4 CCSR Address Space The MSC8156 CCSR is mapped within a contiguous block of memory. The size of the CCSR in MSC8156 is 956 KB. Table 9-4 details the CCSR address space. Table 9-4. CCSR Address Space Address 0xFFF10000–0xFFF103FF 0xFFF10400–0xFFF17FFF 0xFFF18000–0xFFF18FFF 0xFFF19000–0xFFF1BFFF 0xFFF1C000–0xFFF1FFFF 0xFFF20000–0xFFF21FFF 0xFFF22000–0xFFF23FFF 0xFFF24000–0xFFF2407F 0xFFF24080–0xFFF247FF 0xFFF24800–0xFFF248FF 0xFFF24900–0xFFF24BFF 0xFFF24C00–0xFFF24CFF 0xFFF24D00–0xFFF24FFF 0xFFF25000–0xFFF250FF 0xFFF25100–0xFFF251FF 0xFFF25200–0xFFF252FF 0xFFF25300–0xFFF253FF 0xFFF25400–0xFFF254FF 0xFFF25500–0xFFF255FF 0xFFF25600–0xFFF256FF 0xFFF25700–0xFFF257FF 0xFFF25800–0xFFF25FFF 0xFFF26000–0xFFF260FF 0xFFF26100–0xFFF261FF 0xFFF26200–0xFFF262FF 0xFFF26300–0xFFF263FF 0xFFF26400–0xFFF26BFF 0xFFF26C00–0xFFF26C3F 0xFFF26C40–0xFFF26FFF 0xFFF27000–0xFFF270FF 0xFFF27100–0xFFF271FF 0xFFF27200–0xFFF272FF 0xFFF27300–0xFFF27FFF 0xFFF28000–0xFFF281FF 0xFFF28200–0xFFF2FFFF 0xFFF30000–0xFFF33FFF 0xFFF34000–0xFFF37FFF 0xFFF38000–0xFFF3BFFF 0xFFF3C000–0xFFF3FFFF 0xFFF40000–0xFFF7FFFF 0xFFF80000–0xFFF9FFFF 0xFFFA0000–0xFFFA0FFF 0xFFFA1000–0xFFFA103F Purpose DMA Reserved CLASS Registers Reserved MAPLE-B Registers DDR Controller 1 DDR Controller 2 Clock reserved Reset reserved I2C reserved Watch Dog Timers reserved Timers Reserved UART Reserved GIC Registers Hardware Semaphores GPIO Registers Reserved General Configuration Registers Reserved TDM0 Registers TDM1 Registers TDM2 Registers TDM3 Registers Reserved RapidIO Registers Reserved OCN Crossbar Switch to MBus0 Size (Bytes) 1K 31 K 4K 12 K 16 K 8K 8K 128 2 K – 128 256 768 256 768 256 256 256 256 256 256 256 256 2K 256 256 256 256 2K 64 1K – 64 256 256 256 4 K – 768 512 16 K – 32 16 K 16 K 16 K 16 K 256 K 128 K 4K 64 MSC8156 Reference Manual, Rev. 2 9-4 Freescale Semiconductor Initiators Views of the System Address Space Table 9-4. CCSR Address Space (Continued) Address 0xFFFA1040–0xFFFA107F 0xFFFA1080–0xFFFA7FFF 0xFFFA8000–0xFFFA8FFF 0xFFFA9000–0xFFFA9FFF 0xFFFAA000–0xFFFAAFFF 0xFFFAB000–0xFFFABFFF 0xFFFAC000–0xFFFAC07F 0xFFFAC080–0xFFFACFFF 0xFFFAD000–0xFFFAD07F 0xFFFAD080–0xFFFB6FFF 0xFFFB7000–0xFFFB7FFF 0xFFFB8000–0xFFFBAFFF 0xFFFBB000–0xFFFBB7FF 0xFFFBB800–0xFFFBB8FF 0xFFFBB900–0xFFFCFFFF 0xFFFD0000–0xFFFDFFFF 0xFFFDE000–0xFFFFEFFF Purpose OCN Crossbar Switch to MBus1 Reserved Dedicated DMA Controller 0 Registers DMA Controller 0 to OCN Dedicated DMA Controller 1 Registers DMA Controller 1 to OCN SerDes PHY 0 Registers Reserved SerDes PHY 1 Registers Reserved PCI Express Registers Reserved RapidIO/PCI Express Security Bridge Registers Performance Monitor Registers Reserved Security Engine Registers Reserved Size (Bytes) 64 28 K – 128 4K 4K 4K 4K 128 4 K – 128 128 40 K – 128 4K 12 K 2K 256 82 K – 256 64 K 128 K 9.5 Initiators Views of the System Address Space Addressing within the system address space depends on the device addressing the system memory space. The following sections define how the cores, system peripherals, and the Security Engine address this space. 9.5.1 SC3850 (Data) View of the System Address Space Table 9-5 describes the system address space as seen by each SC3850 core subsystem. Table 9-5. SC3850 (Data) View of the System Address Space Address Purpose Size (Bytes) 0x00000000–0x2FFFFFFF Reserved 768 M The allocation of the memory space from 0x30000000–0x3FFFFFFF is core subsystem dependent as follows: 0x30000000–0x3007FFFF Private M2 memory (size is configurable) 512 K maximum Core 0 0x30080000–0x3FFFFFFF Reserved 256 M – 512 K 0x30000000–0x30FFFFFF Reserved 16 M Core 1 0x31000000–0x3107FFFF Private M2 memory (size is configurable) 512 K maximum 0x31080000–0x3FFFFFFF Reserved 240 M – 512 K 0x30000000–0x31FFFFFF Reserved 32 M Core 2 0x32000000–0x3207FFFF Private M2 memory (size is configurable) 512 K maximum 0x32080000–0x3FFFFFFF Reserved 224 M – 512 K 0x30000000–0x32FFFFFF Reserved 48 M Core 3 0x33000000–0x3307FFFF Private M2 memory (size is configurable) 512 K maximum 0x33080000–0x3FFFFFFF Reserved 208 M – 512 K 0x30000000–0x33FFFFFF Reserved 64 M Core 4 0x34000000–0x3407FFFF Private M2 memory (size is configurable) 512 K maximum 0x34080000–0x3FFFFFFF Reserved 192 M – 512 K MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-5 Memory Map Table 9-5. SC3850 (Data) View of the System Address Space Address Purpose Size (Bytes) 0x30000000–0x34FFFFFF Reserved 80 M 0x35000000–0x3507FFFF Private M2 memory (size is configurable) 512 K maximum 0x35080000–0x3FFFFFFF Reserved 176 M – 512 K Note: Each core subsystem L2 memory can be allocated in 64 KB increments starting from the lowest 64 KB address block up to the maximum 512 KB. Any blocks not allocated as M2 memory are reserved. 0x40000000–0xFEFFFFFF Shared Memory Address Space 3 G – 528 M 0xFF000000–0xFFF0FFFF SC3850 DSP core subsystem Internal Address Space 15 M + 64 K 0xFFF10000–0xFFFFEFFF CCSR Address Space 956 K 0xFFFFF000–0xFFFFFFFF Reserved 4K Core 5 9.5.2 Peripherals View of the System Address Space Table 9-6 describes the system address space as seen by the MSC8156 peripherals (RapidIO and PCI Express controllers, JTAG, QUICC Engine subsystem, TDM, DMA, and MAPLE-B–both MBus interfaces). Table 9-6. Peripherals View of the System Address Space Address Purpose Size (Bytes) 0x00000000–0x1FFFFFFF Reserved 512 M 0x20000000–0x3FFFFFFF Shared L2/M2 Memory Space 512 M 0x40000000–0xFEFFFFFF Shared Memory Address Space 0xFF000000–0xFFF0FFFF Reserved 0xFFF10000–0xFFFFEFFF CCSR Address Space 0xFFFFF000–0xFFFFFFFF Reserved 3 G – 528 M 15M + 64K 956 K 4K An external initiator (to the MSC8156 device) can generate accesses to the system address space using the: Test Access Port/JTAG with direct addressing. The RapidIO subsystem/PCI Express controller using the RapidIO/PCI Express inbound address translation. 9.6 Detailed System Memory Map Table 9-7. Detailed System Memory Map Address Name/Status 0x00000000– 0x3FFFFFFF Reserved 0x40000000– 0xFEFFFFFF Shared memory • 0x40000000– 0x5FFFFFFF DDR1 memory Acronym MSC8156 Reference Manual, Rev. 2 9-6 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status • 0x60000000– 0x7FFFFFFF reserved • 0x80000000– 0x9FFFFFFF DDR2 Memory • 0xA0000000– 0xBFFFFFFF reserved • 0xC0000000– 0xC010FFFF M3 Memory • 0xC0108000– 0xFECFFFFF reserved • 0xFED00000– 0xFEDFFFFF MAPLE-B Acronym − 0xFED00000– 0xFED005FF Parameter RAM − 0xFED00000– 0xFED00003 reserved − 0xFED00004– 0xFED00007 MAPLE BD Rings Configuration Parameter − 0xFED00008– 0xFED0000F reserved − 0xFED00010 MAPLE UCode Version Number − 0xFED00014– 0xFED00017 reserved − 0xFED00018 MAPLE Timer Period Parameter − 0xFED0001C– 0xFED0007F reserved − 0xFED00080– 0xFED00083 MAPLE TVPE BD Ring High Priority A 0 Parameter MTVBRHPA0P − 0xFED00084– 0xFED00087 MAPLE TVPE BD Ring High Priority B 0 Parameter MTVBRHPB0P − 0xFED00088– 0xFED0008B MAPLE TVPE BD Ring High Priority A 1 Parameter MTVBRHPA1P − 0xFED0008C– 0xFED0008F MAPLE TVPE BD Ring High Priority B 1 Parameter MTVBRHPB1P − 0xFED00090– 0xFED00093 MAPLE TVPE BD Ring High Priority A 2 Parameter MTVBRHPA2P − 0xFED00094– 0xFED00097 MAPLE TVPE BD Ring High Priority B 2 Parameter MTVBRHPB2P − 0xFED00098– 0xFED0009B MAPLE TVPE BD Ring High Priority A 3 Parameter MTVBRHPA3P − 0xFED0009C– 0xFED0009F MAPLE TVPE BD Ring High Priority B 3 Parameter MTVBRHPB3P − 0xFED000A0– 0xFED000A3 MAPLE TVPE BD Ring High Priority A 4 Parameter MTVBRHPA4P − 0xFED000A4– 0xFED000A7 MAPLE TVPE BD Ring High Priority B 4 Parameter MTVBRHPB4P − 0xFED000A8– 0xFED000AB MAPLE TVPE BD Ring High Priority A 5 Parameter MTVBRHPA5P MBDRCP MUCVP MP_TPP MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-7 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFED000AC– 0xFED000AF MAPLE TVPE BD Ring High Priority B 5 Parameter MTVBRHPB5P − 0xFED000B0– 0xFED000B3 MAPLE TVPE BD Ring High Priority A 6 Parameter MTVBRHPA6P − 0xFED000B4– 0xFED000B7 MAPLE TVPE BD Ring High Priority B 6 Parameter MTVBRHPB6P − 0xFED000B8– 0xFED000BB MAPLE TVPE BD Ring High Priority A 7 Parameter MTVBRHPA7P − 0xFED000BC– 0xFED000BF MAPLE TVPE BD Ring High Priority B 7 Parameter MTVBRHPB7P − 0xFED000C0– 0xFED000C3 MAPLE TVPE BD Ring Low Priority A 0 Parameter MTVBRLPA0P − 0xFED000C4– 0xFED000C7 MAPLE TVPE BD Ring Low Priority B 0 Parameter MTVBRLPB0P − 0xFED000C8– 0xFED000CB MAPLE TVPE BD Ring Low Priority A 1 Parameter MTVBRLPA1P − 0xFED000CC– 0xFED000CF MAPLE TVPE BD Ring Low Priority B 1 Parameter MTVBRLPB1P − 0xFED000D0– 0xFED000D3 MAPLE TVPE BD Ring Low Priority A 2 Parameter MTVBRLPA2P − 0xFED000D4– 0xFED000D7 MAPLE TVPE BD Ring Low Priority B 2 Parameter MTVBRLPB2P − 0xFED000D8– 0xFED000DB MAPLE TVPE BD Ring Low Priority A 3 Parameter MTVBRLPA3P − 0xFED000DC– 0xFED000DF MAPLE TVPE BD Ring Low Priority B 3 Parameter MTVBRLPB3P − 0xFED000E0– 0xFED000E3 MAPLE TVPE BD Ring Low Priority A 4 Parameter MTVBRLPA4P − 0xFED000E4– 0xFED000E7 MAPLE TVPE BD Ring Low Priority B 4 Parameter MTVBRLPB4P − 0xFED000E8– 0xFED000EB MAPLE TVPE BD Ring Low Priority A 5 Parameter MTVBRLPA5P − 0xFED000EC– 0xFED000EF MAPLE TVPE BD Ring Low Priority B 5 Parameter MTVBRLPB5P − 0xFED000F0– 0xFED000F3 MAPLE TVPE BD Ring Low Priority A 6 Parameter MTVBRLPA6P − 0xFED000F4– 0xFED000F7 MAPLE TVPE BD Ring Low Priority B 6 Parameter MTVBRLPB6P − 0xFED000F8– 0xFED000FB MAPLE TVPE BD Ring Low Priority A 7 Parameter MTVBRLPA7P − 0xFED000FC– 0xFED000FF MAPLE TVPE BD Ring Low Priority B 7 Parameter MTVBRLPB7P − 0xFED00100– 0xFED00103 MAPLE FFTPE BD Ring High Priority A 0 Parameter MFFBRHPA0P − 0xFED00104– 0xFED00107 MAPLE FFTPE BD Ring High Priority B 0 Parameter MFFBRHPB0P − 0xFED00108– 0xFED0010B MAPLE FFTPE BD Ring High Priority A 1 Parameter MFFBRHPA1P MSC8156 Reference Manual, Rev. 2 9-8 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFED0010C– 0xFED0010F MAPLE FFTPE BD Ring High Priority B 1 Parameter MFFBRHPB1P − 0xFED00110– 0xFED00113 MAPLE FFTPE BD Ring High Priority A 2 Parameter MFFBRHPA2P − 0xFED00114– 0xFED00117 MAPLE FFTPE BD Ring High Priority B 2 Parameter MFFBRHPB2P − 0xFED00118– 0xFED0011B MAPLE FFTPE BD Ring High Priority A 3 Parameter MFFBRHPA3P − 0xFED0011C– 0xFED0011F MAPLE FFTPE BD Ring High Priority B 3 Parameter MFFBRHPB3P − 0xFED00120– 0xFED00123 MAPLE FFTPE BD Ring High Priority A 4 Parameter MFFBRHPA4P − 0xFED00124– 0xFED00127 MAPLE FFTPE BD Ring High Priority B 4 Parameter MFFBRHPB4P − 0xFED00128– 0xFED0012B MAPLE FFTPE BD Ring High Priority A 5 Parameter MFFBRHPA5P − 0xFED0012C– 0xFED0012F MAPLE FFTPE BD Ring High Priority B 5 Parameter MFFBRHPB5P − 0xFED00130– 0xFED00133 MAPLE FFTPE BD Ring High Priority A 6 Parameter MFFBRHPA6P − 0xFED00134– 0xFED00137 MAPLE FFTPE BD Ring High Priority B 6 Parameter MFFBRHPB6P − 0xFED00138– 0xFED0013B MAPLE FFTPE BD Ring High Priority A 7 Parameter MFFBRHPA7P − 0xFED0013C– 0xFED0013F MAPLE FFTPE BD Ring High Priority B 7 Parameter MFFBRHPB7P − 0xFED00140– 0xFED00143 MAPLE FFTPE BD Ring Low Priority A 0 Parameter MFFBRLPA0P − 0xFED00144– 0xFED00147 MAPLE FFTPE BD Ring Low Priority B 0 Parameter MFFBRLPB0P − 0xFED00148– 0xFED0014B MAPLE FFTPE BD Ring Low Priority A 1 Parameter MFFBRLPA1P − 0xFED0014C– 0xFED0014F MAPLE FFTPE BD Ring Low Priority B 1 Parameter MFFBRLPB1P − 0xFED00150– 0xFED00153 MAPLE FFTPE BD Ring Low Priority A 2 Parameter MFFBRLPA2P − 0xFED00154– 0xFED00157 MAPLE FFTPE BD Ring Low Priority B 2 Parameter MFFBRLPB2P − 0xFED00158– 0xFED0015B MAPLE FFTPE BD Ring Low Priority A 3 Parameter MFFBRLPA3P − 0xFED0015C– 0xFED0015F MAPLE FFTPE BD Ring Low Priority B 3 Parameter MFFBRLPB3P − 0xFED00160– 0xFED00163 MAPLE FFTPE BD Ring Low Priority A 4 Parameter MFFBRLPA4P − 0xFED00164– 0xFED00167 MAPLE FFTPE BD Ring Low Priority B 4 Parameter MFFBRLPB4P − 0xFED00168– 0xFED0016B MAPLE FFTPE BD Ring Low Priority A 5 Parameter MFFBRLPA5P MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-9 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFED0016C– 0xFED0016F MAPLE FFTPE BD Ring Low Priority B 5 Parameter MFFBRLPB5P − 0xFED00170– 0xFED00173 MAPLE FFTPE BD Ring Low Priority A 6 Parameter MFFBRLPA6P − 0xFED00174– 0xFED00177 MAPLE FFTPE BD Ring Low Priority B 6 Parameter MFFBRLPB6P − 0xFED00178– 0xFED0017B MAPLE FFTPE BD Ring Low Priority A 7 Parameter MFFBRLPA7P − 0xFED0017C– 0xFED0017F MAPLE FFTPE BD Ring Low Priority B 7 Parameter MFFBRLPB7P − 0xFED00180– 0xFED00183 MAPLE DFTPE BD Ring High Priority A 0 Parameter MDFBRHPA0P − 0xFED00184– 0xFED00187 MAPLE DFTPE BD Ring High Priority B 0 Parameter MDFBRHPB0P − 0xFED00188– 0xFED0018B MAPLE DFTPE BD Ring High Priority A 1 Parameter MDFBRHPA1P − 0xFED0018C– 0xFED0018F MAPLE DFTPE BD Ring High Priority B 1 Parameter MDFBRHPB1P − 0xFED00190– 0xFED00183 MAPLE DFTPE BD Ring High Priority A 2 Parameter MDFBRHPA2P − 0xFED00194– 0xFED00197 MAPLE DFTPE BD Ring High Priority B 2 Parameter MDFBRHPB2P − 0xFED00198– 0xFED0019B MAPLE DFTPE BD Ring High Priority A 3 Parameter MDFBRHPA3P − 0xFED0019C– 0xFED0019F MAPLE DFTPE BD Ring High Priority B 3 Parameter MDFBRHPB3P − 0xFED001A0– 0xFED001A3 MAPLE DFTPE BD Ring High Priority A 4 Parameter MDFBRHPA4P − 0xFED001A4– 0xFED001A7 MAPLE DFTPE BD Ring High Priority B 4 Parameter MDFBRHPB4P − 0xFED001A8– 0xFED001AB MAPLE DFTPE BD Ring High Priority A 5 Parameter MDFBRHPA5P − 0xFED001AC– 0xFED001AF MAPLE DFTPE BD Ring High Priority B 5 Parameter MDFBRHPB5P − 0xFED001B0– 0xFED001B3 MAPLE DFTPE BD Ring High Priority A 6 Parameter MDFBRHPA6P − 0xFED001B4– 0xFED001B7 MAPLE DFTPE BD Ring High Priority B 6 Parameter MDFBRHPB6P − 0xFED001B8– 0xFED001BB MAPLE DFTPE BD Ring High Priority A 7 Parameter MDFBRHPA7P − 0xFED001BC– 0xFED001BF MAPLE DFTPE BD Ring High Priority B 7 Parameter MDFBRHPB7P − 0xFED001C0– 0xFED001C3 MAPLE DFTPE BD Ring Low Priority A 0 Parameter MDFBRLPA0P − 0xFED001C4– 0xFED001C7 MAPLE DFTPE BD Ring Low Priority B 0 Parameter MDFBRLPB0P − 0xFED001C8– 0xFED001CB MAPLE DFTPE BD Ring Low Priority A 1 Parameter MDFBRLPA1P MSC8156 Reference Manual, Rev. 2 9-10 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFED001CC– 0xFED001CF MAPLE DFTPE BD Ring Low Priority B 1 Parameter MDFBRLPB1P − 0xFED001D0– 0xFED001D3 MAPLE DFTPE BD Ring Low Priority A 2 Parameter MDFBRLPA2P − 0xFED001D4– 0xFED001D7 MAPLE DFTPE BD Ring Low Priority B 2 Parameter MDFBRLPB2P − 0xFED001D8– 0xFED001DB MAPLE DFTPE BD Ring Low Priority A 3 Parameter MDFBRLPA3P − 0xFED001DC– 0xFED001DF MAPLE DFTPE BD Ring Low Priority B 3 Parameter MDFBRLPB3P − 0xFED001E0– 0xFED001E3 MAPLE DFTPE BD Ring Low Priority A 4 Parameter MDFBRLPA4P − 0xFED001E4– 0xFED001E7 MAPLE DFTPE BD Ring Low Priority B 4 Parameter MDFBRLPB4P − 0xFED001E8– 0xFED001EB MAPLE DFTPE BD Ring Low Priority A 5 Parameter MDFBRLPA5P − 0xFED001EC– 0xFED001EF MAPLE DFTPE BD Ring Low Priority B 5 Parameter MDFBRLPB5P − 0xFED001F0– 0xFED001F3 MAPLE DFTPE BD Ring Low Priority A 6 Parameter MDFBRLPA6P − 0xFED001F4– 0xFED001F7 MAPLE DFTPE BD Ring Low Priority B 6 Parameter MDFBRLPB6P − 0xFED001F8– 0xFED001FB MAPLE DFTPE BD Ring Low Priority A 7 Parameter MDFBRLPA7P − 0xFED001FC– 0xFED001FF MAPLE DFTPE BD Ring Low Priority B 7 Parameter MDFBRLPB7P − 0xFED00200– 0xFED00203 MAPLE CRCPE BD Ring High Priority A 0 Parameter MCRCBRHPA0P − 0xFED00204– 0xFED00207 MAPLE CRCPE BD Ring High Priority B 0 Parameter MCRCBRHPB0P − 0xFED00208– 0xFED0020B MAPLE CRCPE BD Ring High Priority A 1 Parameter MCRCBRHPA1P − 0xFED0020C– 0xFED0020F MAPLE CRCPE BD Ring High Priority B 1 Parameter MCRCBRHPB1P − 0xFED00210– 0xFED00213 MAPLE CRCPE BD Ring High Priority A 2 Parameter MCRCBRHPA2P − 0xFED00214– 0xFED00217 MAPLE CRCPE BD Ring High Priority B 2 Parameter MCRCBRHPB2P − 0xFED00218– 0xFED0021B MAPLE CRCPE BD Ring High Priority A 3 Parameter MCRCBRHPA3P − 0xFED0021C– 0xFED0021F MAPLE CRCPE BD Ring High Priority B 3 Parameter MCRCBRHPB3P − 0xFED00220– 0xFED00223 MAPLE CRCPE BD Ring High Priority A 4 Parameter MCRCBRHPA4P − 0xFED00224– 0xFED00227 MAPLE CRCPE BD Ring High Priority B 4 Parameter MCRCBRHPB4P − 0xFED00228– 0xFED0022B MAPLE CRCPE BD Ring High Priority A 5 Parameter MCRCBRHPA5P MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-11 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFED0022C– 0xFED0022F MAPLE CRCPE BD Ring High Priority B 5 Parameter MCRCBRHPB5P − 0xFED00230– 0xFED00233 MAPLE CRCPE BD Ring High Priority A 6 Parameter MCRCBRHPA6P − 0xFED00234– 0xFED00237 MAPLE CRCPE BD Ring High Priority B 6 Parameter MCRCBRHPB6P − 0xFED00238– 0xFED0023B MAPLE CRCPE BD Ring High Priority A 7 Parameter MCRCBRHPA7P − 0xFED0023C– 0xFED0023F MAPLE CRCPE BD Ring High Priority B 7 Parameter MCRCBRHPB7P − 0xFED00240– 0xFED00243 MAPLE CRCPE BD Ring Low Priority A 0 Parameter MCRCBRLPA0P − 0xFED00244– 0xFED00247 MAPLE CRCPE BD Ring Low Priority B 0 Parameter MCRCBRLPB0P − 0xFED00248– 0xFED0024B MAPLE CRCPE BD Ring Low Priority A 1 Parameter MCRCBRLPA1P − 0xFED0024C– 0xFED0024F MAPLE CRCPE BD Ring Low Priority B 1 Parameter MCRCBRLPB1P − 0xFED00250– 0xFED00253 MAPLE CRCPE BD Ring Low Priority A 2 Parameter MCRCBRLPA2P − 0xFED00254– 0xFED00257 MAPLE CRCPE BD Ring Low Priority B 2 Parameter MCRCBRLPB2P − 0xFED00258– 0xFED0025B MAPLE CRCPE BD Ring Low Priority A 3 Parameter MCRCBRLPA3P − 0xFED0025C– 0xFED0025F MAPLE CRCPE BD Ring Low Priority B 3 Parameter MCRCBRLPB3P − 0xFED00260– 0xFED00263 MAPLE CRCPE BD Ring Low Priority A 4 Parameter MCRCBRLPA4P − 0xFED00264– 0xFED00267 MAPLE CRCPE BD Ring Low Priority B 4 Parameter MCRCBRLPB4P − 0xFED00268– 0xFED0026B MAPLE CRCPE BD Ring Low Priority A 5 Parameter MCRCBRLPA5P − 0xFED0026C– 0xFED0026F MAPLE CRCPE BD Ring Low Priority B 5 Parameter MCRCBRLPB5P − 0xFED00270– 0xFED00273 MAPLE CRCPE BD Ring Low Priority A 6 Parameter MCRCBRLPA6P − 0xFED00274– 0xFED00277 MAPLE CRCPE BD Ring Low Priority B 6 Parameter MCRCBRLPB6P − 0xFED00278– 0xFED0027B MAPLE CRCPE BD Ring Low Priority A 7 Parameter MCRCBRLPA7P − 0xFED0027C– 0xFED0027F MAPLE CRCPE BD Ring Low Priority B 7 Parameter MCRCBRLPB7P − 0xFED00280– 0xFED002FF reserved − 0xFED00300– 0xFED00303 MAPLE Turbo Stop Criteria Configuration Parameter − 0xFED00304– 0xFED0037F reserved MTSCCP MSC8156 Reference Manual, Rev. 2 9-12 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFED00380– 0xFED00383 MAPLE Turbo Viterbi Puncturing Vector 0 High Configuration Parameter MTVPV0HCP − 0xFED00384– 0xFED00387 MAPLE Turbo Viterbi Puncturing Vector 0 Low Configuration Parameter MTVPV0LCP − 0xFED00388– 0xFED0038B MAPLE Turbo Viterbi Puncturing Vector 1 High Configuration Parameter MTVPV1HCP − 0xFED0038C– 0xFED0038F MAPLE Turbo Viterbi Puncturing Vector 1 Low Configuration Parameter MTVPV1LCP − 0xFED00390– 0xFED00393 MAPLE Turbo Viterbi Puncturing Vector 2 High Configuration Parameter MTVPV2HCP − 0xFED00394– 0xFED00397 MAPLE Turbo Viterbi Puncturing Vector 2 Low Configuration Parameter MTVPV2LCP − 0xFED00398– 0xFED0039B MAPLE Turbo Viterbi Puncturing Vector 3 High Configuration Parameter MTVPV3HCP − 0xFED0039C– 0xFED0039F MAPLE Turbo Viterbi Puncturing Vector 3 Low Configuration Parameter MTVPV3LCP − 0xFED003A0– 0xFED003A3 MAPLE Turbo Viterbi Puncturing Vector 4 High Configuration Parameter MTVPV4HCP − 0xFED003A4– 0xFED003A7 MAPLE Turbo Viterbi Puncturing Vector 4 Low Configuration Parameter MTVPV4LCP − 0xFED003A8– 0xFED003AB MAPLE Turbo Viterbi Puncturing Vector 5 High Configuration Parameter MTVPV5HCP − 0xFED003AC– 0xFED003AF MAPLE Turbo Viterbi Puncturing Vector 5 Low Configuration Parameter MTVPV5LCP − 0xFED003B0– 0xFED003B3 MAPLE Turbo Viterbi Puncturing Vector 6 High Configuration Parameter MTVPV6HCP − 0xFED003B4– 0xFED003B7 MAPLE Turbo Viterbi Puncturing Vector 6 Low Configuration Parameter MTVPV6LCP − 0xFED003B8– 0xFED003BB MAPLE Turbo Viterbi Puncturing Vector 7 High Configuration Parameter MTVPV7HCP − 0xFED003BC– 0xFED003BF MAPLE Turbo Viterbi Puncturing Vector 7 Low Configuration Parameter MTVPV7LCP − 0xFED003C0– 0xFED003C3 MAPLE Turbo Viterbi Puncturing Vector 8 High Configuration Parameter MTVPV8HCP − 0xFED003C4– 0xFED003C7 MAPLE Turbo Viterbi Puncturing Vector 8 Low Configuration Parameter MTVPV8LCP − 0xFED003C8– 0xFED003CB MAPLE Turbo Viterbi Puncturing Vector 9 High Configuration Parameter MTVPV9HCP − 0xFED003CC– 0xFED003CF MAPLE Turbo Viterbi Puncturing Vector 9 Low Configuration Parameter MTVPV9LCP − 0xFED003D0– 0xFED003D3 MAPLE Turbo Viterbi Puncturing Period Configuration 0 Parameter MTVPPC0P − 0xFED003D4– 0xFED003D7 MAPLE Turbo Viterbi Puncturing Period Configuration 1 Parameter MTVPPC1P − 0xFED003D8– 0xFED003DB MAPLE Turbo Viterbi Puncturing Period Configuration 2 Parameter MTVPPC2P − 0xFED003DC– 0xFED003DF reserved MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-13 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFED003E0– 0xFED003E3 MAPLE Turbo Viterbi Polynomial Vector Set 0 Configuration 0 Parameter MTVPVS0C0P − 0xFED003E4– 0xFED003E7 MAPLE Turbo Viterbi Polynomial Vector Set 0 Configuration 1 Parameter MTVPVS0C1P − 0xFED003E8– 0xFED003EB MAPLE Turbo Viterbi Polynomial Vector Set 1 Configuration 0 Parameter MTVPVS1C0P − 0xFED003EC– 0xFED003EF MAPLE Turbo Viterbi Polynomial Vector Set 1 Configuration 1 Parameter MTVPVS1C1P − 0xFED003F0– 0xFED003F3 MAPLE Turbo Viterbi Polynomial Vector Set 2 Configuration 0 Parameter MTVPVS2C0P − 0xFED003F4– 0xFED003F7 MAPLE Turbo Viterbi Polynomial Vector Set 2 Configuration 1 Parameter MTVPVS2C1P − 0xFED003F8– 0xFED0043F reserved − 0xFED00440– 0xFED00443 MAPLE-B Turbo Total Performance Parameter MTTPP − 0xFED00444– 0xFED00447 MAPLE-B Viterbi Total Performance Parameter MVTPP − 0xFED00448– 0xFED0044B MAPLE-B Total BLER Parameter MTBP − 0xFED0044C– 0xFED0044F MAPLE-B TVPE Turbo BDs Counter Parameter MTBDCP − 0xFED00450– 0xFED00453 MAPLE-B FFT Total Performance Parameter MFTPP − 0xFED00454– 0xFED00457 MAPLE-B FFTPE BDs Counter Parameter MFBDCP − 0xFED00458– 0xFED0045B MAPLE-B DFT Total Performance Parameter MDTPP − 0xFED0045C– 0xFED0045F MAPLE-B DFTPE BDs Counter Parameter MDBDCP − 0xFED00460– 0xFED00463 MAPLE-B Profiling Enable Parameter MPEP − 0xFED00464– 0xFED0047F reserved − 0xFED00480– 0xFED00483 Serial RapidIO Outbound RapidIO Doorbell Port0 Base Address Parameter SORDP0BAP − 0xFED00484– 0xFED00487 Serial RapidIO Outbound RapidIO Doorbell Port1 Base Address Parameter SORDP1BAP − 0xFED00488– 0xFED0048B Hardware Semaphore Port0 Base Address Parameter HSP0BAP − 0xFED0048C– 0xFED0048F Hardware Semaphore Port1 Base Address Parameter HSP1BAP − 0xFED00490– 0xFED00493 MAPLE-B Doorbell Hardware Semaphore ID Configuration Parameter MDHSIDCP − 0xFED00494– 0xFED00497 MAPLE-B Doorbell General Configuration Parameter MDGCP − 0xFED00498– 0xFED004FF reserved MSC8156 Reference Manual, Rev. 2 9-14 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFED00500– 0xFED03FFF reserved − 0xFED04000– 0xFED06FFF Buffer Descriptor (BD) Rings − 0xFED07000– 0xFED1FFFF reserved − 0xFED20000– 0xFED3FFFF reserved − 0xFED40000– 0xFED5FFFF TVPE − 0xFED40000– 0xFED5DFFF reserved − 0xFED5E000 TVPE Configuration 0 Register − 0xFED5E004 reserved − 0xFED5E008 TVPE Symbol Identification 0 Configuration Register Acronym TVPEC0R TVSI0CR − 0xFED5E00C TVPE Symbol Identification 1 Configuration Register TVSI1CR − 0xFED5E010– 0xFED5E023 TVPE Turbo Tail Symbol Identification X Configuration Register TVTTSIxCR − 0xFED5E024– 0xFED5E03B reserved − 0xFED5E03C TVPE Aposteriori Quality Configuration Register TVAQCR − 0xFED5E040 Viterbi Polynomial Vector Generation 0 Configuration Register TVVPVG0CR − 0xFED5E044 TVPE Viterbi Polynomial Vector Generation 1 Configuration Register TVVPVG1CR − 0xFED5E048– 0xFED5ECFF reserved − 0xFED5ED00 TVPE Decoder Status Register − 0xFED5ED10– 0xFED5FFFF reserved − 0xFED60000– 0xFED7FFFF FFTPE − 0xFED60000– 0xFED67FFF reserved − 0xFED68000– 0xFED69FFF Pre-Multiplication Memory − 0xFED6A000– 0xFED7E13F reserved − 0xFED7E140– 0xFED7E148 FFTPE Data Size Registers − 0xFED7E149– 0xFED7E237 reserved − 0xFED7E238 FFTPE Status Register FFTPESTR − 0xFED7E23C FFTPE Scaling Status Register FFTPESCLSTR − 0xFED7E240 FFTPE Saturation Status Register 0 FFTPESSTR0 − 0xFED7E244 FFTPE Saturation Status Register 1 FFTPESSTR1 − 0xFED7E248 FFTPE Saturation Status Register 2 FFTPESSTR2 TVPESR FFTPEDSRx MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-15 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFED7E24C– 0xFED7FFFF reserved − 0xFED80000– 0xFED9FFFF DFTPE − 0xFED80000– 0xFED87FFF reserved − 0xFED88000– 0xFED89FFF Pre-Multiplication Memory − 0xFED8A000– 0xFED9E13F reserved − 0xFED9E140– 0xFED9E147 DFTPE Data Size Registers − 0xFED9E148– 0xFED9E237 reserved − 0xFED9E238 DFTPE Status Register DFTPESTR − 0xFED9E23C DFTPE Scaling Status Register DFTPESCLSTR − 0xFED9E240 DFTPE Saturation Status Register 0 DFTPESSTR0 − 0xFED9E244 DFTPE Saturation Status Register 1 DFTPESSTR1 − 0xFED9E248 DFTPE Saturation Status Register 2 DFTPESSTR2 − 0xFED9E24C DFTPE Saturation Status Register 3 DFTPESSTR3 − 0xFED9E250– 0xFED9FFFF reserved − 0xFEDA0000– 0xFEDFFFFF reserved • 0xFEE00000– 0xFEE3FFFF DFTPEDSRx QUICC Engine Subsystem. See QUICC Engine™ Block Reference Manual with Protocol Interworking (QEIWRM) for register details. − 0xFEE00000 IRAM Address Register IADD − 0xFEE00004 IRAM Data Register IDATA − 0xFEE00008– 0xFEE0007F reserved − 0xFEE00080 QUICC Engine Interrupt Configuration Register CICR − 0xFEE00084 QUICC Engine System Interrupt Vector Register CIVEC − 0xFEE00088 QUICC Engine Interrupt Pending Register CRIPNR − 0xFEE0008C QUICC Engine System Interrupt Pending Register CIPNR − 0xFEE00090 QUICC Engine Interrupt Priority Register (XCC) CIPXCC − 0xFEE00094– 0xFEE00097 reserved − 0xFEE00098 QUICC Engine Interrupt Priority Register (WCC) CIPWCC − 0xFEE0009C QUICC Engine Interrupt Priority Register (ZCC) CIPZCC − 0xFEE000A0 QUICC Engine System Interrupt Mask Register CIMR − 0xFEE000A4 QUICC Engine RISC Interrupt Mask Register CRIMR − 0xFEE000A8 QUICC Engine System Interrupt Control Register CICNR − 0xFEE000AC– 0xFEE000AF reserved MSC8156 Reference Manual, Rev. 2 9-16 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFEE000B0 QUICC Engine System Interrupt Priority Register for RISC Tasks CIPRTA A − 0xFEE000B4– 0xFEE000BB reserved − 0xFEE000BC QUICC Engine System RISC Interrupt Control Register − 0xFEE000C0– 0xFEE000DF reserved CRICR − 0xFEE000E0 QUICC Engine High System Interrupt Vector Register − 0xFEE000E4– 0xFEE000FF reserved − 0xFEE00100 QUICC Engine Command Register − 0xFEE00104– 0xFEE00107 reserved − 0xFEE00108 QUICC Engine Command Data Register − 0xFEE0010C– 0xFEE0011B reserved − 0xFEE0011C QUICC Engine Time-Stamp Control Register − 0xFEE00120– 0xFEE0012F reserved − 0xFEE00130 QUICC Engine Virtual Task Event Register CEVTER − 0xFEE00134 QUICC Engine Virtual Task Mask Register CEVTMR − 0xFEE00138 QUICC Engine RAM Control Register CERCR − 0xFEE0013C– 0xFEE001B7 reserved − 0xFEE001B8 QUICC Engine Microcode Revision Number Register − 0xFEE001BC– 0xFEE003FF reserved − 0xFEE00400 CMX General Clock Route Register − 0xFEE00404– 0xFEE0040F reserved − 0xFEE00410 CMX Clock Route Register 1 − 0xFEE00414– 0xFEE004DF Reserved − 0xFEE004E0 SPI Mode Register SPIMODE − 0xFEE004E4 SPI Event Register SPIE − 0xFEE004E8 SPI Mask Register SPIM − 0xFEE004EC SPI Command Register SPCOM − 0xFEE004F0– 0xFEE0064F Reserved − 0xFEE00650 Baud-Rate Generator Configuration Register 5 BRGCR5 − 0xFEE00654 Baud-Rate Generator Configuration Register 6 BRGCR6 − 0xFEE00658 Baud-Rate Generator Configuration Register 7 BRGCR7 − 0xFEE0065C Baud-Rate Generator Configuration Register 8 BRGCR8 − 0xFEE00660– 0xFEE01FFF reserved CHIVEC CECR CECDR CETSCR CEURNR CMXGCR CMXUCR1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-17 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFEE02000 UCC 1 Mode Register GUMR1 − 0xFEE02004 UCC 1 Protocol Specific Mode Register UPSMR1 − 0xFEE02008 UCC 1 Transmit-on-Demand Register UTODR1 − 0xFEE0200A– 0xFEE0200F reserved − 0xFEE02010 UCC 1 Event Register UCCE1 − 0xFEE02014 UCC 1 Mask Register UCCM1 − 0xFEE02018 UCC 1 Ethernet Transmitter Status Register UCCS1 − 0xFEE02019– 0xFEE0201F reserved − 0xFEE02020 UCC 1 Receive FIFO Base URFB1 − 0xFEE02024 UCC 1 Receive FIFO Size URFS1 − 0xFEE02026– 0xFEE02027 reserved − 0xFEE02028 UCC 1 Receive FIFO Emergency Threshold URFET1 − 0xFEE0202A UCC 1 Receive FIFO Special Emergency Threshold URFSET1 − 0xFEE0202C UCC 1 Transmit FIFO Base UTFB1 − 0xFEE02030 UCC 1 Transmit FIFO Size UTFS1 − 0xFEE02032– 0xFEE02033 reserved − 0xFEE02034 UCC 1 Transmit FIFO Emergency Threshold − 0xFEE02036– 0xFEE02037 reserved − 0xFEE02038 UCC 1 Transmit FIFO Transmit Threshold − 0xFEE0203A– 0xFEE0203B reserved − 0xFEE0203C UCC 1 Transmit Polling Timer − 0xFEE0203E– 0xFEE0203F reserved − 0xFEE02040 UCC 1 Retry Counter Register − 0xFEE02044– 0xFEE0208F reserved − 0xFEE02090 UCC 1 General Extended Mode Register − 0xFEE02094– 0xFEE020FF reserved − 0xFEE02100 Ethernet 1 MAC Configuration Register 1 UTFET1 UTFTT1 UFPT1 URTRY1 GUEMR1 E1MACCFG1 − 0xFEE02104 Ethernet 1 MAC Configuration Register 2 E1MACCFG2 − 0xFEE02108 Ethernet 1 Interframe Gap Register E1IPGFG − 0xFEE0210A– 0xFEE0210B reserved − 0xFEE0210C Ethernet 1 Half-Duplex Register − 0xFEE02110– 0xFEE0211F reserved − 0xFEE02120 Ethernet 1 MII Management Configuration Register MIIMCFG1 − 0xFEE02124 Ethernet 1 MII Management Command Register MIIMCOM1 HAFDUP1 MSC8156 Reference Manual, Rev. 2 9-18 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFEE02128 Ethernet 1 MII Management Address Register MIIMADD1 − 0xFEE0212C Ethernet 1 MII Management Control Register MIIMCON1 − 0xFEE02130 Ethernet 1 MII Management Status Register MIIMSTAT1 − 0xFEE02134 Ethernet 1 MII Management Indication Register MIIMIND1 − 0xFEE0213C Ethernet 1 Interface Status Register IFSTAT1 − 0xFEE02140 Ethernet 1 Station Address Pt. 1 Register E1MACSTNADDDR1 − 0xFEE02144 Ethernet 1 Station Address Pt. 2 Register E1MACSTNADDR2 − 0xFEE02148– 0xFEE0214F reserved − 0xFEE02150 Ethernet 1 MAC Parameter Register UEMPR1 − 0xFEE02154 Ethernet 1 Ten-Bit Interface Physical Address Register UTBIPAR1 − 0xFEE02158 Ethernet 1 Statistical Control Register UESCR1 − 0xFEE0215C– 0xFEE0217F reserved − 0xFEE02180 Ethernet 1 Tx 64-byte Frames E1TX64 − 0xFEE02184 Ethernet 1 Tx 65- to 127-byte Frames E1TX127 − 0xFEE02188 Ethernet 1 Tx 128- to 255-byte Frames E1TX255 − 0xFEE0218C Ethernet 1 Rx 64-byte Frames E1RX64 − 0xFEE02190 Ethernet 1 Rx 65- to 127-byte Frames E1RX127 − 0xFEE02194 Ethernet 1 Rx 128- to 255-byte Frames E1RX255 − 0xFEE02198 Ethernet 1 Octet Transmitted OK E1TXOK − 0xFEE0219C Ethernet 1 Tx Pause Frames E1TXCF − 0xFEE021A0 Ethernet 1 Multicast Frame Transmitted OK E1TMCA − 0xFEE021A4 Ethernet 1 Broadcast Frames Transmitted OK E1TBCA − 0xFEE021A8 Ethernet 1 Number of Frames Received OK E1RXFOK − 0xFEE021AC Ethernet 1 Rx Octets OK E1RBYT − 0xFEE021B0 Ethernet 1 Rx Octets E1RXBOK − 0xFEE021B4 Ethernet 1 Multicast Frame Received OK E1RMCA − 0xFEE021B8 Ethernet 1 Broadcast Frames Received OK E1RBCA − 0xFEE021BC Ethernet 1 Statistic Counters Carry Register E1SCAR − 0xFEE021C0 Ethernet 1 Statistic Counters Carry Mask Register E1SCAM − 0xFEE021C4– 0xFEE021FF reserved − 0xFEE02200 UCC 3 General Mode Register GUMR3 − 0xFEE02204 UCC 3 Protocol Specific Mode Register UPSMR3 − 0xFEE02208 UCC 3 Transmit-on-Demand Register UTODR3 − 0xFEE0220A– 0xFEE0220F reserved − 0xFEE02210 UCC 3 Event Register UCCE3 − 0xFEE02214 UCC 3 Mask Registers UCCM3 − 0xFEE02218 UCC 3 Status Register UCCS3 − 0xFEE02219– 0xFEE0221F reserved MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-19 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFEE02220 UCC 3 Receive FIFO Base URFB3 − 0xFEE02224 UCC 3 Receive FIFO Size URFS3 − 0xFEE02226– 0xFEE02227 reserved − 0xFEE02228 UCC 3 Receive FIFO Emergency Threshold URFET3 − 0xFEE0222A UCC 3 Receive FIFO Special Emergency Threshold URFSET3 − 0xFEE0222C UCC 3 Transmit FIFO Base UTFB3 − 0xFEE02230 UCC 3 Transmit FIFO Size UTFS3 − 0xFEE02232– 0xFEE02233 reserved − 0xFEE02234 UCC 3 Transmit FIFO Emergency Threshold − 0xFEE02236– 0xFEE02237 reserved − 0xFEE02238 UCC 3 Transmit FIFO Transmit Threshold − 0xFEE0223A– 0xFEE0223B reserved − 0xFEE0223C UCC 3 Transmit Polling Timer − 0xFEE0223E– 0xFEE0223F reserved − 0xFEE02240 UCC 3 Retry Counter − 0xFEE02244– 0xFEE0228F reserved − 0xFEE02290 UCC 3 General Extended Mode Register − 0xFEE02294– 0xFEE022FF reserved − 0xFEE02300 Ethernet 2 MAC Configuration Register 1 E2MACCFG1 − 0xFEE02304 Ethernet 2 MAC Configuration Register 2 E2MACCFG2 − 0xFEE02308 Ethernet 2 Interframe Gap Register E2IPGIFG − 0xFEE0230A– 0xFEE0230B reserved − 0xFEE0230C Ethernet 2 Half-Duplex Register − 0xFEE02310– 0xFEE0231F reserved − 0xFEE02320 Ethernet 2 MII Management Configuration Register MIIMCFG3 − 0xFEE02324 Ethernet 2 MII Management Command Register MIIMCOM3 − 0xFEE02328 Ethernet 2 MII Management Address Register MIIMADD3 UTFET3 UTFTT3 UFPT3 URTRY3 GUEMR3 HAFDUP3 − 0xFEE0232C Ethernet 2 MII Management Control Register MIIMCON3 − 0xFEE02330 Ethernet 2 MII Management Status Register MIIMSTAT3 − 0xFEE02334 Ethernet 2 MII Management Indication Register MIIMIND3 − 0xFEE02338– 0xFEE0233B reserved − 0xFEE0233C Ethernet 2 Interface Status Register IFSTAT3 − 0xFEE02340 Ethernet 2 Station Address Pt. 1 Register E2MACSTNADDR1 − 0xFEE02344 Ethernet 2 Station Address Pt. 2 Register E2MACSTNADDR2 MSC8156 Reference Manual, Rev. 2 9-20 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFEE02348– 0xFEE0234F reserved − 0xFEE02350 Ethernet 2 Ethernet MAC Parameter Register UEMPR3 − 0xFEE02354 Ethernet 2 Ten-Bit Interface Physical Address Register TBIPAR3 − 0xFEE02358 Ethernet 2 Ethernet Statistical Control Register UESCR3 − 0xFEE0235C– 0xFEE0237F reserved − 0xFEE02380 Ethernet 2 Tx 64-byte Frames − 0xFEE02384 Ethernet 2 Tx 65- to 127-byte Frames E2TX127 − 0xFEE02388 Ethernet 2 Tx 128- to 255-byte Frames E2TX255 − 0xFEE0238C Ethernet 2 Rx 64-byte Frames E2RX64 − 0xFEE02390 Ethernet 2 Rx 65- to 127-byte Frames E2RX127 − 0xFEE02394 Ethernet 2 Rx 128- to 255-byte Frames E2RX255 − 0xFEE02398 Ethernet 2 Octet Transmitted OK E2TXOK − 0xFEE0239C Ethernet 2 Tx Pause Frames E2TXCF − 0xFEE023A0 Ethernet 2 Multicast Frame Transmitted OK E2TMCA E2TX64 − 0xFEE023A4 Ethernet 2 Broadcast Frames Transmitted OK E2TBCA − 0xFEE023A8 Ethernet 2 Number of Frames Received OK E2RXFOK − 0xFEE023AC Ethernet 2 Rx Octets OK E2RBYT − 0xFEE023B0 Ethernet 2 Rx Octets E2RXBOK − 0xFEE023B4 Ethernet 2 Multicast Frame Received OK E2RMCA − 0xFEE023B8 Ethernet 2 Broadcast Frames Received OK E2RBCA − 0xFEE023BC Ethernet 2 Statistic Counters Carry Register E2SCAR − 0xFEE023C0 Ethernet 2 Statistic Counters Carry Mask Register E2SCAM − 0xFEE023C4– 0xFEE021FF reserved − 0xFEE04000 Serial DMA Status Register SDSR − 0xFEE04004 Serial DMA Mode Register SDMR − 0xFEE04008 Serial DMA Threshold Register SDTR − 0xFEE0400C– 0xFEE0400F reserved − 0xFEE04010 Serial DMA Hysteresis Register − 0xFEE04014– 0xFEE04017 reserved − 0xFEE04018 Serial DMA Address Register − 0xFEE0401C– 0xFEE0401F reserved − 0xFEE04020 Serial DMA MSNUM Register − 0xFEE04024– 0xFEE04037 reserved − 0xFEE04038 Serial DMA Address Qualify Register SDAQR − 0xFEE0403C Serial DMA Address Qualify Mask Register SDAQMR − 0xFEE04040– 0xFEE04043 reserved SDHY SDTA SDTM MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-21 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFEE04044 Serial DMA Temporary Buffer Base in Multi-User RAM Value − 0xFEE04048– 0xFEE07FFF reserved − 0xFEE08000– 0xFEE0FFFF RAM space reserved − 0xFEE10000– 0xFEE1BFFF Multi-User RAM − 0xFEE1C000– 0xFEE3FFFF reserved Acronym SDEBCR • 0xFEE40000– 0xFEEFFFFF reserved (for QUICC Engine subsystem) • 0xFEF00000– 0xFEF17FFF Boot ROM • 0xFEF18000– 0xFEFFFFFF reserved 0xFF000000– 0xFFF0FFFF DSP core subsystem internal memory space. See the MSC8156 SC3850 DSP Core Subsystem Reference Manual for details. 0xFFF10000– 0xFFFFEFFF CCSR • 0xFFF10000– 0xFFF103FF DMA − 0xFFF10000 DMA Buffer Descriptor Base Register 0 DMABDBR0 − 0xFFF10004 DMA Buffer Descriptor Base Register 1 DMABDBR1 − 0xFFF10008 DMA Buffer Descriptor Base Register 2 DMABDBR2 − 0xFFF1000C DMA Buffer Descriptor Base Register 3 DMABDBR3 − 0xFFF10010 DMA Buffer Descriptor Base Register 4 DMABDBR4 − 0xFFF10014 DMA Buffer Descriptor Base Register 5 DMABDBR5 − 0xFFF10018 DMA Buffer Descriptor Base Register 6 DMABDBR6 − 0xFFF1001C DMA Buffer Descriptor Base Register 7 DMABDBR7 − 0xFFF10020 DMA Buffer Descriptor Base Register 8 DMABDBR8 − 0xFFF10024 DMA Buffer Descriptor Base Register 9 DMABDBR9 − 0xFFF10028 DMA Buffer Descriptor Base Register 10 DMABDBR10 − 0xFFF1002C DMA Buffer Descriptor Base Register 11 DMABDBR11 − 0xFFF10030 DMA Buffer Descriptor Base Register 12 DMABDBR12 − 0xFFF10034 DMA Buffer Descriptor Base Register 13 DMABDBR13 − 0xFFF10038 DMA Buffer Descriptor Base Register 14 DMABDBR14 − 0xFFF1003C DMA Buffer Descriptor Base Register 15 DMABDBR15 − 0xFFF10040– 0xFFF100FF Reserved − 0xFFF10100 DMA Channel Configuration Register 0 DMACHCR0 − 0xFFF10104 DMA Channel Configuration Register 1 DMACHCR1 − 0xFFF10108 DMA Channel Configuration Register 2 DMACHCR2 − 0xFFF1010C DMA Channel Configuration Register 3 DMACHCR3 − 0xFFF10110 DMA Channel Configuration Register 4 DMACHCR4 − 0xFFF10114 DMA Channel Configuration Register 5 DMACHCR5 MSC8156 Reference Manual, Rev. 2 9-22 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF10118 DMA Channel Configuration Register 6 DMACHCR6 − 0xFFF1011C DMA Channel Configuration Register 7 DMACHCR7 − 0xFFF10120 DMA Channel Configuration Register 8 DMACHCR8 − 0xFFF10124 DMA Channel Configuration Register 9 DMACHCR9 − 0xFFF10128 DMA Channel Configuration Register 10 DMACHCR10 − 0xFFF1012C DMA Channel Configuration Register 11 DMACHCR11 − 0xFFF10130 DMA Channel Configuration Register 12 DMACHCR12 − 0xFFF10134 DMA Channel Configuration Register 13 DMACHCR13 − 0xFFF10138 DMA Channel Configuration Register 14 DMACHCR14 − 0xFFF1013C DMA Channel Configuration Register 15 DMACHCR15 − 0xFFF10140– 0xFFF101FF Reserved − 0xFFF10200 DMA Global Configuration Register DMAGCR − 0xFFF10204 DMA Channel Enable Register DMACHER − 0xFFF10208– 0xFFF1020B Reserved − 0xFFF1020C DMA Channel Disable Register − 0xFFF10210– 0xFFF10213 Reserved − 0xFFF10214 DMA Channel Freeze Register − 0xFFF10218– 0xFFF10223 Reserved − 0xFFF10224 DMA Channel Defrost Register − 0xFFF10228– 0xFFF10233 Reserved − 0xFFF10234 DMA Time-To-Deadline Register 0 DMAEDFTDL0 − 0xFFF10238 DMA Time-To-Deadline Register 1 DMAEDFTDL1 − 0xFFF1023C DMA Time-To-Deadline Register 2 DMAEDFTDL2 − 0xFFF10240 DMA Time-To-Deadline Register 3 DMAEDFTDL3 − 0xFFF10244 DMA Time-To-Deadline Register 4 DMAEDFTDL4 − 0xFFF10248 DMA Time-To-Deadline Register 5 DMAEDFTDL5 − 0xFFF1024C DMA Time-To-Deadline Register 6 DMAEDFTDL6 − 0xFFF10250 DMA Time-To-Deadline Register 7 DMAEDFTDL7 − 0xFFF10254 DMA Time-To-Deadline Register 8 DMAEDFTDL8 − 0xFFF10258 DMA Time-To-Deadline Register 9 DMAEDFTDL9 − 0xFFF1025C DMA Time-To-Deadline Register 10 DMAEDFTDL10 DMACHDR DMACHFR DMACHDFR − 0xFFF10260 DMA Time-To-Deadline Register 11 DMAEDFTDL11 − 0xFFF10264 DMA Time-To-Deadline Register 12 DMAEDFTDL12 − 0xFFF10268 DMA Time-To-Deadline Register 13 DMAEDFTDL13 − 0xFFF1026C DMA Time-To-Deadline Register 14 DMAEDFTDL14 − 0xFFF10270 DMA Time-To-Deadline Register 15 DMAEDFTDL15 − 0xFFF10274– 0xFFF10333 Reserved MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-23 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF10334 DMA EDF Control Register DMAEDFCTRL − 0xFFF10338 DMA EDF Mask Register DMAEDFMR − 0xFFF1033C– 0xFFF1033f Reserved − 0xFFF10340 DMA EDF Mask Update Register DMAEDFMUR − 0xFFF10344 DMA EDF Status Register DMAEDFSTR − 0xFFF10348– 0xFFF1034B Reserved − 0xFFF1034C DMA Mask Register − 0xFFF10350– 0xFFF1035B Reserved DMAMR − 0xFFF1035C DMA Mask Update Register DMAMUR − 0xFFF10360 DMA Status Register DMASTR − 0xFFF10364– 0xFFF1036F Reserved − 0xFFF10370 DMA Error Register DMAERR − 0xFFF10374 DMA Debug Event Status Register DMADESR − 0xFFF10378 DMA Local Profiling Configuration Register DMALPCR − 0xFFF1037C DMA Round Robin Priority Group Update Register DMARRPGUR − 0xFFF10380 DMA Channel Active Status Register DMACHASTR − 0xFFF10384– 0xFFF10387 Reserved − 0xFFF10388 DMA Channel Freeze Status Register − 0xFFF1038C– 0xFFF103FF reserved • 0xFFF10400– 0xFFF17FFF reserved • 0xFFF18000– 0xFFF18FFF CLASS − 0xFFF18000– 0xFFF1801F Reserved − 0xFFF18020 CLASS MBus Target Configuration Register 1 − 0xFFF18024– 0xFFF1803F Reserved − 0xFFF18040 CLASS MBus Target Configuration Register 2 − 0xFFF18044– 0xFFF1805F Reserved − 0xFFF18060 CLASS MBus Target Configuration Register 3 − 0xFFF18064– 0xFFF1807F Reserved − 0xFFF18080 CLASS MBus Target Configuration Register 4 − 0xFFF18084– 0xFFF1808F Reserved − 0xFFF18090 CLASS MBus Target Configuration Register 5 DMACHFSTR C0MTCR1 C0MTCR2 C0MTCR3 C0MTCR4 C0MTCR5 MSC8156 Reference Manual, Rev. 2 9-24 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF18094– 0xFFF1809F Reserved − 0xFFF180A0 CLASS MBus Target Configuration Register 6 − 0xFFF180A4– 0xFFF180AF Reserved − 0xFFF180B0 CLASS MBus Target Configuration Register 7 − 0xFFF180B4– 0xFFF187FF Reserved − 0xFFF18800 CLASS Priority Mapping Register 0 C0PMR0 − 0xFFF18804 CLASS Priority Mapping Register 1 C0PMR1 − 0xFFF18808 CLASS Priority Mapping Register 2 C0PMR2 − 0xFFF1880C CLASS Priority Mapping Register 3 C0PMR3 − 0xFFF18810 CLASS Priority Mapping Register 4 C0PMR4 − 0xFFF18814 CLASS Priority Mapping Register 5 C0PMR5 − 0xFFF18818 CLASS Priority Mapping Register 6 C0PMR6 − 0xFFF1881C CLASS Priority Mapping Register 7 C0PMR7 − 0xFFF18820 CLASS Priority Mapping Register 8 C0PMR8 − 0xFFF18824 CLASS Priority Mapping Register 9 C0PMR9 − 0xFFF18828 CLASS Priority Mapping Register 10 C0PMR10 − 0xFFF1882C CLASS Priority Mapping Register 11 C0PMR11 − 0xFFF18830– 0xFFF1883F reserved − 0xFFF18840 CLASS Priority Auto Upgrade Value Register 0 C0PAVR0 − 0xFFF18844 CLASS Priority Auto Upgrade Value Register 1 C0PAVR1 − 0xFFF18848 CLASS Priority Auto Upgrade Value Register 2 C0PAVR2 − 0xFFF1884C CLASS Priority Auto Upgrade Value Register 3 C0PAVR3 − 0xFFF18850 CLASS Priority Auto Upgrade Value Register 4 C0PAVR4 − 0xFFF18854 CLASS Priority Auto Upgrade Value Register 5 C0PAVR5 − 0xFFF18858 CLASS Priority Auto Upgrade Value Register 6 C0PAVR6 − 0xFFF1885C CLASS Priority Auto Upgrade Value Register 7 C0PAVR7 − 0xFFF18860 CLASS Priority Auto Upgrade Value Register 8 C0PAVR8 − 0xFFF18864 CLASS Priority Auto Upgrade Value Register 9 C0PAVR9 − 0xFFF18868 CLASS Priority Auto Upgrade Value Register 10 C0PAVR10 − 0xFFF1886C CLASS Priority Auto Upgrade Value Register 11 C0PAVR11 − 0xFFF18870– 0xFFF1887F reserved − 0xFFF18880 CLASS Priority Auto Upgrade Control Register 0 C0PACR0 − 0xFFF18884 CLASS Priority Auto Upgrade Control Register 1 C0PACR1 − 0xFFF18888 CLASS Priority Auto Upgrade Control Register 2 C0PACR2 − 0xFFF1888C CLASS Priority Auto Upgrade Control Register 3 C0PACR3 − 0xFFF18890 CLASS Priority Auto Upgrade Control Register 4 C0PACR4 − 0xFFF18894 CLASS Priority Auto Upgrade Control Register 5 C0PACR5 − 0xFFF18898 CLASS Priority Auto Upgrade Control Register 6 C0PACR6 C0MTCR6 C0MTCR7 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-25 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF1889C CLASS Priority Auto Upgrade Control Register 7 C0PACR7 − 0xFFF188A0 CLASS Priority Auto Upgrade Control Register 8 C0PACR8 − 0xFFF188A4 CLASS Priority Auto Upgrade Control Register 9 C0PACR9 − 0xFFF188A8 CLASS Priority Auto Upgrade Control Register 10 C0PACR10 − 0xFFF188AC CLASS Priority Auto Upgrade Control Register 11 C0PACR11 − 0xFFF188B0– 0xFFF1897F reserved − 0xFFF18980 CLASS Error Address Register 0 C0EAR0 − 0xFFF18984 CLASS Error Address Register 1 C0EAR1 − 0xFFF18988 CLASS Error Address Register 2 C0EAR2 − 0xFFF1898C CLASS Error Address Register 3 C0EAR3 − 0xFFF18990 CLASS Error Address Register 4 C0EAR4 − 0xFFF18994 CLASS Error Address Register 5 C0EAR5 − 0xFFF18998 CLASS Error Address Register 6 C0EAR6 − 0xFFF1899C CLASS Error Address Register 7 C0EAR7 − 0xFFF189A0 CLASS Error Address Register 8 C0EAR8 − 0xFFF189A4 CLASS Error Address Register 9 C0EAR9 − 0xFFF189A8 CLASS Error Address Register 10 C0EAR10 − 0xFFF189AC CLASS Error Address Register 11 C0EAR11 − 0xFFF189B0– 0xFFF189BF reserved − 0xFFF189C0 CLASS Error Extended Address Register 0 C0EEAR0 − 0xFFF189C4 CLASS Error Extended Address Register 1 C0EEAR1 − 0xFFF189C8 CLASS Error Extended Address Register 2 C0EEAR2 − 0xFFF189CC CLASS Error Extended Address Register 3 C0EEAR3 − 0xFFF189D0 CLASS Error Extended Address Register 4 C0EEAR4 − 0xFFF189D4 CLASS Error Extended Address Register 5 C0EEAR5 − 0xFFF189D8 CLASS Error Extended Address Register 6 C0EEAR6 − 0xFFF189DC CLASS Error Extended Address Register 7 C0EEAR7 − 0xFFF189E0 CLASS Error Extended Address Register 8 C0EEAR8 − 0xFFF189E4 CLASS Error Extended Address Register 9 C0EEAR9 − 0xFFF189E8 CLASS Error Extended Address Register 10 C0EEAR10 − 0xFFF189EC CLASS Error Extended Address Register 11 C0EEAR11 − 0xFFF189F0– 0xFFF189FF reserved − 0xFFF18A00 CLASS Initiator Profiling Configuration Register 0 C0IPCR0 − 0xFFF18A04 CLASS Initiator Profiling Configuration Register 1 C0IPCR1 − 0xFFF18A08 CLASS Initiator Profiling Configuration Register 2 C0IPCR2 − 0xFFF18A0C CLASS Initiator Profiling Configuration Register 3 C0IPCR3 − 0xFFF18A10 CLASS Initiator Profiling Configuration Register 4 C0IPCR4 − 0xFFF18A14 CLASS Initiator Profiling Configuration Register 5 C0IPCR5 − 0xFFF18A18 CLASS Initiator Profiling Configuration Register 6 C0IPCR6 MSC8156 Reference Manual, Rev. 2 9-26 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF18A1C CLASS Initiator Profiling Configuration Register 7 C0IPCR7 − 0xFFF18A20 CLASS Initiator Profiling Configuration Register 8 C0IPCR8 − 0xFFF18A24 CLASS Initiator Profiling Configuration Register 9 C0IPCR9 − 0xFFF18A28 CLASS Initiator Profiling Configuration Register 10 C0IPCR10 − 0xFFF18A2C CLASS Initiator Profiling Configuration Register 11 C0IPCR11 − 0xFFF18A30– 0xFFF18A3F reserved − 0xFFF18A40 CLASS Initiator Watch Point Control Register 0 C0IWPCR0 − 0xFFF18A44 CLASS Initiator Watch Point Control Register 1 C0IWPCR1 − 0xFFF18A48 CLASS Initiator Watch Point Control Register 2 C0IWPCR2 − 0xFFF18A4C CLASS Initiator Watch Point Control Register 3 C0IWPCR3 − 0xFFF18A50 CLASS Initiator Watch Point Control Register 4 C0IWPCR4 − 0xFFF18A54 CLASS Initiator Watch Point Control Register 5 C0IWPCR5 − 0xFFF18A58 CLASS Initiator Watch Point Control Register 6 C0IWPCR6 − 0xFFF18A5C CLASS Initiator Watch Point Control Register 7 C0IWPCR7 − 0xFFF18A60 CLASS Initiator Watch Point Control Register 8 C0IWPCR8 − 0xFFF18A64 CLASS Initiator Watch Point Control Register 9 C0IWPCR9 − 0xFFF18A68 CLASS Initiator Watch Point Control Register 10 C0IWPCR10 − 0xFFF18A6C CLASS Initiator Watch Point Control Register 11 C0IWPCR11 − 0xFFF18A70– 0xFFF18A7F reserved − 0xFFF18A80 CLASS Arbitration Weight Register 0 C0AWR0 − 0xFFF18A84 CLASS Arbitration Weight Register 1 C0AWR1 − 0xFFF18A88 CLASS Arbitration Weight Register 2 C0AWR2 − 0xFFF18A8C CLASS Arbitration Weight Register 3 C0AWR3 − 0xFFF18A90 CLASS Arbitration Weight Register 4 C0AWR4 − 0xFFF18A94 CLASS Arbitration Weight Register 5 C0AWR5 − 0xFFF18A98 CLASS Arbitration Weight Register 6 C0AWR6 − 0xFFF18A9C CLASS Arbitration Weight Register 7 C0AWR7 − 0xFFF18AA0 CLASS Arbitration Weight Register 8 C0AWR8 − 0xFFF18AA4 CLASS Arbitration Weight Register 9 C0AWR9 − 0xFFF18AA8 CLASS Arbitration Weight Register 10 C0AWR10 − 0xFFF18AAC CLASS Arbitration Weight Register 11 C0AWR11 − 0xFFF18AB0– 0xFFF18C13 reserved − 0xFFF18C14 CLASS Start Address Decoder 5 C0SAD5 − 0xFFF18C18 CLASS Start Address Decoder 6 C0SAD6 − 0xFFF18C1C– 0xFFF18C53 reserved − 0xFFF18C54 CLASS End Address Decoder 5 C0EAD5 − 0xFFF18C58 CLASS End Address Decoder 6 C0EAD6 − 0xFFF18C5C– 0xFFF18C93 reserved MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-27 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF18C94 CLASS Attributes Decoder 5 C0ATD5 − 0xFFF18C98 CLASS Attributes Decoder 6 C0ATD6 − 0xFFF18C9C– 0xFFF18D7F reserved − 0xFFF18D80 CLASS IRQ Status Register − 0xFFF18D84– 0xFFF18DBF Reserved − 0xFFF18DC0 CLASS IRQ Enable Register − 0xFFF18DC4– 0xFFF18DFF Reserved − 0xFFF18E00 CLASS Target Profiling Configuration Register − 0xFFF18E04 CLASS Profiling Control Register C0PCR − 0xFFF18E08 CLASS Watch Point Control Register C0WPCR − 0xFFF18E0C CLASS Watch Point Access Configuration Register C0WPACR − 0xFFF18E10 CLASS Watch Point Extended Access Configuration Register C0WPEACR − 0xFFF18E14 CLASS Watch Point Address Mask Register C0WPAMR − 0xFFF18E18 CLASS Profiling Time-Out Register C0PTOR − 0xFFF18E1C CLASS Target Watch Point Control Register C0TWPCR − 0xFFF18E20 CLASS Profiling IRQ Status Register C0PISR − 0xFFF18E24 CLASS Profiling IRQ Enable Register C0PIER − 0xFFF18E280xFFF18E3F Reserved − 0xFFF18E40 CLASS Profiling Reference Counter Register C0PRCR − 0xFFF18E44 CLASS Profiling General Counter Register 0 C0PGCR0 − 0xFFF18E48 CLASS Profiling General Counter Register 1 C0PGCR1 − 0xFFF18E4C CLASS Profiling General Counter Register 2 C0PGCR2 − 0xFFF18E50 CLASS Profiling General Counter Register 3 C0PGCR3 − 0xFFF18E54– 0xFFF18FBF Reserved − 0xFFF18FC0 CLASS Arbitration Control Register − 0xFFF18FC4– 0xFFF18FFF Reserved • 0xFFF19000– 0xFFF1BFFF reserved • 0xFFF1C000– 0xFFF1FFFF MAPLE-B C0ISR C0IER C0TPCR C0ACR − 0xFFF1C000– 0xFFF1CFFF reserved − 0xFFF1D000– 0xFFF1D7FF PSIF_PIC − 0xFFF1D600 PSIF PIC Event Register PSPICER − 0xFFF1D604 PSIF PIC Edge/Level Register PSPICELR − 0xFFF1D608 PSIF PIC Mask Register PSPICMR − 0xFFF1D60C PSIF PIC Interrupt Assertion Clocks Register PSPICIACR MSC8156 Reference Manual, Rev. 2 9-28 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF1D610– 0xFFF1D7FF reserved − 0xFFF1D800– 0xFFF1FFFF reserved • 0xFFF20000– 0xFFF21FFF Acronym DDR Controller 1 − 0xFFF20000 Chip Select 0 Bounds − 0xFFF20004– 0xFFF20007 reserved − 0xFFF20008 Chip Select 1 Bounds − 0xFFF2000C– 0xFFF2007F reserved − 0xFFF20080 Chip Select 0 Configuration M1CS0_CONFIG − 0xFFF20084 Chip Select 1 Configuration M1CS1_CONFIG − 0xFFF20088– 0xFFF200BF reserved − 0xFFF200C0 Chip Select 0 Configuration 2 M1CS0_CONFIG_2 − 0xFFF200C4 Chip Select 1 Configuration 2 M1CS1_CONFIG_2 − 0xFFF200C8– 0xFFF200FF reserved − 0xFFF20100 DDR SDRAM Timing Configuration 3 M1TIMING_CFG_3 − 0xFFF20104 DDR SDRAM Timing Configuration 0 M1TIMING_CFG_0 − 0xFFF20108 DDR SDRAM Timing Configuration 1 M1TIMING_CFG_1 − 0xFFF2010C DDR SCRAM Timing Configuration 2 M1TIMING_CFG_2 − 0xFFF20110 DDR SDRAM Control Configuration M1DDR_SDRAM_CFG − 0xFFF20114 DDR SDRAM Control Configuration 2 M1DDR_SDRAM_CFG_2 − 0xFFF20118 DDR SDRAM Mode Configuration M1DDR_SDRAM_MODE − 0xFFF2011C DDR SDRAM Mode Configuration 2 M1DDR_SDRAM_MODE_2 − 0xFFF20120 DDR SDRAM Mode Control M1DDR_SCRAM_MD_CNTL − 0xFFF20124 DDR SDRAM Interval Configuration M1DDR_SDRAM_INTERVAL − 0xFFF20128 DDR SDRAM Data Initialization M1DDR_DATA_INIT − 0xFFF2012C– 0xFFF2012F reserved − 0xFFF20130 DDR SDRAM Clock Control − 0xFFF20134– 0xFFF20147 reserved − 0xFFF20148 DDR SDRAM Initialization Address M1DDR_INIT_ADDRESS − 0xFFF2014C DDR Initialization Enable Extended Address M1DDR_INIT_ENXT_ADDR − 0xFFF20150– 0xFFF2015F reserved − 0xFFF20160 DDR SDRAM Timing Configuration 4 M1TIMING_CFG_4 − 0xFFF20164 DDR SDRAM Timing Configuration 5 M1TIMING_CFG_5 − 0xFFF20168– 0xFFF2016F reserved − 0xFFF20170 DDR ZQ Calibration Control M1CS0_BNDS M1CS1_BNDS M1DDR_SDRAM_CLK_CNT M1DDR_ZQ_CNTL MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-29 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF20174 DDR Write Leveling Control M1DDR_WRLVL_CNTL − 0xFFF22178 DDR Pre-Drive Conditioning Control M1DDR_PD_CNTL − 0xFFF2017C DDR Self Refresh Counter M1DDR_SR_CNTR − 0xFFF20180 DDR SDRAM Register Control Words 1 M1DDR_SDRAM_RCW_1 − 0xFFF20184 DDR SDRAM Register Control Words 2 M1DDR_SDRAM_RCW_2 − 0xFFF20188– 0xFFF2018F reserved − 0xFFF20190 DDR Write Leveling Control 2 M1DDR_WRLVL_CNTL_2 − 0xFFF20194 DDR Write Leveling Control 3 M1DDR_WRLVL_CNTL_3 − 0xFFF20198– 0xFFF20B1F reserved − 0xFFF20B20 DDR Debug Status Register 1 M1DDRDSR_1 − 0xFFF20B24 DDR Debug Status Register 2 M1DDRDSR_2 − 0xFFF20B28 DDR Control Driver Register 1 M1DDRCDR_1 − 0xFFF20B2C DDR Control Driver Register 2 M1DDRCDR_2 − 0xFFF20B30– 0xFFF20BF7 reserved − 0xFFF20BF8 DDR IP Block Revision 1 M1DDR_IP_REV1 − 0xFFF20BFC DDR IP Block Revision 2 M1DDR_IP_REV2 − 0xFFF20C00– 0xFFF20DFF reserved − 0xFFF20E00 Memory Data Path Error Injection Mask High M1DDR_ERR_INJECT_HI − 0xFFF20E04 Memory Data Path Error Injection Mask Low M1DDR_ERR_INJECT_LO − 0xFFF20E08 Memory Data Path Error Injection Mask ECC M1DDR_ERR_INJECT − 0xFFF20E0C– 0xFFF20E1F reserved − 0xFFF20E20 Memory Data Path Read Capture High M1CAPTURE_DATA_HI − 0xFFF20E24 Memory Data Path Read Capture Low M1CAPTURE-DATA_LO − 0xFFF20E28 Memory Data Path Read Capture ECC M1CAPTURE_ECC − 0xFFF20E2C– 0xFFF20E3F reserved − 0xFFF20E40 Memory Error Detect − 0xFFF20E44 Memory Error Disable M1ERR_DISABLE − 0xFFF20E48 Memory Error Interrupt Enable M1ERR_INT_EN − 0xFFF20E4C Memory Error Attributes Capture M1CAPTURE_ATTRIBUTES − 0xFFF20E50 Memory Error Address Capture M1CAPTURE_ADDRESS − 0xFFF20E54– 0xFFF20E57 reserved − 0xFFF20E58 Single-Bit ECC Memory Error Management − 0xFFF20E5C– 0xFFF20F03 reserved − 0xFFF20F04 Debug Register 2 − 0xFFF20F08– 0xFFF21FFF reserved M1ERR_DETECT M1ERR_SBE M1DEBUG_2 MSC8156 Reference Manual, Rev. 2 9-30 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address • 0xFFF22000– 0xFFF23FFF Name/Status Acronym DDR Controller 2 − 0xFFF22000 Chip Select 0 Memory Bounds − 0xFFF22004– 0xFFF22007 reserved − 0xFFF22008 Chip Select 1 Memory Bounds − 0xFFF2200C– 0xFFF2207F reserved − 0xFFF22080 Chip Select 0 Configuration M2CS0_CONFIG − 0xFFF22084 Chip Select 1 Configuration M2CS1_CONFIG − 0xFFF22088– 0xFFF220BF reserved − 0xFFF220C0 Chip Select 0 Configuration 2 M2CS0_CONFIG_2 − 0xFFF220C4 Chip Select 1 Configuration 2 M2CS1_CONFIG_2 − 0xFFF220C8– 0xFFF220FF reserved − 0xFFF22100 DDR SDRAM Timing Configuration 3 M2TIMING_CFG_3 − 0xFFF22104 DDR SDRAM Timing Configuration 0 M2TIMING_CFG_0 − 0xFFF22108 DDR SDRAM Timing Configuration 1 M2TIMING_CFG_1 − 0xFFF2210C DDR SCRAM Timing Configuration 2 M2TIMING_CFG_2 − 0xFFF22110 DDR SDRAM Control Configuration M2DDR_SDRAM_CFG − 0xFFF22114 DDR SDRAM Control Configuration 2 M2DDR_SDRAM_CFG_2 − 0xFFF22118 DDR SDRAM Mode Configuration M2DDR_SDRAM_MODE − 0xFFF2211C DDR SDRAM Mode Configuration 2 M2DDR_SDRAM_MODE_2 − 0xFFF22120 DDR SDRAM Mode Control M2DDR_SCRAM_MD_CNTL − 0xFFF22124 DDR SDRAM Interval Configuration M2DDR_SDRAM_INTERVAL − 0xFFF22128 DDR SDRAM Data Initialization M2DDR_DATA_INIT − 0xFFF2212C– 0xFFF2212F reserved − 0xFFF22130 DDR SDRAM Clock Control − 0xFFF22134– 0xFFF22147 reserved − 0xFFF22148 DDR SDRAM Initialization Address M2DDR_INIT_ADDRESS − 0xFFF2214C DDR Initialization Enable Extended Address M2DDR_INIT_ENXT_ADDR − 0xFFF22150– 0xFFF2215F reserved − 0xFFF22160 DDR SDRAM Timing Configuration 4 M2TIMING_CFG_4 − 0xFFF22164 DDR SDRAM Timing Configuration 5 M2TIMING_CFG_5 − 0xFFF22168– 0xFFF2216F reserved − 0xFFF22170 DDR ZQ Calibration Control M2DDR_ZQ_CNTL − 0xFFF22174 DDR Write Leveling Control M2DDR_WRLVL_CNTL − 0xFFF22178 DDR Pre-Drive Conditioning Control M2DDR_PD_CNTL − 0xFFF2217C DDR Self Refresh Counter M2DDR_SR_CNTR M2CS0_BNDS M2CS1_BNDS M2DDR_SDRAM_CLK_CNT MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-31 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF22180 DDR SDRAM Register Control Words 1 M2DDR_SDRAM_RCW_1 − 0xFFF22184 DDR SDRAM Register Control Words 2 M2DDR_SDRAM_RCW_2 − 0xFFF22188– 0xFFF2218F reserved − 0xFFF22190 DDR Write Leveling Control 2 M2DDR_WRLVL_CNTL_2 − 0xFFF22194 DDR Write Leveling Control 3 M2DDR_WRLVL_CNTL_3 − 0xFFF22198– 0xFFF22B1F reserved − 0xFFF22B20 DDR Debug Status Register 1 M2DDRDSR_1 − 0xFFF22B24 DDR Debug Status Register 2 M2DDRDSR_2 − 0xFFF22B28 DDR Control Driver Register 1 M2DDRCDR_1 − 0xFFF22B2C DDR Control Driver Register 2 M2DDRCDR_2 − 0xFFF22B30– 0xFFF22BF7 reserved − 0xFFF22BF8 DDR IP Block Revision 1 M2DDR_IP_REV1 − 0xFFF22BFC DDR IP Block Revision 2 M2DDR_IP_REV2 − 0xFFF22C00– 0xFFF22DFF reserved − 0xFFF22E00 Memory Data Path Error Injection Mask High M2DDR_ERR_INJECT_HI − 0xFFF22E04 Memory Data Path Error Injection Mask Low M2DDR_ERR_INJECT_LO − 0xFFF22E08 Memory Data Path Error Injection Mask ECC M2DDR_ERR_INJECT − 0xFFF22E0C– 0xFFF22E1F reserved − 0xFFF22E20 Memory Data Path Read Capture High M2CAPTURE_DATA_HI − 0xFFF22E24 Memory Data Path Read Capture Low M2CAPTURE-DATA_LO − 0xFFF22E28 Memory Data Path Read Capture ECC M2CAPTURE_ECC − 0xFFF22E2C– 0xFFF22E3F reserved − 0xFFF22E40 Memory Error Detect M2ERR_DETECT − 0xFFF22E44 Memory Error Disable M2ERR_DISABLE − 0xFFF22E48 Memory Error Interrupt Enable M2ERR_INT_EN − 0xFFF22E4C Memory Error Attributes Capture M2CAPTURE_ATTRIBUTES − 0xFFF22E50 Memory Error Address Capture M2CAPTURE_ADDRESS − 0xFFF22E54– 0xFFF22E57 reserved − 0xFFF22E58 Single-Bit ECC Memory Error Management − 0xFFF22E5C– 0xFFF22F03 reserved − 0xFFF22F04 Debug Register 2 − 0xFFF22F08– 0xFFF23FFF reserved • 0xFFF24000– 0xFFF2407F − 0xFFF24000 M2ERR_SBE M2DEBUG_2 Clocks System Clock Control Register SCCR MSC8156 Reference Manual, Rev. 2 9-32 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF24004 Clock General Purpose Register 0 − 0xFFF24008– 0xFFF2407F reserved • 0xFFF24080– 0xFFF247FF reserved • 0xFFF24800– 0xFFF248FF Reset Acronym CLK_GPR0 − 0xFFF24800 Reset Configuration Word Low Register RCWLR − 0xFFF24804 Reset Configuration Word High Register RCWHR − 0xFFF24808– 0xFFF2480F reserved − 0xFFF24810 Reset Status Register − 0xFFF24814– 0xFFF24817 reserved − 0xFFF24818 Reset Protection Register RPR − 0xFFF2481C Reset Control Register RCR − 0xFFF24820 Reset Control Enable Register RCER − 0xFFF24824– 0xFFF248FF reserved • 0xFFF24900– 0xFFF24BFF reserved • 0xFFF24C00– 0xFFF24CFF I2 C − 0xFFF24C00 I2C Address Register 2C RSR I2CADR − 0xFFF24C04 I − 0xFFF24C08 I2C Control Register I2CCR − 0xFFF24C0C I2C Status Register I2CSR Frequency Divider Register I2CFDR I 2C Data Register I2CDR − 0xFFF24C14 I 2C Digital Filter Sampling Rate Register I2CDFSRR − 0xFFF24C18– 0xFFF24CFF reserved − 0xFFF24C10 • 0xFFF24D00– 0xFFF24FFF reserved • 0xFFF25000– 0xFFF250FF Watchdog Timer 0 − 0xFFF25000– 0xFFF25003 reserved − 0xFFF25004 System Watchdog Control Register 0 SWCRR0 − 0xFFF25008 System Watchdog Count Register 0 SWCNR0 − 0xFFF2500C– 0xFFF2500D reserved − 0xFFF2500E System Watchdog Service Register 0 − 0xFFF25010– 0xFFF250FF reserved • 0xFFF25100– 0xFFF251FF SWSRR0 Watchdog Timer 1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-33 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF25100– 0xFFF25103 reserved − 0xFFF25104 System Watchdog Control Register 1 SWCRR1 − 0xFFF25108 System Watchdog Count Register 1 SWCNR1 − 0xFFF2510C– 0xFFF2510D reserved − 0xFFF2510E System Watchdog Service Register 1 − 0xFFF25110– 0xFFF251FF reserved • 0xFFF25200– 0xFFF252FF SWSRR1 Watchdog Timer 2 − 0xFFF25200– 0xFFF25203 reserved − 0xFFF25204 System Watchdog Control Register 2 SWCRR2 − 0xFFF25208 System Watchdog Count Register 2 SWCNR2 − 0xFFF2520C– 0xFFF2520D reserved − 0xFFF2520E System Watchdog Service Register 2 − 0xFFF25210– 0xFFF252FF reserved • 0xFFF25300– 0xFFF253FF SWSRR2 Watchdog Timer 3 − 0xFFF25300– 0xFFF25303 reserved − 0xFFF25304 System Watchdog Control Register 3 SWCRR3 − 0xFFF25308 System Watchdog Count Register 3 SWCNR3 − 0xFFF2530C– 0xFFF2530D reserved − 0xFFF2530E System Watchdog Service Register 3 − 0xFFF25310– 0xFFF253FF reserved • 0xFFF25400– 0xFFF254FF SWSRR3 Watchdog Timer 4 − 0xFFF25400– 0xFFF25403 reserved − 0xFFF25404 System Watchdog Control Register 4 SWCRR4 − 0xFFF25408 System Watchdog Count Register 4 SWCNR4 − 0xFFF2540C– 0xFFF2540D reserved − 0xFFF2540E System Watchdog Service Register 4 − 0xFFF25410– 0xFFF254FF reserved • 0xFFF25500– 0xFFF255FF − 0xFFF25500– 0xFFF25503 SWSRR4 Watchdog Timer 5 reserved MSC8156 Reference Manual, Rev. 2 9-34 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF25504 System Watchdog Control Register 5 SWCRR5 − 0xFFF25508 System Watchdog Count Register 5 SWCNR5 − 0xFFF2550C– 0xFFF2550D reserved − 0xFFF2550E System Watchdog Service Register 5 − 0xFFF25510– 0xFFF255FF reserved • 0xFFF25600– 0xFFF256FF SWSRR5 Watchdog Timer 6 − 0xFFF25600– 0xFFF25603 reserved − 0xFFF25604 System Watchdog Control Register 6 SWCRR6 − 0xFFF25608 System Watchdog Count Register 6 SWCNR6 − 0xFFF2560C– 0xFFF2560D reserved − 0xFFF2560E System Watchdog Service Register 6 − 0xFFF25610– 0xFFF256FF reserved • 0xFFF25700– 0xFFF257FF SWSRR6 Watchdog Timer 7 − 0xFFF25700– 0xFFF25703 reserved − 0xFFF25704 System Watchdog Control Register 7 SWCRR7 − 0xFFF25708 System Watchdog Count Register 7 SWCNR7 − 0xFFF2570C– 0xFFF2570D reserved − 0xFFF2570E System Watchdog Service Register 7 − 0xFFF25710– 0xFFF257FF reserved • 0xFFF25800– 0xFFF25FFF reserved • 0xFFF26000– 0xFFF260FF Timer 0 SWSRR7 − 0xFFF26000 Timer 0 Channel 0 Compare 1 Register TMR0CMP10 − 0xFFF26004 Timer 0 Channel 0 Compare 2 Register TMR0CMP20 − 0xFFF26008 Timer 0 Channel 0 Capture Register TMR0CAP0 − 0xFFF2600C Timer 0 Channel 0 Load Register TMR0LD0 − 0xFFF26010 Timer 0 Channel 0 Hold Register TMR0HOLD0 − 0xFFF26014 Timer 0 Channel 0 Counter Register TMR0CNTR0 − 0xFFF26018 Timer 0 Channel 0 Control Register TMR0CTL0 − 0xFFF2601C Timer 0 Channel 0 Status and Control Register TMR0SCTL0 − 0xFFF26020 Timer 0 Channel 0 Compare Load 1 Register TMR0CMPLD10 − 0xFFF26024 Timer 0 Channel 0 Compare Load 2 Register TMR0CMPLD20 − 0xFFF26028 Timer 0 Channel 0 Comparator Status and Control Register TMR0COMSC0 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-35 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF2602C– 0xFFF2603F reserved − 0xFFF26040 Timer 0 Channel 1 Compare 1 Register TMR0CMP11 − 0xFFF26044 Timer 0 Channel 1 Compare 2 Register TMR0CMP21 − 0xFFF26048 Timer 0 Channel 1 Capture Register TMR0CAP1 − 0xFFF2604C Timer 0 Channel 1 Load Register TMR0LOAD1 − 0xFFF26050 Timer 0 Channel 1 Hold Register TMR0HOLD1 − 0xFFF26054 Timer 0 Channel 1 Counter Register TMR0CNTR1 − 0xFFF26058 Timer 0 Channel 1 Control Register TMR0CTL1 − 0xFFF2605C Timer 0 Channel 1 Status and Control Register TMR0SCTL1 − 0xFFF26060 Timer 0 Channel 1 Compare Load 1 Register TMR0CMPLD11 − 0xFFF26064 Timer 0 Channel 1 Compare Load 2 Register TMR0CMPLD21 − 0xFFF26068 Timer 0 Channel 1 Comparator Status and Control Register TMR0COMSC1 − 0xFFF2606C– 0xFFF2607F reserved − 0xFFF26080 Timer 0 Channel 2 Compare 1 Register TMR0CMP12 − 0xFFF26084 Timer 0 Channel 2 Compare 2 Register TMR0CMP22 − 0xFFF26088 Timer 0 Channel 2 Capture Register TMR0CAP2 − 0xFFF2608C Timer 0 Channel 2 Load Register TMR0LOAD2 − 0xFFF26090 Timer 0 Channel 2 Hold Register TMR0HOLD2 − 0xFFF26094 Timer 0 Channel 2 Counter Register TMR0CNTR2 − 0xFFF26098 Timer 0 Channel 2 Control Register TMR0CTL2 − 0xFFF2609C Timer 0 Channel 2 Status and Control Register TMR0SCTL2 − 0xFFF260A0 Timer 0 Channel 2 Compare Load 1 Register TMR0CMPLD12 − 0xFFF260A4 Timer 0 Channel 2 Compare Load 2 Register TMR0CMPLD22 − 0xFFF260A8 Timer 0 Channel 2 Comparator Status and Control Register TMR0COMSC2 − 0xFFF260AC– 0xFFF260BF reserved − 0xFFF260C0 Timer 0 Channel 3 Compare 1 Register TMR0CMP13 − 0xFFF260C4 Timer 0 Channel 3 Compare 2 Register TMR0CMP23 − 0xFFF260C8 Timer 0 Channel 3 Capture Register TMR0CAP3 − 0xFFF260CC Timer 0 Channel 3 Load Register TMR0LOAD3 − 0xFFF260D0 Timer 0 Channel 3 Hold Register TMR0HOLD3 − 0xFFF260D4 Timer 0 Channel 3 Counter Register TMR0CNTR3 − 0xFFF260D8 Timer 0 Channel 3 Control Register TMR0CTL3 − 0xFFF260DC Timer 0 Channel 3 Status and Control Register TMR0SCTL3 − 0xFFF260E0 Timer 0 Channel 3 Compare Load 1 Register TMR0CMPLD13 − 0xFFF260E4 Timer 0 Channel 3 Compare Load 2 Register TMR0CMPLD23 − 0xFFF260E8 Timer 0 Channel 3 Comparator Status and Control Register TMR0COMSC3 − 0xFFF260EC– 0xFFF260FF reserved • 0xFFF26100– 0xFFF261FF Timer 1 MSC8156 Reference Manual, Rev. 2 9-36 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF26100 Timer 1 Channel 0 Compare 1 Register TMR1CMP10 − 0xFFF26104 Timer 1 Channel 0 Compare 2 Register TMR1CMP20 − 0xFFF26108 Timer 1 Channel 0 Capture Register TMR1CAP0 − 0xFFF2610C Timer 1 Channel 0 Load Register TMR1LOAD0 − 0xFFF26110 Timer 1 Channel 0 Hold Register TMR1HOLD0 − 0xFFF26114 Timer 1 Channel 0 Counter Register TMR1CNTR0 − 0xFFF26118 Timer 1 Channel 0 Control Register TMR1CTL0 − 0xFFF2611C Timer 1 Channel 0 Status and Control Register TMR1SCTL0 − 0xFFF26120 Timer 1 Channel 0 Compare Load 1 Register TMR1CMPLD10 − 0xFFF26124 Timer 1 Channel 0 Compare Load 2 Register TMR1CMPLD20 − 0xFFF26128 Timer 1 Channel 0 Comparator Status and Control Register TMR1COMSC0 − 0xFFF2612C– 0xFFF2613F reserved − 0xFFF26140 Timer 1 Channel 1 Compare 1 Register TMR1CMP11 − 0xFFF26144 Timer 1 Channel 1 Compare 2 Register TMR1CMP21 − 0xFFF26148 Timer 1 Channel 1 Capture Register TMR1CAP1 − 0xFFF2614C Timer 1 Channel 1 Load Register TMR1LOAD1 − 0xFFF26150 Timer 1 Channel 1 Hold Register TMR1HOLD1 − 0xFFF26154 Timer 1 Channel 1 Counter Register TMR1CNTR1 − 0xFFF26158 Timer 1 Channel 1 Control Register TMR1CTL1 − 0xFFF2615C Timer 1 Channel 1 Status and Control Register TMR1SCTL1 − 0xFFF26160 Timer 1 Channel 1 Compare Load 1 Register TMR1CMPLD11 − 0xFFF26164 Timer 1 Channel 1 Compare Load 2 Register TMR1CMPLD21 − 0xFFF26168 Timer 1 Channel 1 Comparator Status and Control Register TMR1COMSC1 − 0xFFF2616C– 0xFFF2617F reserved − 0xFFF26180 Timer 1 Channel 2 Compare 1 Register TMR1CMP12 − 0xFFF26184 Timer 1 Channel 2 Compare 2 Register TMR1CMP22 − 0xFFF26188 Timer 1 Channel 2 Capture Register TMR1CAP2 − 0xFFF2618C Timer 1 Channel 2 Load Register TMR1LOAD2 − 0xFFF26190 Timer 1 Channel 2 Hold Register TMR1HOLD2 − 0xFFF26194 Timer 1 Channel 2 Counter Register TMR1CNTR2 − 0xFFF26198 Timer 1 Channel 2 Control Register TMR1CTL2 − 0xFFF2619C Timer 1 Channel 2 Status and Control Register TMR1SCTL2 − 0xFFF261A0 Timer 1 Channel 2 Compare Load 1 Register TMR1CMPLD12 − 0xFFF261A4 Timer 1 Channel 2 Compare Load 2 Register TMR1CMPLD22 − 0xFFF261A8 Timer 1 Channel 2 Comparator Status and Control Register TMR1COMSC2 − 0xFFF261AC– 0xFFF261BF reserved − 0xFFF261C0 Timer 1 Channel 3 Compare 1 Register TMR1CMP13 − 0xFFF261C4 Timer 1 Channel 3 Compare 2 Register TMR1CMP23 − 0xFFF261C8 Timer 1 Channel 3 Capture Register TMR1CAP3 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-37 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF261CC Timer 1 Channel 3 Load Register TMR1LOAD3 − 0xFFF261D0 Timer 1 Channel 3 Hold Register TMR1HOLD3 − 0xFFF261D4 Timer 1 Channel 3 Counter Register TMR1CNTR3 − 0xFFF261D8 Timer 1 Channel 3 Control Register TMR1CTL3 − 0xFFF261DC Timer 1 Channel 3 Status and Control Register TMR1SCTL3 − 0xFFF261E0 Timer 1 Channel 3 Compare Load 1 Register TMR1CMPLD13 − 0xFFF261E4 Timer 1 Channel 3 Compare Load 2 Register TMR1CMPLD23 − 0xFFF261E8 Timer 1 Channel 3 Comparator Status and Control Register TMR1COMSC3 − 0xFFF261EC– 0xFFF261FF reserved • 0xFFF26200– 0xFFF262FF Timer 2 − 0xFFF26200 Timer 2 Channel 0 Compare 1 Register TMR2CMP10 − 0xFFF26204 Timer 2 Channel 0 Compare 2 Register TMR2CMP20 − 0xFFF26208 Timer 2 Channel 0 Capture Register TMR2CAP0 − 0xFFF2620C Timer 2 Channel 0 Load Register TMR2LOAD0 − 0xFFF26210 Timer 2 Channel 0 Hold Register TMR2HOLD0 − 0xFFF26214 Timer 2 Channel 0 Counter Register TMR2CNTR0 − 0xFFF26218 Timer 2 Channel 0 Control Register TMR2CTL0 − 0xFFF2621C Timer 2 Channel 0 Status and Control Register TMR2SCTL0 − 0xFFF26220 Timer 2 Channel 0 Compare Load 1 Register TMR2CMPLD10 − 0xFFF26224 Timer 2 Channel 0 Compare Load 2 Register TMR2CMPLD20 − 0xFFF26228 Timer 2 Channel 0 Comparator Status and Control Register TMR2COMSC0 − 0xFFF2622C– 0xFFF2623F reserved − 0xFFF26240 Timer 2 Channel 1 Compare 1 Register TMR2CMP11 − 0xFFF26244 Timer 2 Channel 1 Compare 2 Register TMR2CMP21 − 0xFFF26248 Timer 2 Channel 1 Capture Register TMR2CAP1 − 0xFFF2624C Timer 2 Channel 1 Load Register TMR2LOAD1 − 0xFFF26250 Timer 2 Channel 1 Hold Register TMR2HOLD1 − 0xFFF26254 Timer 2 Channel 1 Counter Register TMR2CNTR1 − 0xFFF26258 Timer 2 Channel 1 Control Register TMR2CTL1 − 0xFFF2625C Timer 2 Channel 1 Status and Control Register TMR2SCTL1 − 0xFFF26260 Timer 2 Channel 1 Compare Load 1 Register TMR2CMPLD11 − 0xFFF26264 Timer 2 Channel 1 Compare Load 2 Register TMR2CMPLD21 − 0xFFF26268 Timer 2 Channel 1 Comparator Status and Control Register TMR2COMSC1 − 0xFFF2626C– 0xFFF2627F reserved − 0xFFF26280 Timer 2 Channel 2 Compare 1 Register TMR2CMP12 − 0xFFF26284 Timer 2 Channel 2 Compare 2 Register TMR2CMP22 − 0xFFF26288 Timer 2 Channel 2 Capture Register TMR2CAP2 − 0xFFF2628C Timer 2 Channel 2 Load Register TMR2LOAD2 − 0xFFF26290 Timer 2 Channel 2 Hold Register TMR2HOLD2 MSC8156 Reference Manual, Rev. 2 9-38 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF26294 Timer 2 Channel 2 Counter Register TMR2CNTR2 − 0xFFF26298 Timer 2 Channel 2 Control Register TMR2CTL2 − 0xFFF2629C Timer 2 Channel 2 Status and Control Register TMR2SCTL2 − 0xFFF262A0 Timer 2 Channel 2 Compare Load 1 Register TMR2CMPLD12 − 0xFFF262A4 Timer 2 Channel 2 Compare Load 2 Register TMR2CMPLD22 − 0xFFF262A8 Timer 2 Channel 2 Comparator Status and Control Register TMR2COMSC2 − 0xFFF262AC– 0xFFF262BF reserved − 0xFFF262C0 Timer 2 Channel 3 Compare 1 Register TMR2CMP13 − 0xFFF262C4 Timer 2 Channel 3 Compare 2 Register TMR2CMP23 − 0xFFF262C8 Timer 2 Channel 3 Capture Register TMR2CAP3 − 0xFFF262CC Timer 2 Channel 3 Load Register TMR2LOAD3 − 0xFFF262D0 Timer 2 Channel 3 Hold Register TMR2HOLD3 − 0xFFF262D4 Timer 2 Channel 3 Counter Register TMR2CNTR3 − 0xFFF262D8 Timer 2 Channel 3 Control Register TMR2CTL3 − 0xFFF262DC Timer 2 Channel 3 Status and Control Register TMR2SCTL3 − 0xFFF262E0 Timer 2 Channel 3 Compare Load 1 Register TMR2CMPLD13 − 0xFFF262E4 Timer 2 Channel 3 Compare Load 2 Register TMR2CMPLD23 − 0xFFF262E8 Timer 2 Channel 3 Comparator Status and Control Register TMR2COMSC3 − 0xFFF262EC– 0xFFF262FF reserved • 0xFFF26300– 0xFFF263FF Timer 3 − 0xFFF26300 Timer 3 Channel 0 Compare 1 Register TMR3CMP10 − 0xFFF26304 Timer 3 Channel 0 Compare 2 Register TMR3CMP20 − 0xFFF26308 Timer 3 Channel 0 Capture Register TMR3CAP0 − 0xFFF2630C Timer 3 Channel 0 Load Register TMR3LOAD0 − 0xFFF26310 Timer 3 Channel 0 Hold Register TMR3HOLD0 − 0xFFF26314 Timer 3 Channel 0 Counter Register TMR3CNTR0 − 0xFFF26318 Timer 3 Channel 0 Control Register TMR3CTL0 − 0xFFF2631C Timer 3 Channel 0 Status and Control Register TMR3SCTL0 − 0xFFF26320 Timer 3 Channel 0 Load 1 Register TMR3CMPLD10 − 0xFFF26324 Timer 3 Channel 0 Load 2 Register TMR3CMPLD20 − 0xFFF26328 Timer 3 Channel 0 Comparator Status and Control Register TMR3COMSC0 − 0xFFF2632C– 0xFFF2633F reserved − 0xFFF26340 Timer 3 Channel 1 Compare 1 Register TMR3CMP11 − 0xFFF26344 Timer 3 Channel 1 Compare 2 Register TMR3CMP21 − 0xFFF26348 Timer 3 Channel 1 Capture Register TMR3CAP1 − 0xFFF2634C Timer 3 Channel 1 Load Register TMR3LOAD1 − 0xFFF26350 Timer 3 Channel 1 Hold Register TMR3HOLD1 − 0xFFF26354 Timer 3 Channel 1 Counter Register TMR3CNTR1 − 0xFFF26358 Timer 3 Channel 1 Control Register TMR3CTL1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-39 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF2635C Timer 3 Channel 1 Status and Control Register TMR3SCTL1 − 0xFFF26360 Timer 3 Channel 1 Load 1 Register TMR3CMPLD11 − 0xFFF26364 Timer 3 Channel 1 Load 2 Register TMR3CMPLD21 − 0xFFF26368 Timer 3 Channel 1 Comparator Status and Control Register TMR3COMSC1 − 0xFFF2636C– 0xFFF2637F reserved − 0xFFF26380 Timer 3 Channel 2 Compare 1 Register TMR3CMP12 − 0xFFF26384 Timer 3 Channel 2 Compare 2 Register TMR3CMP22 − 0xFFF26388 Timer 3 Channel 2 Capture Register TMR3CAP2 − 0xFFF2638C Timer 3 Channel 2 Load Register TMR3LOAD2 − 0xFFF26390 Timer 3 Channel 2 Hold Register TMR3HOLD2 − 0xFFF26394 Timer 3 Channel 2 Counter Register TMR3CNTR2 − 0xFFF26398 Timer 3 Channel 2 Control Register TMR3CTL2 − 0xFFF2639C Timer 3 Channel 2 Status and Control Register TMR3SCTL2 − 0xFFF263A0 Timer 3 Channel 2 Load 1 Register TMR3CMPLD12 − 0xFFF263A4 Timer 3 Channel 2 Load 2 Register TMR3CMPLD22 − 0xFFF263A8 Timer 3 Channel 2 Comparator Status and Control Register TMR3COMSC2 − 0xFFF263AC– 0xFFF263BF reserved − 0xFFF263C0 Timer 3 Channel 3 Compare 1 Register TMR3CMP13 − 0xFFF263C4 Timer 3 Channel 3 Compare 2 Register TMR3CMP23 − 0xFFF263C8 Timer 3 Channel 3 Capture Register TMR3CAP3 − 0xFFF263CC Timer 3 Channel 3 Load Register TMR3LOAD3 − 0xFFF263D0 Timer 3 Channel 3 Hold Register TMR3HOLD3 − 0xFFF263D4 Timer 3 Channel 3 Counter Register TMR3CNTR3 − 0xFFF263D8 Timer 3 Channel 3 Control Register TMR3CTL3 − 0xFFF263DC Timer 3 Channel 3 Status and Control Register TMR3SCTL3 − 0xFFF263E0 Timer 3 Channel 3 Load 1 Register TMR3CMPLD13 − 0xFFF263E4 Timer 3 Channel 3 Load 2 Register TMR3CMPLD23 − 0xFFF263E8 Timer 3 Channel 3 Comparator Status and Control Register TMR3COMSC3 − 0xFFF263EC– 0xFFF263FF reserved • 0xFFF26400– 0xFFF26BFF reserved • 0xFFF26C00– 0xFFF26C3F UART − 0xFFF26C00 SCI Baud-Rate Register − 0xFFF26C04– 0xFFF26C07 reserved − 0xFFF26C08 SCI Control Register − 0xFFF26C0C– 0xFFF26C0F reserved − 0xFFF26C10 SCI Status Register SCIBR SCICR SCISR MSC8156 Reference Manual, Rev. 2 9-40 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF26C14– 0xFFF26C17 reserved − 0xFFF26C18 SCI Data Register − 0xFFF26C1C– 0xFFF26C27 reserved − 0xFFF26C28 SCI Data Direction Register − 0xFFF26C2C– 0xFFF26C3F reserved • 0xFFF26C40– 0xFFF26FFF reserved • 0xFFF27000– 0xFFF270FF GIC SCIDR − 0xFFF27000 Virtual Interrupt Generation Register − 0xFFF27004– 0xFFF27007 reserved − 0xFFF27008 Virtual Interrupt Status Register − 0xFFF2700C– 0xFFF270FF reserved • 0xFFF27100– 0xFFF271FF SCIDDR VIGR VISR Hardware Semaphores − 0xFFF27100 Hardware Semaphore Register 0 − 0xFFF27104– 0xFFF27107 reserved − 0xFFF27108 Hardware Semaphore Register 1 − 0xFFF2710C– 0xFFF2710F reserved − 0xFFF27110 Hardware Semaphore Register 2 − 0xFFF27114– 0xFFF27117 reserved − 0xFFF27118 Hardware Semaphore Register 3 − 0xFFF2711C– 0xFFF2711F reserved − 0xFFF27120 Hardware Semaphore Register 4 − 0xFFF27124– 0xFFF27127 reserved − 0xFFF27128 Hardware Semaphore Register 5 − 0xFFF2712C– 0xFFF2712F reserved − 0xFFF27130 Hardware Semaphore Register 6 − 0xFFF27134– 0xFFF27137 reserved − 0xFFF27138 Hardware Semaphore Register 7 − 0xFFF2713C– 0xFFF271FF reserved • 0xFFF27200– 0xFFF272FF Acronym HSMPR0 HSMPR1 HSMPR2 HSMPR3 HSMPR4 HSMPR5 HSMPR6 HSMPR7 GPIO MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-41 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF27200 Pin Open-Drain Register − 0xFFF27204– 0xFFF27207 reserved − 0xFFF27208 Pin Data Register − 0xFFF2720C– 0xFFF2720F reserved − 0xFFF27210 Pin Data Direction Register − 0xFFF27214– 0xFFF27217 reserved − 0xFFF27218 Pin Assignment Register − 0xFFF2721C– 0xFFF2721F reserved − 0xFFF27220 Pin Special Options Register − 0xFFF27224– 0xFFF272FF reserved PODR PDAT • 0xFFF27300– 0xFFF27FFF reserved • 0xFFF28000– 0xFFF281FF General Configuration Registers − 0xFFF28000 Acronym General Configuration Register 1 PDIR PAR PSOR GCR1 − 0xFFF28004 General Configuration Register 2 GCR2 − 0xFFF28008 General Status Register 1 GSR1 − 0xFFF2800C High Speed Serial Interface Status Register HSSI_SR − 0xFFF28010 DDR General Configuration Register DDR_GCR − 0xFFF28014 High Speed Serial Interface Control Register 1 HSSI_CR1 − 0xFFF28018 High Speed Serial Interface Control Register 2 HSSI_CR2 − 0xFFF2801C QUICC Engine Control Register QECR − 0xFFF28020 GPIO Pull-Up Enable Register GPUER − 0xFFF28024 GPIO Input Enable Register GIER − 0xFFF28028 System Part and Revision ID Register SPRIDR − 0xFFF2802C– 0xFFF2802F reserved − 0xFFF28030 General Control Register 4 GCR4 − 0xFFF28034 General Control Register 5 GCR5 − 0xFFF28038 General Status Register 2 GSR2 − 0xFFF2803C Core Subsystem Slave Port Priority Control Register TSPPCR − 0xFFF28040 QUICC Engine First External Request Multiplex Register CPCE1R − 0xFFF28044 QUICC Engine Second External Request Multiplex Register CPCE2R − 0xFFF28048 QUICC Engine Third External Request Multiplex Register CPCE3R − 0xFFF2804C QUICC Engine Fourth External Request Multiplex Register CPCE4R − 0xFFF28050– 0xFFF28073 reserved − 0xFFF28074 General Control Register 10 GCR10 MSC8156 Reference Manual, Rev. 2 9-42 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF28078– 0xFFF2807F reserved − 0xFFF28080 General Interrupt Register 1 GIR1 − 0xFFF28084 General Interrupt Enable Register 1 for Core 0 GIER1_0 − 0xFFF28088 General Interrupt Enable Register 1 for Core 1 GIER1_1 − 0xFFF2808C General Interrupt Enable Register 1 for Core 2 GIER1_2 − 0xFFF28090 General Interrupt Enable Register 1 for Core 3 GIER1_3 − 0xFFF28094 General Interrupt Enable Register 1 for Core 4 GIER1_4 − 0xFFF28098 General Interrupt Enable Register 1 for Core 5 GIER1_5 − 0xFFF2809C– 0xFFF280A3 reserved − 0xFFF280A4 General Interrupt Register 3 GIR3 − 0xFFF280A8 General Interrupt Enable Register 3 for Core 0 GIER3_0 − 0xFFF280AC General Interrupt Enable Register 3 for Core 1 GIER3_1 − 0xFFF280B0 General Interrupt Enable Register 3 for Core 2 GIER3_2 − 0xFFF280B4 General Interrupt Enable Register 3 for Core 3 GIER3_3 − 0xFFF280B8 General Interrupt Enable Register 3 for Core 4 GIER3_4 − 0xFFF280BC General Interrupt Enable Register 3 for Core 5 GIER3_5 − 0xFFF280C0– 0xFFF280EB reserved − 0xFFF280EC General Interrupt Register 5 GIR5 − 0xFFF280F0 General Interrupt Enable Register 5 for Core 0 GIER5_0 − 0xFFF280F4 General Interrupt Enable Register 5 for Core 1 GIER5_1 − 0xFFF280F8 General Interrupt Enable Register 5 for Core 2 GIER5_2 − 0xFFF280FC General Interrupt Enable Register 5 for Core 3 GIER5_3 − 0xFFF28100 General Interrupt Enable Register 5 for Core 4 GIER5_4 − 0xFFF28104 General Interrupt Enable Register 5 for Core 5 GIER5_5 − 0xFFF28108– 0xFFF2810F reserved − 0xFFF28110 General Control Register 11 GCR11 − 0xFFF28114 General Control Register 12 GCR12 − 0xFFF28118– 0xFFF2811F reserved − 0xFFF28120 DMA Request0 Control Register GCR_DREQ0 − 0xFFF28124 DMA Request1 Control Register GCR_DREQ1 − 0xFFF28128 DMA Done Control Register GCR_DDONE − 0xFFF2812C DDR1 General Configuration Register DDR1_GCR − 0xFFF28130 DDR2 General Configuration Register DDR2_GCR − 0xFFF28134– 0xFFF28137 reserved − 0xFFF28138 Core Subsystem Slave Port General Configuration Register − 0xFFF2813C– 0xFFF281FF reserved CORE_SLV_GCR MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-43 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status • 0xFFF28200– 0xFFF2FFFF reserved • 0xFFF30000– 0xFFF33FFF TDM0 − 0xFFF30000– 0xFFF307FF TDM0 Receive Local Memory − 0xFFF30800– 0xFFF30FFF reserved − 0xFFF31000– 0xFFF313FC TDM0 Receive Channel Parameters Register 0–255 − 0xFFF31400– 0xFFF317FF reserved − 0xFFF31800– 0xFFF31FFF TDM0 Transmit Local Memory − 0xFFF32000– 0xFFF327FF reserved − 0xFFF32800– 0xFFF32BFC TDM0 Transmit Channel Parameters Register 0–255 − 0xFFF32C00– 0xFFF33EFF reserved − 0xFFF33F00 TDM0 Parity Control Register − 0xFFF33F04– 0xFFF33F07 reserved − 0xFFF33F08 TDM0 Parity Error Register − 0xFFF33F0C– 0xFFF33F0F reserved − 0xFFF33F10 TDM0 Transmit Force Register − 0xFFF33F14– 0xFFF33F17 reserved − 0xFFF33F18 TDM0 Receive Force Register − 0xFFF33F1C– 0xFFF33F1F reserved − 0xFFF33F20 TDM0 Transmit Status Register − 0xFFF33F24– 0xFFF33F27 reserved − 0xFFF33F28 TDM0 Receive Status Register − 0xFFF33F2C– 0xFFF33F2F reserved − 0xFFF33F30 TDM0 Adaptation Status Register − 0xFFF33F34– 0xFFF33F37 reserved − 0xFFF33F38 TDM0 Transmit Event Register − 0xFFF33F3C– 0xFFF33F3F reserved − 0xFFF33F40 TDM0 Receive Event Register − 0xFFF33F44– 0xFFF33F47 reserved Acronym TDM0RCPR[0–255] TDM0TCPR[0–255] TDM0PCR TDM0PER TDM0TFR TDM0RFR TDM0TSR TDM0RSR TDM0ASR TDM0TER TDM0RER MSC8156 Reference Manual, Rev. 2 9-44 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF33F48 TDM0 Transmit Number of Buffers − 0xFFF33F4C– 0xFFF33F4F reserved − 0xFFF33F50 TDM0 Receive Number of Buffers − 0xFFF33F54– 0xFFF33F57 reserved − 0xFFF33F58 TDM0 Transmit Data Buffer Displacement Register − 0xFFF33F5C– 0xFFF33F5F reserved − 0xFFF33F60 TDM0 Receive Data Buffer Displacement Register − 0xFFF33F64– 0xFFF33F67 reserved − 0xFFF33F68 TDM0 Adaptation Sync Distance Register − 0xFFF33F6C– 0xFFF33F6F reserved − 0xFFF33F70 TDM0 Transmit Interrupt Enable Register − 0xFFF33F74– 0xFFF33F77 reserved − 0xFFF33F78 TDM0 Receive Interrupt Enable Register − 0xFFF33F7C– 0xFFF33F7F reserved − 0xFFF33F80 TDM0 Transmit Data Buffer Second Threshold − 0xFFF33F84– 0xFFF33F87 reserved − 0xFFF33F88 TDM0 Receive Data Buffer Second Threshold − 0xFFF33F8C– 0xFFF33F8F reserved − 0xFFF33F90 TDM0 Transmit Data Buffer First Threshold − 0xFFF33F94– 0xFFF33F97 reserved − 0xFFF33F98 TDM0 Receive Data Buffer First Threshold − 0xFFF33F9C– 0xFFF33F9F reserved − 0xFFF33FA0 TDM0 Transmit Control Register − 0xFFF33FA4– 0xFFF33FA7 reserved − 0xFFF33FA8 TDM0 Receive Control Register − 0xFFF33FAC– 0xFFF33FAF reserved − 0xFFF33FB0 TDM0 Adaptation Control Register − 0xFFF33FB4– 0xFFF33FB7 reserved − 0xFFF33FB8 TDM0 Transmit Global Base Address − 0xFFF33FBC– 0xFFF33FBF reserved − 0xFFF33FC0 TDM0 Receive Global Base Address Acronym TDM0TNB TDM0RNB TDM0TDBDR TDM0RDBDR TDM0ASDR TDM00TIER TDM0RIER TDM0TDBST TDM0RDBST TDM0TDBFT TDM0RDBFT TDM0TCR TDM0RCR TDM0ACR TDM0TGBA TDM0RGBA MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-45 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF33FC4– 0xFFF33FC7 reserved − 0xFFF33FC8 TDM0 Transmit Data Buffer Size − 0xFFF33FCC– 0xFFF33FCF reserved − 0xFFF33FD0 TDM0 Receive Data Buffer Size − 0xFFF33FD4– 0xFFF33FD7 reserved − 0xFFF33FD8 TDM0 Transmit Frame Parameters − 0xFFF33FDC– 0xFFF33FDF reserved − 0xFFF33FE0 TDM0 Receive Frame Parameters − 0xFFF33FE4– 0xFFF33FE7 reserved − 0xFFF33FE8 TDM0 Transmit Interface Register − 0xFFF33FEC– 0xFFF33FEF reserved − 0xFFF33FF0 TDM0 Receive Interface Register − 0xFFF33FF4– 0xFFF33FF7 reserved − 0xFFF33FF8 TDM0 General Interface Register − 0xFFF33FFC– 0xFFF33FFF reserved • 0xFFF34000– 0xFFF37FFF Acronym TDM0TDBS TDM0RDBS TDM0TFP TDM0RFP TDM0TIR TDM0RIR TDM0GIR TDM1 − 0xFFF34000– 0xFFF347FF TDM1 Receive Local Memory − 0xFFF34800– 0xFFF34FFF reserved − 0xFFF35000– 0xFFF353FC TDM1 Receive Channel Parameters Register 0–255 − 0xFFF35400– 0xFFF357FF reserved − 0xFFF35800– 0xFFF35FFF TDM1 Transmit Local Memory − 0xFFF36000– 0xFFF367FF reserved − 0xFFF36800– 0xFFF36BFC TDM1 Transmit Channel Parameters Register 0–255 − 0xFFF36C00– 0xFFF37EFF reserved − 0xFFF37F00 TDM1 Parity Control Register − 0xFFF37F04– 0xFFF37F07 reserved − 0xFFF37F08 TDM1 Parity Error Register − 0xFFF37F0C– 0xFFF37F0F reserved TDM1RCPR[0–255] TDM1TCPR[0–255] TDM1PCR TDM1PER MSC8156 Reference Manual, Rev. 2 9-46 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF37F10 TDM1 Transmit Force Register − 0xFFF37F14– 0xFFF37F17 reserved − 0xFFF37F18 TDM1 Receive Force Register − 0xFFF37F1C– 0xFFF37F1F reserved − 0xFFF37F20 TDM1 Transmit Status Register − 0xFFF37F24– 0xFFF37F27 reserved − 0xFFF37F28 TDM1 Receive Status Register − 0xFFF37F2C– 0xFFF37F2F reserved − 0xFFF37F30 TDM1 Adaptation Status Register − 0xFFF37F34– 0xFFF37F37 reserved − 0xFFF37F38 TDM1 Transmit Event Register − 0xFFF37F3C– 0xFFF37F3F reserved − 0xFFF37F40 TDM1 Receive Event Register − 0xFFF37F44– 0xFFF37F47 reserved − 0xFFF37F48 TDM1 Transmit Number of Buffers − 0xFFF37F4C– 0xFFF37F4F reserved − 0xFFF37F50 TDM1 Receive Number of Buffers − 0xFFF37F54– 0xFFF37F57 reserved − 0xFFF37F58 TDM1 Transmit Data Buffer Displacement Register − 0xFFF37F5C– 0xFFF37F5F reserved − 0xFFF37F60 TDM1 Receive Data Buffer Displacement Register − 0xFFF37F64– 0xFFF37F67 reserved − 0xFFF37F68 TDM1 Adaptation Sync Distance Register − 0xFFF37F6C– 0xFFF37F6F reserved − 0xFFF37F70 TDM1 Transmit Interrupt Enable Register − 0xFFF37F74– 0xFFF37F77 reserved − 0xFFF37F78 TDM1 Receive Interrupt Enable Register − 0xFFF37F7C– 0xFFF37F7F reserved − 0xFFF37F80 TDM1 Transmit Data Buffer Second Threshold − 0xFFF37F84– 0xFFF37F87 reserved − 0xFFF37F88 TDM1 Receive Data Buffer Second Threshold Acronym TDM1TFR TDM1RFR TDM1TSR TDM1RSR TDM1ASR TDM1TER TDM1RER TDM1TNB TDM1RNB TDM1TDBDR TDM1RDBDR TDM1ASDR TDM10TIER TDM1RIER TDM1TDBST TDM1RDBST MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-47 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF37F8C– 0xFFF37F8F reserved − 0xFFF37F90 TDM1 Transmit Data Buffer First Threshold − 0xFFF37F94– 0xFFF37F97 reserved − 0xFFF37F98 TDM1 Receive Data Buffer First Threshold − 0xFFF37F9C– 0xFFF37F9F reserved − 0xFFF37FA0 TDM1 Transmit Control Register − 0xFFF37FA4– 0xFFF37FA7 reserved − 0xFFF37FA8 TDM1 Receive Control Register − 0xFFF37FAC– 0xFFF37FAF reserved − 0xFFF37FB0 TDM1 Adaptation Control Register − 0xFFF37FB4– 0xFFF37FB7 reserved − 0xFFF37FB8 TDM1 Transmit Global Base Address − 0xFFF37FBC– 0xFFF37FBF reserved − 0xFFF37FC0 TDM1 Receive Global Base Address − 0xFFF37FC4– 0xFFF37FC7 reserved − 0xFFF37FC8 TDM1 Transmit Data Buffer Size − 0xFFF37FCC– 0xFFF37FCF reserved − 0xFFF37FD0 TDM1 Receive Data Buffer Size − 0xFFF37FD4– 0xFFF37FD7 reserved − 0xFFF37FD8 TDM1 Transmit Frame Parameters − 0xFFF37FDC– 0xFFF37FDF reserved − 0xFFF37FE0 TDM1 Receive Frame Parameters − 0xFFF37FE4– 0xFFF37FE7 reserved − 0xFFF37FE8 TDM1 Transmit Interface Register − 0xFFF37FEC– 0xFFF37FEF reserved − 0xFFF37FF0 TDM1 Receive Interface Register − 0xFFF37FF4– 0xFFF37FF7 reserved − 0xFFF37FF8 TDM1 General Interface Register − 0xFFF37FFC– 0xFFF37FFF reserved • 0xFFF38000– 0xFFF3BFFF Acronym TDM1TDBFT TDM1RDBFT TDM1TCR TDM1RCR TDM1ACR TDM1TGBA TDM1RGBA TDM1TDBS TDM1RDBS TDM1TFP TDM1RFP TDM1TIR TDM1RIR TDM1GIR TDM2 MSC8156 Reference Manual, Rev. 2 9-48 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF38000– 0xFFF387FF TDM2 Receive Local Memory − 0xFFF38800– 0xFFF38FFF reserved − 0xFFF39000– 0xFFF393FC TDM2 Receive Channel Parameters Register 0–255 − 0xFFF39400– 0xFFF397FF reserved − 0xFFF39800– 0xFFF39FFF TDM2 Transmit Local Memory − 0xFFF3A000– 0xFFF3A7FF reserved − 0xFFF3A800– 0xFFF3ABFC TDM2 Transmit Channel Parameters Register 0–255 − 0xFFF3AC00– 0xFFF3BEFF reserved − 0xFFF3BF00 TDM2 Parity Control Register − 0xFFF3BF04– 0xFFF3BF07 reserved − 0xFFF3BF08 TDM2 Parity Error Register − 0xFFF3BF0C– 0xFFF3BF0F reserved − 0xFFF3BF10 TDM2 Transmit Force Register − 0xFFF3BF14– 0xFFF3BF17 reserved − 0xFFF3BF18 TDM2 Receive Force Register − 0xFFF3BF1C– 0xFFF3BF1F reserved − 0xFFF3BF20 TDM2 Transmit Status Register − 0xFFF3BF24– 0xFFF3BF27 reserved − 0xFFF3BF28 TDM2 Receive Status Register − 0xFFF3BF2C– 0xFFF3BF2F reserved − 0xFFF3BF30 TDM2 Adaptation Status Register − 0xFFF3BF34– 0xFFF38F37 reserved − 0xFFF3BF38 TDM2 Transmit Event Register − 0xFFF3BF3C– 0xFFF3BF3F reserved − 0xFFF3BF40 TDM2 Receive Event Register − 0xFFF3BF44– 0xFFF3BF47 reserved − 0xFFF3BF48 TDM2 Transmit Number of Buffers − 0xFFF3BF4C– 0xFFF3BF4F reserved Acronym TDM2RCPR[0–255] TDM2TCPR[0–255] TDM2PCR TDM2PER TDM2TFR TDM2RFR TDM2TSR TDM2RSR TDM2ASR TDM2TER TDM2RER TDM2TNB MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-49 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF3BF50 TDM2 Receive Number of Buffers − 0xFFF3BF54– 0xFFF3BF57 reserved − 0xFFF3BF58 TDM2 Transmit Data Buffer Displacement Register − 0xFFF3BF5C– 0xFFF3BF5F reserved − 0xFFF3BF60 TDM2 Receive Data Buffer Displacement Register − 0xFFF3BF64– 0xFFF3BF67 reserved − 0xFFF3BF68 TDM2 Adaptation Sync Distance Register − 0xFFF3BF6C– 0xFFF3BF6F reserved − 0xFFF3BF70 TDM2 Transmit Interrupt Enable Register − 0xFFF3BF74– 0xFFF3BF77 reserved − 0xFFF3BF78 TDM2 Receive Interrupt Enable Register − 0xFFF3BF7C– 0xFFF3BF7F reserved − 0xFFF3BF80 TDM2 Transmit Data Buffer Second Threshold − 0xFFF3BF84– 0xFFF3BF87 reserved − 0xFFF3BF88 TDM2 Receive Data Buffer Second Threshold − 0xFFF3BF8C– 0xFFF3BF8F reserved − 0xFFF3BF90– 0xFFF38F94 TDM2 Transmit Data Buffer First Threshold TDM2TDBFT − 0xFFF3BF98 TDM2 Receive Data Buffer First Threshold TDM2RDBFT − 0xFFF3BF9C– 0xFFF3BF9F reserved − 0xFFF3BFA0 TDM2 Transmit Control Register − 0xFFF3BFA4– 0xFFF3BFA7 reserved − 0xFFF3BFA8 TDM2 Receive Control Register − 0xFFF3BFAC– 0xFFF3BFAF reserved − 0xFFF3BFB0 TDM2 Adaptation Control Register − 0xFFF3BFB4– 0xFFF3BFB7 reserved − 0xFFF3BFB8 TDM2 Transmit Global Base Address − 0xFFF3BFBC– 0xFFF3BFBF reserved − 0xFFF3BFC0 TDM2 Receive Global Base Address − 0xFFF3BFC4– 0xFFF3BFC7 reserved − 0xFFF3BFC8 TDM2 Transmit Data Buffer Size TDM2RNB TDM2TDBDR TDM2RDBDR TDM2ASDR TDM20TIER TDM2RIER TDM2TDBST TDM2RDBST TDM2TCR TDM2RCR TDM2ACR TDM2TGBA TDM2RGBA TDM2TDBS MSC8156 Reference Manual, Rev. 2 9-50 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF3BFCC– 0xFFF3BFCF reserved − 0xFFF3BFD0 TDM2 Receive Data Buffer Size − 0xFFF3BFD4– 0xFFF3BFD7 reserved − 0xFFF3BFD8 TDM2 Transmit Frame Parameters − 0xFFF3BFDC– 0xFFF3BFDF reserved − 0xFFF3BFE0 TDM2 Receive Frame Parameters − 0xFFF3BFE4– 0xFFF3BFE7 reserved − 0xFFF3BFE8 TDM2 Transmit Interface Register − 0xFFF3BFEC– 0xFFF3BFEF reserved − 0xFFF3BFF0 TDM2 Receive Interface Register − 0xFFF3BFF4– 0xFFF3BFF7 reserved − 0xFFF3BFF8 TDM2 General Interface Register − 0xFFF3BFFC– 0xFFF3BFFF reserved • 0xFFF3C000– 0xFFF3FFFF Acronym TDM2RDBS TDM2TFP TDM2RFP TDM2TIR TDM2RIR TDM2GIR TDM3 − 0xFFF3C000– 0xFFF3C7FF TDM3 Receive Local Memory − 0xFFF3C800– 0xFFF3CFFF reserved − 0xFFF3D000– 0xFFF3D3FC TDM3 Receive Channel Parameters Register 0–255 − 0xFFF3D400– 0xFFF3D7FF reserved − 0xFFF3D800– 0xFFF3DFFF TDM3 Transmit Local Memory − 0xFFF3E000– 0xFFF3E7FF reserved − 0xFFF3E800– 0xFFF3EBFC TDM3 Transmit Channel Parameters Register 0–255 − 0xFFF3EC00– 0xFFF3FEFF reserved − 0xFFF3FF00 TDM3 Parity Control Register − 0xFFF3FFF04– 0xFFF3FF07 reserved − 0xFFF3FF08 TDM3 Parity Error Register − 0xFFF3FF0C– 0xFFF3FF0F reserved − 0xFFF3FF10 TDM3 Transmit Force Register − 0xFFF3FF14– 0xFFF3FF17 reserved TDM3RCPR[0–255] TDM3TCPR[0–255] TDM3PCR TDM3PER TDM3TFR MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-51 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF3FF18 TDM3 Receive Force Register − 0xFFF3FF1C– 0xFFF3FF1F reserved − 0xFFF3FF20 TDM3 Transmit Status Register − 0xFFF3FF24– 0xFFF3FF27 reserved − 0xFFF3FF28 TDM3 Receive Status Register − 0xFFF3FF2C– 0xFFF3FF2F reserved − 0xFFF3FF30 TDM3 Adaptation Status Register − 0xFFF3FF34– 0xFFF3FF37 reserved − 0xFFF3FF38 TDM3 Transmit Event Register − 0xFFF3FF3C– 0xFFF3FF3F reserved − 0xFFF3FF40 TDM3 Receive Event Register − 0xFFF3FF44– 0xFFF3FF47 reserved − 0xFFF3FF48 TDM3 Transmit Number of Buffers − 0xFFF3FF4C– 0xFFF3FF4F reserved − 0xFFF3FF50 TDM3 Receive Number of Buffers − 0xFFF3FF54– 0xFFF3FF57 reserved − 0xFFF3FF58 TDM3 Transmit Data Buffer Displacement Register − 0xFFF3FF5C– 0xFFF3FF5F reserved − 0xFFF3FF60 TDM3 Receive Data Buffer Displacement Register − 0xFFF3FF64– 0xFFF3FF67 reserved − 0xFFF3FF68 TDM3 Adaptation Sync Distance Register − 0xFFF3FF6C– 0xFFF3FF6F reserved − 0xFFF3FF70 TDM3 Transmit Interrupt Enable Register − 0xFFF3FF74– 0xFFF3FF77 reserved − 0xFFF3FF78 TDM3 Receive Interrupt Enable Register − 0xFFF3FF7C– 0xFFF3FF7F reserved − 0xFFF3FF80 TDM3 Transmit Data Buffer Second Threshold − 0xFFF3FF84– 0xFFF3FF87 reserved − 0xFFF3FF88 TDM3 Receive Data Buffer Second Threshold − 0xFFF3FF8C– 0xFFF3FF8F reserved − 0xFFF3FF90 TDM3 Transmit Data Buffer First Threshold Acronym TDM3RFR TDM3TSR TDM3RSR TDM3ASR TDM3TER TDM3RER TDM3TNB TDM3RNB TDM3TDBDR TDM3RDBDR TDM3ASDR TDM30TIER TDM3RIER TDM3TDBST TDM3RDBST TDM3TDBFT MSC8156 Reference Manual, Rev. 2 9-52 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFF3FF94– 0xFFF3FF97 reserved − 0xFFF3FF98 TDM3 Receive Data Buffer First Threshold − 0xFFF3FF9C– 0xFFF3FF9F reserved − 0xFFF3FFA0 TDM3 Transmit Control Register − 0xFFF3FFA4– 0xFFF3FFA7 reserved − 0xFFF3FFA8 TDM3 Receive Control Register − 0xFFF3FFAC– 0xFFF3FFAF reserved − 0xFFF3FFB0 TDM3 Adaptation Control Register Acronym TDM3RDBFT TDM3TCR TDM3RCR TDM3ACR − 0xFFF3FFB4–0xF reserved FF3FFB7 − 0xFFF3FFB8 TDM3 Transmit Global Base Address − 0xFFF3FFBC– 0xFFF3FFBF reserved − 0xFFF3FFC0 TDM3 Receive Global Base Address − 0xFFF3FFC4– 0xFFF3FFC7 reserved − 0xFFF3FFC8 TDM3 Transmit Data Buffer Size − 0xFFF3FFCC– 0xFFF3FFCF reserved − 0xFFF3FFD0 TDM3 Receive Data Buffer Size − 0xFFF3FFD4– 0xFFF3FFD7 reserved − 0xFFF3FFD8 TDM3 Transmit Frame Parameters − 0xFFF3FFDC– 0xFFF3FFDF reserved − 0xFFF3FFE0 TDM3 Receive Frame Parameters − 0xFFF3FFE4– 0xFFF3FFE7 reserved − 0xFFF3FFE8 TDM3 Transmit Interface Register − 0xFFF3FFEC– 0xFFF3FFEF reserved − 0xFFF3FFF0 TDM3 Receive Interface Register − 0xFFF3FFF4– 0xFFF3FFF7 reserved − 0xFFF3FFF8 TDM3 General Interface Register − 0xFFF3FFFC– 0xFFF3FFFF reserved • 0xFFF40000– 0xFFF7FFFF reserved • 0xFFF80000– 0xFFF9FFFF RapidIO − 0xFFF80000 Device Identity Capability Register TDM3TGBA TDM3RGBA TDM3TDBS TDM3RDBS TDM3TFP TDM3RFP TDM3TIR TDM3RIR TDM3GIR DIDCAR MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-53 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF80004 Device Information Capability Register DICAR − 0xFFF80008 Assembly Identity Capability Register AIDCAR − 0xFFF8000C Assembly Information Capability Register AICAR − 0xFFF80010 Processing Element Features Capability Register PEFCAR − 0xFFF80018 Source Operations Capability Register SOCAR − 0xFFF8001C Destination Operations Capability Register DOCAR − 0xFFF80020– 0xFFF8003F reserved − 0xFFF80040 Mailbox Command And Status Register MCSR − 0xFFF80044 Port -Write and Doorbell Command and Status Register PWDCSR − 0xFFF80048– 0xFFF8004B reserved − 0xFFF8004C Processing Element Logical Layer Control Command and Status PELLCCSR Register − 0xFFF80050– 0xFFF8005B reserved − 0xFFF8005C Local Configuration Space Base Address 1 Command and Status LCSBA1CSR Register − 0xFFF80060 Base Device ID Command and Status Register − 0xFFF80064– 0xFFF80067 reserved − 0xFFF80068 Host Base Device ID Lock Command and Status Register HBDIDLCSR − 0xFFF8006C Component Tag Command and Status Register CTCSR − 0xFFF80070– 0xFFF800FF reserved − 0xFFF80100 Port Maintenance Block Header 0 − 0xFFF80104– 0xFFF8011F reserved − 0xFFF80120 Port Link Time-out Control Command and Status Register PLTOCCSR − 0xFFF80124 Port Response Time-out Control Command and Status Register PRTOCCSR − 0xFFF80128– 0xFFF8013B reserved − 0xFFF8013C Port General Control Command and Status Register − 0xFFF80140 Port 0 Link Maintenance Request Command and Status Register P0LMREQCSR − 0xFFF80144 Port 0 Link Maintenance Response Command and Status Register P0LMRESPCSR − 0xFFF80148 Port 0 Local ackID Status Command and Status Register P0LASCSR − 0xFFF8014C– 0xFFF80157 reserved − 0xFFF80158 Port 0 Error and Status Command and Status Register P0ESCSR − 0xFFF8015C Port 0 Control Command and Status Register P0CCSR − 0xFFF80160 Port 1 Link Maintenance Request Command and Status Register P1LMREQCSR − 0xFFF80164 Port 1 Link Maintenance Response Command and Status Register P1LMRESPCSR − 0xFFF80168 Port 1 Local ackID Status Command and Status Register P1LASCSR BDIDCSR PMBH0 PGCCSR MSC8156 Reference Manual, Rev. 2 9-54 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF8016C– 0xFFF80177 reserved − 0xFFF80178 Port 1 Error and Status Command and Status Register P1ESCSR − 0xFFF8017C Port 1 Control Command and Status Register P1CCSR − 0xFFF80180– 0xFFF805FF reserved − 0xFFF80600 Error Reporting Block Header − 0xFFF80604– 0xFFF80607 reserved − 0xFFF80608 Logical/Transport Layer Error Detect Command and Status Register LTLEDCSR − 0xFFF8060C Logical/Transport Layer Error Enable Command and Status Register LTLEECSR − 0xFFF80610– 0xFFF80613 reserved − 0xFFF80614 Logical/Transport Layer Address Capture Command and Status Register − 0xFFF80618 Logical/Transport Layer Device ID Capture Command and Status LTLDIDCCSR Register − 0xFFF8061C Logical/Transport Layer Control Capture Command and Status Register − 0xFFF80620– 0xFFF8063F reserved − 0xFFF80640 Port 0 Error Detect Command and Status Register P0EDCSR − 0xFFF80644 Port 0 Error Rate Enable Command and Status Register P0ERECSR − 0xFFF80648 Port 0 Error Capture Attributes Command and Status Register P0ECACSR − 0xFFF8064C Port 0 Packet/Control Symbol Error Capture Command and Status Register 0 P0PCSECCSR0 ERBH LTLACCSR LTLCCCSR − 0xFFF80650 Port 0 Packet Error Capture Command and Status Register 1 P0PECCSR1 − 0xFFF80654 Port 0 Packet Error Capture Command and Status Register 2 P0PECCSR2 − 0xFFF80658 Port 0 Packet Error Capture Command and Status Register 3 P0PECCSR3 − 0xFFF8065C– 0xFFF80667 reserved − 0xFFF80668 Port 0 Error Rate Command and Status Register P0ERCSR − 0xFFF8066C Port 0 Error Rate Threshold Command and Status Register P0ERTCSR − 0xFFF80670– 0xFFF8067F reserved − 0xFFF80680 Port 1 Error Detect Command and Status Register P1EDCSR − 0xFFF80684 Port 1 Error Rate Enable Command and Status Register P1ERECSR − 0xFFF80688 Port 1 Error Capture Attributes Command and Status Register P1ECACSR − 0xFFF8068C Port 1 Packet/Control Symbol Error Capture Command and Status Register 0 P1PCSECCSR0 − 0xFFF80690 Port 1 Packet Error Capture Command and Status Register 1 P1PECCSR1 − 0xFFF80694 Port 1 Packet Error Capture Command and Status Register 2 P1PECCSR2 − 0xFFF80698 Port 1 Packet Error Capture Command and Status Register 3 P1PECCSR3 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-55 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF8069C– 0xFFF806A7 reserved − 0xFFF806A8 Port 1 Error Rate Command and Status Register P1ERCSR − 0xFFF806AC Port 1 Error Rate Threshold Command and Status Register P1ERTCSR − 0xFFF806B0– 0xFFF90003 reserved − 0xFFF90004 Logical Layer Configuration Register − 0xFFF90008– 0xFFF9000F reserved − 0xFFF90010 Error/Port-Write Interrupt Status Register − 0xFFF90014– 0xFFF9001F reserved − 0xFFF90020 Logical Retry Error Threshold Configuration Register − 0xFFF90024– 0xFFF9007F reserved − 0xFFF90080 Physical Retry Error Threshold Configuration Register − 0xFFF90084– 0xFFF900FF reserved − 0xFFF90100 Port 0 Alternate Device ID Command and Status Register − 0xFFF90104– 0xFFF9011F reserved − 0xFFF90120 Port 0 Pass-Through Accept-All Configuration Register P0PTAACR − 0xFFF90124 Port 0 Logical Outbound Packet Time-to-Live Configuration Register P0LOPTTLCR − 0xFFF90128– 0xFFF9012F reserved − 0xFFF90130 Port 0 Implementation Error Command and Status Register − 0xFFF90134– 0xFFF9013F reserved − 0xFFF90140 Port 0 Physical Configuration Register − 0xFFF90144– 0xFFF90157 reserved − 0xFFF90158 Port 0 Serial Link Command And Status Register − 0xFFF9015C– 0xFFF9015F reserved − 0xFFF90160 Port 0 Serial Link Error Injection Configuration Register − 0xFFF90164– 0xFFF9017F reserved − 0xFFF90180 Port 1 Alternate Device ID Command and Status Register − 0xFFF90184– 0xFFF9019F reserved − 0xFFF901A0 Port 1 Pass-Through Accept-All Configuration Register P1PTAACR − 0xFFF901A4 Port 1 Logical Outbound Packet Time-to-Live Configuration Register P1LOPTTLCR − 0xFFF901A8– 0xFFF901AF reserved LLCR EPWISR LRETCR PRETCR P0ADIDCSR P0IECSR P0PCR P0SLCSR P0SLEICR P1ADIDCSR MSC8156 Reference Manual, Rev. 2 9-56 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF901B0 Port 1 Implementation Error Command and Status Register − 0xFFF901B4– 0xFFF901BF reserved − 0xFFF901C0 Port 1 Physical Configuration Register − 0xFFF901C4– 0xFFF901D7 reserved − 0xFFF901D8 Port 1 Serial Link Command And Status Register − 0xFFF901DC– 0xFFF901DF reserved − 0xFFF901E0 Port 1 Serial Link Error Injection Configuration Register − 0xFFF901E4– 0xFFF90BF7 reserved − 0xFFF90BF8 IP Block Revision Register 1 IPBRR1 − 0xFFF90BFC IP Block Revision Register 2 IPBRR2 − 0xFFF90C00 Port 0 RapidIO Outbound Window Translation Address Register 0 P0ROWTAR0 − 0xFFF90C04 Port 0 RapidIO Outbound Window Translation Extended Address P0ROWTEAR0 Register 0 − 0xFFF90C08– 0xFFF90C0F reserved − 0xFFF90C10 Port 0 RapidIO Outbound Window Attributes Register 0 − 0xFFF90C14– 0xFFF90C1F reserved − 0xFFF90C20 Port 0 RapidIO Outbound Window Translation Address Register 1 P0ROWTAR1 − 0xFFF90C24 Port 0 RapidIO Outbound Window Translation Extended Address P0ROWTEAR1 Register 1 − 0xFFF90C28– 0xFFF90C2F reserved − 0xFFF90C30 Port 0 RapidIO Outbound Window Attributes Register 1 P0ROWAR1 − 0xFFF90C34 Port 0 RapidIO Outbound Window Segment 1 Register 1 P0ROWS1R1 − 0xFFF90C38 Port 0 RapidIO Outbound Window Segment 2 Register 1 P0ROWS2R1 − 0xFFF90C3C Port 0 RapidIO Outbound Window Segment 3 Register 1 P0ROWS3R1 − 0xFFF90C40 Port 0 RapidIO Outbound Window Translation Address Register 2 P0ROWTAR2 − 0xFFF90C44 Port 0 RapidIO Outbound Window Translation Extended Address P0ROWTEAR2 Register 2 − 0xFFF90C48 Port 0 RapidIO Outbound Window Base Address Register 2 − 0xFFF90C4C– 0xFFF90C4F reserved − 0xFFF90C50 Port 0 RapidIO Outbound Window Attributes Register 2 P0ROWAR2 − 0xFFF90C54 Port 0 RapidIO Outbound Window Segment 1 Register 2 P0ROWS1R2 − 0xFFF90C58 Port 0 RapidIO Outbound Window Segment 2 Register 2 P0ROWS2R2 − 0xFFF90C5C Port 0 RapidIO Outbound Window Segment 3 Register 2 P0ROWS3R2 − 0xFFF90C60 Port 0 RapidIO Outbound Window Translation Address Register 3 P0ROWTAR3 − 0xFFF90C64 Port 0 RapidIO Outbound Window Translation Extended Address P0ROWTEAR3 Register 3 − 0xFFF90C68 Port 0 RapidIO Outbound Window Base Address Register 3 P1IECSR P1PCR P1SLCSR P1SLEICR P0ROWAR0 P0ROWBAR2 P0ROWBAR3 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-57 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF90C6C– 0xFFF90C6F reserved − 0xFFF90C70 Port 0 RapidIO Outbound Window Attributes Register 3 P0ROWAR3 − 0xFFF90C74 Port 0 RapidIO Outbound Window Segment 1 Register 3 P0ROWS1R3 − 0xFFF90C78 Port 0 RapidIO Outbound Window Segment 2 Register 3 P0ROWS2R3 − 0xFFF90C7C Port 0 RapidIO Outbound Window Segment 3 Register 3 P0ROWS3R3 − 0xFFF90C80 Port 0 RapidIO Outbound Window Translation Address Register 4 P0ROWTAR4 − 0xFFF90C84 Port 0 RapidIO Outbound Window Translation Extended Address P0ROWTEAR4 Register 4 − 0xFFF90C88 Port 0 RapidIO Outbound Window Base Address Register 4 − 0xFFF90C8C– 0xFFF90C8F reserved − 0xFFF90C90 Port 0 RapidIO Outbound Window Attributes Register 4 P0ROWAR4 − 0xFFF90C94 Port 0 RapidIO Outbound Window Segment 1 Register 4 P0ROWS1R4 − 0xFFF90C98 Port 0 RapidIO Outbound Window Segment 2 Register 4 P0ROWS2R4 − 0xFFF90C9C Port 0 RapidIO Outbound Window Segment 3 Register 4 P0ROWS3R4 P0ROWBAR4 − 0xFFF90CA0 Port 0 RapidIO Outbound Window Translation Address Register 5 P0ROWTAR5 − 0xFFF90CA4 Port 0 RapidIO Outbound Window Translation Extended Address P0ROWTEAR5 Register 5 − 0xFFF90CA8 Port 0 RapidIO Outbound Window Base Address Register 5 − 0xFFF90CAC– 0xFFF90CAF reserved − 0xFFF90CB0 Port 0 RapidIO Outbound Window Attributes Register 5 P0ROWAR5 − 0xFFF90CB4 Port 0 RapidIO Outbound Window Segment 1 Register 5 P0ROWS1R5 − 0xFFF90CB8 Port 0 RapidIO Outbound Window Segment 2 Register 5 P0ROWS2R5 − 0xFFF90CBC Port 0 RapidIO Outbound Window Segment 3 Register 5 P0ROWS3R5 − 0xFFF90CC0 Port 0 RapidIO Outbound Window Translation Address Register 6 P0ROWTAR6 − 0xFFF90CC4 Port 0 RapidIO Outbound Window Translation Extended Address P0ROWTEAR6 Register 6 − 0xFFF90CC8 Port 0 RapidIO Outbound Window Base Address Register 6 − 0xFFF90CCC– 0xFFF90CCF reserved − 0xFFF90CD0 Port 0 RapidIO Outbound Window Attributes Register 6 P0ROWAR6 − 0xFFF90CD4 Port 0 RapidIO Outbound Window Segment 1 Register 6 P0ROWS1R6 − 0xFFF90CD8 Port 0 RapidIO Outbound Window Segment 2 Register 6 P0ROWS2R6 − 0xFFF90CDC Port 0 RapidIO Outbound Window Segment 3 Register 6 P0ROWS3R6 P0ROWBAR5 P0ROWBAR6 − 0xFFF90CE0 Port 0 RapidIO Outbound Window Translation Address Register 7 P0ROWTAR7 − 0xFFF90CE4 Port 0 RapidIO Outbound Window Translation Extended Address P0ROWTEAR7 Register 7 − 0xFFF90CE8 Port 0 RapidIO Outbound Window Base Address Register 7 − 0xFFF90CEC– 0xFFF90CEF reserved − 0xFFF90CF0 Port 0 RapidIO Outbound Window Attributes Register 7 P0ROWAR7 − 0xFFF90CF4 Port 0 RapidIO Outbound Window Segment 1 Register 7 P0ROWS1R7 P0ROWBAR7 MSC8156 Reference Manual, Rev. 2 9-58 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF90CF8 Port 0 RapidIO Outbound Window Segment 2 Register 7 P0ROWS2R7 − 0xFFF90CFC Port 0 RapidIO Outbound Window Segment 3 Register 7 P0ROWS3R7 − 0xFFF90D00 Port 0 RapidIO Outbound Window Translation Address Register 8 P0ROWTAR8 − 0xFFF90D04 Port 0 RapidIO Outbound Window Translation Extended Address P0ROWTEAR8 Register 8 − 0xFFF90D08 Port 0 RapidIO Outbound Window Base Address Register 8 − 0xFFF90D0C– 0xFFF90D0F reserved − 0xFFF90D10 Port 0 RapidIO Outbound Window Attributes Register 8 P0ROWAR8 − 0xFFF90D14 Port 0 RapidIO Outbound Window Segment 1 Register 8 P0ROWS1R8 − 0xFFF90D18 Port 0 RapidIO Outbound Window Segment 2 Register 8 P0ROWS2R8 − 0xFFF90D1C Port 0 RapidIO Outbound Window Segment 3 Register 8 P0ROWS3R8 − 0xFFF90D20– 0xFFF90D5F reserved − 0xFFF90D60 Port 0 RapidIO Inbound Window Translation Address Register 4 − 0xFFF90D64– 0xFFF90D67 reserved − 0xFFF90D68 Port 0 RapidIO Inbound Window Base Address Register 4 − 0xFFF90D6C– 0xFFF90D6F reserved − 0xFFF90D70 Port 0 RapidIO Inbound Window Attributes Register 4 − 0xFFF90D74– 0xFFF90D7F reserved − 0xFFF90D80 Port 0 RapidIO Inbound Window Translation Address Register 3 − 0xFFF90D84– 0xFFF90D87 reserved − 0xFFF90D88 Port 0 RapidIO Inbound Window Base Address Register 3 − 0xFFF90D8C– 0xFFF90D8F reserved − 0xFFF90D90 Port 0 RapidIO Inbound Window Attributes Register 3 − 0xFFF90D94– 0xFFF90D9F reserved − 0xFFF90DA0 Port 0 RapidIO Inbound Window Translation Address Register 2 − 0xFFF90DA4– 0xFFF90DA7 reserved − 0xFFF90DA8 Port 0 RapidIO Inbound Window Base Address Register 2 − 0xFFF90DAC– 0xFFF90DAF reserved − 0xFFF90DB0 Port 0 RapidIO inbound window attributes register 2 − 0xFFF90DB4– 0xFFF90DBF reserved − 0xFFF90DC0 Port 0 RapidIO Inbound Window Translation Address Register 1 − 0xFFF90DC4– 0xFFF90DC7 reserved − 0xFFF90DC8 Port 0 RapidIO Inbound Window Base Address Register 1 P0ROWBAR8 P0RIWTAR4 P0RIWBAR4 P0RIWAR4 P0RIWTAR3 P0RIWBAR3 P0RIWAR3 P0RIWTAR2 P0RIWBAR2 P0RIWAR2 P0RIWTAR1 P0RIWBAR1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-59 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF90DCC– 0xFFF90DCF reserved − 0xFFF90DD0 Port 0 RapidIO Inbound Window Attributes Register 1 − 0xFFF90DD4– 0xFFF90DDF reserved − 0xFFF90DE0 Port 0 RapidIO Inbound Window Translation Address Register 0 − 0xFFF90DE4– 0xFFF90DEF reserved − 0xFFF90DF0 Port 0 RapidIO Inbound Window Attributes Register 0 − 0xFFF90DF4– 0xFFF92DFF reserved − 0xFFF90E00 Port 1 RapidIO Outbound Window Translation Address Register 0 P1ROWTAR0 − 0xFFF90E04 Port 1 RapidIO Outbound Window Translation Extended Address P1ROWTEAR0 Register 0 − 0xFFF90E08 Port 1 RapidIO Outbound Window Base Address Register 0 − 0xFFF90E0C– 0xFFF90E0F reserved − 0xFFF90E10 Port 1 RapidIO Outbound Window Attributes Register 0 − 0xFFF90E14– 0xFFF90E1F reserved P0RIWAR1 P0RIWTAR0 P0RIWAR0 P1ROWBAR0 P1ROWAR0 − 0xFFF90E20 Port 1 RapidIO Outbound Window Translation Address Register 1 P1ROWTAR1 − 0xFFF90E24 Port 1 RapidIO Outbound Window Translation Extended Address P1ROWTEAR1 Register 1 − 0xFFF90E28 Port 1 RapidIO Outbound Window Base Address Register 1 − 0xFFF90E2C– 0xFFF90E2F reserved − 0xFFF90E30 Port 1 RapidIO Outbound Window Attributes Register 1 P1ROWAR1 − 0xFFF90E34 Port 1 RapidIO Outbound Window Segment 1 Register 1 P1ROWS1R1 − 0xFFF90E38 Port 1 RapidIO Outbound Window Segment 2 Register 1 P1ROWS2R1 − 0xFFF90E3C Port 1 RapidIO Outbound Window Segment 3 Register 1 P1ROWS3R1 − 0xFFF90E40 Port 1 RapidIO Outbound Window Translation Address Register 2 P1ROWTAR2 − 0xFFF90E44 Port 1 RapidIO Outbound Window Translation Extended Address P1ROWTEAR2 Register 2 − 0xFFF90E48 Port 1 RapidIO Outbound Window Base Address Register 2 − 0xFFF90E4C– 0xFFF90E4F reserved − 0xFFF90E50 Port 1 RapidIO Outbound Window Attributes Register 2 P1ROWAR2 − 0xFFF90E54 Port 1 RapidIO Outbound Window Segment 1 Register 2 P1ROWS1R2 − 0xFFF90E58 Port 1 RapidIO Outbound Window Segment 2 Register 2 P1ROWS2R2 − 0xFFF90E5C Port 1 RapidIO Outbound Window Segment 3 Register 2 P1ROWS3R2 P1ROWBAR1 P1ROWBAR2 − 0xFFF90E60 Port 1 RapidIO Outbound Window Translation Address Register 3 P1ROWTAR3 − 0xFFF90E64 Port 1 RapidIO Outbound Window Translation Extended Address P1ROWTEAR3 Register 3 − 0xFFF90E68 Port 1 RapidIO Outbound Window Base Address Register 3 P1ROWBAR3 MSC8156 Reference Manual, Rev. 2 9-60 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF90E6C– 0xFFF90E6F reserved − 0xFFF90E70 Port 1 RapidIO Outbound Window Attributes Register 3 P1ROWAR3 − 0xFFF90E74 Port 1 RapidIO Outbound Window Segment 1 Register 3 P1ROWS1R3 − 0xFFF90E78 Port 1 RapidIO Outbound Window Segment 2 Register 3 P1ROWS2R3 − 0xFFF90E7C Port 1 RapidIO Outbound Window Segment 3 Register 3 P1ROWS3R3 − 0xFFF90E80 Port 1 RapidIO Outbound Window Translation Address Register 4 P1ROWTAR4 − 0xFFF90E84 Port 1 RapidIO Outbound Window Translation Extended Address P1ROWTEAR4 Register 4 − 0xFFF90E88 Port 1 RapidIO Outbound Window Base Address Register 4 − 0xFFF90E8C– 0xFFF90E8F reserved − 0xFFF90E90 Port 1 RapidIO Outbound Window Attributes Register 4 P1ROWAR4 − 0xFFF90E94 Port 1 RapidIO Outbound Window Segment 1 Register 4 P1ROWS1R4 − 0xFFF90E98 Port 1 RapidIO Outbound Window Segment 2 Register 4 P1ROWS2R4 − 0xFFF90E9C Port 1 RapidIO Outbound Window Segment 3 Register 4 P1ROWS3R4 P1ROWBAR4 − 0xFFF90EA0 Port 1 RapidIO Outbound Window Translation Address Register 5 P1ROWTAR5 − 0xFFF90EA4 Port 1 RapidIO Outbound Window Translation Extended Address P1ROWTEAR5 Register 5 − 0xFFF90EA8 Port 1 RapidIO Outbound Window Base Address Register 5 − 0xFFF90EAC– 0xFFF90EAF reserved − 0xFFF90EB0 Port 1 RapidIO Outbound Window Attributes Register 5 P1ROWAR5 − 0xFFF90EB4 Port 1 RapidIO Outbound Window Segment 1 Register 5 P1ROWS1R5 − 0xFFF90EB8 Port 1 RapidIO Outbound Window Segment 2 Register 5 P1ROWS2R5 − 0xFFF90EBC Port 1 RapidIO Outbound Window Segment 3 Register 5 P1ROWS3R5 − 0xFFF90EC0 Port 1 RapidIO Outbound Window Translation Address Register 6 P1ROWTAR6 − 0xFFF90EC4 Port 1 RapidIO Outbound Window Translation Extended Address P1ROWTEAR6 Register 6 − 0xFFF90EC8 Port 1 RapidIO Outbound Window Base Address Register 6 − 0xFFF90ECC– 0xFFF90ECF reserved − 0xFFF90ED0 Port 1 RapidIO Outbound Window Attributes Register 6 P1ROWAR6 − 0xFFF90ED4 Port 1 RapidIO Outbound Window Segment 1 Register 6 P1ROWS1R6 − 0xFFF90ED8 Port 1 RapidIO Outbound Window Segment 2 Register 6 P1ROWS2R6 − 0xFFF90EDC Port 1 RapidIO Outbound Window Segment 3 Register 6 P1ROWS3R6 P1ROWBAR5 P1ROWBAR6 − 0xFFF90EE0 Port 1 RapidIO Outbound Window Translation Address Register 7 P1ROWTAR7 − 0xFFF90EE4 Port 1 RapidIO Outbound Window Translation Extended Address P1ROWTEAR7 Register 7 − 0xFFF90EE8 Port 1 RapidIO Outbound Window Base Address Register 7 − 0xFFF90EEC– 0xFFF90EEF reserved − 0xFFF90EF0 Port 1 RapidIO Outbound Window Attributes Register 7 P1ROWAR7 − 0xFFF90EF4 Port 1 RapidIO Outbound Window Segment 1 Register 7 P1ROWS1R7 P1ROWBAR7 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-61 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF90EF8 Port 1 RapidIO Outbound Window Segment 2 Register 7 P1ROWS2R7 − 0xFFF90EFC Port 1 RapidIO Outbound Window Segment 3 Register 7 P1ROWS3R7 − 0xFFF90F00 Port 1 RapidIO Outbound Window Translation Address Register 8 P1ROWTAR8 − 0xFFF90F04 Port 1 RapidIO Outbound Window Translation Extended Address P1ROWTEAR8 Register 8 − 0xFFF90F08 Port 1 RapidIO Outbound Window Base Address Register 8 − 0xFFF90F0C– 0xFFF90F0F reserved − 0xFFF90F10 Port 1 RapidIO Outbound Window Attributes Register 8 P1ROWAR8 − 0xFFF90F14 Port 1 RapidIO Outbound Window Segment 1 Register 8 P1ROWS1R8 − 0xFFF90F18 Port 1 RapidIO Outbound Window Segment 2 Register 8 P1ROWS2R8 − 0xFFF90F1C Port 1 RapidIO Outbound Window Segment 3 Register 8 P1ROWS3R8 − 0xFFF90F20– 0xFFF90F5F reserved − 0xFFF90F60 Port 1 RapidIO Inbound Window Translation Address Register 4 P1RIWTAR4 − 0xFFF90F64– 0xFFF90F67 reserved − 0xFFF90F68 Port 1 RapidIO Inbound Window Base Address Register 4 − 0xFFF90F6C– 0xFFF90F6F reserved − 0xFFF90F70 Port 1 RapidIO Inbound Window Attributes Register 4 − 0xFFF90F74– 0xFFF90F7F reserved − 0xFFF90F80 Port 1 RapidIO Inbound Window Translation Address Register 3 − 0xFFF90F84– 0xFFF90F87 reserved − 0xFFF90F88 Port 1 RapidIO Inbound Window Base Address Register 3 − 0xFFF90F8C– 0xFFF90F8F reserved − 0xFFF90F90 Port 1 RapidIO Inbound Window Attributes Register 3 − 0xFFF90F94– 0xFFF90F9F reserved − 0xFFF90FA0 Port 1 RapidIO Inbound Window Translation Address Register 2 − 0xFFF90FA4– 0xFFF90FA7 reserved − 0xFFF90FA8 Port 1 RapidIO Inbound Window Base Address Register 2 − 0xFFF90FAC– 0xFFF90FAF reserved − 0xFFF90FB0 Port 1 RapidIO inbound window attributes register 2 − 0xFFF90FB4– 0xFFF90FBF reserved − 0xFFF90FC0 Port 1 RapidIO Inbound Window Translation Address Register 1 − 0xFFF90FC4– 0xFFF90FC7 reserved − 0xFFF90FC8 Port 1 RapidIO Inbound Window Base Address Register 1 P1ROWBAR8 P1RIWBAR4 P1RIWAR4 P1RIWTAR3 P1RIWBAR3 P1RIWAR3 P1RIWTAR2 P1RIWBAR2 P1RIWAR2 P1RIWTAR1 P1RIWBAR1 MSC8156 Reference Manual, Rev. 2 9-62 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF90FCC– 0xFFF90FCF reserved − 0xFFF90FD0 Port 1 RapidIO Inbound Window Attributes Register 1 − 0xFFF90FD4– 0xFFF90FDF reserved − 0xFFF90FE0 Port 1 RapidIO Inbound Window Translation Address Register 0 − 0xFFF90FE4– 0xFFF90FE7 reserved − 0xFFF90FE8 Port 1 RapidIO Inbound Window Base Address Register 1 − 0xFFF90FEC– 0xFFF90FEF reserved − 0xFFF90FF0 Port 1 RapidIO Inbound Window Attributes Register 0 − 0xFFF90FF4– 0xFFF92DFF reserved − 0xFFF90FF4– 0xFFF92FFF reserved − 0xFFF93000 Outbound Message 0 Mode Register OM0MR − 0xFFF93004 Outbound Message 0 Status Register OM0SR − 0xFFF93008– 0xFFF9300B reserved − 0xFFF9300C Outbound Message 0 Descriptor Queue Dequeue Pointer Address Register − 0xFFF93010– 0xFFF93013 reserved − 0xFFF93014 Outbound Message 0 Source Address Register OM0SAR − 0xFFF93018 Outbound Message 0 Destination Port Register OM0DPR − 0xFFF9301C Outbound Message 0 Destination Attributes Register OM0DATR − 0xFFF93020 Outbound Message 0 Double-word Count Register OM0DCR − 0xFFF93024– 0xFFF93027 reserved − 0xFFF93028 Outbound Message 0 Descriptor Queue Enqueue Pointer Address Register OM0DQEPAR − 0xFFF9302C Outbound Message 0 Retry Error Threshold Configuration Register OM0RETCR − 0xFFF93030 Outbound Message 0 Multicast Group Register OM0MGR − 0xFFF93034 Outbound Message 0 Multicast List Register OM0MLR − 0xFFF93038– 0xFFF9305F reserved − 0xFFF93060 Inbound Message 0 Mode Register IM0MR − 0xFFF93064 Inbound Message 0 Status Register IM0SR − 0xFFF93068– 0xFFF9306B reserved − 0xFFF9306C Inbound Message 0 Frame Queue Dequeue Pointer Address Register − 0xFFF93070– 0xFFF93073 reserved P1RIWAR1 P1RIWTAR0 P1RIWBAR1 P1RIWAR0 OM0DQDPAR IM0FQDPAR MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-63 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF93074 Inbound Message 0 Frame Queue Enqueue Pointer Address Register IM0FQEPAR − 0xFFF93078 Inbound Message 0 Maximum Interrupt Report Interval Register IM0MIRIR − 0xFFF9307C– 0xFFF930FF reserved − 0xFFF93100 Outbound Message 1 Mode Register OM1MR − 0xFFF93104 Outbound Message 1 Status Register OM1SR − 0xFFF93108– 0xFFF9310B reserved − 0xFFF9310C Outbound Message 1 Descriptor Queue Dequeue Pointer Address Register − 0xFFF93110– 0xFFF93113 reserved − 0xFFF93114 Outbound Message 1 Source Address Register OM1SAR − 0xFFF93118 Outbound Message 1 Destination Port Register OM1DPR − 0xFFF9311C Outbound Message 1 Destination Attributes Register OM1DATR − 0xFFF93120 Outbound Message 1 Double-word Count Register OM1DCR − 0xFFF93124– 0xFFF93127 reserved − 0xFFF93128 Outbound Message 1 Descriptor Queue Enqueue Pointer Address Register OM1DQEPAR − 0xFFF9312C Outbound Message 1 Retry Error Threshold Configuration Register OM1RETCR − 0xFFF93130 Outbound Message 1 Multicast Group Register OM1MGR − 0xFFF93134 Outbound Message 1 Multicast List Register OM1MLR − 0xFFF93138– 0xFFF9315F reserved OM1DQDPAR − 0xFFF93160 Inbound Message 1 Mode Register IM1MR − 0xFFF93164 Inbound Message 1 Status Register IM1SR − 0xFFF93168– 0xFFF9316B reserved − 0xFFF9316C Inbound Message 1 Frame Queue Dequeue Pointer Address Register − 0xFFF93170– 0xFFF93173 reserved − 0xFFF93174 Inbound Message 1 Frame Queue Enqueue Pointer Address Register IM1FQEPAR − 0xFFF93178 Inbound Message 1 Maximum Interrupt Report Interval Register IM1MIRIR − 0xFFF9317C– 0xFFF933FF reserved IM1FQDPAR − 0xFFF93400 Outbound Doorbell Mode Register ODMR − 0xFFF93404 Outbound Doorbell Status Register ODSR − 0xFFF93408– 0xFFF93417 reserved − 0xFFF93418 Outbound Doorbell Destination Port Register ODDPR − 0xFFF9341C Outbound Doorbell Destination Attributes Register ODDATR MSC8156 Reference Manual, Rev. 2 9-64 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFF93420– 0xFFF9342B reserved − 0xFFF9342C Outbound Doorbell Retry Error Threshold Configuration Register ODRETCR − 0xFFF93430– 0xFFF9345F reserved − 0xFFF93460 Inbound Doorbell Mode Register IDMR − 0xFFF93464 Inbound Doorbell Status Register IDSR − 0xFFF93468– 0xFFF9346B reserved − 0xFFF9346C Inbound Doorbell Queue Dequeue Pointer Address Register − 0xFFF93470– 0xFFF93473 reserved − 0xFFF93474 Inbound Doorbell Queue Enqueue Pointer Address Register IDQEPAR − 0xFFF93478 Inbound Doorbell Maximum Interrupt Report Interval Register IDMIRIR − 0xFFF9347C– 0xFFF934DF reserved IDQDPAR − 0xFFF934E0 Inbound Port-write Mode Register IPWMR − 0xFFF934E4 Inbound Port-write Status Register IPWSR − 0xFFF934EC Inbound Port-write Queue Base Address Register IPWQBAR − 0xFFF934F0– 0xFFF9FFFF reserved • 0xFFFA0000– 0xFFFA0FFF reserved • 0xFFFA1000– 0xFFFA103F HSSI OCN Crossbar Switch to MBus0 • 0xFFFA1040– 0xFFFA107F HSSI OCN Crossbar Switch to MBus1 • 0xFFFA1080– 0xFFFA7FFF reserved • 0xFFFA8000– 0xFFFA8FFF HSSI Dedicated DMA Controller 0 Registers − 0xFFFA8000– 0xFFFA80FF reserved − 0xFFFA8100 DMA 0 Mode Register D0MR0 − 0xFFFA8104 DMA 0 Status Register D0SR0 − 0xFFFA8108 DMA 0 Current Link Descriptor Extended Address Register D0ECLNDAR0 − 0xFFFA810C DMA 0 Current Link Descriptor Address Register D0CLNDAR0 − 0xFFFA8110 DMA 0 Source Attributes Register D0SATR0 − 0xFFFA8114 DMA 0 Source Address Register D0SAR0 − 0xFFFA8118 DMA 0 Destination Attributes Register D0DATR0 − 0xFFFA811C DMA 0 Destination Address Register D0DAR0 − 0xFFFA8120 DMA 0 Byte Count Register D0BCR0 − 0xFFFA8124– 0xFFFA8127 reserved − 0xFFFA8128 DMA 0 Next Link Descriptor Address Register D0NLNDAR0 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-65 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFFA812C– 0xFFFA8133 reserved − 0xFFFA8134 DMA 0 Current List Descriptor Address Register D0CLSDAR0 − 0xFFFA8138 DMA 0 Extended Next List Descriptor Address Register D0ENLSDAR0 − 0xFFFA813C DMA 0 Next List Descriptor Address Register D0NLSDAR0 − 0xFFFA8140 DMA 0 Source Stride Register D0SSR0 − 0xFFFA8144 DMA 0 Destination Stride Register D0DSR0 − 0xFFFA8148– 0xFFFA817F reserved − 0xFFFA8180 DMA 1 Mode Register D0MR1 − 0xFFFA8184 DMA 1 Status Register D0SR1 − 0xFFFA8188 DMA 1 Current Link Descriptor Extended Address Register D0ECLNDAR1 − 0xFFFA818C DMA 1 Current Link Descriptor Address Register D0CLNDAR1 − 0xFFFA8190 DMA 1 Source Attributes Register D0SATR1 − 0xFFFA8194 DMA 1 Source Address Register D0SAR1 − 0xFFFA8198 DMA 1 Destination Attributes Register D0DATR1 − 0xFFFA819C DMA 1 Destination Address Register D0DAR1 − 0xFFFA81A0 DMA 1 Byte Count Register D0BCR1 − 0xFFFA81A4 DMA 1 Extended Next Link Descriptor Address Register D0ENLNDAR1 − 0xFFFA81A8 DMA 1 Next Link Descriptor Address Register D0NLNDAR1 − 0xFFFA81AC– 0xFFFA81AF reserved − 0xFFFA81B0 DMA 1 Extended Current List Descriptor Address Register D0ECLSDAR1 − 0xFFFA81B4 DMA 1 Current List Descriptor Address Register D0CLSDAR1 − 0xFFFA81B8 DMA 1 Extended Next List Descriptor Address Register D0ENLSDAR1 − 0xFFFA81BC DMA 1 Next List Descriptor Address Register D0NLSDAR1 − 0xFFFA81C0 DMA 1 Source Stride Register D0SSR1 − 0xFFFA81C4 DMA 1 Destination Stride Register D0DSR1 − 0xFFFA81C8– 0xFFFA81FF reserved − 0xFFFA8200 DMA 2 Mode Register D0MR2 − 0xFFFA8204 DMA 2 Status Register D0SR2 − 0xFFFA8208 DMA 2 Extended Current Link Descriptor Address Register D0ECLNDAR2 − 0xFFFA820C DMA 2 Current Link Descriptor Address Register D0CLNDAR2 − 0xFFFA8210 DMA 2 Source Attributes Register D0SATR2 − 0xFFFA8214 DMA 2 Source Address Register D0SAR2 − 0xFFFA8218 DMA 2 Destination Attributes Register D0DATR2 − 0xFFFA821C DMA 2 Destination Address Register D0DAR2 − 0xFFFA8220 DMA 2 Byte Count Register D0BCR2 − 0xFFFA8224 DMA 2 Extended Next Link Descriptor Address Register D0ENLNDAR2 − 0xFFFA8228 DMA 2 Next Link Descriptor Address Register D0NLNDAR2 − 0xFFFA822C– 0xFFFA822F reserved MSC8156 Reference Manual, Rev. 2 9-66 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFFA8230 DMA 2 Extended Current List Descriptor Address Register D0ECLSDAR2 − 0xFFFA8234 DMA 2 Current List Descriptor Address Register D0CLSDAR2 − 0xFFFA8238 DMA 2 Extended Next List Descriptor Address Register D0ENLSDAR2 − 0xFFFA823C DMA 2 Next List Descriptor Address Register D0NLSDAR2 − 0xFFFA8240 DMA 2 Source Stride Register D0SSR2 − 0xFFFA8244 DMA 2 Destination Stride Register D0DSR2 − 0xFFFA8248– 0xFFFA827F reserved − 0xFFFA8280 DMA 3 Mode Register D0MR3 − 0xFFFA8284 DMA 3 Status Register D0SR3 − 0xFFFA8288 DMA 3 Extended Current Link Descriptor Address Register D0ECLNDAR3 − 0xFFFA828C DMA 3 Current Link Descriptor Address Register D0CLNDAR3 − 0xFFFA8290 DMA 3 Source Attributes Register D0SATR3 − 0xFFFA8294 DMA 3 Source Address Register D0SAR3 − 0xFFFA8298 DMA 3 Destination Attributes Register D0DATR3 − 0xFFFA829C DMA 3 Destination Address Register D0DAR3 − 0xFFFA82A0 DMA 3 Byte Count Register D0BCR3 − 0xFFFA82A4 DMA 3 Extended Next Link Descriptor Address Register D0ENLNDAR3 − 0xFFFA82A8 DMA 3 Next Link Descriptor Address Register D0NLNDAR3 − 0xFFFA82AC– 0xFFFA82AF reserved − 0xFFFA82B0 DMA 3 Extended Current List Descriptor Address Register D0ECLSDAR3 − 0xFFFA82B4 DMA 3 Current List Descriptor Address Register D0CLSDAR3 − 0xFFFA82B8 DMA 3 Extended Next List Descriptor Address Register D0ENLSDAR3 − 0xFFFA82BC DMA 3 Next List Descriptor Address Register D0NLSDAR3 − 0xFFFA82C0 DMA 3 Source Stride Register D0SSR3 − 0xFFFA82C4 DMA 3 Destination Stride Register D0DSR3 − 0xFFFA82C8– 0xFFFA82FF reserved − 0xFFFA8300 DMA General Status Register − 0xFFFA8304– 0xFFFA9C07 reserved − 0xFFFA9C08 Local Access Window Base Address Register 0 − 0xFFFA9C0C– 0xFFFA9C0F reserved − 0xFFFA9C10 Local Access Window Attributes Register 0 − 0xFFFA9C14– 0xFFFA9C27 reserved − 0xFFFA9C28 Local Access Window Base Address Register 1 − 0xFFFA9C2C– 0xFFFA9C2F reserved − 0xFFFA9C30 Local Access Window Attributes Register 1 − 0xFFFA9C34– 0xFFFA9C47 reserved D0DGSR D0LAWBAR0 D0LAWAR0 D0LAWBAR1 D0LAWAR1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-67 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFFA9C48 Local Access Window Base Address Register 2 − 0xFFFA9C4C– 0xFFFA9C4F reserved − 0xFFFA9C50 Local Access Window Attributes Register 2 − 0xFFFA9C54– 0xFFFA9C67 reserved − 0xFFFA9C68 Local Access Window Base Address Register 3 − 0xFFFA9C6C– 0xFFFA9C6F reserved − 0xFFFA9C70 Local Access Window Attributes Register 3 − 0xFFFA9C74– 0xFFFA9C87 reserved − 0xFFFA9C88 Local Access Window Base Address Register 4 − 0xFFFA9C8C– 0xFFFA9C8F reserved − 0xFFFA9C90 Local Access Window Attributes Register 4 − 0xFFFA9C94– 0xFFFA9CA7 reserved − 0xFFFA9CA8 Local Access Window Base Address Register 5 − 0xFFFA9CAC– 0xFFFA9CAF reserved − 0xFFFA9CB0 Local Access Window Attributes Register 5 − 0xFFFA9CB4– 0xFFFA9CC7 reserved − 0xFFFA9CC8 Local Access Window Base Address Register 6 − 0xFFFA9CCC– 0xFFFA9CCF reserved − 0xFFFA9CD0 Local Access Window Attributes Register 6 − 0xFFFA9CD4– 0xFFFA9CE7 reserved − 0xFFFA9CE8 Local Access Window Base Address Register 7 − 0xFFFA9CEC– 0xFFFA9CEF reserved − 0xFFFA9CF0 Local Access Window Attributes Register 7 − 0xFFFA9CF4– 0xFFFA9D07 reserved − 0xFFFA9D08 Local Access Window Base Address Register 8 − 0xFFFA9D0C– 0xFFFA9D0F reserved − 0xFFFA9D10 Local Access Window Attributes Register 8 − 0xFFFA9D14– 0xFFFA9D27 reserved − 0xFFFA9D28 Local Access Window Base Address Register 9 − 0xFFFA9D2C– 0xFFFA9D2F reserved − 0xFFFA9D30 Local Access Window Attributes Register 9 Acronym D0LAWBAR2 D0LAWAR2 D0LAWBAR3 D0LAWAR3 D0LAWBAR4 D0LAWAR4 D0LAWBAR5 D0LAWAR5 D0LAWBAR6 D0LAWAR6 D0LAWBAR7 D0LAWAR7 D0LAWBAR8 D0LAWAR8 D0LAWBAR9 D0LAWAR9 MSC8156 Reference Manual, Rev. 2 9-68 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address − 0xFFFA9D34– 0xFFFA8FFF Name/Status reserved • 0xFFFA9000– 0xFFFA9FFF DMA Controller 0 to OCN • 0xFFFAA000– 0xFFFAAFFF Dedicated DMA Controller 1 Registers − 0xFFFAA000– 0xFFFAA0FF Acronym reserved − 0xFFFAA100 DMA 0 Mode Register D1MR0 − 0xFFFAA104 DMA 0 Status Register D1SR0 − 0xFFFAA108 DMA 0 Current Link Descriptor Extended Address Register D1ECLNDAR0 − 0xFFFAA10C DMA 0 Current Link Descriptor Address Register D1CLNDAR0 − 0xFFFAA110 DMA 0 Source Attributes Register D1SATR0 − 0xFFFAA114 DMA 0 Source Address Register D1SAR0 − 0xFFFAA118 DMA 0 Destination Attributes Register D1DATR0 − 0xFFFAA11C DMA 0 Destination Address Register D1DAR0 − 0xFFFAA120 DMA 0 Byte Count Register D1BCR0 − 0xFFFAA124– 0xFFFAA127 reserved − 0xFFFAA128 DMA 0 Next Link Descriptor Address Register − 0xFFFAA12C– 0xFFFAA133 reserved − 0xFFFAA134 DMA 0 Current List Descriptor Address Register D1CLSDAR0 − 0xFFFAA138 DMA 0 Next List Descriptor Extended Address Register D1ENLSDAR0 D1NLNDAR0 − 0xFFFAA13C DMA 0 Next List Descriptor Address Register D1NLSDAR0 − 0xFFFAA140 DMA 0 Source Stride Register D1SSR0 − 0xFFFAA144 DMA 0 Destination Stride Register D1DSR0 − 0xFFFAA148– 0xFFFAA17F reserved − 0xFFFAA180 DMA 1 Mode Register D1MR1 − 0xFFFAA184 DMA 1 Status Register D1SR1 − 0xFFFAA188 DMA 1 Current Link Descriptor Extended Address Register D1ECLNDAR1 − 0xFFFAA18C DMA 1 Current Link Descriptor Address Register D1CLNDAR1 − 0xFFFAA190 DMA 1 Source Attributes Register D1SATR1 − 0xFFFAA194 DMA 1 Source Address Register D1SAR1 − 0xFFFAA198 DMA 1 Destination Attributes Register D1DATR1 − 0xFFFAA19C DMA 1 Destination Address Register D1DAR1 − 0xFFFAA1A0 DMA 1 Byte Count Register D1BCR1 − 0xFFFAA1A4 DMA 1 Next Link Descriptor Extended Address Register D1ENLNDAR1 − 0xFFFAA1A8 DMA 1 Next Link Descriptor Address Register D1NLNDAR1 − 0xFFFAA1AC– 0xFFFAA1AF reserved − 0xFFFAA1B0 DMA 1 Current List Descriptor Extended Address Register D1ECLSDAR1 − 0xFFFAA1B4 DMA 1 Current List Descriptor Address Register D1CLSDAR1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-69 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFFAA1B8 DMA 1 Next List Descriptor Extended Address Register D1ENLSDAR1 − 0xFFFAA1BC DMA 1 Next List Descriptor Address Register D1NLSDAR1 − 0xFFFAA1C0 DMA 1 Source Stride Register D1SSR1 − 0xFFFAA1C4 DMA 1 Destination Stride Register D1DSR1 − 0xFFFAA1C8– 0xFFFAA1FF reserved − 0xFFFAA200 DMA 2 Mode Register D1MR2 − 0xFFFAA204 DMA 2 Status Register D1SR2 − 0xFFFAA208 DMA 2 Current Link Descriptor Extended Address Register D1ECLNDAR2 − 0xFFFAA20C DMA 2 Current Link Descriptor Address Register D1CLNDAR2 − 0xFFFAA210 DMA 2 Source Attributes Register D1SATR2 − 0xFFFAA214 DMA 2 Source Address Register D1SAR2 − 0xFFFAA218 DMA 2 Destination Attributes Register D1DATR2 − 0xFFFAA21C DMA 2 Destination Address Register D1DAR2 − 0xFFFAA220 DMA 2 Byte Count Register D1BCR2 − 0xFFFAA224 DMA 2 Next Link Descriptor Extended Address Register D1ENLNDAR2 − 0xFFFAA228 DMA 2 Next Link Descriptor Address Register D1NLNDAR2 − 0xFFFAA22C– 0xFFFAA22F reserved − 0xFFFAA230 DMA 2 Current List Descriptor Extended Address Register D1ECLSDAR2 − 0xFFFAA234 DMA 2 Current List Descriptor Address Register D1CLSDAR2 − 0xFFFAA238 DMA 2 Next List Descriptor Extended Address Register D1ENLSDAR2 − 0xFFFAA23C DMA 2 Next List Descriptor Address Register D1NLSDAR2 − 0xFFFAA240 DMA 2 Source Stride Register D1SSR2 − 0xFFFAA244 DMA2 Destination Stride Register D1DSR2 − 0xFFFAA248– 0xFFFAA27F reserved − 0xFFFAA280 DMA 3 Mode Register − 0xFFFAA284 DMA 3 Status Register D1SR3 − 0xFFFAA288 DMA 3 Current Link Descriptor Extended Address Register D1ECLNDAR3 − 0xFFFAA28C DMA 3 Current Link Descriptor Address Register D1CLNDAR3 − 0xFFFAA290 DMA 3 Source Attributes Register D1SATR3 − 0xFFFAA294 DMA 3 Source Address Register D1SAR3 − 0xFFFAA298 DMA 3 Destination Attributes Register D1DATR3 − 0xFFFAA29C DMA 3 Destination Address Register D1DAR3 − 0xFFFAA2A0 DMA 3 Byte Count Register D1BCR3 − 0xFFFAA2A4 DMA 3 Next Link Descriptor Extended Address Register D1ENLNDAR3 − 0xFFFAA2A8 DMA 3 Next Link Descriptor Address Register D1NLNDAR3 − 0xFFFAA2AC– 0xFFFAA2AF reserved D1MR3 − 0xFFFAA2B0 DMA 3 Current List Descriptor Extended Address Register D1ECLSDAR3 − 0xFFFAA2B4 DMA 3 Current List Descriptor Address Register D1CLSDAR3 − 0xFFFAA2B8 DMA 3 Next List Descriptor Extended Address Register D1ENLSDAR3 MSC8156 Reference Manual, Rev. 2 9-70 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFFAA2BC DMA 3 Next List Descriptor Address Register D1NLSDAR3 − 0xFFFAA2C0 DMA 3 Source Stride Register D1SSR3 − 0xFFFAA2C4 DMA 3 Destination Stride Register D1DSR3 − 0xFFFAA2C8– 0xFFFAA2FF reserved − 0xFFFAA300 DMA General Status Register − 0xFFFAA304– 0xFFFABC07 reserved − 0xFFFABC08 Local Access Window Base Address Register 0 − 0xFFFABC0C– 0xFFFABC0F reserved − 0xFFFABC10 Local Access Window Attributes Register 0 − 0xFFFABC14– 0xFFFABC27 reserved − 0xFFFABC28 Local Access Window Base Address Register 1 − 0xFFFABC2C– 0xFFFABC2F reserved − 0xFFFABC30 Local Access Window Attributes Register 1 − 0xFFFABC34– 0xFFFABC47 reserved − 0xFFFABC48 Local Access Window Base Address Register 2 − 0xFFFABC4C– 0xFFFABC4F reserved − 0xFFFABC50 Local Access Window Attributes Register 2 − 0xFFFABC54– 0xFFFABC67 reserved − 0xFFFABC68 Local Access Window Base Address Register 3 − 0xFFFABC6C– 0xFFFABC6F reserved − 0xFFFABC70 Local Access Window Attributes Register 3 − 0xFFFABC74– 0xFFFABC87 reserved − 0xFFFABC88 Local Access Window Base Address Register 4 − 0xFFFABC8C– 0xFFFABC8F reserved − 0xFFFABC90 Local Access Window Attributes Register 4 − 0xFFFABC94– 0xFFFABCA7 reserved − 0xFFFABCA8 Local Access Window Base Address Register 5 − 0xFFFABCAC– 0xFFFABCAF reserved − 0xFFFABCB0 Local Access Window Attributes Register 5 − 0xFFFABCB4– 0xFFFABCC7 reserved − 0xFFFABCC8 Local Access Window Base Address Register 6 D1DGSR D1LAWBAR0 D1LAWAR0 D1LAWBAR1 D1LAWAR1 D1LAWBAR2 D1LAWAR2 D1LAWBAR3 D1LAWAR3 D1LAWBAR4 D1LAWAR4 D1LAWBAR5 D1LAWAR5 D1LAWBAR6 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-71 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status − 0xFFFABCCC– 0xFFFABCCF reserved − 0xFFFABCD0 Local Access Window Attributes Register 6 − 0xFFFABCD4– 0xFFFABCE7 reserved − 0xFFFABCE8 Local Access Window Base Address Register 7 − 0xFFFABCEC– 0xFFFABCEF reserved − 0xFFFABCF0 Local Access Window Attributes Register 7 − 0xFFFABCF4– 0xFFFABD07 reserved − 0xFFFABD08 Local Access Window Base Address Register 8 − 0xFFFABD0C– 0xFFFABD0F reserved − 0xFFFABD10 Local Access Window Attributes Register 8 − 0xFFFABD14– 0xFFFABD27 reserved − 0xFFFABD28 Local Access Window Base Address Register 9 − 0xFFFABD2C– 0xFFFABD2F reserved − 0xFFFABD30 Local Access Window Attributes Register 9 − 0xFFFABD34– 0xFFFA8FFF reserved Acronym D1LAWAR6 D1LAWBAR7 D1LAWAR7 D1LAWBAR8 D1LAWAR8 D1LAWBAR9 D1LAWAR9 • 0xFFFAB000– 0xFFFABFFF DMA Controller 1 to OCN • 0xFFFAC000– 0xFFFAC07F SerDes PHY 1 Registers • 0xFFFAC000 SRDS Control Register 0 for SerDes Port 1 SRDS1CR0 • 0xFFFAC004 SRDS Control Register 1 for SerDes Port 1 SRDS1CR1 • 0xFFFAC008 SRDS Control Register 2 for SerDes Port 1 SRDS1CR2 • 0xFFFAC00C SRDS Control Register 3 for SerDes Port 1 SRDS1CR3 • 0xFFFAC010 SRDS Control Register 4 for SerDes Port 1 SRDS1CR4 • 0xFFFAC014 SRDS Control Register 5 for SerDes Port 1 SRDS1CR5 • 0xFFFAC018 SRDS Control Register 6 for SerDes Port 1 SRDS1CR6 • 0xFFFAC0020– 0xFFFACFFF reserved • 0xFFFAD000– 0xFFFAD007 SerDes PHY 2 Registers • 0xFFFAD000 SRDS Control Register 0 for SerDes Port 2 SRDS2CR0 • 0xFFFAD004 SRDS Control Register 1 for SerDes Port 2 SRDS2CR1 • 0xFFFAD008 SRDS Control Register 2 for SerDes Port 2 SRDS2CR2 • 0xFFFAD00C SRDS Control Register 3 for SerDes Port 2 SRDS2CR3 • 0xFFFAD010 SRDS Control Register 4 for SerDes Port 2 SRDS2CR4 • 0xFFFAD014 SRDS Control Register 5 for SerDes Port 2 SRDS2CR5 • 0xFFFAD018 SRDS Control Register 6 for SerDes Port 2 SRDS2CR6 MSC8156 Reference Manual, Rev. 2 9-72 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status • 0xFFFAD020– 0xFFFB6FFF reserved • 0xFFFB7000– 0xFFFB7FFF PCI Express Registers Acronym − 0xFFFB7000 PCI Express Configuration Address Register PEX_CONFIG_ADDR − 0xFFFB7004 PCI Express Configuration Data Register PEX_CONFIG_DATA − 0xFFFB7008– 0xFFFB700B reserved − 0xFFFB700C PCI Express Outbound Completion Timeout Register PEX_OTB_CPL_TOR − 0xFFFB7010 PCI Express Configuration Retry Timeout Register PEX_CONF_RTY_TOR − 0xFFFB7014 PCI Express Configuration Register PEX_CONFIG − 0xFFFB7018– 0xFFFB701F reserved − 0xFFFB7020 PCI Express PME and Message Detect Register PEX_PME_MES_DR − 0xFFFB7024 PCI Express PME and Message Disable Register PEX_PME_MES_DISR − 0xFFFB7028 PCI Express PME and Message Interrupt Enable Register PEX_PME_MES_IER − 0xFFFB702C PCI Express Power Management Command Register PEX_PMCR − 0xFFFB7030– 0xFFFB70FF reserved − 0xFFFB7100 PCI Express Link Width Control Register PEX_LWCR − 0xFFFB7104 PCI Express Link Width Status Register PEX_LWSR − 0xFFFB7108 PCI Express Link Speed Control Register PEX_LSCR − 0xFFFB710C PCI Express Link Speed Status Register PEX_LSSR − 0xFFFB7110– 0xFFFB7BF7 reserved − 0xFFFB7BF8 IP Block Revision Register 1 PEX_IP_BLK_REV1 − 0xFFFB7BFC IP Block Revision Register 2 PEX_IP_BLK_REV2 − 0xFFFB7C00 PCI Express Outbound Translation Address Register 0 PEXOTAR0 − 0xFFFB7C04 PCI Express Outbound Translation Extended Address Register 0 PEXOTEAR0 − 0xFFFB7C08– 0xFFFB7C0F reserved − 0xFFFB7C10 PCI Express Outbound Window Attributes Register 0 − 0xFFFB7C14– 0xFFFB7C1F reserved − 0xFFFB7C20 PCI Express Outbound Translation Address Register 1 − 0xFFFB7C24 PCI Express Outbound Translation Extended Address Register 1 PEXOTEAR1 PEXOWAR0 PEXOTAR1 − 0xFFFB7C28 PCI Express Outbound Window Base Address Register 1 − 0xFFFB7C2C– 0xFFFB7C2F reserved − 0xFFFB7C30 PCI Express Outbound Window Attributes Register 1 − 0xFFFB7C34– 0xFFFB7C3F reserved − 0xFFFB7C40 PCI Express Outbound Translation Address Register 2 − 0xFFFB7C44 PCI Express Outbound Translation Extended Address Register 2 PEXOTEAR2 PEXOWBAR1 PEXOWAR1 PEXOTAR2 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-73 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFFB7C48 PCI Express Outbound Window Base Address Register 2 − 0xFFFB7C4C– 0xFFFB7C4F reserved − 0xFFFB7C50 PCI Express Outbound Window Attributes Register 2 − 0xFFFB7C54– 0xFFFB7C5F reserved − 0xFFFB7C60 PCI Express Outbound Translation Address Register 3 − 0xFFFB7C64 PCI Express Outbound Translation Extended Address Register 3 PEXOTEAR3 PEXOWBAR2 PEXOWAR2 PEXOTAR3 − 0xFFFB7C68 PCI Express Outbound Window Base Address Register 3 − 0xFFFB7C6C– 0xFFFB7C6F reserved − 0xFFFB7C70 PCI Express Outbound Window Attributes Register 3 − 0xFFFB7C74– 0xFFFB7C7F reserved − 0xFFFB7C80 PCI Express Outbound Translation Address Register 4 − 0xFFFB7C84 PCI Express Outbound Translation Extended Address Register 4 PEXOTEAR4 PEXOWBAR3 PEXOWAR3 PEXOTAR4 − 0xFFFB7C88 PCI Express Outbound Window Base Address Register 4 − 0xFFFB7C8C– 0xFFFB7C8F reserved − 0xFFFB7C90 PCI Express Outbound Window Attributes Register 4 − 0xFFFB7C94– 0xFFFB7D9F reserved − 0xFFFB7DA0 PCI Express Inbound Translation Address Register 3 − 0xFFFB7DA4– 0xFFFB7DA7 reserved − 0xFFFB7DA8 PCI Express Inbound Window Base Address Register 3 − 0xFFFB7DAC PCI Express Inbound Window Base Extended Address Register 3 PEXIWBEAR3 − 0xFFFB7DB0 PCI Express Inbound Window Attributes Register 3 − 0xFFFB7DB4– 0xFFFB7DBF reserved − 0xFFFB7DC0 PCI Express Inbound Translation Address Register 2 − 0xFFFB7DC4– 0xFFFB7DC7 reserved − 0xFFFB7DC8 PCI Express Inbound Window Base Address Register 2 − 0xFFFB7DCC PCI Express Inbound Window Base Extended Address Register 2 PEXIWBEAR2 − 0xFFFB7DD0 PCI Express Inbound Window Attributes Register 2 − 0xFFFB7DD4– 0xFFFB7DDF reserved − 0xFFFB7DE0 PCI Express Inbound Translation Address Register 1 − 0xFFFB7DE4– 0xFFFB7DE7 reserved − 0xFFFB7DE8 PCI Express Inbound Window Base Address Register 1 − 0xFFFB7DEC– 0xFFFB7DEF reserved − 0xFFFB7DF0 PCI Express Inbound Window Attributes Register 1 PEXOWBAR4 PEXOWAR4 PEXITAR3 PEXIWBAR3 PEXIWAR3 PEXITAR2 PEXIWBAR2 PEXIWAR2 PEXITAR1 PEXIWBAR1 PEXIWAR1 MSC8156 Reference Manual, Rev. 2 9-74 Freescale Semiconductor Detailed System Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFFB7DF4– 0xFFFB7DFF reserved − 0xFFFB7E00 PCI Express Error Detect Register − 0xFFFB7E04– 0xFFFB7E07 reserved − 0xFFFB7E08 PCI Express Error Interrupt Enable Register − 0xFFFB7E0C– 0xFFFB7E0F reserved − 0xFFFB7E10 PCI Express Error Disable Register − 0xFFFB7E14– 0xFFFB7E1F reserved − 0xFFFB7E20 PCI Express Error Capture Status Register − 0xFFFB7E24– 0xFFFB7E27 reserved − 0xFFFB7E28 PCI Express Error Capture Register 0 PEX_ERR_CAP_R0 − 0xFFFB7E2C PCI Express Error Capture Register 1 PEX_ERR_CAP_R1 − 0xFFFB7E30 PCI Express Error Capture Register 2 PEX_ERR_CAP_R2 − 0xFFFB7E34 PCI Express Error Capture Register 3 PEX_ERR_CAP_R3 PEX_ERR_DR PEX_ERR_EN PEX_ERR_DISR PEX_ERR_CAP_STAT − 0xFFFB7E38– 0x reserved FFFB7FFF • 0xFFFBB000– 0xFFFBB7FF RapidIO/PCI Express Security Bridge Registers • 0xFFFBB800– 0xFFFBB8FF Performance Monitor − 0xFFFBB800 Performance Monitor Global Control Register − 0xFFFBB804– 0xFFFBB80F reserved PMGCR − 0xFFFBB810 Performance Monitor Local Control Register A0 − 0xFFFBB814 reserved − 0xFFFBB818 Performance Monitor Counter 0 − 0xFFFBB81C– 0xFFFBB81F reserved − 0xFFFBB820 Performance Monitor Local Control Register A1 PMLCA1 − 0xFFFBB824 Performance Monitor Local Control Register B1 PMLCB1 − 0xFFFBB828 Performance Monitor Counter 1 PMC1 − 0xFFFBB82C– 0xFFFBB82F reserved − 0xFFFBB830 Performance Monitor Local Control Register A2 PMLCA2 − 0xFFFBB834 Performance Monitor Local Control Register B2 PMLCB2 − 0xFFFBB838 Performance Monitor Counter 2 PMC2 − 0xFFFBB83C– 0xFFFBB83F reserved − 0xFFFBB840 Performance Monitor Local Control Register A3 PMLCA3 − 0xFFFBB844 Performance Monitor Local Control Register B3 PMLCB3 − 0xFFFBB848 Performance Monitor Counter 3 PMC3 PMLCA0 PMC0 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 9-75 Memory Map Table 9-7. Detailed System Memory Map (Continued) Address Name/Status Acronym − 0xFFFBB84C– 0xFFFBB84F reserved − 0xFFFBB850 Performance Monitor Local Control Register A4 PMLCA4 − 0xFFFBB854 Performance Monitor Local Control Register B4 PMLCB4 − 0xFFFBB858 Performance Monitor Counter 4 PMC4 − 0xFFFBB85C– 0xFFFBB85F reserved − 0xFFFBB860 Performance Monitor Local Control Register A5 PMLCA5 − 0xFFFBB864 Performance Monitor Local Control Register B5 PMLCB5 − 0xFFFBB868 Performance Monitor Counter 5 PMC5 − 0xFFFBB86C– 0xFFFBB86F reserved − 0xFFFBB870 Performance Monitor Local Control Register A6 PMLCA6 − 0xFFFBB874 Performance Monitor Local Control Register B6 PMLCB6 − 0xFFFBB878 Performance Monitor Counter 6 PMC6 − 0xFFFBB87C– 0xFFFBB87F reserved − 0xFFFBB880 Performance Monitor Local Control Register A7 PMLCA7 − 0xFFFBB884 Performance Monitor Local Control Register B7 PMLCB7 − 0xFFFBB888 Performance Monitor Counter 7 PMC7 − 0xFFFBB88C– 0xFFFBB88F reserved − 0xFFFBB890 Performance Monitor Local Control Register A8 PMLCA8 − 0xFFFBB894 Performance Monitor Local Control Register B8 PMLCB8 − 0xFFFBB898 Performance Monitor Counter 8 PMC8 − 0xFFFBB89C– 0xFFFBB8FF reserved • 0xFFFBB900– 0xFFFCFFFF reserved • 0xFFFD0000– 0xFFFDFFFF Reserved • 0xFFFE0000– 0xFFFFEFFF reserved 0xFFFFF000– 0xFFFFFFFF reserved MSC8156 Reference Manual, Rev. 2 9-76 Freescale Semiconductor 10 MSC8156 SC3850 DSP Subsystem Each SC3850 core is embedded in an DSP subsystem that enhances the power of the SC3850 core and provides a simple interface to each SC3850 core. The DSP core subsystem includes: SC3850 core. Instruction channel with a 32-Kbyte instruction cache that supports advanced prefetching. Data channel built around a 32-Kbyte data cache, which supports advanced prefetching. Memory management unit (MMU) for task protection and address translation. Unified 512-Kbyte L2 cache with partitioning support for multitasking reconfigurable in 64-Kbyte partitions as M2 memory. Write queue that interfaces between the core and the data channel Dual timer for internal use (such as RTOS). Extended programmable interrupt controller (EPIC) supporting 256 interrupts. Real-time debug support with the OCE and a debug and profiling unit (DPU). Interrupts Master MBus 222 128 DMA Bus 128 M2 DMA Bus (128 bits wide) DMA Bridge L2 Cache EPIC Debug Support Timer DPU Instruction Channel MMU Data Channel OCE Write Queue 64 SC3850 Core 64 128 Xa Xb P Figure 10-1. DSP Core Subsystem MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 10-1 MSC8156 SC3850 DSP Subsystem Note: The SC3850 DSP Core Reference Manual and the MSC8156 SC3850 DSP Core Subsystem Reference Manual have detailed information on the DSP core and core subsystem. Both manuals are available with a signed non-disclosure agreement. Contact your local Freescale dealer or sales representative for more information. The remainder of this chapter describes each of these DSP core subsystem components. 10.1 SC3850 DSP Core Subsystem Features The subsystem has the following units and distinctive features: SC3850 DSP core (see Chapter 2, SC3850 Core Overview for details). Instruction cache (ICache): — 32 Kbytes — 8 ways with 16 lines per way — Multi-task support — Real-time support through locking flexible boundaries — Prefetch capability — Software coherency support (‘Sweep’) — PFETCH touch loading instruction support Data cache (DCache): — 32 Kbytes — 8 ways with 16 lines per way — Can serve two data accesses in parallel (XA, XB) — Multi-task support — Real-time support through locking flexible boundaries — Software coherency support (Cache ISA or “Sweep”) — Write-back writing policy — Write-through writing policy — Hardware line prefetch capability — Cache performance ISA support (DFETCH touch loading and DMALLOC) Memory management unit (MMU): — Virtual to physical address translation — Task protection — Multi-tasking — Defines the memory and access attributes of memory regions Unified L2 cache: — 512 KB — 8 ways with 1024 indices — 64-byte line size — Physically addressed MSC8156 Reference Manual, Rev. 2 10-2 Freescale Semiconductor SC3850 Core 10.2 — Maximum user flexibility for real-time support through address partitioning of the cache — Rich cache policy support — Multi channel, two dimensional software prefetch support — Software coherency support with seamless transition from L1 cache coherency operation. — External memory Interface: — MBus unified address separate data bus, with 32-bit address and 128-bit data — Supports asynchronous clock ratio Debug and profiling: — On-chip emulator (OCE) for core-related debug and profiling support — Debug and profiling unit (DPU) for subsystem level debug and profiling support — Debug state, single stepping and command insertion from the host debugger — Breakpoints on PC, data address, and data bus values — More than 40 event counting options in 6 parallel counters — Cache debug mode enabling to observe the cache state (cache array, tags, valid and dirty bits, and so on) and to change the contents of the data cache array. — Real-time tracing of PC, task ID, and profiling information to the main memory Interrupt handling: — Extended programmable interrupt controller (EPIC) to handle 256 interrupts, including from internal sources — Supports 222 interrupts external to the MSC8156 SC3850 DSP subsystem, independently configured as maskable or non-maskable — 32 priority levels for interrupts — Asynchronous and synchronous interrupts. Timer. Two general-purpose 32-bit timers for RTOS support Low-power design modes of operation: — Wait processing state, where the clocks of the core and caches are gated but peripherals operate. — Stop processing state for full clock gating SC3850 Core The SC3850 core is an improved superset of the SC3400 architecture that is binary compatible with the previous StarCore architectures, including the SC140/SC140e and SC3400. The SC3850 core is organized the same way as the StarCore architectures. See Chapter 2, SC3850 Core Overview and the SC3850 DSP Core Reference Manual for details on the SC3850 core. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 10-3 MSC8156 SC3850 DSP Subsystem 10.3 Instruction Channel The instruction channel, which comprises the instruction cache (ICache) and the instruction fetch unit (IFU), provides the core with instructions that are stored in higher-level memory. The ICache operates at core speed and stores recently accessed instructions. Whenever an addressed instruction (from the cacheable memory area) is found in the array, it is immediately made available to the core (ICache hit). When the required address is not found in the array, it is loaded to the ICache from the external (off-subsystem) memory by the IFU (ICache miss). The IFU operates in parallel with the core to implement a HW line prefetching algorithm that loads the ICache with information that has a high probability of being needed soon. This action reduces the number of cache misses. When an instruction is addressed from a non-cacheable area, the IFU fetches it directly to the XP bus of the core without writing it to the cache. 10.3.1 Instruction Cache The ICache has the following parameters: A size of 32 Kbytes with 256 bytes per cache line (total of 128 lines in the cache) arranged in an 8 way set-associative structure. A cache line logically divided into 16 valid bit resolutions (VBRs), each 16 bytes long. This is the resolution for hit or miss detection. Upon a cache miss, the ICache fetches the required information. A pseudo-LRU replacement algorithm is used to select the line to be replaced when required. The flexible ICache has a locking mechanism that can lock some ways, thus partitioning the cache between tasks. The programmer can flush the full contents of the ICache (meaning, invalidate all tags and VBRs) or selectively flush its contents between programmable address boundaries. The cache fetches a core instruction for touch loading (PFETCH) by queuing it and initiating it when there is a free slot on the program bus. Using this touch loaded instruction can dramatically reduce the average cache miss penalty. In addition, a programmable HW next line prefetch is used to further reduce the miss ratio for code that is sequential in nature. The ICache supports real-time and non-real-time debugging and profiling. In real time, it provides information on misses and hits. In non-real-time, it supports access to all its internal information, namely, the tag, the replacement status, and the valid arrays. The cache array itself can be either read or written. This information is accessed through the JTAG interface in Debug processing state. MSC8156 Reference Manual, Rev. 2 10-4 Freescale Semiconductor Data Channel 10.3.2 Instruction Fetch Unit The IFU controls the fetching of instructions from cacheable external memory when a miss indication is received from the ICache. It controls information updates in the ICache. The programmer can control the IFU HW line prefetching to adjust it for better performance for an application. For a request from a non-cacheable area, the information from the external memory is made available directly to the core through the XP bus. To minimize the idle time of the core, the IFU implements critical word first external access and also supports prefetch hit. 10.4 Data Channel The data channel comprises the data cache (DCache), the data fetch unit (DFU), the data control unit (DCU), the write-back buffer (WBB), and the write-through buffer (WTB). This two-way channel reads and writes information from the core to/from higher-level memory (M2 or L2) and control memory (internal blocks and external peripherals) spaces. The DCache, which operates at core speed, keeps the recently accessed data. When addressed data (from a cacheable memory area) is found in the array, it is immediately made available to the core (DCache hit) in a read and updated if written to. When the required address is not found in the array, a DCache miss occurs, and the DFU loads the data to the DCache from the external (off-subsystem) memory and drives it to the core. The DFU operates in parallel with the core and implements a HW line prefetch algorithm that loads the DCache with information that has a high probability of being needed soon, thus reducing the number of data cache misses. The channel differentiates between cacheable and non-cacheable addresses. For cacheable addresses, it supports the write-back allocate and write-through writing policies. The selection is made on an address segment basis, as programmed in the MMU. The data channel supports the arrangement of data in big-endian formats. Core data types can be byte, word, long (4 bytes), or 2 long (8 bytes) wide. 10.4.1 Data Cache The DCache has the following parameters: A size of 32 Kbytes with 256 bytes per cache line (total of 128 lines in the cache) arranged in an 8 way set-associative structure. A cache line logically divided into 16 VBRs, each 16 bytes long. This is the resolution for hit or miss detection. Big-endian byte arrangements are supported. A data access that is identified as a hit in the DCache is served without freezing the core, with the exception of DCache contention (dual access from two core buses to the same module). If the requested data is not in the cache, the DFU fetches it. If the requested data belongs to a cache line that is not in the cache, the line is allocated at the expense of another line. A pseudo-LRU (PLRU) replacement algorithm selects the line to be replaced. If the line to be replaced contains MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 10-5 MSC8156 SC3850 DSP Subsystem valid and dirty VBRs, it must be written (thrashed) to the external memory. The DCache implements the write-back and write-through writing policies. To speed up the freeing of the cache line, a write is directed to the write-back buffer and later copied from there to the external memory. The DCache enables the system/software architect to control its operation. A locking mechanism with global locking or partial locking helps reduce the penalty of restoring critical tasks. A great deal of control flexibility is offered by the sweep command, by which information in the DCache is managed according to its virtual address. The programmer defines a virtual address range and a specific operation to be carried out on cache lines within that range. The operation can involve line invalidation, line synchronization, or line flush. The operation can execute in parallel with core operation. The core can be interrupted at the end of the operation. In addition to sweep, the cache supports SC3850 coherency instructions Flush memory block (DFLUSH) that writes back and invalidates a block of 64 bytes belonging to the specified address and Synchronize memory block (DSYNC) that writes back a block of 64 bytes belonging to the specified address back to memory. The cache supports touch loading data fetch core instructions (DFETCH) by queuing them and initiating them when there is a free slot on the data bus. Using this instruction can dramatically reduce the average cache miss penalty. The cache also supports the data memory allocation instruction (DMALLOC), which causes the cache to allocate a line matching the designated address and validating a 64 byte resolution (wrapped on 64-byte boundary) with almost zero overhead without actually fetching the data from memory. The DCache supports real-time and non-real-time debugging and profiling. In real time, it provides information on misses, hits, and other cache-related events. In non-real time (debug processing state), it enables access to all of its internal information, such as the tag, the PLRU, the valid arrays, and the DCache array. The cache array can be written to as well. This information is accessed through the JTAG interface in debug processing state. 10.4.2 Data Fetch Unit The DFU controls data fetches from cacheable external memory when it receives a miss indication from the DCache. The unit controls information updates in the DCache. The programmer can control its HW line prefetch to adjust for better performance for an application. For a request from a non-cacheable area, the information from the external memory is made available directly to the core through the requesting bus, WA or WB without updating the cache. The programmer can control the burst size, as well as turn the HW line prefetch mechanism on or off. To minimize the time that the core stalls, the DFU implements critical word first external access and also supports prefetch hit. MSC8156 Reference Manual, Rev. 2 10-6 Freescale Semiconductor Data Channel 10.4.3 Write-Back Buffer The WBB expedites freeing of the DCache to enable fetching of new data with minimal core delay. Modified data from the DCache array is transferred to the WBB, thus freeing the array for additional data fetch from a higher-level memory. This effectively splits the thrashing process into two separate operations. During the first operation, the data to be thrashed is stored in the WBB until after the fetch operation completes. The second operation writes the data to be thrashed out to the higher-level memory. The WBB has the size of 16 VBRs arranged as 8 entries of 2 VBRs each. It operates as a FIFO buffer. It sends data to the external memory using the QBus protocol through the DCU. It provides the DCU with priority information, either normal or high. Normal priority is used for standard DCache line replacement. High priority is used for the DCache flushing operation. The WBB also snoops the external core accesses (the physical addresses that are translated from the virtual addresses by the MMU) to detect a hazard situation in which a request is made for a line in the WBB before it gets to the higher-level memory. When such a situation occurs, the WBB is flushed as a high priority request for updating the higher-level memory before fetching from the memory continues. This ensures data coherency. 10.4.4 Write-Through Buffer The WTB provides a short route for writing data to the data QBus memory space, meaning to external (off-subsystem) memory through the MBus and to internal subsystem registers and external peripherals. The WTB block generates write accesses from the write queue output buses to the devices connected to the data QBus when the application requires a non-cacheable or write-through write access. The WTB also serves write accesses when the cache is disabled, in debug, or missed when in lock. The WTB is arranged as six 64-bit entries. It operates as a FIFO buffer to buffer the latency of the write accesses passing through it from the DSP core. 10.4.5 Data Control Unit The DCU prioritizes and arbitrates between the various write transactions (from the WBB, the WTB, and the trace writes from the TWB) and the read transactions of the DFU. The DCU transfers the transactions to the data QBus after mastership on the bus is obtained or directly when it accesses the internal subsystem memory-mapped registers. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 10-7 MSC8156 SC3850 DSP Subsystem 10.4.6 Write Queue The write queue (WRQ) interfaces between the SC3850 core and the data channel. The WRQ stores up to 14 write accesses from both the XA and the XB buses and has the following primary functions: Bridge the core pipeline gap between the address generation and the data drive. Enable read accesses to bypass write accesses (unless there is a read after write hazard). Store write accesses (already with data) until they have an available memory slot, thus freeing the core to execute instructions. Identify a read-after-write hazard and forward newer write data of pending accessed to replace the older data bytes were read from memory. Handles core DCache instructions like DFETCH, DSYNC, DMALLOC, and others. Buffer DFETCH and write-back misses that the system currently can not handle without stalling the core until the WRQ is full. 10.5 Memory Management Unit (MMU) The MMU performs three main functions: Memory hardware protection for instruction and data access with two privilege levels (user and supervisor). High-speed address translation from virtual to physical address to support memory relocation. Cache and bus controls for advanced memory management Memory protection increases the reliability of the system so that errant tasks cannot ruin the privileged state and the state of other tasks. Program and data accesses from the core can occur at either the user or supervisor level. The MMU checks each access to determine whether it matches the permissions defined for this task in the memory attributes and translation table (MATT). If it does not, the access is killed and a memory exception is generated. The MMU performs address translation on external (off-subsystem) addresses, from virtual addresses (used by the software that runs on the core) to physical addresses (used by the system buses). Benefits of address translation include the following: Enables software to be written without consideration of the physical location of the code in memory, thereby providing a simpler software model that enhances modularity and reuse. Allows true dynamic code relocation without performance cost or overhead. The same virtual addresses can be reused between tasks without a need to flush the caches between tasks because the caches store the task ID in their line tags and thus have a unique MSC8156 Reference Manual, Rev. 2 10-8 Freescale Semiconductor L2 Cache memory image per task. Protection and address translation are applied to memory segments defined in the MMU. A segment descriptor (SD) can set cacheable/non-cacheable, prefetch policy, shared/non-shared, and more. The MMU controls up to 20 data and up to 12 program segment descriptors. The MSC8156 SC3850 DSP subsystem introduces a new programming model for more flexible memory mapping of the SD that reduces previous constraints allowing reduction in the number of descriptors needed and memory waste. For compatibility, the MMU also supports the old programming model. 10.6 L2 Cache The L2 cache processes data and program accesses to the external M3/DDR memory. Caching the accesses requested by the L1 subsystem reduces the average penalty of accessing the high latency M3. The L2 cache includes a slave arbitration and tag unit, cache logic and arrays, along with a write buffer for write back and write through accesses, fetch logic to fetch data from the off platform memory upon a miss or a non-cacheable access, and a master arbiter that arbitrates between the different internal units. Features of the L2 cache are as follows: A size of 512 Kbytes with 64 bytes per cache line (total of 8192 lines in the cache) arranged in an 8 way set-associative structure. 64Byte valid bit resolution (VBR) and dirty bit resolution (DBR). Fetch the whole line at once. Write back the whole line at once when a dirty line is thrashed from the cache. Physically addressed Dynamically configurable as a DMA accessible M2 RAM Software coherency support with seamless transition from L1 cache coherency operation Multichannel (4) L2 software prefetch for two-dimensional arrays Cache partitioning by way Write policies: — Non-cacheable and non-cacheable on read and write (NC) — Cacheable write-through and cacheable on read non-cacheable on write (WT). Update the cache on hit. — Cacheable write back; both read and write are cacheable (WB) — Adaptive write policy (AWP). Cacheable WB on hit and NC on miss. WB composed of eight 32-byte entries Full ECC support The main components of the L2 cache are as follows: MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 10-9 MSC8156 SC3850 DSP Subsystem L2 Qbus arbiter (L2Q) to arbitrate the input data QBus, instruction QBus, and the slave port to one output bus (necessary because the cache serves one access per cycle). Cache logic to manage the cache arrays and state machines Fetch unit (L2FU) to fetch cacheable accesses from the M3/DDR memory, including L2 SW prefetching of data and instructions not yet requested by the core. Write buffer (L2WB) to temporarily hold modified (dirty) cache lines thrashed by the cache and also serve as a buffer for non-cacheable memory. Arbitration unit (L2AU) to arbitrate among the different masters (access generators) of the L2 cache (L2FU and L2WB). QBus to MBus interface (Q2M) to interface the external memory IF bus asynchronously while maintaining the pipeline. Register file to hold the L2 cache status and control registers. Mapped to the internal peripherals on bank0. 10.7 On-Chip Emulator and Debug and Profiling Unit The on-chip emulator (OCE) and the debug and profiling unit (DPU) are hardware blocks for debugging and profiling. The OCE performs the following tasks: Communicates with the host debugger through the SoC JTAG test access port (TAP) controller Enables the SC3850 core to enter the debug processing state upon a varied set of conditions to: — Single step — Execute core commands inserted from the host debugger to upload and download memory and core registers. Sets up to six address-related breakpoints on either PC or a data address Sets a data breakpoint on a data value, optionally combined with a data address Generates the PC tracing flow, optionally filtered to a subset of events such as only jumps/returns from subroutine, interrupts, and so on. The DPU has the following characteristics: Enables parallel counting of subsystem events in six dedicated counters, from more than 40 events Filters, processes, and adds task ID and profiling information on the OCE PC trace information MSC8156 Reference Manual, Rev. 2 10-10 Freescale Semiconductor Extended Programmable Interrupt Controller 10.8 Extended Programmable Interrupt Controller The internal extended programmable interrupt controller (EPIC) manages internal and external interrupts. The EPIC handles up to 256 interrupts, 222 of which are external subsystem inputs. The rest of the interrupts serve internal subsystem conditions. The external interrupts can be configured as either maskable interrupts or non-maskable interrupts (NMIs). The EPIC can handle 33 levels of interrupt priorities, of which 32 levels are maskable at the core and 1 level is NMI. 10.9 Timer The timer block includes two 32-bit general-purpose counters with pre-loading capability. It counts clocks at the core frequency. It is intended mainly for operating system use. 10.10 Interfaces The interfaces transfer data from the subsystem to the rest of the system and vice versa. 10.10.1 QBus to MBus Interface Bridge The instruction QBus to MBus interface (IQ2MA) bridge translates the bus from the L2 Cache, which uses the proprietary QBus protocol, to the MBus line protocol. The Q2M is placed between two different asynchronous clock domains: Internal, MSC8156 SC3850 DSP subsystem clock domain External (out of subsystem) clock domain, which is slower or equal to the internal clock domain. 10.10.2 MBus to DMA Bridge The MBus to DMA bridge converts the signals coming from the MBus to the protocol used by the L2 Cache slave port. The bridge is placed between two different asynchronous clock domains: Internal, MSC8156 SC3850 DSP subsystem clock domain External (out of subsystem) clock domain, which is slower or equal to the internal clock domain. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 10-11 MSC8156 SC3850 DSP Subsystem 10.11 Entering and Exiting Wait and Stop States Safely The following subsections describe how to enter and exit from the Wait and Stop states safely. 10.11.1 Wait State The Wait state is described in Section 2.12.4 of the MSC8156 SC3850 DSP Subsystem Reference Manual. The subsystem enters the Wait processing state when the SC3850 core executes the wait instruction. The subsystem exits from the Wait state when an enabled level interrupt request is asserted or the subsystem transfers to the Debug or Reset state. During a Wait state, the subsystem L2/M2 memory is available for access through the slave port. No further steps are required. 10.11.2 Stop State The Stop state is described in Section 2.12.5 of the MSC8156 SC3850 DSP Subsystem Reference Manual. 10.11.2.1 Procedure for Entering DSP Subsystem Stop State Safely Note: Before entering the Stop state, terminate any L2 software prefetch activities to reduce the time needed to enter Stop. Use the following procedure to enter the Stop state: 1. Stop all accesses to the M2/L2 memory in the core subsystem by peripherals and external hosts (if applicable). 2. Close the subsystem slave port window by writing a 1 to the relevant bit in the CORE_SLV_GCR (see Section 8.2.34, Core Subsystem Slave Port General Configuration Register (CORE_SLV_GCR), on page 8-59 for details). 3. Read the CORE_SLV_GCR to make sure that the 1 is written and the bit is set. Note: After the slave port window is closed, all core accesses will generate an error interrupt to the core. 4. Send a read request from the specified core and subsystem to an adjacent core M2 according to its index, as follows: from Core0 to Core1, from Core1 to Core0, from Core2 to Core3, or from Core3 to Core2. 5. Step 4 generates an address error interrupt. Read GIR5 to make sure that the interrupt is generated by the specified core (see Section 8.2.25, General Interrupt Register 5 (GIR5), on page 8-40 for details). 6. Make sure that the appropriate Stop ACK is asserted in GSR1. If not, assert the bit. (see Section 8.2.3, General Status Register 1 (GSR1), on page 8-5 for details). MSC8156 Reference Manual, Rev. 2 10-12 Freescale Semiconductor Entering and Exiting Wait and Stop States Safely 7. Issue a stop command to the specified core. 10.11.2.2 Procedure for Exiting the Stop State Safely Use the following process to exit from the Stop state: 1. Initiate an enabled level subsystem interrupt. This causes the subsystem to exit the Stop state. 2. The core will open its own slave port window by deasserting the relevant bit in the CORE_SLV_GCR (see Section 8.2.34, Core Subsystem Slave Port General Configuration Register (CORE_SLV_GCR), on page 8-59). MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 10-13 MSC8156 SC3850 DSP Subsystem MSC8156 Reference Manual, Rev. 2 10-14 Freescale Semiconductor Internal Memory Subsystem 11 The internal memory system supports 4.5 MB of internal memory and includes: Memory management unit (MMU) per core. Instruction channel with 32 KB L1 ICache per core. Data channel with 32 KB L1 DCache per core. 512 KB L2 shared unified Cache, configurable in 64 KB blocks as M2 memory, per core. 1 MB + 32 KB 128-bit wide M3 memory connected to three internal memory buses. The 1 MB block can be turned off to reduce power consumption. The M3 memory supports semaphores and the RapidIO mail boxes. 96 KB of boot ROM accessible from the cores. Note: The MMU, L1 ICache, L1 DCache, and L2 Cache/M2 memory are part of the MSC8156 SC3850 DSP core subsystem. For detailed programming and functional information, refer to the MSC8156 SC3850 DSP Core Reference Manual, available with a signed non-disclosure agreement. Contact your local Freescale dealer or sales representative for more information. Note: The default burst size for the caches and MMU is 1 VBR, but for most operations, programming the burst size as 4 VBR provides the best performance. Reference Manual, Rev. 2 Freescale Semiconductor 11-1 Internal Memory Subsystem 11.1 Memory Management Unit (MMU) The MMU provides a high-speed address translation mechanism to enable memory relocation, and checks access permissions for core instructions and data buses. It also controls hardware task protection and provides cache and bus controls for advanced memory management. The MMU enables better integration of system resources and defines a cleaner software model. For example, programing protected regions, address translation regions, cacheable regions, and so on can be combined. In addition, cache usage can be optimized based on the specific attributes controlled by the MMU programming. For memory protection, the MMU enables the implementation of an RTOS with MMU support, thereby protecting the operating system, task code, and data from errant tasks. Address translation enables implementation of a software model in which the code uses virtual addresses that are translated to physical addresses accessing memory. The MMU provides a virtual memory software model with a hole for the OCE and internal device registers and peripherals. The core generates virtual addresses during its operation. The virtual address together with the task ID from the MMU become the task-extended (TE) virtual address. The MMU translates between virtual and physical addresses during each core access, providing control attributes for each core access per memory segment, such as burst size, prefetch enable, write-policy, cacheability, and so forth. The MMU has the following functions and features: A memory attributes and translation table (MATT), composed of 20 data segment descriptors and 12 program segment descriptors. Each segment descriptor defines a related memory region and its cache and attributes, protection and address translation. The descriptor related memory space has a long-range variable mapping size. The size is designated in steps as a power of 2, starting from 256 bytes. The mapping size can be between 256 bytes to 4 GB. The base address must be aligned to a segment size. The memory region dedicated cache and attributes support the following: — Cacheable access. — A burst size of 1, 2, or 4 for the data fetch unit (DFU) and instruction fetch unit (IFU). — Hardware line prefetch enable. — Hardware next line prefetch enable (instruction only) — System/shared attributes — Write policy for data memory — L2 cache policy Reference Manual, Rev. 2 11-2 Freescale Semiconductor Instruction Channel (ICache and IFU) Hardware data and program access protection is defined for each data/program memory region for two privilege levels: user and supervisor. The MMU provides abort signals for the Xa/Xb/P buses for errant accesses. The MMU provides memory region support, as follows: — For the program memory region, provides read allowed/not allowed access for both the Supervisor and User levels — For the data memory region, provides read/write allowed/not allowed for both the Supervisor and User levels Address translation is defined for each data/program memory region, enabling allocation of a virtual memory region to a valid physical memory space. Priority mechanism between descriptors, allowing memory regions overlapping. Stores the program task ID and data task ID for multi-task mechanism. Up to 255 different Program IDs and 255 different data IDs are available. Subsystem ID register and general-purpose register among its control and status registers. Access error detection including non-mapped memory access and misaligned memory access. Captures error status bits and enables a fast error diagnostic. Precise interrupts allowing handling MMU MATT misses supporting a virtually paged operating system. Core branch target buffer (BTB) that enables manual and automatic BTB maintenance. Subsystem error detection code (EDC) recovery scheme. Enable/disable EDC exception mechanism. Subsystem master and slave error handling. Program and data query mechanism. 11.2 Instruction Channel (ICache and IFU) The Instruction Channel comprises the Instruction Cache (ICache) and the Instruction Fetch Unit (IFU). This channel provides the core with instructions that are stored in higher-level memory. The ICache, which operates at core speed, stores recently accessed instructions. Whenever an addressed instruction (from the cacheable memory area) is found in the array, it is immediately made available to the core (ICache hit). When the required address is not found in the array, it is loaded to the ICache from the external (not part of the DSP core subsystem) memory by the IFU (ICache miss). The IFU operates in parallel to the core to implement a prefetch algorithm that loads the ICache with information that with high probability will be needed soon. This action reduces the number of cache misses. Whenever an instruction is addressed from a non-cacheable area, the IFU fetches it directly to the P bus of the core without writing it to the cache. Reference Manual, Rev. 2 Freescale Semiconductor 11-3 Internal Memory Subsystem Instruction channel features include: Aligned 128-bit XP core accesses. Concurrent cacheable and non-cacheable accesses, as identified in the MMU based on the address ranges. Task-extended virtually addressed cache. The 8-bit task ID from the MMU is stored as part of the line tag that allows a task-specific cache image that is not overridden by other tasks that use the same virtual address. This feature can support multi-task mechanism. This extended tag is named the ETAG. Cacheable shared memory between tasks marked by the MMU according to the memory range, and stored in the cache with TASKID 0. Cache hit access without wait states (except during memory conflicts). Issues 128-bit accesses to the higher level memory when a cache miss occurs. Programmable to issue hardware line prefetch accesses upon cache miss that fetch data to the end of the cache line (256 bytes). — Hardware line prefetching is aborted in case of a new miss on a burst size boundary. — Programmable burst size of 1, 2, or 4 VBRs. A miss access identified as a prefetch by the prefetch hit stalls the core to reduce the number of wait states relative to a simple miss. Automatic hardware next line prefetch on a mis or a hit to a previously fetched line controlled by the MMU. Supports SC3850 core touch loading PFETCH command that allows the user to prepare specific memory lines in the cache to reduce or remove the penalty for miss accesses. Pseudo-LRU (PLRU) as the cache line replacement mechanism (LRM). Partial lock allows locking of a subset of cache lines based on ways boundaries to reduce the cache restoration penalty of a restored task. Instructions can be locked in the cache, preventing the thrashing of instructions that have expected reuse. This mechanism is useful during rapid task switching and prevents a situation in which a task thrashes important instructions associated with other tasks. Global lock allows locking of all cache lines to reduce the cache restoration penalty of a restored task. In this case, the cache does not serve cache misses. User-initiated cache sweep operations for coherency support. These operations are performed on each line in a user-specified address range. An invalidate discards the cache line (clears the valid bits). Cache debug mode in which the cache state (ETAG values, Valid, PLRU state) can be read and the memory array can be read or written. Dedicated programmable cache control registers that control or reflect its operation. EDC (error detection) support. Dedicated exceptions for each of the following events: Reference Manual, Rev. 2 11-4 Freescale Semiconductor Data Channel and Write Queue (DCache) — End of sweep operation. This exception indicates the completion of the sweep operation. — XP non-cacheable hit access. This exception indicates that an access is a hit access, even though the MMU classifies it as a non-cacheable access. This type of situation can occur if the memory space attributes changed in the MMU without invalidating the appropriate cache lines Assertion of the exception is not guaranteed when the attribute change that led to this error is not performed with SYNCIO as restricted. — XP double match. This is an error that occurs when a task-shared access has an address that matches a non-shared cache line. 11.3 Data Channel and Write Queue (DCache) The data channel and write queue is a two-way channel for reading and writing information from the core to/from higher level memory (M2 or L2) and Control Memory (internal blocks and external peripherals) spaces. The DCache, which operates at core speed, keeps the recently accessed data. Whenever addressed data (from a cacheable memory area) is found in the array, it is immediately made available to the core (DCache hit) in a read, and updated if written. When the required address is not found in the array, a DCache miss occurs, and the data is loaded to the DCache from the external (not part of the DSP core subsystem) memory by the DFU, and driven through the write queue to the core. The data channel is fed by accesses from the write queue buses and not directly from the core XA/XB data buses. Data reads are normally forwarded directly from the write queue, so there is no delay in processing them. On the other hand, data writes can be delayed for extended periods in the write queue. Therefore, they are bypassed by read accesses and their processing in the data channel is completely detached from the core execution flow. The write queue performs the necessary hazard checks and enforces the access order issued by the core. The DFU operates in parallel with the core and implements a prefetch algorithm to load to the DCache, information that with high probability will be needed soon, thus reducing the number of data cache misses. The channel differentiates between cacheable and non-cacheable addresses as defined by the MMU. For cacheable addresses, it supports the write-back allocate or write-through accesses. Cacheable accesses activate the cache (if the cache is enabled) and respond to the core with no wait states when a hit occurs. For a miss, the data channel issues a fetch request to higher-level memory and typically executes hardware line prefetches limited at most by the end of the cache line. Write-through accesses do not allocate a new line in the cache for a write-miss access. Reference Manual, Rev. 2 Freescale Semiconductor 11-5 Internal Memory Subsystem Cacheable write back data writes wait in the cache until a line is flushed, either automatically as part of the replacement policy or when initiated by the user. During flushing, the writes wait in the write back buffer until they are written to higher-level memory. Hardware line prefetching and write backs are issued on the QBus as compact 128-bit transactions, which helps reduce the traffic on the DSP subsystem connection to the higher level memories. Non-cacheable accesses are written through the data channel without changing the cache state. Cacheable write-through accesses, however, are written to the higher level memory, and they update the cache when there is a hit access. The data channel has the following features: Handling 2 parallel core accesses WA/WB each with a width of 1, 2, 4 or 8 bytes Supports both cacheable and non-cacheable accesses concurrently, as identified in the MMU based on their address ranges. Task-extended virtually addressed cache. The 8-bit task ID from the MMU is stored as part of the line tag, which allows a task-specific cache image that is not overridden by other tasks that use the same virtual address. This feature can support multi-task mechanism. This extended tag is named ETAG. Supports cacheable shared memory between tasks that is marked by the MMU according to the memory range, and is stored in the cache with task ID 0. Serves a cache hit access without wait states (except memory conflicts). Upon a cache miss, issues 128-bit accesses to the higher level memory Upon a cache miss, could be programmed to issues prefetch accesses that will bring in data until the end of the cache line (256 bytes). — Hardware line prefetching is aborted when there is a new miss on a burst size boundary. — Programmable burst size of 1, 2, or 4 VBRs. Miss access, identified as being hardware line prefetched (prefetch hit), stalls the core for a reduced number of wait states relative to a simple miss. Supports SC3850 core cache maintenance instructions that are operable for both user and supervisor levels: — DMALLOC. Allocate a line used later in the code and validate 4 VBRs in the line. Saves time and bus resources need to fetch VBRs from main memory when going to overwrite it. — DFETCH/W. Allocate a line and fetch the relevant data (at least one memory burst) that is used later in the code. Adding the W indicate to the L2 cache not to allocate the data even if it is cacheable to reduce cache inclusiveness. — DFLUSH. The DCache writes back and invalidates a cache line belonging to the specified address of the M3 or external memory. — DSYNC. The DCache writes back a cache line belonging to the specified address of the M3 or external memory. Reference Manual, Rev. 2 11-6 Freescale Semiconductor Data Channel and Write Queue (DCache) Pseudo-LRU (PLRU) as the cache Line Replacement Mechanism (LRM). Partial lock allows locking of a subset of cache lines based on ways boundaries, to reduce cache restoration penalty of a restored task. Data can be locked in the cache, thus preventing the thrashing of data expected to be used again. This mechanism is useful when rapid task switching is required, thereby preventing a situation in which a task thrashes important data associated with other tasks. Global lock allows locking of all cache lines to reduce cache restoration penalty of a restored task. Miss accesses are not served by the cache in this case. Supports user-initiated cache sweep operations for coherency support. These operations are performed on each line in a user-specified address range: — Synchronize: write back the cache line if it was modified, clearing its “dirty” bit without affecting its validity. — Flush: write back any cache line (and clear the “dirty” bit), and also invalidate it in the cache (clearing the “valid” bit). — Invalidate: discard the cache line without writing it back (clear both “dirty” and “valid” bits). Cache debug mode where the cache state (ETAG values, Valid-Dirty, PLRU state) could be read and the memory array could be read or written. Dedicated programmable cache control registers that control or reflect its operation. EDC (error detection) support. Provides dedicated exceptions for each of the following events: — End of sweep operation: This exception indicates the completion of the sweep operation. — WA/WB non-cacheable hit access: This exception indicates that an access is a hit (or prefetch hit) access, although it is indicated by the MMU as a non-cacheable access. This type of situation can occur if the memory space attributes are changed in the MMU without flushing/invalidating the appropriate cache lines Assertion of the exception is not guaranteed if the attribute change that leads to the error was not done with the SYNCIO command as restricted. — WA/WB double match: This is an error that occurs when a task-shared access has an address that matches a non-shared cache line. Reference Manual, Rev. 2 Freescale Semiconductor 11-7 Internal Memory Subsystem 11.4 L2 Unified Cache/M2 Memory Each core subsystem contains a memory region that can be allocated as L2 unified cache or M2 memory. Allocation of M2 memory is done in 64 KB blocks from 0 to 512 KB (the full memory space). Whatever portion is not allocated as M2 memory is used as L2 cache. Allocation can be done dynamically, but must be done when the L2 cache is disabled. The selection of 64 KB blocks is done through address partitioning. After the M2 region is defined, the cache should be flushed and after the flush is completed, the L2 cache controller is enabled and the defined M2 region becomes available for addressing with the remainder of the space available to the L2 cache controller (L2Cache). The L2Cache is responsible for processing data and program accesses to the M3 and external DDR memory. By caching the accesses requested by the L1 subsystem, the average penalty of accessing the high latency M3/DDR memory is reduced. The L2Cache includes slave arbitration and a Tag unit, cache logic and arrays along with a write buffer for write back and write through accesses, fetch logic that is responsible for fetching data from the M3/DDR memory on a miss or a non-cacheable access, and a master arbiter that arbitrates between the different units. The main L2Cache components include the following: Cache logic. Responsible on managing the cache arrays and state machines. Fetch Unit (L2FU). Responsible for fetching cacheable accesses from the M3/DDR memory, including the rest of the line. Write Buffer (L2WB). A buffer for temporarily holding modified (dirty) cache lines that were thrashed by the cache and also serving as a buffer for non-cacheable memory. Control Unit (L2AU). Responsible for arbitration between the different masters (access generators) of the L2Cache (L2FU and L2WB) and interface to the asynchronous bus. QBus to MBus (Q2M). Enables the interface to the external memory bus asynchronously while maintaining the pipeline. Register file. Holds the L2Cache status and control registers that are mapped to the internal peripherals on Bank0. The cache has the following characteristics: Up to 512 KB cache memory. 8 ways 1024 cache indexes. 64-byte cache line. 64-byte Valid Bit Resolution (VBR) and Dirty Bit Resolution (DBR). Fetches the whole line at once. Writes back the whole line at once when a dirty line is thrashed from the cache. 8192 cache lines (TAGs). Reference Manual, Rev. 2 11-8 Freescale Semiconductor L2 Unified Cache/M2 Memory Physically addressed. L2WB comprises eight 32-byte entries. Slave port support. The L2 Cache Controller is connected to the Data and Instruction QBus. The L2 Cache Controller has a chip select input that signals the access to it. Each access is qualified by the cache policy bits that are linked to the access address, as either a cacheable (CA) access, non-cacheable (NC) access, cacheable write-through (WT), and Adaptive Write Policy (AWP), that is, a CA on a read access or a hit access, and NC on a write miss. Cacheable accesses activate the cache and, in case of a hit, answer after a minimum of five cycles. In case of a miss, the L2 Cache Controller issues fetch requests to the higher-level memory (M3/DDR), and fetches more data than asked for by requesting the whole cache line to reduce the performance impact due to subsequent accesses. In case the access is a WB or AWP hit, the data writes wait in the cache until the line is flushed (automatically as part of the replacement policy or if initiated by the user). Upon flushing, the writes wait in the Write Buffer (L2WB) until they are written to the higher-level memory. Miss fetch and write backs are issued on the MBus as 128-bit transactions, which help reduce the traffic on the platform connection to the higher level memories. NC accesses, WT or AWP miss are written through the L2Cache without changing the cache state via the L2WB. The cache does not calculate hits for NC accesses. To prevent a coherency problem, the cache must be flushed when changing an area from CA policy to NC policy in the MMU MATT descriptors. The L2 Cache Controller has the following features: Input ports (DQBus, IQBus, and MBus): — Handling 2 input QBuses and 1 input MBus, arbitrating them to one internal bus with pipeline support. — Slave ports (Qbus and MBus) supporting partial bus width accesses of 1, 2, 4, and 8 bytes and full bus bursts of 1, 2, and 4 beats of 128-bit accesses. — Round-Robin arbitration according to the access type signal and the origin of the access. — Physically addressed. Output Port (MBus): — Interface to the external memory (Master bus) with a bus working in MBus protocol and supporting asynchronous connection. — The maximum accumulative burst size is 64 bytes. The number of beats in the burst is equal to the burst size divided by the bus size.The maximum accumulative burst size is 64 bytes which is made in 4 beats of 128 bits. Reference Manual, Rev. 2 Freescale Semiconductor 11-9 Internal Memory Subsystem Access handling: — Supports the following cache policies: • Noncacheable on read and write (NC). • Cacheable write-through on read noncacheable on write (WT) • Cacheable write back on both read and write are cacheable (WB) • Adaptive write policy (AWP). Cacheable WB on read or hit and NC on write miss. • Adaptive read cacheability according to a read-with-intent-to-write indiction. • Policy is identified by the cache policy bits (defined by MMU programming) that are part of the accesses attributes signals. — Supports user-initiated D/PFL2_x commands. — Upon a cache miss, brings the entire line using critical word first and wraps on 64-byte boundaries. — Identifies data that is being fetched (prefetch hit), which reduces the number of wait states relative to a simple miss and reduces the external memory bus load. — Detects hazards for reads that use data that was flushed (or noncacheable) and is still in the L2WB. The access is stalled until the write is completed. — Supports fast write and response request — Issues a transfer acknowledge as soon as the write data is sampled. When response is high, issues the transfer acknowledge signal when the write access is sampled at the end target. — Supports core atomic accesses to external memory. Atomic access to L2 cacheable location or to L2 as M2 is not supported (will always succeed) — Constantly memory maps the cache array to enable read and write to it for debug purposes and also to allow use as M2 with DMA connectivity. Replacement mechanism: — Uses random cache line replacement mechanism (LRM).—Partitioning mechanism by ways and address ranges — Allows assignment of a subset of cache lines to an address range to reduce cache restoration penalty of a restored task. This mechanism is useful when rapid task switching is required, thereby preventing a situation in which a task thrashes important data or instructions associated with other tasks. ECC is able to fix 1 error in 64 bits. In addition, ECC test mode is supported. This mode enables the user to check the ECC mechanism by initiation of error. Cache programming: — Dedicated programmable cache control registers that control or reflect its operation. — Supports reading and writing memory mapped registers through memory mapped bank0. Supports user-initiated SW-PF (L2 software prefetch) operation. This operation enables PF of a specific (two-dimensional) address space as programmed in the cache registers. Reference Manual, Rev. 2 11-10 Freescale Semiconductor L2 Unified Cache/M2 Memory Supports SW cache coherency: — SW initiated DFLUSH/DSYNC operations. These operations are performed in a line resolution. — SW initiated cache sweep operations for coherency support. These operations are performed on each line in a user-specified address range: • Synchronize: write back the cache line if it was modified, clearing its dirty bit without affecting its validity. • Flush: write back any dirty cache line (and clear the dirty bit), and also invalidate it in the cache (clearing the valid bit). • Invalidate: discard the cache line without writing it back (clear both dirty and valid bits). Cache debug mode where the cache state (tag, valid, and dirty) could be read through the DQbus slave port. Provides dedicated interrupts for each of the following events: — Master port () error: This interrupt indicates that one of the accesses generated by the L2 cache to the off platform memories has failed (that is, non-mapped access). — End of sweep operation: This interrupt indicates the completion of the sweep operation. — End of SW-PF operation: This interrupt indicates the completion of a L2 software prefetch operation. — Noncacheable hit error: This interrupt indicates that an access to a noncacheable area was found to be hit. This indicates user violation of a restriction, which obligates the user to flush the cache before changing descriptors’ attributes. — Non-aligned non-allocate error: This interrupt indicates that a non-aligned access from the slave port isn’t allocated in the cache and is forwarded to the external memory instead. — M2 non-mapped access error: This interrupt indicates that an access intended to access the L2 cache as M2, has exceeded the M2 boundaries indicating an issue with memory mapping to M2 configuration. Disabled on reset. Cannot be disabled after enabled. Reference Manual, Rev. 2 Freescale Semiconductor 11-11 Internal Memory Subsystem 11.5 M3 Memory The 1056 KB M3 memory can be used for storing critical program and data shared between the cores and the device peripherals. The M3 memory has a 128-bit wide port and runs at 500 MHz. The M3 memory is ECC protected for soft errors. The M3 memory uses 64 KB compiled memory banks of SRAM. The memory is divided into three groups, two 512 KB groups and one 32 KB group, each with its own bus controller. The two 512 KB groups of memory are located between addresses 0xC0000000 and 0xC00FFFFF in the MSC8156 memory map. The 32 KB group is located between addresses 0xC0100000 and 0xC0107FFF. To support decreased power consumption, power to the two 512 KB memory groups can be disabled. All of the M3 memory supports semaphores and the RapidIO mail boxes. When the power is removed from the two 512 KB memory groups, the remaining 32 KB group still has power to provide minimal support for the hardware semaphores and the RapidIO mail boxes. 11.6 Internal Boot ROM The MSC8156 device includes 96 KB of boot ROM accessible from all of the cores. This ROM provides the basic loading programming that allows the device to complete its initialization and load additional configuration and booting from external sources. Reference Manual, Rev. 2 11-12 Freescale Semiconductor DDR SDRAM Memory Controller 12 The two fully programmable DDR SDRAM memory controllers support most available JEDEC-standard ×8 or ×16 DDR2 and DDR3 memories. In addition, unbuffered and registered DIMMs are supported. However, mixing different memory types or unbuffered and registered DIMMs in the same system is not supported. Built-in error checking and correction (ECC) ensures very low bit-error rates for reliable high-frequency operation. Dynamic power management and auto-precharge modes simplify memory system design. A large set of special features, including ECC error injection, support rapid system debug. Figure 12-1 shows a high-level view of the DDR memory controller with its associated interfaces. Request from Initiator Input Staging Queue Address Decode Address from Initiator Physical Bank, Logical Bank, Row DDR SDRAM Memory Array MA[15–0] MBA[2–0] Address Control DDR SDRAM Memory Control Row Open SDRAM Control Row Open Table EN To Error Management Error Signals ECC Delay Chain Data from SDRAM Data from Initiator MDQS[0–8] MPAR_IN MPAR_OUT FIFO RMW ECC MCS[0–1] MCAS MRAS MWE MDM[0–8] MCKE[0–1] MODT[0–1] MDIC[0–1] Data Qualifiers MDQS[0–8] Data Signals MDQ[0–63] MECC[0–7] EN SDRAM Control Clocks Clock Control MCK[0–2] MCK[0–2] Note: Register names in most of the chapter use the generic form shown in this figure. Actual names prepend M1 or M2 for the individual controllers. Figure 12-1. DDR SDRAM Memory Controller Simplified Block Diagram MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-1 DDR SDRAM Memory Controller 12.1 Features Each one of the dual independent DDR memory controllers includes these distinctive features: Support for DDR2 and DDR3 SDRAM 64-/72-bit or 32-/40-bit SDRAM data bus for DDR2 and DDR3 Programmable settings for meeting all SDRAM timing parameters The following SDRAM configurations are supported: — Two physical banks (chip selects), each bank independently addressable — 256-Mbit to 2-Gbit devices depending on internal device configuration with ×8/×16 data ports (no direct ×4 support) — Unbuffered and registered DIMMs Chip select interleaving support Partial array self refresh support Support for data mask signals and read-modify-write for sub-double-word writes. Note that a read-modify-write sequence is only necessary when ECC is enabled. Support for double-bit error detection and single-bit error correction ECC (8-bit check word across 64-bit data) Support for address parity for registered DIMMs Open page management (dedicated entry for each logical bank) Automatic DRAM initialization sequence or software-controlled initialization sequence Automatic DRAM data initialization Write leveling supported for DDR3 memories Support for up to eight posted refreshes Memory controller clock frequency of two times the SDRAM clock with support for sleep power management Support for error injection The DDR memory controller supports the following modes: 32-byte cache line wrap. Dynamic power management mode. The DDR memory controller can reduce power consumption by deasserting the SDRAM CKE signal when no transactions are pending to the SDRAM. Auto-precharge mode. Clearing DDR_SDRAM_INTERVAL[BSTOPRE] causes the memory controller to issue an auto-precharge command with every read or write transaction. Auto-precharge mode can be enabled for separate chip selects by setting CSn_CONFIG[AP_n_EN]. MSC8156 Reference Manual, Rev. 2 12-2 Freescale Semiconductor Functional Description 12.2 Functional Description The DDR SDRAM controller controls processor and I/O interactions with system memory. It supports JEDEC-compliant DDR2 and DDR3 SDRAMs. The memory system allows a wide range of memory devices to be mapped to any arbitrary chip select, and support is provided for registered DIMMs and unbuffered DIMMs. However, registered DIMMs cannot be mixed with unbuffered DIMMs. In addition, DDR3 DIMM module specifications allow for vendors to use mirrored DIMMs, where some address and bank address lines are mirrored on the DIMM. The memory controller only supports these if the DDR_SDRAM_MD_CNTL register is used to initialize memory with DDR_SDRAM_CFG[BI] set. However, write leveling is not supported if these DIMMs are used. Note: A bank is a physical bank specified by a chip select; a logical bank is one of the four or eight sub-banks in each SDRAM chip. A sub-bank is specified by the two or three bits on the memory bank address (MBA) pins during a memory access. Each memory interface supports two physical banks of 64-/72-bit or 32-/40-bit wide memory. As shown in Figure 12-1, requests are received from the internal mastering device, and the address is decoded to generate the physical bank, logical bank, row, and column addresses. The transaction is compared with values in the row open table to determine if the address maps to an open page. If the transaction does not map to an open page, an active command is issued. The memory interface supports two physical banks of 64-/72-bit wide or 32-/40bit wide memory. Total memory size can be up to 2 Gbyte while using one or two banks (chip selects). Programmable parameters allow for a variety of memory organizations and timings. Using optional error checking and correcting (ECC) protection, the DDR memory controller detects and corrects all single-bit errors within the 64-bit or 32-bit data bus, detects all double-bit errors within the 64-bit or 32-bit data bus, and detects all errors within a nibble. The controller allows as many as 16 pages to be opened simultaneously. The amount of time (in clock cycles) the pages remain open is programmed via the DDR_SDRAM_INTERVAL[BSTOPRE] bit (see Table 12-34 on page 12-74). MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-3 DDR SDRAM Memory Controller Read and write accesses to memory are burst oriented; accesses start at a selected location and continue for a programmed number of higher locations (four or eight) in a programmed sequence. Accesses to closed pages start with the registration of an ACTIVE command followed by a READ or WRITE. Accessing open pages does not require an ACTIVE command. The address bits registered with the ACTIVATE command specify the logical bank and row to be accessed. The address coincident with the READ or WRITE command specify the logical bank and starting column for the burst access. The data interface is source synchronous, so the source of the data provides a clocking signal to synchronize data reception. These bidirectional data strobes (MDQS[0–8]) are inputs to the controller during reads and outputs during writes. The DDR SDRAM specification requires the data strobe signals to be centered within the data tenure during writes and to be offset by the controller to the center of the data tenure during reads. These delays are implemented by the DDR SDRAM memory controller for both reads and writes. When ECC is enabled, 1 clock cycle is added to the read path to check ECC and correct single-bit errors. ECC generation does not add a cycle to the write path. The address and command interface is also source synchronous, although 1/8 cycle adjustments are provided for adjusting the clock alignment. Figure 12-2 shows an example DDR SDRAM configuration with four logical banks. Data Bus Data-Out Registers Data-In Registers SDRAM Multiplex, Mask, Read Data Latch ADDR COMMAND– MCS, MRAS, MCAS, MWE DQM Logical Logical Logical Logical Bank 0 Bank 1 Bank 2 Bank 3 Control BA1,BA0 CKE, MCK, MCK Figure 12-2. Typical Dual Data Rate SDRAM Internal Organization MSC8156 Reference Manual, Rev. 2 12-4 Freescale Semiconductor Functional Description Figure 12-3 shows some typical signal connections. 64 M × 1 Byte 512 Mbit ADDR SUB BANK ADDR 13 2 A[12–0] MWE 8 Data BA[1–0] DQS MRAS MCAS DQ[7–0] Data Strobe Command Bus MCS DM Write Enable CKE MCK CK MCK Figure 12-3. Typical DDR SDRAM Interface Signals Figure 12-4 shows an example DDR SDRAM configuration with two physical banks, each containing nine 32M × 8 DDR modules for a total of 512 MB of system memory. One of the nine modules is used for the memory ECC checking function. Certain address and control lines software may require buffering. Analysis of the AC timing specifications, desired memory operating frequency, capacitive loads, and board routing loads can assist the system designer in defining signal buffering requirements. The DDR memory controller drives 16 address pins, but in this example the DDR SDRAM devices use only 13 bits. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-5 DDR SDRAM Memory Controller MDQS[0–8] Memory Data Bus and Strobes MDQ[0–63] MECC[0–7] MA[15–0] MBA[2–0] MRAS To all SDRAM Devices in Common MCAS MWE MCKE[0:1] MCK[0–2] MCK[0–2] MODT[0:1] MCS[0–1] MCS1 MCS0 DDR Controller 0 1 2 3 4 5 6 7 32M × 8 SDRAM 2 Mx8 SDRAM A[12–0] 2 Mx8 SDRAM BA [1–0] A[0-11] RAS 2 Mx8 MDQS SDRAM BA[0-1] A(11-0) CAS RAS 2Mx8 SDRAM BA(1-0) A(11-0) DQ[7–0] WE CAS RAS 2Mx8 SDRAM BA(1-0) A[0-11] CKE DQ[0-7] CAS RAS 2Mx8 SDRAM BA[0-1] A[0-11] CK CKE DQ(7-0) CAS RAS 2Mx8 SDRAM BA[0-1] A[0-11] CS CLK CKE DQ(7-0) CAS RAS BA[0-1] A[0-11] DM CS CLK CKE DQ[0-7] CAS RAS BA[0-1] DM CS CLK CKE CAS RAS DQ[0-7] DM CS CLK CKE CAS DQ[0-7] DM CS CLK CKE DQ[0-7] DM CS CLK CKE DM CS CLK DM CS DM MDQS[0] MDQ[0–7] MDQ[8–15] MDQ[16–23] MDQ[24–31] MDQ[32–39] MDQ[40–47] MDQ[48–55] MDQ[56–63] MDQS[7] 0 1 2 3 4 5 6 7 32M × 8 SDRAM 2Mx8 SDRAM A[12–0] 2Mx8 SDRAM BA[1–0] A[0-11] RAS 2Mx8 MDQS SDRAM BA[0-1] A(11-0) CAS RAS 2Mx8 SDRAM BA(1-0) A(11-0) DQ[7–0] WE CAS RAS 2Mx8 SDRAM BA(1-0) A[0-11] CKE DQ[0-7] CAS RAS 2Mx8 BA[0-1] A[0-11] SDRAM CK CKE DQ(7-0) CAS RAS 2Mx8 SDRAM BA[0-1] A[0-11] CS CLK CKE DQ(7-0) CAS RAS BA[0-1] A[0-11] DM CS CLK CKE DQ[0-7] CAS RAS BA[0-1] DM CS CLK CKE CAS RAS DQ[0-7] DM CS CLK CKE CAS DQ[0-7] DM CS CLK CKE DQ[0-7] DM CS CLK CKE DM CS CLK DM CS DM MDQS[0] MDQ[0–7] MDQ[8–15] MDQ[16–23] MDQ[24–31] MDQ[32–39] MDQ[40–47] MDQ[48–55] MDQ[56–63] MDQS[7] MDM[0–8] 32M × 8 SDRAM 32M × 8 SDRAM A[12–0] BA[1–0] RAS MDQS CAS DQ[7–0] WE CKE CK CS 8 DM A[12–0] BA[1–0] RAS MDQS CAS DQ[7–0] WE CKE CK CS 8 DM MDQS[8] MECC[0–7] MDQS[8] MECC[0–7] Bank 0 Bank 1 8M × 72 (256 Mbytes) 8M × 72 (256 Mbytes) 1. All signals are connected in common (in parallel) except for MCS[0–1], MCK[0–2], MDM[0–8], and the data bus signals. 2. Each of the MCS[0–1] signals correspond with a separate physical bank of memory. 3. Buffering may be needed if large memory arrays are used. 4. MCK[0–2] can be apportioned among all memory devices. Complementary bus is not shown. Figure 12-4. Example 512 MB DDR SDRAM Configuration With ECC MSC8156 Reference Manual, Rev. 2 12-6 Freescale Semiconductor Functional Description 12.2.1 DDR SDRAM Interface Operation The DDR memory controller supports many different DDR SDRAM configurations. SDRAMs with different sizes can be used in the same system. Sixteen multiplexed address signals MA[15–0] and three logical bank select signals MBA[2–0] support device densities from 256 Mb to 2 Gb. Two chip select signals MCS[0–1] support one double rank DIMM or up to two single rank DIMM. The DDR SDRAM physical banks can be built from standard memory modules or directly-attached memory devices. The data path to individual physical banks is 64 or 32 bits wide (72 or 40 bits with ECC). The DDR memory controller supports physical bank sizes from 32 MB to 2 GB. The physical banks can be constructed using × 8 or ×16 memory devices. Supported memory technologies include 256 Mbits, 512 Mbits, 1 Gbit and 2 Gbits. Nine data qualifier (DQM) signals provide byte selection for memory accesses. Note: An 8-bit DDR SDRAM device has a DQM signal a pair of differential data strobe signals and eight data signals (DQ[0–7]). A 16-bit DDR SDRAM device has two DQM signals, two pairs of differential data strobe signals associated with specific halves of the 16 data signals (DQ[0–7] and DQ[8–15]). When ECC is enabled, all memory accesses are performed on 64-bit boundaries (that is, all DQM signals are set simultaneously). However, when ECC is disabled, the memory system uses the DQM signals for byte lane selection. Table 12-1 shows the relationship between data byte lane 0–7, MDM[0–7], MDQS[0–7] and MDQ[0–63] when DDR SDRAM memories are used with × 8 and × 16 devices. Table 12-1. Byte Lane to Data Relationship Data Byte Lane Data Bus Mask Data Bus Strobe Data Bus 64-Bit Mode 0 (MSB) 1 2 3 4 5 6 7 (LSB) 8 MDM0 MDM1 MDM2 MDM3 MDM4 MDM5 MDM6 MDM7 MDM8 MDQS0 MDQS1 MDQS2 MDQS3 MDQS4 MDQS5 MDQS6 MDQS7 MDQS8 MDQ[0–7] MDQ[8–15] MDQ[16–23] MDQ[24–31] MDQ[32–39] MDQ[40–47] MDQ[48–55] MDQ[56–63] MECC[0–7] Note: For a 32-bit interface, only data byte lanes 0, 1, 2, 3 and 8 (ECC) are used. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-7 DDR SDRAM Memory Controller 12.2.2 DDR SDRAM Organization Although the DDR memory controller multiplexes row and column address bits onto 16 memory address signals MA[15:0] and 3 logical bank select signals MBA[2–0], individual physical banks can contain memory devices with fewer than 31 address bits. Each physical bank can be individually configured to provide from 12 to 16 row address bits plus 2 or 3 logical bank-select bits and from 8–11 column address bits. Table 12-2 and Table 12-3 list the DDR2 and DDR3 SDRAM device configurations supported by the DDR memory controller, respectively. Note: DDR SDRAM is limited to 31 total address bits. Table 12-2. Supported DDR2 Device Configurations SDRAM Device Device Configuration Row × Column × Sub-bank Bits 64-Bit Bank Size Two 64-bit Banks of Memory 256 Mb 32 M × 8 13 × 10 × 2 256 MB 512 MB 256 Mb 16 M × 16 13 × 9 × 2 128 MB 256 MB 512 Mb 64 M × 8 14 × 10 × 2 512 MB 1 GB 512 Mb 32 M × 16 13 × 10 × 2 256 MB 512 MB 1 Gb 128 M × 8 14 × 10 × 3 1 GB 2 GB 1 Gb 64 M × 16 13 × 10 × 3 512 MB 1 GB 2 Gb 256 M x 8 15 x 10 x 3 2 GB NA 2 Gb 128 M × 16 14 × 10 × 3 1 GB 2 GB Table 12-3. Supported DDR3 SDRAM Device Configurations SDRAM Device Device Configuration Row x Column x Sub-bank Bits 64-Bit Bank Size Two 64-bit Banks of Memory 1 Gb 128 M × 8 14 × 10 × 3 1 GB 2 GB 1 Gb 64 M × 16 13 × 10 × 3 512 MB 1 GB 2 Gb 256 M x 8 15 x 10 x 3 2 GB NA 2 Gb 128 M x 16 14 x 10 x 3 1 GB 2 GB Note: DDR SDRAM is limited to 31 total address bits. Table 12-4. Supported DDR2 Device Configurations SDRAM Device Device Configuration Row × Column × Sub-bank Bits 32-Bit Bank Size Two 32-bit Banks of Memory 256 Mb 32 M × 8 13 × 10 × 2 128 MB 256 MB 256 Mb 16 M × 16 13 × 9 × 2 64 MB 128 MB 512 Mb 64 M × 8 14 × 10 × 2 256 MB 512 MB 512 Mb 32 M × 16 13 × 10 × 2 128 MB 256 MB 1 Gb 128 M × 8 14 × 10 × 3 512 MB 1 GB MSC8156 Reference Manual, Rev. 2 12-8 Freescale Semiconductor Functional Description Table 12-4. Supported DDR2 Device Configurations SDRAM Device Device Configuration Row × Column × Sub-bank Bits 32-Bit Bank Size Two 32-bit Banks of Memory 1 Gb 64 M × 16 13 × 10 × 3 256 MB 512 MB 2 Gb 256 M × 8 15 × 10 × 3 1 GB 2 GB 2 Gb 128 M × 16 14 × 10 × 3 512 MB 1 GB Table 12-5. Supported DDR3 SDRAM Device Configurations SDRAM Device Device Configuration Row x Column x Sub-bank Bits 32-Bit Bank Size Two 32-bit Banks of Memory 1 Gb 128 M × 8 14 × 10 × 3 512 MB 1 GB 1 Gb 64 M × 16 13 × 10 × 3 256 MB 512 MB 2 Gb 256 M × 8 15 × 10 × 3 1 GB 2 GB 2 Gb 128 M × 16 14 × 10 × 3 512 MB 1 GB If a transaction request is issued to the DDR memory controller and the address does not lie within any of the programmed address ranges for an enabled chip select, a memory select error is flagged (see Section 12.6, Error Management, on page 12-35). If the starting and ending address of a disabled bank overlaps with the address space of an enabled bank, system memory in the overlapping address range can be corrupted. The starting and ending addresses of unused memory banks should be mapped to unused memory space. Using a memory-polling algorithm at power-on reset or by querying the JEDEC serial presence detect capability of memory modules, system firmware configures the memory-boundary registers to map the size of each bank in memory. The memory controller uses its bank map to assert the appropriate MCSx signal for memory accesses according to the provided bank starting and ending addresses. The memory banks do not have to be mapped to a contiguous address space. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-9 DDR SDRAM Memory Controller 12.2.3 DDR SDRAM Address Multiplexing Table 12-6 and Table 12-7 show the address bit encodings for each DDR SDRAM configuration. The address at the memory controller signals MA[15–0] use MA15 as the MSB and MA0 as the LSB. MA10 is the auto-precharge bit in DDR2/DDR3 modes for reads and writes, so the column address can never use MA10. Table 12-6. DDR2 Address Multiplexing for 64-bit Data Bus with Interleaving and Partial Array Self Refresh Disabled Row x Col MSB 31 Address from Core Initiator 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 15 MRAS x MBA 10 x MCAS 3 14 13 12 11 10 9 14 MRAS x MBA 10 x MCAS 3 13 12 11 10 9 8 8 6 5 4 3 2 7 6 5 4 3 2 13 MRAS x MBA 10 x MCAS 3 12 11 10 9 8 7 6 5 4 3 8 7 6 5 4 3 2–0 1 0 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 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 1 0 2 13 12 11 10 9 13 MRAS x MBA 9 x MCAS 2 7 2 14 MRAS x MBA 10 x MCAS 2 13 MRAS x MBA 10 x MCAS 2 LSB 1 0 2 1 0 1 0 8 7 6 5 4 3 2 1 0 2 12 11 10 9 8 7 6 5 4 3 1 0 2 1 0 1 0 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 8 MSC8156 Reference Manual, Rev. 2 12-10 Freescale Semiconductor Functional Description Table 12-7. DDR2 Address Multiplexing for 32-bit Data Bus with Interleaving and Partial Array Self Refresh Disabled Row x Col MSB 30 Address from Core Initiator LSB 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 15 MRAS x MBA 10 x MCAS 3 14 13 12 11 10 9 14 MRAS x MBA 10 x MCAS 3 13 12 11 10 9 8 7 6 5 4 3 2 13 12 11 10 9 13 MRAS x MBA 10 x MCAS 3 12 11 10 9 13 MRAS x MBA 9 x MCAS 2 6 5 4 3 2 8 7 6 5 4 3 3 2 1–0 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 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 1 0 2 14 MRAS x MBA 10 x MCAS 2 13 MRAS x MBA 10 x MCAS 2 7 5 4 1 0 2 8 7 6 1 0 2 1 0 1 0 8 7 6 5 4 3 2 1 0 2 12 11 10 9 8 7 6 5 4 3 1 0 2 1 0 1 0 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 8 Chip select interleaving is supported for the memory controller, and is programmed in DDR_SDRAM_CFG[BA_INTLV_CTL]. Interleaving is supported between chip selects 0 and 1 When interleaving is enabled, the chip selects being interleaved must use the same size of memory. If two chip selects are interleaved, then 1 extra bit in the address decode is used for the interleaving to determine which chip select to access. Table 12-8 and Table 12-9 illustrate examples of address decode when interleaving between two chip selects, MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-11 DDR SDRAM Memory Controller Table 12-8. Example of Address Multiplexing for 64-Bit Data Bus Interleaving Between Two Banks with Partial Array Self Refresh Disabled Row x Col MSB 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 x 10 MRAS x3 MBA 14 13 12 11 10 9 Address from Core Initiator LSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2–0 8 7 6 5 4 3 2 1 0 CS SEL MCAS 14 x 10 MRAS x3 MBA 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CS SEL MCAS 14 x 10 MRAS x2 MBA 13 12 11 10 9 8 7 6 5 4 3 2 1 2 1 0 9 8 7 6 5 4 3 2 1 0 0 CS 1 0 SEL MCAS 13 x 10 MRAS x3 MBA 12 11 10 9 8 7 6 5 4 3 2 1 CS SEL MCAS 13 x 10 MRAS x2 MBA 12 11 10 9 8 7 6 5 4 3 9 8 7 6 5 4 3 2 1 0 0 2 1 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 0 CS 1 SEL MCAS 0 Table 12-9. Example of Address Multiplexing for 32-Bit Data Bus Interleaving Between Two Banks with Partial Array Self Refresh Disabled Row x Col 15 x 10 MRAS x3 MBA MSB Address from Core Initiator 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 CS SEL 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CS SEL MCAS 14 x 10 MRAS x2 MBA 13 12 11 10 9 8 7 6 5 4 3 2 1 MCAS 1 0 9 8 7 6 5 4 3 2 1 0 CS 1 0 SEL 12 11 10 9 8 7 6 5 4 3 2 1 CS SEL 12 11 10 9 8 7 6 5 4 3 2 9 8 7 6 5 4 3 2 1 0 0 MCAS 13 x 10 MRAS x2 MBA 2 0 MCAS 13 x 10 MRAS x3 MBA 14 13 12 11 10 9 8 7 6 5 4 3 2 1–0 8 7 6 5 4 3 2 1 0 MCAS 14 x 10 MRAS x3 MBA LSB 1 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 0 CS 1 SEL 0 Partial Array Self Refresh (PASR) can be enabled for any chip select using the CSn_CONFIG_2[PASR_CFG] fields. If PASR is enabled for a given chip select, then the sub-bank and row decode are swapped, and the sub-bank is decoded as the most significant portion of the DRAM address, as shown in Table 12-10. MSC8156 Reference Manual, Rev. 2 12-12 Freescale Semiconductor Functional Description If chip select interleaving and PASR are enabled simultaneously for a chip select, then the interleaved chip select bit is placed immediately at the top the left of column decode as shown in Table 12-11. Table 12-10. DDR2 Address Multiplexing with Partial Array Self Refresh Enabled for 32-Bit Data Bus Without Interleaving Row x Col msb Address from Core Initiator lsb 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 15 x 10 MRAS x3 MBA 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 2 1 0 MCAS 9 8 7 6 5 4 3 2 1 0 14 x 10 MRAS x3 MBA 13 12 11 10 9 8 7 6 5 4 3 2 1 0 2 1 0 MCAS 9 8 7 6 5 4 3 2 1 0 14 x 10 MRAS x2 MBA 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 MCAS 9 8 7 6 5 4 3 2 1 0 13 x 10 MRAS x3 MBA 2 1 12 11 10 9 8 7 6 5 4 3 2 1 0 12 11 10 9 8 7 6 5 4 3 2 1 0 0 MCAS 13 x 10 MRAS x2 MBA 1 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0 0 MCAS 13 x 9 MRAS x2 MBA 9 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 MCAS Table 12-11. Example of Address Multiplexing for 64-bit Data Bus Interleaving Between Two Banks with Partial Array Self Refresh Enabled Row x Col 15 x 10 MRAS x3 MBA msb Address from Core Initiator 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 14 13 12 11 10 9 8 7 6 5 4 3 2 2 1 CS SEL 1 0 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CS SEL 2 1 0 MCAS 14 x 10 MRAS x2 MBA MCAS 13 12 11 10 9 8 7 6 5 4 3 2 1 0 2–0 0 MCAS 14 x 10 MRAS x3 MBA lsb 1 9 8 7 6 5 4 3 2 1 0 0 CS SEL 9 8 7 6 5 4 3 2 1 0 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-13 DDR SDRAM Memory Controller Table 12-11. Example of Address Multiplexing for 64-bit Data Bus Interleaving Between Two Banks with Partial Array Self Refresh Enabled (Continued) Row x Col 13 x 10 MRAS x3 MBA msb Address from Core Initiator 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 12 11 10 9 2 1 8 7 6 5 4 3 2 1 CS SEL 0 MCAS 12 11 10 9 1 0 8 7 6 5 4 3 2 1 2–0 0 MCAS 13 x 10 MRAS x2 MBA lsb 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 0 CS SEL MSC8156 Reference Manual, Rev. 2 12-14 Freescale Semiconductor JEDEC Standard DDR SDRAM Interface Commands 12.3 JEDEC Standard DDR SDRAM Interface Commands This section describes the commands and timings for DDR2 or DDR3 modes. The DDR memory controller performs all read or write accesses to DDR SDRAM using JEDEC standard DDR SDRAM interface commands. The SDRAM device samples command and address inputs on rising edges of the memory clock; data is sampled on both the rising and falling edges of DQS. Data read from the DDR SDRAM is also sampled on both edges of DQS. Following are the DDR SDRAM interface commands (summarized in Table 12-12 and Table 12-14) provided by the DDR controller. All actions for these commands are described from the perspective of the SDRAM device. Row activate. Latches row address and initiates memory read of that row. Row data is latched in SDRAM sense amplifiers and must be restored by a precharge command before another row activate occurs. Precharge. Restores data from the sense amplifiers to the appropriate row. Also initializes the sense amplifiers in preparation for reading another row in the memory array, (performing another activate command). Precharge must occur after read or write, if the row address changes on the next open page mode access. Read. Latches column address and transfers data from the selected sense amplifier to the output buffer as determined by the column address. During each succeeding clock edge, additional data is driven without additional read commands. The amount of data transferred is determined by the burst size, which defaults to 4. Write. Latches column address and transfers data from the data pins to the selected sense amplifier as determined by the column address. During each succeeding clock edge, additional data is transferred to the sense amplifiers from the data pins without additional write commands. The amount of data transferred is determined by the data masks and the burst size, which is set to four by the DDR memory controller. Refresh (similar to MCAS before MRAS). Causes a row to be read in all logical banks (JEDEC SDRAM) as determined by the refresh row address counter. This refresh row address counter is internal to the SDRAM. After it is read, the row is automatically rewritten in the memory array. All logical banks must be in a precharged state before a refresh. The memory controller also supports posted refreshes in which several refreshes execute at once, and the refresh interval can be extended. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-15 DDR SDRAM Memory Controller Mode register set (for configuration). Allows DDR SDRAM options to be set. These options are: MCAS latency, additive latency (for DDR2), write recovery (for DDR2), burst type, and burst length. MCAS latency can be chosen as provided by the preferred SDRAM (some SDRAMs provide MCAS latency {1,2,3}, some provide MCAS latency {1,2,3,4,5}, and so on). Burst type is always sequential. Although some SDRAMs provide burst lengths of 4 and 8, this memory controller supports only a burst length of 4. A burst length of 8 is supported only for DDR3 memory devices. For DDR2 in 32-bit bus mode, all 32-byte burst accesses from the platform are split into two 16-byte (that is, 4 beat) accesses to the SDRAMs in the memory controller. The DDR memory controller executes the mode register set command during system initialization. Parameters such as mode register data, MCAS latency, burst length, and burst type, are set by software in DDR_SDRAM_MODE[SDMODE] and transferred to the SDRAM array by the DDR memory controller after DDR_SDRAM_CFG[MEMEN] is set. If DDR_SDRAM_CFG[BI] is set to bypass the automatic initialization, software can configure the mode registers via the DDR_SDRAM_MD_CNTL register. Self refresh. For use when the device is in standby for very long periods of time. Automatically generates internal refresh cycles to keep the data in all memory banks refreshed. Before execution of this command, the DDR controller places all logical bank in a precharged state. MSC8156 Reference Manual, Rev. 2 12-16 Freescale Semiconductor JEDEC Standard DDR SDRAM Interface Commands Table 12-12. DDR2 Command Truth Table CKE Function RAS CAS WE BA0 BA1 BA2 A15– A11 Previous Cycle Current Cycle CS (Extended) Mode Register Set (MRS) H H L L L L BA Refresh (REF) H H L L L H X X X X 1 Self Refresh Entry (SRE) H L L L L H X X X X 1, 8 Self Refresh Exit (SRX) L H X X X X 1, 7, 8 Single Bank Precharge (PRE) H Precharge All Banks (PREA) A10 A9– A0 OP Code Notes 1, 2 H X X X L H H H H L L H L BA X L X 1, 2 H H L L H L X X H X 1 Bank Activate (ACT) H H L L H H BA Write (WR) H H L H L L BA Column L Column 1, 2, 3 Write with auto-precharge (WRA) H H L H L L BA Column H Column 1, 2, 3 Read (RD) H H L H L H BA Column L Column 1, 2, 3 Read with auto-precharge (RDA) H H L H L H BA Column H Column 1, 2, 3 No operation (NOP) H X L H H H X X X X 1 Device Deselect (DES) H X H X X X X X X X 1 Power Down Entry (PDE) H L X X X X 1, 4 Power Down Exit (PDX) L H X X X X 1, 4 Notes: 1. 2. 3. 4. 5. 6. 7. 8. H X X X L H H H H X X X L H H H Row Address 1, 2 All DDR2 SDRAM commands are defined by states of CS, RAS, WE, and CKE at the rising edge of the clock. Bank addresses BA0, BA1, BA2 (BA) determine which bank is operated on. For (E)MRS BA selects an (Extended) Mode Register. Burst reads or writes at BL = 4 cannot be terminated or interrupted. See “Reads interrupted by a Read” and “Writes interrupted by a Write” in section 2.6 of the JEDEC DDR2 SDRAM Specification (JESD79-2C). The Power Down Mode does not perform any refresh operations. The during of Power Down is therefore limited by the refresh requirements listed in section 2.9 of the JEDEC DDR2 SDRAM Specification (JESD79-2C).. The state of ODT does not affect the state described in this table. The ODT function is not available during Self-Refresh. See. section 2.4.4 of the JEDEC DDR2 SDRAM Specification (JESD79-2C). X can be H or L, but must be a defined logic level. Self refresh exit is asynchronous. VREF must be maintained during Self Refresh operation. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-17 DDR SDRAM Memory Controller Table 12-13. DDR3 Command Truth Table CKE A9– A0 A11 Previous Cycle Current Cycle CS RAS CAS WE BA0 BA1 BA2 Mode Register Set (MRS) H H L L L L BA Refresh (REF) H H L L L H V V V V V Self Refresh Entry (SRE) H L L L L H V V V V V 7, 9, 12 Self Refresh Exit (SRC) L H V V V V V 7, 8, 9, 12 Single Bank Precharge (PRE) H Precharge All Banks (PREA) Function A15– A13 A12 BC A10 Notes OP Code H V V V L H H H H L L H L BA V V L V H H L L H L V V V H V Bank Activate (ACT) H H L L H H BA Write (Fixed BL8 or BC4) (WR) H H L H L L BA RFU V L CA Write (BC4, on the Fly) (WRS4) H H L H L L BA RFU L L CA Write (BC8, on the Fly) (WRS8) H H L H L L BA RFU H L CA Write with auto-precharge (Fixed BL8 or BC4) (WRA) H H L H L L BA RFU V H CA Write with auto-precharge (BC4, on the Fly) (WRAS4) H H L H L L BA RFU L H CA Write with auto-precharge (BL8) (WRAS8) H H L H L L BA RFU H H CA Read (Fixed BL8 or BC4) (RD) H H L H L H BA RFU V H CA Read (BC4, on the Fly) (RDS4) H H L H L H BA RFU L H CA Read (BL8, on the Fly) (RDS8) H H L H L H BA RFU H H CA Read with auto-precharge (Fixed BL8 or BC4) (RDA) H H L H L H BA RFU V H CA Read with auto-precharge (BC4, on the Fly) (RDAS4) H H L H L H BA RFU L H CA Row Address 1, 2 MSC8156 Reference Manual, Rev. 2 12-18 Freescale Semiconductor JEDEC Standard DDR SDRAM Interface Commands Table 12-13. DDR3 Command Truth Table (Continued) CKE Previous Cycle Current Cycle CS RAS CAS WE BA0 BA1 BA2 A15– A13 A12 BC A10 A9– A0 A11 Read with auto-precharge (BL8, on the Fly) (RDAS8) H H L H L H BA RFU H H CA No operation (NOP) H H L H H H V V V V V 10 Device Deselected (DES) H H H X X X X X X X X 11 Power Down Entry (PDE) H L L H H H H V V V V V V V V 6. 12 Power Down Exit (PDX) L H L H H H H V V V V V V V V 1, 4 ZQ Calibration Long (ZQCL) H H L H H L X X X H X Function Notes: 1. Notes All DDR3 SDRAM commands are defined by states of CS, RAS, CAS, WE, and CKE at the rising edge of the clock. The MSB of BA, RA, and CA are device density and configuration dependent. RESET is Low enable command which is only used for asynchronous reset and must be maintained HIGH during any function. 3. Bank addresses BA0, BA1, BA2 (BA) determine which bank is operated on. For (E)MRS BA selects an (Extended) Mode Register. 4. V means H or L, but must be a defined level. X means either defined or undefined (such as floating) logic level. 5. Burst reads or writes cannot be terminated or interrupted. Fixed/on-the-Fly BL is defined by MRS.. 6. The Power Down Mode does not perform any refresh operations. 7. The state of ODT does not affect the states described in this table. The ODT function is not available during Self-Refresh. 8. Self refresh exit is asynchronous. 9. VREF (both VrefDQ and VrefCA) must be maintained during Self-Refresh operation. 10. The No Operation command should be used in cases when th DDR3 SDRAM is in an idle or wait state. The purpose of the NOP command is to prevent the DDR3 SDRAM from registering any unwanted commands between operations. A NOP does not terminate a previous operation that is still executing, such as a burst read or write cycle. 11. The Deselect command perfoms the same function as a NOP. 12. Refer to the CKE Truth Table in the JEDEC DDR3 SDRAM Specification (JESD79-3B)for details about CKE transition. 2. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-19 DDR SDRAM Memory Controller 12.4 DDR SDRAM Clocking and Interface Timing The DDR memory controller supports four-beat bursts to SDRAM. For single-beat reads, the DDR memory controller performs a four-beat burst read but ignores the last three beats. Single-beat writes are performed by masking the last three beats of the four-beat burst using the data mask MDM[0–8]. If ECC is disabled, writes smaller than the data bus width are performed by appropriately activating the data mask. If ECC is enabled, the controller performs a read-modify write. Note: If a second read or write is pending, reads shorter than four beats are not terminated early even if some data is irrelevant. To accommodate available memory technologies across a wide spectrum of operating frequencies, the DDR memory controller allows you to set the timing intervals listed in Table 12-14 with a granularity of 1, 1/2, 1/4, or 1/8 SDRAM clock cycle. The value of these parameters (in whole clock cycles) must be set by application software at system initialization before the DDR controller is enabled and must be kept in the DDR memory controller configuration registers. Any update of the timing parameters should be done while the controller is disabled. Table 12-14. DDR SDRAM Interface Timing Intervals Timing Intervals Definition ACTTOACT Activate-to-Activate Interval The number of clock cycles from a bank-activate command to another bank-activate command within a physical bank. This interval is listed in the AC specifications of the SDRAM as tRRD. Activate-to-Precharge Interval The number of clock cycles from an activate command until a precharge command is allowed. This interval is listed in the AC specifications of the SDRAM as tRAS. Activate-to-Read/Write Interval for SDRAM The number of clock cycles from an activate command until a read or write command is allowed. This interval is listed in the AC specifications of the SDRAM as tRCD. Open Page Interval The number of clock cycles to maintain a page open after an access. The page open duration counter is reloaded with BSTOPRE each time the page is accessed (including page hits). When the counter expires, the open page is closed with a SDRAM precharge bank command as soon as possible. MCAS Latency from READ Command Used in conjunction with additive latency to obtain the READ latency. The number of clock cycles between the registration of a READ command by the SDRAM and the availability of the first piece of output data. If a READ command is registered at clock edge n, and the read latency is m clocks, the data is available nominally coincident with clock edge n + m. Precharge-to-Activate Interval The number of clock cycles from a precharge command until an activate or a refresh command is allowed. This interval is listed in the AC specifications of the SDRAM as tRP. ACTTOPRE ACTTORW BSTOPRE CASLAT PRETOACT Register/Page DDR SDRAM Timing Configuration Register 1 (TIMING_CFG_1) page 12-55 DDR SDRAM Interval Configuration Register (DDR_SDRAM_INTERVAL) page 12-74 DDR SDRAM Timing Configuration Register 1 (TIMING_CFG_1) page 12-55 DDR SDRAM Timing Configuration Register 1 (TIMING_CFG_1) page 12-55 MSC8156 Reference Manual, Rev. 2 12-20 Freescale Semiconductor DDR SDRAM Clocking and Interface Timing Table 12-14. DDR SDRAM Interface Timing Intervals (Continued) Timing Intervals Definition REFINT Refresh Interval Represents the number of memory bus clock cycles between refresh cycles. One row is refreshed in each SDRAM bank during each refresh cycle. Depending on DDR_SDRAM_CFG_2[NUM_PR], some number of rows are refreshed in each SDRAM bank during each refresh cycle. The value of REFINT depends on the specific SDRAMs used and the frequency of the interface. This interval is listed in the AC specifications of the SDRAM as tREFI. Refresh Recovery Time The number of clock cycles from the refresh command until an activate command is allowed. This interval is listed in the AC specifications of the SDRAM as tRFC. Register/Page DDR SDRAM Interval Configuration Register (DDR_SDRAM_INTERVAL) page 12-74 DDR SDRAM Timing Configuration Register 1 (TIMING_CFG_1) page 12-55 and DDR SDRAM Timing Configuration Register 3 (TIMING_CFG_3) page 12-50 WR_DATA_DELAY Write Data Delay DDR SDRAM Timing Configuration Provides different options for the timing between a write Register 2 (TIMING_CFG_2) command and the write data strobe. This allows write data to page 12-60 be sent later than the nominal time to meet the SDRAM timing requirement between the registration of a write command and the reception of a data strobe associated with the write command. The specification dictates that the data strobe may not be received earlier than 75% of a cycle, or later than 125% of a cycle, from the registration of a write command. This parameter is not defined in the SDRAM specification. It is implementation-specific, DDR SDRAM Timing Configuration WRREC Write Recovery The number of clock cycles from the last beat of a write until a Register 1 (TIMING_CFG_1) precharge command is allowed. This interval, write recovery page 12-55 time, is listed in the AC specifications of the SDRAM as tWR. WRTORD Last Write Pair to Read Command. Controls the number of clock cycles from the last write data pair to the subsequent read command to the same bank. This interval is listed in the AC specifications of the SDRAM as tWTR. CLK_ADJUST Clock Adjust DDR SDRAM Clock Control Adjusts the MCK timing relative to address/command. The Configuration Register delay is set from the address/command start timing to the (DDR_SDRAM_CLK_CNTL) page 12-75 MCK rising edge. The resolution is 1/8 SDRAM clock cycle. ADD_LAT Additive Latency DDR SDRAM Timing Configuration Specifies the number of clock cycles for a Posted CAS Register 2 (TIMING_CFG_2) page 12-60 operation until the registered read/write command is issued inside the SDRAM as defined in the JEDEC DDR2 and DDR3 standards. CPO CAS-to-Preamble Override DDR SDRAM Timing Configuration (if automatic Specifies when the DDR controller starts waiting for the first Register 2 (TIMING_CFG_2) page 12-60 calibration is not DQS rising edge from DDR memory during the DQS selected) preamble for read access. The DQS rising edge should occur within 1 clock cycle from the timing defined by this parameter. REFREC MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-21 DDR SDRAM Memory Controller Table 12-14. DDR SDRAM Interface Timing Intervals (Continued) Timing Intervals Definition Register/Page WR_LAT Write Latency Specifies the number of clock cycles between the WRITE command and the first data write when AL = 0. When additive latency is applied, WR_LAT specifies the number of clock cycles between issuing the REGISTERED WRITE command inside the SDRAM and the first data write. Read to Precharge (tRTP) Specifies the number of clock cycles between the READ command and the PRECHARGE command when AL = 0. When additive latency is applied, RD_TO_PRE specifies the minimum tRTP timing from the REGISTERED READ command inside the SDRAM and the PRECHARGE command. DDR SDRAM Timing Configuration Register 2 (TIMING_CFG_2) page 12-60 RD_TO_PRE DDR SDRAM Timing Configuration Register 2 (TIMING_CFG_2) page 12-60 Software should initialize the parameters in the DDR controller registers with the appropriate values before the controller is enabled. Altering the register values while the controller is enabled can produce unpredictable controller behavior, can cause data loss, and can lock the controller or device. System software is responsible for optimally configuring of SDRAM timing parameters. The programmable timing parameters apply to both read and write timing configuration. The configuration process must be completed and the DDR SDRAM initialized before attempting any accesses to SDRAM. Figure 12-5 through Figure 12-7 show DDR SDRAM timing for various types of accesses, including a single-beat read, a single-beat write, and a burst-write. Note that all control signals transitions occur on the rising edge of the memory bus clock and that single-beat read operations are identical to burst-reads also note that data and MDQS signal transitions occur on every edge of the memory bus clock. Figure 12-5 through Figure 12-7 assume that DDR_SDRAM_CLK_CNTL[CLK_ADJUST] = 0100 (set to 1/2 SDRAM cycle), the additive latency is 0 SDRAM cycles, and the write latency is 1 SDRAM cycle. MSC8156 Reference Manual, Rev. 2 12-22 Freescale Semiconductor DDR SDRAM Clocking and Interface Timing ar 0 1 2 3 4 5 6 7 8 9 10 11 12 SDRAM Clock MCS ACTTORW MRAS MCAS MA[15–0] ROW COL COL CASLAT MWE MDQ[0–31] D0 D1 D2 D3 D0 D1 D2 D3 MDQS Figure 12-5. DDR SDRAM Burst Read Timing: ACTTORW = 3, MCAS Latency = 2 0 1 2 3 4 5 6 7 8 9 10 11 12 SDRAM Clock MCS ACTTORW PRECHARGE MRAS MCAS WRREC MA[15–0] ROW PRETOACT A10=0 COL ROW MWE MDQ[0–31] D0 D1 D2 D3 WL=1 MDQS MDM[0–3] 0 F F F Figure 12-6. DDR SDRAM Single-Beat (32-Bit) Write Timing: ACTTORW = 3 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-23 DDR SDRAM Memory Controller 0 1 2 3 4 5 6 7 8 9 10 11 12 SDRAM clock MCS0 MCS1 ACTTORW MRAS MCAS MA[15–0] ROW ROW COL COL COL COL MWE MDQ[0–31] D0 D1 D2 D3 D0 D1 D2 D3 D0 D1 D2 D3 D0 D1 D2 D3 WL=1 MDQS MDM[0–3] 0 Figure 12-7. DDR SDRAM 4-Beat Burst Write Timing: ACTTORW = 4 12.4.1 Clock Distribution If a system is composed of many devices, consider using zero-delay PLL clock buffers that are compliant with the JEDEC-JESD82 standard. These buffers are designed for DDR applications. A 72-bit × 64 Mbyte DDR bank has 9-byte-wide DDR memory chips resulting in 18 DDR chips in a two-bank system. For this case, each MCK/MCK signal pair should drive exactly six devices, as shown in Figure 12-8. PCB traces for DDR clock signals should be short, all on the same layer, and of equal length and loading. DDR SDRAM manufacturers provide details on PCB layout and termination issues. A[15–0], BA[2–0], MRAS, MCAS, MWE, CKE CS0 MCK0, MCK0 CS1 DDR DQ[0–7], DQS0, DM0 MCK1, MCK1 DQ[8–15], DQS1, DM1 DQ[16–23], DQS2, DM2 DQ[24–31], DQS3, DM3 DQ[32–39], DQS4, DM4 DQ[40–47], DQS5, DM5 MCK2, MCK2 DQ[48–55], DQS6, DM6 MCK2, MCK2 DQ[56–63], DQS7, DM7 ECC[0–7], DQS8, DM8 Figure 12-8. DDR SDRAM Clock Distribution Example for x8 DDR SDRAMs MSC8156 Reference Manual, Rev. 2 12-24 Freescale Semiconductor DDR SDRAM Clocking and Interface Timing 12.4.2 DDR SDRAM Mode-Set Command Timing The DDR controller transfers the mode register set commands to the SDRAM array and it uses the setting of TIMING_CFG_0[MRS_CYC] for the Mode Register Set cycle time. Figure 12-9 shows the timing of the mode-set command. The first transfer corresponds to the ESDMODE code; the second corresponds to SDMODE of DDR_SDRAM_MODE in the case of automatic hardware initialization. The Mode Register Set cycle time is set to 2 DRAM cycles in Figure 12-9. 0 1 2 3 4 5 6 7 8 9 10 11 12 SDRAM Clock MCS MRAS MCAS MAn MBAn Code Code 0x4 0x0 MWE MDQn MDQS Figure 12-9. DDR SDRAM Mode-Set Command Timing 12.4.3 DDR SDRAM Registered DIMM Mode To reduce loading, registered DIMMs latch the DDR SDRAM control signals internally before using them to access the array. Setting DDR_SDRAM_CFG[RD_EN] compensates for this delay on the DIMM control bus by delaying the data and data mask writes (on SDRAM buses) by an extra SDRAM clock cycle. NOTE Application system board must assert the reset signal on DDR memory devices until software is able to program the DDR memory controller configuration registers, and must deassert the reset signal on DDR memory devices before DDR_SDRAM_CFG[MEM_EN] is set. This ensures that the DDR memory devices are held in reset until a stable clock is provided and, further, that a stable clock is provided before memory devices are released from reset. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-25 DDR SDRAM Memory Controller Figure 12-10 shows the registered DDR SDRAM DIMM single-beat write timing. 0 1 2 3 4 5 6 7 8 9 10 11 12 SDRAM Clock MCS ACTTORW MRAS MCAS MAn ROW COL COL MWE MDQn D0 D1 D2 D3 D0 D1 D2 D3 MDQS MDMn 00 Figure 12-10. Registered DDR SDRAM DIMM Burst Write Timing 12.4.4 DDR SDRAM Write Timing Adjustments The DDR memory controller facilitates system design flexibility by providing a write timing adjustment parameter, DATA DELAY, configured in TIMING_CFG_2[WR_DATA_DELAY] for data and DQS. The DDR SDRAM specification requires DQS be received no sooner than 75% of an SDRAM clock period—and no later than 125% of a clock period—from the capturing clock edge of the command/address at the SDRAM. The TIMING_CFG_2[WR_DATA_DELAY] parameter can be used to meet this timing requirement for a variety of system configurations, ranging from a system with one bank of SDRAM devices to a fully populated system. TIMING_CFG_2[WR_DATA_DELAY] specifies how much to delay the launching of DQS and data from the first clock edge occurring one SDRAM clock cycle after the command is launched. The delay increment step sizes are in 1/4 SDRAM clock periods, starting with the default value of 0. MSC8156 Reference Manual, Rev. 2 12-26 Freescale Semiconductor DDR SDRAM Clocking and Interface Timing 0 1 2 3 4 5 6 7 8 9 10 11 12 SDRAM Clock associated clock during first write MCS ACTTORW MRAS MCAS MAn ROW COL COL MWE MDQn D0 D1 D2 D3 D0 D1 D2 D3 MDQS MDMn MDQn WR_DATA_DELAY = 001 1/4 Clock Delay 1/4 clock early from MCK rising edge 00 D0 D1 D2 D3 D0 D1 D2 D3 MDQS MDMn WR_DATA_DELAY = 010 1/2 Clock Delay Nominal (no adjust) Timing. No tDQSS skew. 00 WL = 1 Figure 12-11. Write Timing Adjustments Example for Write Latency = 1 for the Case Where DDR_SDRAM_CLK_CNTL[CLK_ADJUST] = 0100 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-27 DDR SDRAM Memory Controller 12.4.5 DDR SDRAM Refresh The DDR memory controller supports auto refresh and self refresh. Auto refresh is used during normal operation and is controlled by the DDR_SDRAM_INTERVAL[REFINT] value; self refresh is used only when the DDR memory controller is set to enter a sleep power management state. The REFINT value, which represents the number of memory bus clock cycles between refresh cycles, must allow any outstanding transactions to complete before a refresh request is sent to the memory after the REFINT value is reached. If a memory transaction is in progress when the refresh interval is reached, the refresh cycle waits for the transaction to complete. In the worst case, the refresh cycle must wait the number of bus clock cycles required by the longest programmed access. To ensure that the latency caused by a memory transaction does not violate the device refresh period, it is recommended that the programmed value of REFINT be less than that required by the SDRAM. When a refresh cycle is required, the DDR memory controller does the following: 1. Completes all current memory requests. 2. Closes all open pages with a PRECHARGE ALL command to each DDR SDRAM bank with an open page (as indicated by the row open table). 3. Issues one or more auto-refresh commands to each DDR SDRAM bank (as identified by its chip select) to refresh one row in each logical bank of the selected physical bank. The auto refresh commands are staggered across the possible banks to reduce instantaneous power requirements. Three sets of auto refresh commands are issued on consecutive cycles. The initial PRECHARGE ALL commands are also staggered in three groups. When the system enters self refresh mode, only one refresh command is issued simultaneously to all physical banks. For the entire refresh sequence, no cycle optimization occurs for the usual case where fewer banks are installed. After the refresh sequence completes, any pending memory request is initiated after an inactive period specified by TIMING_CFG_1[REFREC] and TIMING_CFG_3[EXT_REFREC]. In addition, posted refreshes in DDR_SDRAM_CFG_2[NUM_PR] allow the refresh interval to be set to a larger value. Note: 12.4.5.1 The MSC8156 initiates three cycles of PRECHARGE ALL commands and three cycles of REFRESH commands although there are only two banks (chip selects) available, DDR SDRAM Refresh Timing Refresh timing for the DDR SDRAM is controlled by the programmable timing parameter TIMING_CFG_1[REFREC] and TIMING_CFG_3[EXT_REFREC], which specify the number of memory bus clock cycles from the refresh command until a logical bank activate command is allowed. The DDR memory controller implements bank staggering for refreshes, as shown in Figure 12-12 (TIMING_CFG_1[REFREC] = 10 in this example). System software is responsible for optimal configuration of TIMING_CFG_1 [REFREC] and MSC8156 Reference Manual, Rev. 2 12-28 Freescale Semiconductor DDR SDRAM Clocking and Interface Timing TIMING_CFG_3[EXT_REFREC] at reset. Configuration must be complete before DDR SDRAM accesses are attempted. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SDRAM clock CKE 0 MCS[0,1] MCS1 MCS2 REFREC MRAS MCAS MAn ROW Figure 12-12. DDR SDRAM Bank Staggered Auto Refresh Timing 12.4.5.2 DDR SDRAM Refresh and Power-Saving Modes In full-on mode, the DDR memory controller supplies the normal auto refresh to SDRAM. In sleep mode, the DDR memory controller can be configured to take advantage of self-refreshing SDRAMs or to provide no refresh support. Self-refresh support is enabled by the DDR_SDRAM_CFG[SREN] bit. Note: In absence of self-refresh support, system software must preserve the DDR’s DRAM data (for example, by copying the memory content to a non-volatile memory, such as a disk, Flash memory, and so on) before entering power saving mode. The dynamic power-saving mode uses the CKE pin to power down the memory device dynamically when there is no system memory activity. The CKE pin is deasserted when both conditions are met No memory refreshes are scheduled. No memory accesses are scheduled. The CKE pin is reasserted when a new access or refresh is scheduled or the dynamic power mode is disabled. This mode is controlled with DDR_SDRAM_CFG[DYN_PWR]. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-29 DDR SDRAM Memory Controller Dynamic power management mode offers tight control of the memory system power consumption by trading power for performance through the use of CKE. Powering up the DDR SDRAM when a new memory reference is scheduled causes an access latency penalty, depending upon whether active or precharge power-down is used, along with the settings of TIMING_CFG_0[ACT_PD_EXIT] and TIMING_CFG_0[PRE_PD_EXIT]. A penalty of one cycle is shown in Figure 12-13. Memory Bus Clock MCKE COMMAND NOP NOP ACT Figure 12-13. DDR SDRAM Power-Down Mode The entry and exit timing for self-refreshing SDRAMs in Sleep mode is shown in Figure 12-14 and Figure 12-15. 0 1 2 3 4 5 6 7 8 9 10 11 12 SDRAM clock MCKE MCS MRAS MCAS MAn MWE MDQn (High Impedance) MDQS Figure 12-14. DDR SDRAM Self-Refresh Entry Timing MSC8156 Reference Manual, Rev. 2 12-30 Freescale Semiconductor DDR SDRAM Clocking and Interface Timing 0 1 2 3 4 5 6 7 202 203 204 205 206 SDRAM Clock MCKE MCS MRAS MCAS MAn MWE MDQn (High Impedance) MDQS 200 cycles Figure 12-15. DDR SDRAM Self-Refresh Exit Timing 12.4.6 DDR Data Beat Ordering Transfers to and from memory are always performed in four- or eight-beat bursts (four beats = 32 bytes for a 64-bit bus). For transfer sizes other than four or eight beats, the data transfers are still in four- or eight-beat bursts. If ECC is enabled and either the access is not 64-bit-aligned or the size is not a multiple of 64 bits, a full read-modify-write is performed for a write to SDRAM. If ECC is disabled or the access is 64-bit-aligned with a size that is a multiple of 64 bits, the data masks MDM[0–8] (MDM[0–3,8] for a 32-bit bus) can be used to prevent the writing of unwanted data to SDRAM. The DDR memory controller also uses data masks to prevent all unintended full 64-bit words from writing to SDRAM. For example, if a write transaction with a size of 8 bytes is desired, then the second, third, and fourth beats of data are not written to SDRAM. Table 12-15 lists the data beat sequencing to and from the DDR SDRAM and the data queues for each of the possible transfer sizes with each of the possible starting 64-bit offsets. All underlined 64-bit offsets are valid for the transaction. Table 12-15. Memory Controller–Data Beat Ordering for the 64-Bit Interface Transfer Size Starting Double-Word Offset Double-Word Sequence to/from DRAM and Queues 8 bytes 0 1 2 3 0 1 2 0-1-2-3 1-2-3-0 2-3-0-1 3-0-1-2 0-1-2-3 1-2-3-0 2-3-0-1 16 bytes MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-31 DDR SDRAM Memory Controller Table 12-15. Memory Controller–Data Beat Ordering for the 64-Bit Interface Transfer Size Starting Double-Word Offset Double-Word Sequence to/from DRAM and Queues 24 bytes Note: 12.4.7 0 1 32 bytes 0 1 2 3 All underlined word offsets are valid for the transaction. 0-1-2-3 1-2-3-0 0-1-2-3 1-2-3-0 2-3-0-1 3-0-1-2 Page Mode and Logical Bank Retention The DDR memory controller supports an open/closed page mode that allows an open page for each logical bank of DRAM. In closed page mode for DDR SDRAMs, the DDR memory controller uses the auto-precharge feature, which allows the controller to indicate the DDR SDRAM that it must automatically close the page after the read or write access. This is performed by using MA10 of the address during the COMMAND phase of the access to enable auto-precharge. Auto-precharge is non-persistent in that it is either enabled or disabled for each individual READ or WRITE command. However, it can be separately enabled or disabled for each chip select. In open page mode, the DDR memory controller retains the currently active SDRAM page by not issuing a precharge command. The page remains opens until one of the following conditions occurs: Refresh interval is met. The user-programmable DDR_SDRAM_INTERVAL[BSTOPRE] value is exceeded. There is a logical bank row collision with another transaction that must be issued. Page mode can dramatically reduce access latencies for page hits. Depending on the memory system design and timing parameters, using page mode can save two to three clock cycles for subsequent burst accesses that hit in an active page. Also, better performance can be obtained by using more banks, especially in systems which use many different channels. Page mode is disabled by clearing DDR_SDRAM_INTERVAL[BSTOPRE] or setting CSx_CONFIG[AP_x_EN]. 12.5 Error Checking and Correction The DDR memory controller supports error checking and correcting (ECC) for the data path between the core Initiator and system memory. The DDR memory controller detects all double-bit errors, detects all multi-bit errors within a nibble, and it corrects all single-bit errors. Other errors may be detected, but are not guaranteed to be corrected or detected. Multiple-bit errors are always reported when error reporting is enabled. When a single-bit error occurs, the single-bit error counter register is incremented, its value compared to the single-bit error threshold register. An error is reported when the counter value is equal to the threshold register MSC8156 Reference Manual, Rev. 2 12-32 Freescale Semiconductor Error Checking and Correction value. The single-bit error registers can be programmed so that minor memory faults are corrected and ignored, but a catastrophic memory failure generates an interrupt. For writes smaller than 64 bits, the DDR memory controller performs a 64-bit read from system memory of the address for the write (checking for errors), and merges the write data with the data read from memory. Then, a new ECC code is generated for the 64-bit of merged data. The data and ECC code is then written to memory. If a multi-bit error is detected on the read, the transaction completes the read-modify-write to keep the DDR memory controller from hanging. However, the corrupt data is masked on the write, so the original contents in SDRAM remain unchanged. The syndrome encoding for the ECC code is shown in Table 12-16 and Table 12-17. In 32-bit mode, Table 12-16 is split into 2 halves. The first half, consisting of rows 0–31, is used to calculate the ECC bits for the first 32 data bits of any 64-bit granule of data. This always applies to the odd data beats on the DDR data bus. The second half of the table, consisting of rows 32–63, is used to calculate the ECC bits for the second 32 bits of any 64-bit granule of data. This always applies to the even data beats on the DDR data bus. Table 12-16. DDR SDRAM ECC Syndrome Encoding Syndrome Bit Data Bit 0 1 0 • • 1 • 2 • 3 • 4 • 5 • 6 • 7 • 8 • 9 • 10 • 11 • 12 • 13 • 14 • 15 • 2 3 4 • • • • • • • • 17 • 18 • • • • • 2 3 32 • • • 33 • • • 34 • • • 35 • • • • 4 5 6 7 • 37 • • • • 38 • • • • • 39 • • • • • • • • • • • 1 • • • • 0 36 • • 7 Syndrome Bit • • • • 6 • 16 19 5 Data Bit • • 40 • • 41 • • • • 42 • • • • • 43 • • • • • • • • • • • • • • • 44 • • • • 45 • • • • • • • 46 • • • • • • • 47 • • • • • • 48 • • • • 49 • • • 50 • • • • 51 • • • • • MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-33 DDR SDRAM Memory Controller Table 12-16. DDR SDRAM ECC Syndrome Encoding (Continued) Data Bit Syndrome Bit 1 2 20 • • 21 • 22 • • 23 0 • 24 • 25 • 26 • • 27 • 3 4 5 6 52 • 53 • • 54 • • • • 56 • 57 • • 58 • • • 59 • • • 60 • • • 61 • 62 • • 29 • 30 • • • • • • • • • • • 0 1 2 3 4 • • • • 55 • 28 31 7 • • Syndrome Bit Data Bit • • • • • • • 63 5 6 7 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • Table 12-17. DDR SDRAM ECC Syndrome Encoding (Check Bits) Check Bit 0 1 2 3 4 5 6 Syndrome Bit 0 1 2 3 4 5 6 7 • • • • • • • 7 • MSC8156 Reference Manual, Rev. 2 12-34 Freescale Semiconductor Error Management 12.6 Error Management The DDR memory controller detects single-bit, multi-bit, memory select, training errors and address/command parity errors. The following discussion assumes all the relevant error detection, correction, and reporting functions are enabled as described in 12.8.40, DDR SDRAM Memory Error Detect Register (MnERR_DETECT) and 12.8.41, DDR SDRAM Memory Error Disable Register (MnERR_DISABLE). Single-bit errors are counted and reported based on the ERR_SBE register value (see Table 12-66 on page 12-115). When a single-bit error is detected, the DDR memory controller does the following: 1. Corrects the data. 2. Increments the single-bit error counter ERR_SBE[SBEC]. 3. Generates a critical interrupt if the counter value ERR_SBE[SBEC] equals the programmable threshold ERR_SBE[SBET]. 4. Completes the transaction normally. If a multi-bit error is detected for a read, the DDR memory controller logs the error and generates the critical interrupt (if enabled, as described in Table 12-62 on page 12-111). The DDR memory controller also detects a memory select error, which causes the DDR memory controller to log the error and generate a critical interrupt (if enabled, as described in Table 12-61 on page 12-110). This error is detected if the address from the memory request does not fall into any of the enabled, programmed chip-select address ranges. For all memory select errors, the DDR memory controller does not issue any transactions onto the pins after the first read has returned data strobes. If the DDR memory controller is not using sample points, then a dummy transaction is issued to DDR SDRAM with the first enabled chip select. Table 12-18 describes the errors. The final error the memory controller detects is the automatic calibration error. This error is set if the memory controller detects an error during its training sequence. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-35 DDR SDRAM Memory Controller The training error the memory controller detects is the automatic calibration error. This error is set if the memory controller detects an error during its training sequence. Table 12-18. Memory Controller Errors Category Error Notification Single-bit ECC threshold The number of ECC errors has reached the threshold specified in the ERR_SBE. Access Error Multi-bit ECC error A multi-bit ECC error is detected during a read, or read-modify-write memory operation. Memory select error Read, or write, address does not fall within the address range of any of the memory banks. Training Calibration error One of the calibration processes executed during the initialization failed Parity Address and Command error The memory device detects that the parity bit calculated by the controller doesn’t correspond to the parity calculated by the memory device. 12.7 Descriptions Action Detect Register The error is reported via critical interrupt if enabled. The error control register logs only read versus write, not full type Set-Up and Initialization System software must configure the DDR memory controller, using a memory polling algorithm at system start-up, to correctly map the size of each bank in memory. The DDR memory controller uses this bank map to assert the appropriate MCSx signal for memory accesses according to the provided bank depths. System software also configures the DDR memory controller at system start-up to multiplex the row and column address bits for each bank (see Table 12-22 on page 12-47). Address multiplexing occurs according to these configuration bits. At system power-up, initialization software (boot code, for example) must set up the programmable parameters in the memory interface configuration registers listed in Table 12-19. Table 12-19. Memory Interface Configuration Register Initialization Parameters Register Parameter Bits Page Chip-Select Memory Bounds Register (MCSx_BNDS) Starting Address for Chip Select x (SAx) Ending Address for Chip Select x (EAx) Table 12-21 on page 12-46 Chip-Select Configuration Register (MCSx_CONFIG) Chip Select x Enable (CS_x_EN) Chip Select x Auto-Precharge Enable (AP_x_EN) ODT for Reads (ODT_RD_CFG) ODT for Writes (ODT_WR_CFG) Number of Bank Bits (BA_BITS_CS_x) Number of Row Bits (ROW_BITS_CS_x) Number of Column Bits (COL_BITS_CS_x) (INTLV_EN_CTL) Table 12-22 on page 12-47 PASR_CFG Table 12-23 on page 12-49 EXT_REFREC EXT_ACTTOPRE EXT_CASLAT CNTL_ADJ Table 12-23 on page 12-49 Table 12-24 on page 12-50 Chip Select Configuration 2(MCSx_CONFIG_2) Extended Timing Parameters for Fields in TIMING_CFG_3 (TIMING_CFG_3) MSC8156 Reference Manual, Rev. 2 12-36 Freescale Semiconductor Set-Up and Initialization Table 12-19. Memory Interface Configuration Register Initialization Parameters (Continued) Register Parameter Bits Page Timing Configuration 0 Register (TIMING_CFG_0) Read-to-Write Turn-Around (RWT) Write-to-Read Turn-Around (WRT) Read-to-Read Turn-Around (RRT) Write-to-Write Turn-Around (WWT) Active Power-Down Exit Timing (ACT_PD_EXIT) Precharge Power-Down Exit Timing (PRE_PD_EXIT) ODT Power-Down Exit Timing (ODT_PD_EXIT) Mode Register Set Cycle Time (MRS_CYC) Table 12-25 on page 12-52 Timing Configuration 1 Register (TIMING_CFG_1) Precharge-to-Activate Interval (PRETOACT) Activate-to-Precharge Interval (ACTTOPRE) Activate to Read/Write Interval for SDRAM (ACTTORW) MCAS Latency from Read Command (CASLAT) Refresh Recovery Time (REFREC) Last Data to Precharge Minimum Interval (WRREC) Activate-to-Activate Interval (ACTTOACT) Last Write Data Pair to Read Interval (WR_TO_RD) Table 12-26 on page 12-56 Additive Latency (ADD_LAT) Table 12-27 on page 12-60 Timing Configuration 2 Register (TIMING_CFG_2) MCAS-to-Preamble Override (CPO) Write Latency (WR_LAT) Read-to-Precharge (RD_TO_PRE) Write Data Delay (WR_DATA_DELAY) Minimum CKE Pulse Width (CKE_PLS) Window for Four Activates (FOUR_ACT) DDR SDRAM Control Configuration Register (DDR_SDRAM_CFG) Self Refresh Enable (SREN) ECC Enable (ECC_EN) Registereed DIMM Enable (RD_EN) SDRAM Type (SDRAM_Type) Dynamic Power Management Mode (DYN_PWR) 32-Bit Bus Enable (32_BE) 8-Beat Burst Enable (8_BE) Non-Current Auto Precharge (NCAP) 3T Timing Enable (3T_EN) 2T Timing Enable (2T_EN) Half-Strength Drive Enable (HSE) Bypass Initialization (BI) Table 12-28 on page 12-65 DDR SDRAM Control Configuration Register 2 (DDR_SDRAM_CFG_2) Force Self Refresh (FRC_SR) DLL Reset Disable (DLL_RST_DIS) DQS Configuration (DQS_CFG) ODT Configuration (ODT_CFG) Number of Posted Refreshes (NUM_PR) DRAM Data Initialization (D_INIT) Table 12-29 on page 12-68 DDR SDRAM Mode Configuration Register (DDR_SDRAM_MODE) Extended SDRAM Mode (ESDMODE) SDRAM Mode (SDMODE) Table 12-30 on page 12-70 DDR SDRAM Mode Configuration 2 Register (DDR_SDRAM_MODE_2) Extended SDRAM Mode 2 (ESDMODE2) Extended SDRAM Mode 3 (ESDMODE3) Table 12-31 on page 12-71 DDR SDRAM Interval Configuration Register (DDR_SDRAM_INTERVAL) Refresh Interval (REFINT) Precharge Interval (BSTOPRE) Table 12-34 on page 12-74 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-37 DDR SDRAM Memory Controller Table 12-19. Memory Interface Configuration Register Initialization Parameters (Continued) Register Parameter Bits Page DDR SDRAM Data Initialization Register (DDR_DATA_INIT) Initialization Value (INIT_VALUE) Table 12-35 on page 12-75 DDR SDRAM Clock Control Configuration Register (DDR_SDRAM_CLK_CNTL) Clock Adjust (CLK_ADJUST) Table 12-36 on page 12-76 DDR SDRAM Initialization Address Register (DDR_INIT_ADDRESS) Initialization Address (INIT_ADDR) Table 12-37 on page 12-77 DDR Initialization Enable (MDDR_INIT_EN) Use Initialization Address (UIA) Table 12-38 on page 12-77 DDR SDRAM Timing Configuration 4 Register (TIMING_CFG_4) Read-to-Write Turnaround for Same Chip Select (RWT) Write-to-Read Turnaround for Same Chip Select (WRT) Read-to-Read Turnaround for Same Chip Select (RRT) Write-to-Write Turnaround for Same Chip Select (WWT) DDR SDRAM DLL Lock Time (DLL_LOCK) Table 12-39 on page 12-78 DDR SDRAM Timing Configuration 5 Register (TIMING_CFG_5) Read-to-ODT On (RODT_ON) Read-to-ODT Off (RODT_OFF) Write-to-ODT On (WODT_ON) Write-to-ODT Off (WODT_OFF) Table 12-40 on page 12-80 DDR ZQ Calibration Control (MDDR_ZQ_CNTL ZQ Calibration Enable (ZQ_EN) Power-on Reset ZQ Calibration Time (ZQINIT) Normal Operation Full Calibration Time (ZQOPER) Normal Operation Short Calibration Time (ZQCS) Table 12-41 on page 12-83 DDR Write Leveling Control (MDDR_WRLVL_CNTL) Write Leveling Enable (WRLVL_EN) First DQS Pulse Rising Edge after Margining Mode Is Programmed (WRLVL_MRD) ODT Delay after Margining Mode Is Programmed (WRLVL_ODTEN) DQS/DQS Delay after Margining Mode Is Programmed (WRLVL_DQSEN) Write Leveling Sample Time (WRLVL_SMPL) Write Leveling Repetition Time (WRLVL_WLR) Write Leveling Start Time (WRLVL_START) Table 12-42 on page 12-84 DDR Write Leveling Control 2 (MDDR_WRLVL_CNTL_2) Write Leveling Start Time for DQS1 (WRLVL_START_1) Write Leveling Start Time for DQS2 (WRLVL_START_2) Write Leveling Start Time for DQS3 (WRLVL_START_3) Write Leveling Start Time for DQS4 (WRLVL_START_4) Table 12-43 on page 12-87 DDR Write Leveling Control 3 (MDDR_WRLVL_CNTL_3) Write Leveling Start Time for DQS5 (WRLVL_START_5) Write Leveling Start Time for DQS6 (WRLVL_START_6) Write Leveling Start Time for DQS7 (WRLVL_START_7) Write Leveling Start Time for DQS8 (WRLVL_START_8) Table 12-44 on page 12-90 DDR Self Refresh Counter (MDDR_SR_CNTR) Self Refresh Idle Threshold (SR_IT) Table 12-46 on page 12-96 MSC8156 Reference Manual, Rev. 2 12-38 Freescale Semiconductor Set-Up and Initialization Table 12-19. Memory Interface Configuration Register Initialization Parameters (Continued) Register Parameter Bits Page DDR SDRAM Register Control Words 1 (MDDR_SDRAM_RCW_1) Register Control Word 0 (RCW0) Register Control Word 1 (RCW1) Register Control Word 2 (RCW2) Register Control Word 3 (RCW3) Register Control Word 4 (RCW4) Register Control Word 5 (RCW5) Register Control Word 6 (RCW6) Register Control Word 7 (RCW7) Table 12-47 on page 12-97 DDR SDRAM Register Control Words 2 (MDDR_SDRAM_RCW_2) Register Control Word 8 (RCW8) Register Control Word 9 (RCW9) Register Control Word 10 (RCW10) Register Control Word 11 (RCW11) Register Control Word 12 (RCW12) Register Control Word 13 (RCW13) Register Control Word 14 (RCW14) Register Control Word 15 (RCW15) Table 12-48 on page 12-98 DDR Control Driver Register 1 (MDDRCDR_1) DDR Driver Hardware Compensation Enable (DHC_EN) Driver Software Override Enable for MDIC (DSO_MDIC_EN) Driver Software Override valeu for MDIC P-Impedance (DSO_MDICPZ) Driver Software Override valeu for MDIC N-Impedance (DSO_MDIC_NZ) Driver Software Override Output Enable for P-Impedance (DSO_MDIC_PZ_OE) Driver Software Override Output Enable for N-Impedance (DSO_MDIC_NZ_OE) ODT Termination Value for I/O (ODT) Driver Software Override Enable for Address/Command (DSO_C_EN) Driver Software Override Enable for Data (DSO_D_EN) DDR Driver Software override value for Command P-Impedance override (DSO_CPZ) DDR Driver Software override value for Command N-Impedance override (DSO_CNZ) DDR Driver Software override value for Data P-Impedance override (DSO_DPZ) DDR Driver Software override value for Data N-Impedance override (DSO_DNZ) Table 12-51 on page 12-101 DDR Control Driver Register 2 (MDDRCDR_2) Driver Software Override Enable for Clocks (DSO_CLK_EN) DDR Driver Software override value for Clocks P-Impedance override (DSO_CLKPZ) DDR Driver Software override value for Clocks N-Impedance override (DSO_CLKNZ) ODT Termination Value for I/O (ODT) Table 12-52 on page 12-104 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-39 DDR SDRAM Memory Controller 12.7.1 Programming Differences Between Memory Types Several fields in the configuration registers must be programmed to reflect the characteristics of the DDR memory used in the application. Table 12-20 lists several of the characteristics. Refer to the DDR memory specifications to determine the required settings. Table 12-20 does not list all fields that must be programmed. Table 12-20. Programming Differences Between Memory Types Parameter APn_EN ODT_RD_CFG ODT_WR_CFG ODT_PD_EXIT PRETOACT ACTTOPRE ACTTORW Description Differences Chip Select n Auto Precharge DDR2 Enable DDR3 Can be used to place chip select n in auto precharge mode Chip Select ODT Read Configuration DDR2 Can be enabled to assert ODT if desired. This could be set differently depending on system topology. However, systems with only 1 chip select typically does not use ODT when issuing reads to the memory. DDR3 Can be enabled to assert ODT if desired. This could be set differently depending on system topology. However, systems with only 1 chip select typically does not use ODT when issuing reads to the memory. DDR2 Can be enabled to assert ODT if desired. This could be set differently depending on system topology. However, ODT is typically set to assert for the chip select that is getting written to (value would be set to 001). DDR3 Can be enabled to assert ODT if desired. This could be set differently depending on system topology. However, ODT typically is set to assert for the chip select that is getting written to (value would be set to 001). DDR2 Should be set according to the DDR2 specifications for the memory used. The JEDEC parameter this applies to is tAXPD. DDR3 Should be set to 0001 for DDR3. The powerdown times (tXP and tXPDLL) required for DDR3 are controlled via TIMING_CFG_0[ACT_PD_EXIT] and TIMING_CFG_0[PRE_PD_EXIT]. DDR2 Should be set according to the specifications for the memory used (tRP) DDR3 Should be set according to the specifications for the memory used (tRP) DDR2 Should be set, along with the Extended Activate to Precharge Timing, according to the specifications for the memory used (tRAS) DDR3 Should be set, along with the Extended Activate to Precharge Timing, according to the specifications for the memory used (tRAS) Activate to Read/Write Timing DDR2 Should be set according to the specifications for the memory used (tRCD) DDR3 Should be set according to the specifications for the memory used (tRCD) Chip Select ODT Write Configuration ODT Powerdown Exit Precharge to Activate Timing Activate to Precharge Timing Can be used to place chip select n in auto precharge mode MSC8156 Reference Manual, Rev. 2 12-40 Freescale Semiconductor Set-Up and Initialization Table 12-20. Programming Differences Between Memory Types (Continued) Parameter CASLAT REFREC WRREC ACTTOACT WRTORD ADD_LAT WR_LAT RD_TO_PRE CKE_PLS Description CAS Latency Refresh Recovery Write Recovery Activate A to Activate B Write to Read Timing Additive Latency Write Latency Read to Precharge Timing Minimum CKE Pulse Width Differences DDR2 Should be set, along with the Extended CAS Latency, to the desired CAS latency DDR3 Should be set, along with the Extended CAS Latency, to the desired CAS latency DDR2 Should be set, along with the Extended Refresh Recovery, to the specifications for the memory used (TRFC) DDR3 Should be set, along with the Extended Refresh Recovery, to the specifications for the memory used (TRFC) DDR2 Should be set according to the specifications for the memory used (tWR) DDR3 Should be set according to the specifications for the memory used (tWR). If DDR_SDRAM_CFG_2[OBC_CFG] is set, then this should be programmed to tWR + 2 DRAM cycles. DDR2 Should be set according to the specifications for the memory used (tRRD) DDR3 Should be set according to the specifications for the memory used (tRRD) DDR2 Should be set according to the specifications for the memory used (tWTR) DDR3 Should be set according to the specifications for the memory used (tWTR) If DDR_SDRAM_CFG_2[OBC_CFG] is set, then this should be programmed to tWTR + 2 DRAM cycles. DDR2 Should be set to the desired additive latency. This must be set to a value less than TIMING_CFG_1[ACTTORW] DDR3 Should be set to the desired additive latency. This must be set to a value less than TIMING_CFG_1[ACTTORW] DDR2 Should be set to CAS latency – 1 cycle. For example, if the CAS latency if 5 cycles, then this field should be set to 100 (4 cycles). DDR3 Should be set to the desired write latency. Note that DDR3 SDRAMs do not necessarily require the write latency to equal the CAS latency minus 1 cycle. DDR2 Should be set according to the specifications for the memory used (tRTP). Time between read and precharge for non-zero value of additive latency (AL) is a minimum of AL + tRTP cycles. DDR3 Should be set according to the specifications for the memory used (tRTP). Time between read and precharge for non-zero value of additive latency (AL) is a minimum of AL + tRTP cycles. If DDR_SDRAM_CFG_2[OBC_CFG] is set, then this should be programmed to tRTP + 2 DRAM cycles. DDR2 Should be set according to the specifications for the memory used (tCKE) DDR3 Should be set according to the specifications for the memory used (tCKE) MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-41 DDR SDRAM Memory Controller Table 12-20. Programming Differences Between Memory Types (Continued) Parameter FOUR_ACT RD_EN 8_BE 2T_EN DLL_RST_DIS DQS_CFG ODT_CF OBC_CFG RWT WRT RRT Description Four Activate Window Differences DDR2 Should be set according to the specifications for the memory used (tFAW). Only applies to eight logical banks. DDR3 Should be set according to the specifications for the memory used (tFAW). DDR2 If registered are used, then this field should be set to 1 DDR3 If registered are used, then this field should be set to 1 DDR2 Should be set to 0 DDR3 If a 64-bit bus is used, this should be set to 0. Otherwise, this should be set to 1. If this is set to 0, then other requirements in TIMING_CFG_4 is needed to ensure tCCD is met. DDR2 In heavily loaded systems, this can be set to 1 to gain extra timing margin on the interface at the cost of address/command bandwidth. DDR3 In heavily loaded systems, this can be set to 1 to gain extra timing margin on the interface at the cost of address/command bandwidth. DDR2 Should typically be set to 0, unless it is desired to bypass the DLL reset when exiting self refresh. DDR3 Should be set to 1 DDR2 Should be set to 01 DDR3 Should be set to 01 DDR2 Can be set for termination at the IOs according to system topology. Typically, if ODT is enabled, then the internal IOs should be set up for termination only during reads to DRAM. DDR3 Can be set for termination at the IOs according to system topology. Typically, if ODT is enabled, then the internal IOs should be set up for termination only during reads to DRAM. On-The-Fly Burst Chop Configuration DDR2 Should be set to 0 DDR3 Can be set to 1 if on-the-fly burst chop is used. This is expected to give the best performance in DDR3 mode. This feature can only be used if a 64-bit data bus is used. Read-to-write turnaround for same chip select (in TIMING_CFG_4) DDR2 Should typically be set to 0000 DDR3 This can be used to force a longer read-to-write turnaround time when accessing the same chip select. This is useful for burst chop mode, as there are some timing requirements to the same chip select that still must be met. Write-to-read turnaround for same chip select (in TIMING_CFG_4) DDR2 Should typically be set to 0000 DDR3 This could be used to force a certain turnaround time between a write and read to the same chip select. This is useful for burst chop mode. However, it is expected that TIMING_CFG_1[WRTORD] is programmed appropriately such that TIMING_CFG_4[WRT] can be set to 0000. Read-to-read turnaround for same chip select (in TIMING_CFG_4) DDR2 Should typically be set to 0000 DDR3 Should typically be set to 0100 in burst chop mode (on-the-fly or fixed). Registered DIMM Enable 8-beat burst enable 2T Timing Enable DLL Reset Disable DQS Configuration ODT Configuration MSC8156 Reference Manual, Rev. 2 12-42 Freescale Semiconductor Set-Up and Initialization Table 12-20. Programming Differences Between Memory Types (Continued) Parameter WWT ZQ_EN WRLVL_EN BSTOPRE Description Differences Write-to-write turnaround for same chip select (in TIMING_CFG_4) DDR2 Should typically be set to 0000 DDR3 Should typically be set to 0100 in burst chop mode (on-the-fly or fixed). ZQ Calibration Enable DDR2 Should be set to 0 DDR3 Should be set to 1. The other fields in DDR_ZQ_CNTL should also be programmed appropriately based on the DRAM specifications. DDR2 Should be set to 0 DDR3 Can be set to 1 if write leveling is desired. Otherwise the value used in TIMING_CFG_2[WR_DATA_DELAY] is used to shift all bytes during writes to DRAM. If write leveling is used, all other fields in DDR_WRLVL_CNTL should be programmed appropriately based on the DRAM specifications. DDR2 Can be set to any value, depending on the application. Auto precharge can be enabled by setting this field to all 0s. DDR3 Can be set to any value, depending on the application. Auto precharge can be enabled by setting this field to all 0s. Write Leveling Enable Burst To Precharge Interval MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-43 DDR SDRAM Memory Controller 12.7.2 DDR SDRAM Initialization Sequence After all parameters are configured, system software must set DDR_SDRAM_CFG[MEM_EN] to enable the memory interface. You must allow 200 μs (500 μs for DDR3) to elapse after DRAM clocks are stable (DDR_SDRAM_CLK_CNTL[CLK_ADJUST] is set and any chip select is enabled) before setting MEMEN. Therefore, a delay loop in the initialization code may be necessary if software is enabling the memory controller. If DDR_SDRAM_CFG[BI] bit is not set to bypass initialization, the DDR memory controller conducts an automatic initialization sequence to the memory, which follows the memory specifications. If the bypass initialization mode is used, software can initialize the memory through the DDR_SDRAM_MD_CNTL register. 12.8 Memory Controller Programming Model In the register figures and field descriptions, the following access definitions apply: Reserved fields are always ignored for the purposes of determining access type. Read/write, read only, and write only (R/W, R, and W, respectively) indicate that all the non-reserved fields in a register have the same access type. Non-reserved fields that are cleared by writing 1s to them are indicated by w1c. Mixed indicates a combination of access types. Special is used when no other category applies. For special access registers, read the figure and field descriptions very carefully. The DDR memory controller registers are as follows: Chip-Select Memory Bounds Register (MnCSx_BNDS), page 12-46. Chip-Select Configuration Register (MnCSx_CONFIG), page 12-47. Chip-Select Configuration Register 2 (MnCSx_CONFIG_2), page 12-49 DDR SDRAM Timing Configuration 3 (MnTIMING_CFG_3), page 12-50. DDR SDRAM Timing Configuration 0 Register (MnTIMING_CFG_0), page 12-52. DDR SDRAM Timing Configuration 1 Register (MnTIMING_CFG_1), page 12-55. DDR SDRAM Timing Configuration 2 Register (MnTIMING_CFG_2), page 12-60. DDR SDRAM Control Configuration Register (MnDDR_SDRAM_CFG), page 12-65. DDR SDRAM Control Configuration 2 Register (MnDDR_SDRAM_CFG_2), page 12-67. DDR SDRAM Mode Configuration Register (MnDDR_SDRAM_MODE), page 12-70. DDR SDRAM Mode Configuration 2 Register (MnDDR_SDRAM_MODE_2), page 12-71. DDR SDRAM Mode Control Register (MnDDR_SDRAM_MD_CNTL), page 12-71. MSC8156 Reference Manual, Rev. 2 12-44 Freescale Semiconductor Memory Controller Programming Model DDR SDRAM Interval Configuration Register (MnDDR_SDRAM_INTERVAL), page 12-74. DDR SDRAM Data Initialization Register (MnDDR_DATA_INIT), page 12-75. DDR SDRAM Clock Control Configuration Register (MnDDR_SDRAM_CLK_CNTL), page 12-75. DDR Initialization Address Register (MnDDR_INIT_ADDRESS), page 12-76. DDR Initialization Enable Extended Address (MnDDR_INIT_ENXT_ADDR), page 12-77 DDR SDRAM Timing Configuration 4 (MnTIMING_CFG_4), page 12-78 DDR SDRAM Timing Configuration 5 (MnTIMING_CFG_5), page 12-80 DDR ZQ Calibration Control (MnDDR_ZQ_CNTL), page 12-82 DDR Write Leveling Control (MnDDR_WRLVL_CNTL), page 12-84 DDR Write Leveling Control 2 (MnDDR_WRLVL_CNTL_2), page 12-87 DDR Write Leveling Control 3 (MnDDR_WRLVL_CNTL_3), page 12-90 DDR Pre-Drive Conditioning Control (MnDDR_PD_CNTL), page 12-93 DDR SDRAM Self Refresh Counter (MnDDR_SR_CNTR), page 12-96 DDR SDRAM Register Control Words 1 (MnDDR_SDRAM_RCW_1), page 12-97 DDR SDRAM Register Control Words 2 (MnDDR_SDRAM_RCW_2), page 12-98 DDR Debug Status Register 1 (MnDDRDSR_1), page 12-99 DDR Debug Status Register 2 (MnDDRDSR_2), page 12-100 DDR Control Driver Register 1 (MnDDRCDR_1), page 12-100 DDR Control Driver Register 2 (MnDDRCDR_2), page 12-104 DDR IP Block Revision 1 Register (MnDDR_IP_REV1), page 12-105. DDR IP Block Revision 2 Register (MnDDR_IP_REV2), page 12-105. Memory Data Path Error Injection Mask High Register (MnDDR_ERR_INJECT_HI), page 12-106. Memory Data Path Error Injection Mask Low Register (MnDDR_ERR_INJECT_LO), page 12-106. Memory Data Path Error Injection Mask ECC Register (MnDDR_ERR_INJECT), page 12-107 Memory Data Path Read Capture High Register (MnCAPTURE_DATA_HI), page 12-108. Memory Data Path Read Capture Low Register (MnCAPTURE_DATA_LO), page 12-108. Memory Data Path Read Capture ECC Register (MnCAPTURE_ECC), page 12-109. Memory Error Detect Register (MnERR_DETECT), page 12-109. Memory Error Disable Register (MnERR_DISABLE), page 12-110. Memory Error Interrupt Enable Register (MnERR_INT_EN), page 12-112. Memory Error Attributes Capture Register (MnCAPTURE_ATTRIBUTES), page 12-113. Memory Error Address Capture Register (MnCAPTURE_ADDRESS), page 12-114. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-45 DDR SDRAM Memory Controller Single-Bit ECC Memory Error Management Register (MnERR_SBE), page 12-114. Debug Register 2 (MnDEBUG_2), page 12-115 Note: DDR1 controller uses base address: 0xFFF20000. DDR2 controller uses base address: 0xFFF22000. 12.8.1 Chip-Select Bounds (MnCSx_BNDS) CS0_BNDS CS1_BNDS Bit 31 Chip-Select Bounds Register 30 29 28 27 26 25 24 23 22 Offset 0x0000 0x0008 21 20 — R 19 18 17 16 SAx R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 Type Reset — R 0 0 0 0 EAx R/W 0 0 0 0 0 0 0 0 CSx_BNDS defines the starting and ending address of the memory space that corresponds to the individual chip selects. Note: The size specified in CSx_BNDS should equal the size of physical DRAM. Also, note that EAx must be greater than or equal to SAx. The 8 msb of the address is used to define the SAx and EAx. If chip select interleaving is enabled, all fields in the lower interleaved chip select are used, and the other chip selects bounds registers are not used. For example, if chip selects 0 and 1 are interleaved, all fields in CS0_BNDS are used, and all fields in CS1_BNDS are not used. Table 12-21. CSx_BNDS Field Descriptions Bit Reset — 31–24 SAx 23–16 0 Reserved. Cleared to zero for future compatibility. 0 — 15–8 EAx 7–0 0 Starting Address Specifies the starting address for chip-select (bank) x. This value is compared against the 8 MSBs of the 32-bit address. See the previous note. Reserved. Cleared to zero for future compatibility. 0 Description Ending Address Specifies the ending address for chip select (bank) x. This value is compared against the 8 MSBs of the 32-bit address. See the previous note. MSC8156 Reference Manual, Rev. 2 12-46 Freescale Semiconductor Memory Controller Programming Model 12.8.2 Chip-Select x Configuration Register (MnCSx_CONFIG) CS0_CONFIG CS1_CONFIG Bit 31 CS_x_ EN Type R/W Reset 0 Bit 15 Chip-Select 0 Configuration Register Chip-Select 1 Configuration Register 30 29 28 27 26 23 25 24 ODT_RD_CFG — ODT_WR_CFG 0 0 0 R 0 0 R/W 0 0 6 5 4 3 2 1 0 0 0 R 0 0 0 0 AP_x_ EN R/W 0 0 14 13 12 11 10 9 8 — R/W BA_BITS_CS _x Type R/W Reset 0 0 — 0 R 0 7 22 21 ROW_BITS_CS_x 0 0 Offset 0x0080 Offset 0x0084 R/W 0 0 20 19 — 0 R 0 0 18 17 16 COL_BITS_CS_x 0 0 0 R/W 0 0 The CSx_CONFIG register enables the DDR chip select x and sets the number of row and column bits used for the chip select. The register should be loaded with the correct number of row and column bits for each SDRAM. Because the ROW_BITS_CS_x and COL_BITS_CS_x fields establish address multiplexing, it is essential to set these values correctly. If chip select interleaving is enabled, then all fields in the lower interleaved chip select are used, and the other registers’ fields are unused, with the exception of the ODT_RD_CFG and ODT_WR_CFG fields. For example, if chip selects 0 and 1 are interleaved, all fields in CS0_CONFIG are used, but only the ODT_RD_CFG and ODT_WR_CFG fields in CS1_CONFIG are used. Table 12-22. CSx_CONFIG Field Descriptions Bit Reset Description CS_x_EN 31 0 — 30-24 AP_x_EN 23 0 Reserved. Write to zero for future compatibility. 0 Chip Select x Auto-Precharge Enable Specifies when auto-precharged is enabled for chip select x. ODT_RD_ CFG 22–20 0 On-Die Termination (ODT) for Reads Specifies when ODT is to be asserted for read accesses. Note that CAS latency plus additive latency must be at least 3 cycles for ODT_RD_CFG to be enabled. Chip Select x Enable Enables/disables chip select. Settings 0 Chip select x is not active. 1 Chip select x is active and assumes the state set in CSx_BNDS. 0 Chip select x is auto-precharged only if global auto-precharge mode is enabled (DDR_SDRAM_INTERVAL[BSTOPRE] = 0). 1 Chip select x always issues an auto-precharge for read and write transactions. 000 Never assert ODT for reads. 001 Assert ODT only during reads to CSx. 010 Assert ODT only during reads to other chip selects. 011 Reserved. 100 Assert ODT for all reads. 101–111Reserved. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-47 DDR SDRAM Memory Controller Table 12-22. CSx_CONFIG Field Descriptions (Continued) Bit Reset — 19 ODT_WR_ CFG 18–16 0 Reserved. Write to zero for future compatibility. 0 ODT for Writes 000 Specifies when ODT is to be asserted for write 001 accesses. Note that write latency plus additive latency must be at least 3 cycles for ODT_WR_CFG 010 to be enabled. BA_BITS_ CS_x 15–14 0 — 13–11 ROW_ BITS_CS_x 10–8 0 0 Description Number of Bank Bits Specifies the number of logical bank bits MBA[2–0] for SDRAM on chip select x. See Table 12-6 and Table 12-7 for details Reserved. Write to zero for future compatibility. Number of Row Bits Specifies the number of row bits for SDRAM on chip select x. See Table 12-6 and Table 12-7 for details Settings Never assert ODT for writes. Assert ODT only during writes to CSx. Assert ODT only during writes to other chip selects. 011 Reserved. 100 Assert ODT for all writes. 101–111Reserved. 00 2 logical bank bits. 01 3 logical bank bits. 10–11 Reserved 000 12 row bits 001 13 row bits 010 14 row bits 011 15 row bits 100 16 row bits 101–111Reserved — 7–3 COL_ BITS_CS_x 2–0 0 Reserved. Write to zero for future compatibility. 0 Number of Column Bits Specifies the number of column bits for SDRAM on chip select x. See Table 12-6 and Table 12-7 for details. 000 8 column bits. 001 9 column bits. 010 10 column bits. 011 11 column bits. 100–111Reserved. MSC8156 Reference Manual, Rev. 2 12-48 Freescale Semiconductor Memory Controller Programming Model 12.8.3 Chip-Select x Configuration Register 2 (MnCSx_CONFIG_2) CS0_CONFIG_2 CS1_CONFIG_2 Bit 31 30 Chip-Select x Configuration Register 2 29 28 27 26 0 Bit 15 Type Reset 24 0 0 0 7 6 5 0 0 0 0 0 R 0 0 0 PASR_CFG R/W 0 0 0 14 13 12 11 10 — Type Reset 25 9 23 22 21 Offset 0x00C0 0x00C4 20 19 18 17 16 0 0 0 0 0 4 3 2 1 0 0 0 0 0 — R 8 — R 0 0 0 0 0 0 0 0 CSx_CONFIG_2 registers enable the partial array self refresh address decode in each chip select If chip select interleaving is enabled, then all fields in the lower interleaved chip select are used, and the other register fields are unused.. Table 12-23. CSx_CONFIG Field Descriptions Bit Reset Description — 31–27 PASR_ CFG 26–24 0 Reserved. Write to zero for future compatibility. 0 — 23–0 0 Partial Array Self Refresh Configuration 000 Controls the bits that is placed on MA[2:0] during the 001– write to the EMRS(2) register DDR2/DDR3 when the 111 automatic hardware DRAM initialization is used (DDR_SDRAM_CFG[BI] is cleared when DDR_SDRAM_CFG[MEM_EN] is set). If this field is a non-zero value, then it overrides the least significant 3 bits in DDR_SDRAM_MODE_2[ESDMODE2] for DDR2/DDR3 during the automatic initialization for chip select x. In addition, if a non-zero value is programmed in this field, then the address decode for chip select x is optimized for partial array self refresh (see Section 12.2.3), Reserved. Write to zero for future compatibility. Settings Partial array self refresh is disabled Partial array self refresh is enabled per JEDEC specifications. Overriding the least significant 3 bits of EMRS or EMRS2 is only supported for DDR2 and DDR3 memory types. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-49 DDR SDRAM Memory Controller 12.8.4 DDR SDRAM Timing Configuration 3 (MnTIMING_CFG_3) TIMING_CFG_3 Bit 31 30 DDR SDRAM Timing Configuration 3 Register 29 28 27 26 25 — 24 23 22 21 Offset 0x0100 20 19 — EXT_ ACTTO PRE 18 17 16 EXT_REFREC Type Reset 0 0 0 R 0 0 0 0 R/W 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 EXT_ CAS LAT R/W 0 — Type Reset 0 R 0 R R/W — 0 0 0 0 R 0 CNTL_ADJ 0 0 0 0 0 R/W 0 0 TIMING_CFG_3 sets the extended refresh recovery time, which is combined with TIMING_CFG_1[REFREC] to determine the full refresh recovery time. Table 12-24. TIMING_CFG_3 Bit Descriptions Bits Reset Description — 31–25 0 Reserved. Write to zero for future compatibility. EXT_ACTTOPRE 24 0 Extended Activate to precharge interval (tRAS ). Determines the number of clock cycles from an activate command until a precharge command is allowed. This field is concatenated with TIMING_CFG_1[ACTTOPRE] to obtain a 5-bit value for the total activate to precharge. Note that a 5-bit value of 0_0000 is the same as a 5-bit value of 1_0000. Both values represent 16 cycles. — 23–20 0 Reserved. Write to zero for future compatibility. EXT_ REFREC 19–16 0 Extended Refresh Recovery Time (tRFC) Controls the number of clock cycles from a refresh command until an activate command is allowed. This field is combined with TIMING_CFG_1[REFREC] to obtain the total refresh recovery time. Note that the minimum value for REFREC is 8 clock cycles. tRFC = {REFREC | + | EXT_REFREC} min. value = 8 clocks (REFREC = 0x0) + EXT_REFREC = 0x0 max. value = 240+ 23 = 263 Setting 0 1 0 clocks 16 clocks 0000 0 clock cycles. 0001 16 clock cycles. 0010 32 clock cycles. 0011 48 clock cycles. 0100 64 clock cycles. 0101 80 clock cycles. 0110 96 clock cycles. 0111 112 clock cycles 1000 128 clock cycles 1001 144 clock cycles 1010 160 clock cycles 1011 176 clock cycles 1100 192 clock cycles 1101 208 clock cycles 1110 224 clock cycles 1111 240 clock cycles MSC8156 Reference Manual, Rev. 2 12-50 Freescale Semiconductor Memory Controller Programming Model Table 12-24. TIMING_CFG_3 Bit Descriptions (Continued) Bits Reset Description — 15–13 0 Reserved. Write to zero for future compatibility. EXT_CASLAT 12 0 Extended MCAS latency from READ command. Number of clock cycles between registration of a READ command by the SDRAM and the availability of the first output data. If a READ command is registered at clock edge n and the latency is m clocks, data is available nominally coincident with clock edge n + m. This field is concatenated with TIMING_CFG_1[CASLAT] to obtain a 5-bit value for the total CAS latency. Note that if this bit is set, then 8 clocks are added to the programmed value in TIMING_CFG_1[CASLAT]. — 11–3 0 Reserved. Write to zero for future compatibility. CNTL_ADJ 2-0 0 Control Adjust. Controls the amount of delay to add to the lightly loaded control signals w/ respect to all other DRAM address and command signals. The signals affected by this field are MODT[0:1], MCS[0:1], and MCKE[0:1] Setting 0 0 clocks 1 8 clocks 000 MODT[0:1], MCS[0:1], and MCKE[0:1] is launched aligned with the other DRAM address and control signals. 001 MODT[0:1], MCS[0:1], and MCKE[0:1] is launched 1/4 platform cycle later than the other DRAM address and control signals. 010 MODT[0:1], MCS[0:1], and MCKE[0:1] is launched 1/2 platform cycle later than the other DRAM address and control signals. 011 MODT[0:1], MCS[0:1], and MCKE[0:1] is launched 3/4 platform cycles later than the other DRAM address and control signals. 100 MODT[0:1], MCS[0:1], and MCKE[0:1] is launched 1platform cycles later than the other DRAM address and control signals. 101 MODT[0:1], MCS[0:1], and MCKE[0:1] is launched 5/4 platform cycles later than the other DRAM address and control signals. 110-111Reserved MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-51 DDR SDRAM Memory Controller 12.8.5 DDR SDRAM Timing Configuration Register 0 (MnTIMING_CFG_0) TIMING_CFG_0 Bit 31 DDR SDRAM Timing Configuration Register 0 30 29 RWT 28 27 0 0 Bit 15 14 25 RRT WRT Type Reset 26 24 23 22 ACT_PD_EXIT R/W 0 0 1 0 6 3 WWT 0 0 0 — R 0 10 9 8 7 R/W 0 0 0 13 12 11 — R Type Reset 0 0 0 0 0 ODT_PD_EXIT R/W 0 0 21 5 20 Offset 0x0104 4 19 18 PRE_PD_EXIT R/W 0 0 — R 1 0 0 0 0 17 0 2 1 MRS_CYC R/W 1 0 16 1 0 1 TIMING_CFG_0 sets the number of clock cycles between various SDRAM control commands. Table 12-25. TIMING_CFG_0 Field Descriptions Bit Reset Description RWT 31–30 0 Read-to-Write Turn-Around (tRTW) Specifies how many extra cycles to add between a read-to-write turnaround. If 0 clock cycles is chosen, then the DDR controller uses a fixed number based on the CAS latency and write latency. A value other than 0 adds extra cycles to this default calculation. By default, the DDR controller determines the read-to-write turn-around as CL – WL + BL/2 + 2. CL is the CAS latency rounded up to the next integer, WL is the programmed write latency, and BL is the burst length. Write-to-Read Turn-Around Specifies how many extra cycles to add between a write-to-read turn-around. If 0 clock cycles is chosen, then the DDR controller uses a fixed number based on the read latency and write latency. A value other than 0 adds extra cycles to this default calculation. By default, the DDR controller determines the write-to-read turn-around as WL – CL + BL/2 + 1. CL is the CAS latency rounded down to the next integer, WL is the programmed write latency, and BL is the burst length. Read-to-Read Turn-Around Specifies how many extra cycles to add between reads to different chip selects. By default, 3 cycles are required between read commands to different chip selects. If 00 is selected the DDR Controller uses a predefined value - 3 clocks for the turnaround, selecting a value other than 00 adds extra cycles to this predefined value according to the selection When DDR works in 8 beat burst the default is 5 clock cycles. Note: DDR2 does not support 8-beat bursts. Write-to-Write Turn-Around Specifies how many extra cycles to add between writes to different chip selects. By default, 2 cycles are required between write commands to different chip selects. If 00 is selected the DDR Controller uses a predefined value - 2 clocks for the turnaround, selecting a value other than 00 adds extra cycles to this predefined value according to the selection When DDR works in 8 beat burst the default is 4 clock cycles. Note: DDR2 does not support 8-beat bursts. Reserved. Write to zero for future compatibility. WRT 29–28 RRT 27–26 WWT 25–24 — 23 0 0 0 0 Settings 00 0 clock cycles. 01 1 clock cycle. 10 2 clock cycles. 11 3 clock cycles. 00 0 clock cycles. 01 1 clock cycle. 10 2 clock cycles. 11 3 clock cycles. DDR2: 00 3 clock cycles. 01 4 clock cycle. 10 5 clock cycles. 11 6 clock cycles. DDR2: 00 2 clock cycles. 01 3 clock cycle. 10 4 clock cycles. 11 5 clock cycles. MSC8156 Reference Manual, Rev. 2 12-52 Freescale Semiconductor Memory Controller Programming Model Table 12-25. TIMING_CFG_0 Field Descriptions (Continued) Bit Reset ACT_PD_ EXIT 22–20 0b001 PRE_PD_ EXIT 19–16 — 15–12 ODT_PD_ EXIT 11–8 — 7–4 0b0001 0 0b0001 0 Description Active Power-Down Exit Timing (tXARD and tXARDS) Specifies how many clock cycles to wait between exit from active power-down and issuing a command. The default is one clock cycle. Precharge Power-Down Exit Timing (txp) Specifies how many clock cycles to wait after exiting precharge power-down before issuing any command. The default is one clock cycle. Settings 000 Reserved 001 1 clock cycles. 010 2 clock cycles. 011 3 clock cycles. 100 4 clock cycles. 101 5 clock cycles. 110 6 clock cycles. 111 0000 7 clock cycles Reserved. 0001 1 clocks. 0010 2 clock cycles. 0011 3 clock cycles. 0100 4 clock cycles. 0101 5 clock cycles. 0110 6 clock cycles. 0111 7 clock cycles 1000 8 clock cycles 1001 9 clock cycle. 1010 10 clock cycles. 1011 11 clock cycles. 1100 12 clock cycles. 1101 13 clock cycles. 1110 14 clock cycles. 1111 15 clock cycles. 0000 0 clock 0001 1 clock 0010 2 clock cycles. 0011 3 clock cycles. 0100 4 clock cycles. 0101 5 clock cycles. 0110 6 clock cycles. 0111 7 clock cycles. 1000 8 clock cycles. Reserved. Write to zero for future compatibility. ODT Power-Down Exit Timing (tAXPD) Specifies how many clock cycles must pass after exit from power-down before ODT can be asserted. The default is 1 clock cycle. Note: For DDR3, ODT_PD_EXIT must be greater than TIMING_CFG_5[RODT_ON] when using RODT_ON overrides and must be grater than TIMING_CFG_5[WODT_ON] when using WODT_ON overrides. 1001 9 clock cycles. 1010 10 clock cycles. 1011 11 clock cycles. 1100 12 clock cycles. 1101 13 clock cycles. 1110 14 clock cycles. 1111 15 clock cycles. Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-53 DDR SDRAM Memory Controller Table 12-25. TIMING_CFG_0 Field Descriptions (Continued) Bit Reset Description MRS_CYC 3–0 0b0101 Mode Register Set Cycle Time (tMRD) Specifies the number of clock cycles that must pass between a Mode Register Set command and another command. The default is 5 clock cycles. Settings 0000 Reserved 0001 1 clock 0010 2 clock cycles. 0011 3 clock cycles. 0100 4 clock cycles. 0101 5 clock cycles. 0110 6 clock cycles. 0111 7 clock cycles. 1000 8 clock cycles. 1001 9 clock cycles. 1010 10 clock cycles. 1011 11 clock cycles. 1100 12 clock cycles. 1101 13 clock cycles. 1110 14 clock cycles. 1111 15 clock cycles. MSC8156 Reference Manual, Rev. 2 12-54 Freescale Semiconductor Memory Controller Programming Model 12.8.6 DDR SDRAM Timing Configuration Register 1 (MnTIMING_CFG_1) TIMING_CFG_1 Bit 31 30 DDR SDRAM Timing Configuration Register 1 29 PRETOACT R/W 0 0 Type Reset 0 Bit 15 14 0 REFREC R/W 0 0 Type Reset 13 28 27 26 25 ACTTOPRE R/W 0 0 0 0 12 11 10 0 WRREC R/W 0 0 0 9 24 23 22 21 ACTTORW R/W 0 0 20 Offset 0x0108 19 18 17 16 0 0 CASLAT R/W 0 0 0 0 0 0 8 7 6 4 3 2 0 — R 0 ACTTOACT R/W 0 0 0 — R 0 WRTORD R/W 0 0 0 5 1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-55 DDR SDRAM Memory Controller TIMING_CFG_1 sets the number of clock cycles between various SDRAM control commands. Table 12-26. TIMING_CFG_1 Field Descriptions Bits Reset Description PRETOACT 31–28 0 Precharge-to-Activate Interval (tRP) Specifies the minimum number of clock cycles between a precharge command and an activate or refresh command. This number is calculated from the AC specifications of the SDRAM. This field must be programmed for proper operation of the DDR Controller. ACTTOPRE 27–24 0 Activate to Precharge Interval (tRAS) Specifies the minimum number of clock cycles between an activate command and a precharge command. This number is calculated from the AC specifications of the SDRAM. This field is concatenated with TIMING_CFG_3[EXT_ACTTOPRE] to obtain a 5-bit value for the total activate to precharge time. Note that the decode of 0000–0011 is equal to 16-19 clocks when TIMING_CFG_3[EXT_ACTTOPRE] = 0, but it is equal to 0-3 clocks when TIMING_CFG_3[EXT_ACTTOPRE] = 1. This field must be programmed for proper operation of the DDR Controller. Settings 0000 Reserved. 0001 1 clock 0010 2 clock cycles. 0011 3 clock cycles. 0100 4 clock cycles. 0101 5 clock cycles. 0110 6 clock cycles. 0111 7 clock cycles 1000 8 clock cycles. 1001 9 clock cycles. 1010 10 clock cycles. 1011 11 clock cycles. 1100 12 clock cycles. 1101 13 clock cycles. 1110 14 clock cycles. 1111 15 clock cycles. 0000 16 clock cycles. 0001 17 clock cycles. 0010 18 clock cycles. 0011 19 clock cycles. 0100 4 clock cycles. 0101 5 clock cycles. 0110 6 clock cycles. 0111 7 clock cycles. 1000 8 clock cycles. 1001 9 clock cycles. 1010 10 clock cycles. 1011 11 clock cycles. 1100 12 clock cycles. 1101 13 clock cycles. 1110 14 clock cycles. 1111 15 clock cycles. MSC8156 Reference Manual, Rev. 2 12-56 Freescale Semiconductor Memory Controller Programming Model Table 12-26. TIMING_CFG_1 Field Descriptions (Continued) Bits Reset Description ACTTORW 23–20 0 Activate to Read/Write Interval for SDRAM (tRCD) Specifies the minimum number of clock cycles between an activate command and a read or write command. This interval is calculated from the AC specifications of the SDRAM. This field must be programmed for proper operation of the DDR Controller. CASLAT 19–16 0 Settings 0000 Reserved. 0001 1 clock cycle. 0010 2 clock cycles. 0011 3 clock cycles. 0100 4 clock cycles. 0101 5 clock cycles. 0110 6 clock cycles. 0111 7 clock cycles 1000 8 clock cycles. 1001 9 clock cycles. 1010 10 clock cycles. 1011 11 clock cycles. 1100 12 clock cycles. 1101 13 clock cycles. 1110 14 clock cycles. 1111 15 clock cycles. MCAS Latency from READ Command 0000 Reserved. Specifies the number of clock cycles between the time the SDRAM registers a READ command and the availability of the first output data. If a READ command is registered at clock edge n and the latency is m clock cycles., data is available nominally coincident with clock edge n + m. This field is concatenated with TIMING_CFG_3[EXT_CASLAT] to obtain a 5-bit value for the total CAS latency. This value must be programmed at initialization as described in Section 12.8.9, DDR SDRAM Control Configuration Register 2 (MnDDR_SDRAM_CFG_2) on page 12-70. This field must be programmed for proper operation of the DDR Controller. 0001 1 clock cycle. 0010 Reserved. 0011 2 clock cycles. 0100 Reserved. 0101 3 clock cycles. 0110 Reserved. 0111 4 clock cycles. 1000 Reserved. 1001 5 clock cycles. 1010 Reserved. 1011 6 clock cycles. 1100 Reserved. 1101 7 clock cycles. 1110 Reserved. 1111 8 clock cycles. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-57 DDR SDRAM Memory Controller Table 12-26. TIMING_CFG_1 Field Descriptions (Continued) Bits Reset Description REFREC 15–12 0 Refresh Recovery Time (t RFC ) Controls the number of clock cycles from a refresh command until an activate command is allowed. This field is combined with TIMING_CFG_3[EXT_REFREC] to obtain the total refresh recovery time. Note that the minimum value for REFREC is 8 clock cycles. tRFC = {REFREC || EXT_REFREC} + 8 min. value = 8 clocks (REFREC = 0x0) + EXT_REFREC = 0x0 max. value = 240 + 15 + 8 = 263 This required value can be calculated by referring to the AC specification of the SDRAM device. The AC specification indicates a minimum refresh to activate interval in nanoseconds. WRREC 11–8 0 Write Recovery (t WR) Specifies the minimum number of clock cycles between the last data associated with a write command and a precharge command. This interval, write recovery time, is calculated from the AC specifications of the SDRAM. If DDR_SDRAM_CFG_2[OBC_CFG] is set, then this field needs to be programmed to (tWR + 2 cycles). This field must be programmed for proper operation of the DDR Controller. Note: DDR_SDRAM_CFG_2[OBC_CFG] = 1 is the recommended mode. — 7 0 Reserved. Write to zero for future compatibility. ACTTOACT 6–4 0 Activate-to-Activate Interval (t RRD ) Specifies the minimum number of clock cycles between an activate command and another activate command for a different logical bank in the same physical bank (chip select). This interval is calculated from the AC specifications of the SDRAM. This field must be programmed for proper operation of the DDR Controller. Settings 0000 8 clock cycles. 0001 9 clock cycles. 0010 10 clock cycles. 0011 11 clock cycles. 0100 12 clock cycles. 0101 13 clock cycles. 0110 14 clock cycles. 0111 15 clock cycles. 0000 16 clock cycles. 0001 17 clock cycles. 0010 18 clock cycles. 0011 19 clock cycles. 0100 20 clock cycles. 0101 21 clock cycles. 0110 22 clock cycles. 1111 23 clock cycles. 0000 0 clock cycle. 0001 1 clock cycle. 0010 2 clock cycles. 0011 3 clock cycles. 0100 4 clock cycles. 0101 5 clock cycles. 0110 6 clock cycles. 0111 7 clock cycles 1000 8 clock cycles. 1001 9 clock cycles. 1010 10 clock cycles. 1011 11 clock cycles. 1100 12 clock cycles. 1101 13 clock cycles. 1110 14 clock cycles. 1111 15 clock cycles. 000 Reserved. 001 1 clock cycle. 010 2 clock cycles. 011 3 clock cycles. 100 4 clock cycles. 101 5 clock cycles. 110 6 clock cycles. 111 7 clock cycles. MSC8156 Reference Manual, Rev. 2 12-58 Freescale Semiconductor Memory Controller Programming Model Table 12-26. TIMING_CFG_1 Field Descriptions (Continued) Bits Reset Description — 3 0 Reserved. Write to zero for future compatibility. WRTORD 2–0 0 Last Write Data Pair to Read Command Interval (tWTR) Specifies the minimum number of clock cycles between the last write data pair and the subsequent read command to the same physical bank. If DDR_SDRAM_CFG_2[OBC_CFG] is set, then this field needs to be programmed to (tWTR + 2 cycles) This field must be programmed for proper operation of the DDR Controller. 000 Reserved. 001 1 clock cycle. 010 2 clock cycles. 011 3 clock cycles. 100 4 clock cycles. 101 5 clock cycles. 110 6 clock cycles. Note: 111 7 clock cycles. DDR_SDRAM_CFG_2[OBC_CFG] = 1 is the recommended mode. Settings MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-59 DDR SDRAM Memory Controller 12.8.7 DDR SDRAM Timing Configuration Register 2 (MnTIMING_CFG_2) TIMING_CFG_2 Bit 31 DDR SDRAM Timing Configuration Register 2 30 29 28 27 26 25 0 0 0 0 0 8 7 6 5 4 0 R/W 0 ADD_LAT Type Reset 0 0 0 0 0 0 CPO R/W 0 Bit 15 14 13 12 11 10 9 RD_TO_PRE Type Reset 0 0 WR_DATA_ DELAY R/W 0 0 0 0 — R 0 24 23 22 21 20 Offset 0x010C 19 18 17 16 0 0 — R 0 0 3 2 1 0 0 0 WR_LAT CKE_PLS 0 0 FOUR_ACT 0 0 0 TIMING_CFG_2 sets the clock delay to data for writes and should be defined according to the system timing. Table 12-28 describes the TIMING_CFG_2 fields. Table 12-27. TIMING_CFG_2 Field Descriptions Bit Reset Description ADD_LAT 31–28 0 Additive Latency Specifies the number of clock cycles from the Posted CAS operation until the registered read/write command is issued inside the SDRAM as defined in the JEDEC DDR2 and DDR3 standards. The additive latency must be set to a value less than TIMING_CFG_1[ACTTORW]. Note: For DDR2 ADD_LAT can be 0–4. For DDR3 ADD_LAT can be 0–2. Settings 0000 0 clock cycles. 0001 1 clock cycle. 0010 2 clock cycles. 0011 3 clock cycles. 0100 4 clock cycles. 0101 5 clock cycles 0110 6 clock cycles 0111 7 clock cycles 1000 8 clock cycles. 1001 9 clock cycles. 1010 10 clock cycles. 1011 11 clock cycles. 1100 12 clock cycles. 1101 13 clock cycles. 1110 14 clock cycles. 1111 15 clock cycles. MSC8156 Reference Manual, Rev. 2 12-60 Freescale Semiconductor Memory Controller Programming Model Table 12-27. TIMING_CFG_2 Field Descriptions (Continued) Bit Reset Description CPO 27–23 0 MCAS-to-Preamble Override Defines the number of DRAM cycles between a read command and the time the corresponding DQS preamble is valid for the memory controller. For these decodings, read latency (RL) is equal to the CAS latency plus the additive latency. For CPO decodings other than 00000 and 11111, read latency is rounded up to the next integer value. In other words, CPO timing decides when the DDR controller starts to wait for the first DQS rising edge from DDR memory during the DQS preamble for read access. The DQS rising edge should occur within 1 clock cycle from the timing defined by this parameter. Settings 00000 RL + 1 00001 Reserved 00010 RL 00011 RL + 1/4 00100 RL + 1/2 00101 RL + 3/4 00110 RL + 1 00111 RL + 5/4 01000 RL + 3/2 01001 RL + 7/4 01010 RL + 2 01011 RL + 9/4 01100 RL + 5/2 01101 RL + 11/4 01110 RL + 3 01111 RL + 13/4 10000 RL + 7/2 10001 RL + 15/4 10010 RL + 4 10011 RL + 17/4 10100 RL + 9/2 10101 RL + 19/4 10110 RL + 5 10111 RL + 21/4 11000 RL + 11/2 11001 RL + 23/4 11010 RL + 6 11011 RL + 25/4 11100 RL + 13/2 11101 RL + 27/4 11110 RL + 7 11111 Automatic Calibration (recommended) MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-61 DDR SDRAM Memory Controller Table 12-27. TIMING_CFG_2 Field Descriptions (Continued) Bit Reset WR_LAT 22–19 0 Description Write Latency Specifies the number of clock cycles between the write command and the first data write when AL = 0. When additive latency is applied, WR_LAT specifies the number of clock cycles from when the SDRAM issues the registered write command to the first data write. This field must be programmed for proper operation of the DDR Controller. — 18–16 0 Reserved. Write to zero for future compatibility. RD_TO_PRE 15–13 0 Read to Precharge (t RTP) When AL = 0 then RD_TO_PRE specifies the number of clock cycles between the read command and the precharge command. When additive latency is applied, RD_TO_PRE specifies minimum tRTP timing from the registered read command issued internally by the SDRAM to the precharge command. The interval between the posted read command and the precharge command is ADD_LAT + RD_TO_PRE cycles. If DDR_SDRAM_CFG_2[OBC_CFG] is set, then this field needs to be programmed to (tRTP + 2 cycles) This field must be programmed for proper operation of the DDR Controller. Note: Settings 0000 Reserved. 0001 1 clock cycle. 0010 2 clock cycles. 0011 3 clock cycles. 0100 4 clock cycles 0101 5 clock cycles 0110 6 clock cycles 0111 7 clock cycles 1000 8 clock cycles. 1001 9 clock cycles. 1010 10 clock cycles. 1011 11 clock cycles. 1100 12 clock cycles. 1101 13 clock cycles. 1110 14 clock cycles. 1111 15 clock cycles. 000 Reserved. 001 1 clock cycle. 010 2 clock cycles. 011 3 clock cycles. 100 4 clock cycles. 101 5 clock cycle. 110 6 clock cycles. 111 7 clock cycles. DDR_SDRAM_CFG_2[OBC_CFG] = 1 is the recommended mode. MSC8156 Reference Manual, Rev. 2 12-62 Freescale Semiconductor Memory Controller Programming Model Table 12-27. TIMING_CFG_2 Field Descriptions (Continued) Bit Reset Description WR_ DATA_ DELAY 12–10 0 Write Data Delay Specifies the adjust timing of DQS and data from its associated clock edge during write cycles. The adjust timing range step sizes are in 1/4 SDRAM clock periods. The tDQSS specification must be within ±25% of the SDRAM clock in the case of DDR2.This parameter is used to meet the tDQSS timing requirement. Using the same clock delay setting for TIMING_CFG_2[WR_DATA_DELAY] and DDR_SDRAM_CLK_CNTL[CLK_ADJUST] ideally results in no tDQSS skew. The write preamble is typically driven high for 1/2 DRAM cycle, and then it is driven low for 1/2 DRAM cycle. However, for WR_DATA_DELAY settings of 0 clocks and 1/4 clocks, the write preamble is driven low for the entire DRAM cycle. If the preamble needs to switch high first (to meet DDR3 specifications), then these values should not be used. Figure 12-11 is an example of the timing definition of WR_DATA_DELAY when using CLK_ADJUST with a 1/2 clock delay. Note: The recommended value for this field is 0b010. — 9 0 Reserved. Write to zero for future compatibility. CKE_PLS 8–6 0 Minimum CKE Pulse Width (tCKE) Specifies the minimum clock cycles tCKE that SDRAM must remain in Self-Refresh mode. This field must be programmed for proper operation of the DDR Controller. Settings 000 0 clock delay 001 1/4 clock delay 010 1/2 clock delay 011 3/4 clock delay 100 1 clock delay 101 5/4 clock delay 110 3/2 clock delay 111 Reserved 000 Reserved. 001 1 clock cycle. 010 2 clock cycles. 011 3 clock cycles. 100 4 clock cycles. 101 5 clock cycle. 110 6 clock cycles. 111 7 clock cycles. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-63 DDR SDRAM Memory Controller Table 12-27. TIMING_CFG_2 Field Descriptions (Continued) Bit Reset FOUR_ACT 5–0 0 Description Window for Four Activates (tFAW). Specifies the tFAW timing. This is applied to DDR2/DDR3 with eight logical banks only. See Section 2.5 Bank Active Command in JESD79-2C, p. 28. Settings 000000 Reserved. 000001 1 clock cycle. 000010 2 clock cycles. 000011 3 clock cycles. 000100 4 clock cycles. 000101 5 clock cycle. 000110 6 clock cycles. 000111 7clock cycles. 001000 8clock cycles. 001001 9 clock cycle. 001010 10 clock cycles. 001011 11 clock cycles. 001100 12 clock cycles. 001101 13 clock cycle. 001110 14 clock cycles. 001111 15 clock cycles. 010000 16 clock cycles. 010001 17 clock cycle. 010010 18 clock cycles. 010011 19clock cycles. 010100 20clock cycles. 010101 21 clock cycle. 010110 22 clock cycles. 010111 23 clock cycles. 011000 24 clock cycles. 011001 25 clock cycle. 011010 26 clock cycles. 011011 27clock cycles. 011100 28clock cycles. 011101 29 clock cycle. 011110 30 clock cycles. 011111 31 clock cycles. 100000 32 clock cycles. 100001–111111 Reserved. MSC8156 Reference Manual, Rev. 2 12-64 Freescale Semiconductor Memory Controller Programming Model 12.8.8 DDR SDRAM Control Configuration Register (MnDDR_SDRAM_CFG) DDR_SDRAM_CFG Bit 31 30 DDR SDRAM Control Configuration Register 29 28 27 26 — SDRAM_TYPE 0 R 0 0 R/W 1 1 12 11 10 9 8 MEM_ SREN ECC_ RD_ EN EN EN Type Reset Bit 0 R/W 0 0 15 14 13 2T_EN Type Reset 0 25 24 23 22 21 20 — 0 0 DYN_ PWR_ MGMT R/W 0 7 6 5 4 — R BA_INTLV_CTL 0 0 R/W 0 0 — 0 0 0 0 0 19 0 18 17 16 32_BE 8_BE NCAP 3T_EN R 0 R 0 Offset 0x0110 R/W 0 0 3 2 HSE — R/W 0 R 0 0 0 1 0 MEM_ BI HALT R/W 0 0 DDR_SDRAM_CFG enables the interface logic and specifies certain operating features such as self refreshing, error checking and correcting and dynamic power management. Table 12-28. DDR_SDRAM_CFG Field Descriptions Bits Reset Description MEM_EN 31 0 DDR SDRAM Interface Logic Enable Enables/disables SDRAM interface logic. This bit must not be set until the initialization code has appropriately configured all other memory configuration parameters. Self Refresh Enable (during sleep) Enables/disables self refresh during sleep. When self refresh is disabled, the system is responsible for preserving the integrity of SDRAM during sleep. 0 SDRAM interface logic is disabled. 1 SDRAM interface logic is enabled. 0 SDRAM self refresh is disabled during sleep. 1 0 SDRAM self refresh is enabled during sleep No ECC errors are reported. No ECC interrupts are generated. SREN 30 0 ECC_EN 29 0 ECC Enable Enables/disables ECC protection mechanism including error reporting and interrupts. RD_EN 28 0 Registered DIMM Enable Specifies the type of DIMM used in the system. Note: RD_EN and 2T_EN must not be both set at the same time. Reserved. Write to zero for future compatibility. — 27 SDRAM_ TYPE 26–24 — 23–22 DYN_PWR 21 0 011 Type of SDRAM Device Specifies the type of device. The default value is 0b011 to designate DDR2 SDRAM. 0 Reserved. Write to zero for future compatibility. 0 Dynamic Power Management Mode Enabled/disables dynamic power management mode. When this bit is set and there is no on-going memory activity, the SDRAM CKE signal is deasserted. Settings 1 0 ECC is enabled. Unbuffered DIMM.or discrete memory devices. 1 Registered DIMM. 011 DDR2 SDRAM. 111 DDR3 SDRAM. All other values reserved. 0 Dynamic power management mode is disabled. 1 Dynamic power management mode is enabled. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-65 DDR SDRAM Memory Controller Table 12-28. DDR_SDRAM_CFG Field Descriptions (Continued) Bits Reset — 20 32_BE 19 0 Reserved. Write to zero for future compatibility. 0 32-Bit Bus Enable Selects bus size. 8_BE 18 0 NCAP 17 0 3T_EN 16 2T_EN 15 BA_INTLV_CTL 14–8 0 0 0 Description 8-Beat Burst Enable Note: DDR2 (SDRAM_TYPE = 011) must use 4-beat bursts, even when using 32-bit bus mode; DDR3 (SDRAM_TYPE = 111) must use 8-beat bursts when using 32-bit bus mode. DDR3 must use 4 beat burst when using 64-bit bus mode. Non-Concurrent Auto-Precharge Some older DDR DRAMs do not support concurrent auto precharge. If one of these devices is used, this bit must be set if auto precharge is used. 3T Timing Enable Enables/disabled 3T timing. This field cannot be set if DDR_SDRAM_CFG[2T_EN] is also set. This field cannot be used with a 32-bit bus if 4-beat bursts are used. When this bit is cleared, the DRAM command/address are held for only one cycle on the DRAM bus. When this bit is set, the DRAM command/address are held for three full clock cycles. on the DRAM bus for every DRAM transaction. However, the chip select is held only for the third cycle. 2T Timing Enable Enables/disabled 2T timing. This field cannot be used with a 32-bit bus if 4-beat bursts are used. When this bit is cleared, the DRAM command/address are held for only one cycle on the DRAM bus. When this bit is set, the DRAM command/address are held for two full clock cycles. on the DRAM bus for every DRAM transaction. However, the chip select is held only for the second cycle. Bank (chip select) interleaving control. Set this field only if you wish to use bank interleaving. Settings 0 64-bit bus is used. 1 0 32-bit bus is used. 4-beat burst. 1 8-beat burst. 0 DRAMs in system support concurrent auto-precharge. 1 0 DRAMs in system do not support concurrent auto-precharge. 1T timing is enabled if 2T_EN is also cleared. The DRAM command/address are held for only 1 cycle on the DRAM bus. 1 3T timing is enabled. 0 1T timing is used if 3T_EN is also cleared. 1 2T timing is enabled. 0000000 No external memory banks are interleaved 1000000 External memory banks 0 and 1 are interleaved — 7–4 HSE 3 — 2 0 Reserved. Write to zero for future compatibility. 0 Half-Strength Drive Enable Specifies whether the I/O drivers are configured to full strength or half strength. This bit applies only when automatic driver compensation is disabled and the software override for the driver strength is not used in DDRCDR1 and 2. Reserved. Write to zero for future compatibility. 0 0 I/O drivers are configured to full-strength. 1 IO drivers are configured to half-strength. MSC8156 Reference Manual, Rev. 2 12-66 Freescale Semiconductor Memory Controller Programming Model Table 12-28. DDR_SDRAM_CFG Field Descriptions (Continued) Bits Reset Description MEM_HALT 1 0 DDR Memory Controller Halt When this bit is set, the memory controller does not accept any new transactions until the bit is cleared. This bit can be used when initialization is bypassed and the MODE REGISTER SET, EXTENDED MODE REGISTER SET, EXTENDED MODE REGISTER2 SET and EXTENDED MODE REGISTER3 SET commands are forced through software. This bit should be used carefully. Using this MHALT option can create congestion on the system interconnection and can cause hangs of the cores and other initiator. Bypass Initialization Specifies the conditions for initialization. When this bit is set, software is responsible for initializing memory through the DDR_SDRAM_MD_CNTL register. If software is initializing memory, the MEM_HALT bit can be set to prevent the DDR controller from issuing transactions during the initialization sequence. Note: Note that the DDR controller does not issue a DLL reset to the DRAMs when bypassing the initialization routine, regardless of the value of DDR_SDRAM_CFG[DLL_RST_DIS]. If a DLL reset is required, then the controller should be forced to enter and exit self refresh after the controller is enabled. For details on avoiding ECC errors in this mode, see the discussion of the DDR SDRAM Initialization Address Register on page 12-76. BI 0 0 12.8.9 Settings 0 DDR controller accepts new transactions. 1 DDR controller finishes any remaining transactions and then halts until software clears this bit. 0 DDR controller cycles through the initialization routine based on the value of SDRAM_Type. 1 Initialization routine is bypassed. DDR SDRAM Control Configuration Register 2 (MnDDR_SDRAM_CFG_2) DDR_SDRAM_CFG_2 DDR SDRAM Control Configuration Register 2 Bit 26 31 30 29 28 27 FRC_ SR — — DQS_CFG — ODT_CFG — Type Reset R/W 0 R 0 DLL_ RST_ DIS R/W 0 R 0 R/W R/W 0 0 0 R 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 NUM_PR Type Reset 0 0 24 23 — R/W 0 25 0 0 0 R 0 0 0 22 21 20 Offset 0x0114 OBC_ AP_ D_INIT CFG EN R/W 0 0 0 19 17 16 0 R 0 0 0 3 2 1 0 — RCW_ EN R/W 0 — MD_ EB R/W 0 R 0 18 R 0 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-67 DDR SDRAM Memory Controller DDR_SDRAM_CFG_2 provides control configuration for the DDR controller in addition to that provided by DDR_SDRAM_CFG. Table 12-29. DDR_SDRAM_CFG_2 Field Descriptions Bit Reset FRC_SR 31 0 — 30 DLL_RST_ DIS 29 0 Reserved. Write to zero for future compatibility. 0 DLL Reset Disable The DDR controller typically issues a DLL reset to the DRAMs when it exists self refresh. However, you can disable this function by setting this bit during initialization. — 28 DQS_CFG 27–26 — 25–23 ODT_CFG 22–21 — 20–16 NUM_PR 15–12 — 11–7 Description Force Self Refresh 0 Reserved. Write to zero for future compatibility. 0 DQS Configuration This bit must be programmed for proper operation. 0 Reserved. Write to zero for future compatibility. 0 ODT Configuration Defines how ODT is driven to the on-chip I/O. See Table 12-51 and Table 12-52 for the definition of the impedance value that is used. 0 Reserved. Write to zero for future compatibility. 0 Number of Posted Refreshes Determines how many posted refreshes, if any, can be issued at one time. If posted refreshes are used, this field, along with DDR_SDRAM_INTERVAL[REFINT], must be programmed so that the maximum tras specification cannot be violated. For example, some DDR SDRAMs cannot use more than three posted refreshes because the required refresh interval can exceed the maximum constraint for tras. Note: {TIMING_CFG_1[PRETOACT] + [DDR_SDRAM_CFG_2[NUM_PR] * ({EXT_REFREC || REFREC} + 8 + 2)]} << DDR_SDRAM_INTERVAL[REFINT Reserved. Write to zero for future compatibility. 0 0 Normal operating mode. 1 Enter ‘Self Refresh mode. 0 DDR controller issues a DLL reset when exiting self refresh. 1 DDR controller does not issue a DLL reset when exiting self refresh. 00 Reserved 01 Differential DQS signals are used for DDR2 support. 10 Reserved. 11 Reserved. 00 Never assert ODT to internal I/O. 01 Assert ODT to internal I/O only during writes to DRAM. 10 Assert ODT to internal I/O only during reads to DRAM. 11 Always keep ODT asserted to internal I/O. 0000 Reserved. 0001 1 refresh at a time. 0010 2 refreshes at a time. 0011 3 refreshes at a time. 0100 4 refreshes at a time. 0101 5 refresh at a time. 0110 6 refreshes at a time. 0111 7 refreshes at a time. 1000 8 refreshes at a time. 1001–1111Reserved. MSC8156 Reference Manual, Rev. 2 12-68 Freescale Semiconductor Memory Controller Programming Model Table 12-29. DDR_SDRAM_CFG_2 Field Descriptions (Continued) Bit Reset Description OBC_CFG 6 0 On-The-Fly Burst Chop Configuration Determines if on-the-fly Burst Chop is used. This bit should only be set if DDR3 memories are used. If on-the-fly Burst Chop mode is not used with DDR3 memories, then fixed Burst Chop mode may be used if the proper turnaround times are programmed into TIMING_CFG_0 and TIMING_CFG_4. DDR_SDRAM_CFG[8_BE] should be cleared for both on-the-fly Burst Chop mode or fixed Burst Chop mode when using a 64-bit data bus with DDR3 memories. AP_EN 5 0 D_INIT 4 0 Address Parity Enable Determines whether to generate and check address parity for the address and control signals when using registered DIMMs. If address parity is used, the MAPAR_OUT and MAPAR_IN pins are used to drive the parity bit and to receive errors from the open-drain parity error signal. Even parity are used, and parity is generated for the MA[15–0], MBA[2–0], MRAS, MCAS, MWE signals. Parity is not generated for the MCKE[0–1], MODT[0–1], or MCS[0–1] signals. Note: Address parity should not be used for non-zero values of TIMING_CFG_3[CNTL_ADJ]. DRAM Data Initialization This bit is set by software, and it is cleared by hardware. If software sets this bit before the memory controller is enabled, the controller automatically initializes DRAM after it is enabled. This bit is automatically cleared by hardware once the initialization is completed. This data initialization bit should only be set when the controller is idle.. Reserved. Write to zero for future compatibility. — 3 RCW_EN 2 — 1 0 0 0 Register Control Word Enable If DDR3 registered DIMMs are used, it may be necessary to write the register control words before issuing commands to DRAM. If this bit is set, the controller writes the register control words after DDR_SDRAM_CFG[MEM_EN] is set, unless DDR_SDRAM_CFG[BI] is set. The register control words are written with the values in DDR_SDRAM_RCW_1 and DDR_SDRAM_RCW_2. 0 On-the-fly Burst Chop mode is disabled. Fixed burst lengths defined in DDR_SDRAM_CFG[8_BE] are used. If fixed Burst Chop is used (with DDR3 memories), then DDR_SDRAM_CFG[8_BE] should be cleared. 1 On-the-fly Burst Chop mode is used. DDR_SDRAM_CFG[8_BE] should be cleared for on-the-fly Burst Chop mode. DDR_SDRAM_CFG[32-BE] should also be cleared for on-the-fly Burst Chop mode 0 Address parity not used 1 Address parity used 0 No data initialization, and no data initialization is scheduled. 1 The memory controller initializes memory when it is enabled. 0 Register control words are not automatically written during DRAM initialization. 1 Register control words are automatically written during DRAM initialization. This bit should only be set if DDR3 registered DIMMs are used, and the default settings need to be modified. Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-69 DDR SDRAM Memory Controller Table 12-29. DDR_SDRAM_CFG_2 Field Descriptions (Continued) Bit Reset Description MD_EN 0 0 Mirrored DIMM Enable Some DDR3 DIMMs are mirrored, where certain MA and MBA pins are mirrored on one side of the DIMM. When this bit is set, the controller knows to swap these signals before transmitting to the DRAM. The controller assumes that CS1 and CS3 are the ‘mirrored’ ranks of memory. The following signals are mirrored (MnBA0 versus MBA1; MA3 versus MA4; MA5 versus MA6; MA7 versus MA8). 12.8.10 Mirrored DIMMs are not used. 1 Mirrored DIMMs are used. DDR SDRAM Mode Configuration Register (MnDDR_SDRAM_MODE) DDR_SDRAM_MODE Bit 0 31 30 29 DDR SDRAM Mode Configuration Register 28 27 26 25 24 23 ESDMODE R/W 0 0 Offset 0x0118 22 21 20 19 18 17 16 0 0 0 0 0 0 0 Type Reset 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 SDMODE R/W 0 0 0 0 0 0 0 0 0 Type Reset 0 0 0 0 0 0 DDR_SDRAM_MODE sets the values loaded into the DDR mode registers. Table 12-30. DDR_SDRAM_MODE Bit Descriptions Bit Refresh Description ESDMODE 31–16 0 SDMODE 15–0 0 Extended SDRAM Mode Specifies the initial value loaded into the DDR SDRAM extended mode register. The range of legal values is specified by the DDR SDRAM manufacturer. When this value is driven onto the address bus during DDR SDRAM initialization, MA0 presents the LSB of ESDMODE, which corresponds to DDR_SDRAM_MODE bit 16. The MSB of the SDRAM extended mode register value must be stored at DDR_SDRAM_MODE bit 31 The value programmed into this field is also used for writing MR1 during write leveling for DDR3, although the bits specifically related to the write leveling scheme are handled automatically by the DDR controller. Even if DDR_SDRAM_CFG[BI] is set, this field is still used during write leveling. SDRAM Mode Specifies the initial value loaded into the DDR SDRAM mode register. The range of legal values is specified by the DDR SDRAM manufacturer. When this value is driven onto the address bus during DDR SDRAM initialization, MA0 presents the LSB of SDMODE, which, corresponds to DDR_SDRAM_MODE bit 0. The MSB of the SDRAM mode register value must be stored at DDR_SDRAM_MODE bit 15. Because the memory controller forces SDMODE[8] to certain values depending upon the state of the initialization sequence (for resetting the SDRAM DLL) which is mapped to MA8; the memory controller ignores the corresponding bits of this field. MSC8156 Reference Manual, Rev. 2 12-70 Freescale Semiconductor Memory Controller Programming Model 12.8.11 DDR SDRAM Mode Configuration 2 Register (MnDDR_SDRAM_MODE_2) DDR_SDRAM_MODE_2 Bit 31 30 29 DDR SDRAM Mode Configuration 2 Register 28 27 26 25 Type Reset 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 Type Reset 0 0 0 0 0 0 0 24 23 22 ESDMODE2 R/W 0 0 8 7 ESDMODE3 R/W 0 0 21 Offset 0x011C 20 19 18 17 16 0 0 0 0 0 0 0 6 5 4 3 2 1 0 0 0 0 0 0 0 0 DDR_SDRAM_MODE_2 sets the values loaded into the DDR extended mode 2 and 3 registers. Table 12-31. DDR_SDRAM_MODE_2 Bit Descriptions Bit Reset Description ESDMODE2 31–16 0 ESDMODE3 15–0 0 Extended SDRAM Mode 2 Specifies the initial value loaded into the DDR SDRAM Extended 2 Mode Register. The range and meaning of legal values is specified by the DDR SDRAM manufacturer. When this value is driven onto the address bus during the DDR SDRAM initialization sequence, MA0 presents the LSB bit of ESDMODE2, which corresponds to DDR_SDRAM_MODE_2 bit 16. The MSB of the SDRAM extended mode 2 register value must be stored at DDR_SDRAM_MODE_2 bit 31. Extended SDRAM Mode 3 Specifies the initial value loaded into the DDR SDRAM Extended 3 Mode Register. The range of legal values is specified by the DDR SDRAM manufacturer. When this value is driven onto the address bus during DDR SDRAM initialization, MA0 presents the LSB of ESDMODE3, which corresponds to DDR_SDRAM_MODE_2 bit 0. The MSB of the SDRAM extended mode 3 register value must be stored at DDR_SDRAM_MODE_2 bit 15. 12.8.12 DDR SDRAM Mode Control Register (MnDDR_SDRAM_MD_CNTL) DDR_SDRAM_MD_CNTL DDR SDRAM Mode Control Register Bit 31 30 29 28 27 — CS_ SEL — Type Reset MD_ EN R/W 0 R 0 R/W 0 0 R 0 0 Bit 15 14 13 12 11 10 Type Reset 0 0 0 0 0 26 25 24 23 22 SET_ PRE 0 0 SET_ REF R/W 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 MD_VALUE R/W 0 0 0 0 0 0 0 0 0 MD_SEL 0 Offset 0x0120 0 21 20 19 18 17 CKE_CNTL WRC W 16 — R DDR_SDRAM_MD_CNTL allows software to force mode/extended mode register set commands to DRAM, including the following: MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-71 DDR SDRAM Memory Controller Issue a MODE REGISTER SET command to a particular chip select Issue an immediate REFRESH to a particular chip select Issue an immediate PRECHARGE or PRECHARGE ALL command to a particular chip select Force the CKE signals to a specific value Note: Each command initiated through the DDR_SDRAM_MD_CNTL register should be initiated separately in the order required by the DDR SDRAM. If multiple commands are initiated simultaneously, the execution order is not guarantied and can cause malfunction of the DDR SDRAM. Table 12-32. DDR_SDRAM_MD_CNTL Bit Descriptions Bit Reset Description MD_EN 31 0 Mode Enable Setting this bit specifies that valid data in MD_VALUE is ready to be written to DRAM as one of the following commands: • MODE REGISTER SET • EXTENDED MODE REGISTER SET • EXTENDED MODE REGISTER SET 2 • EXTENDED MODE REGISTER SET 3 The specific command to be executed is selected by setting MD_SEL. In addition, the chip select must be chosen by setting CS_SEL. MD_EN is set by software and cleared by hardware once the command has been issued. Reserved. Write to zero for future compatibility. — 30 CS_SEL 29–28 — 27 MD_SEL 26–24 SET_REF 23 0 0 0 000 0 Select Chip Select Specifies the chip select to drive active due to any command forced by software in DDR_SDRAM_MD_CNTL. Settings 0 Indicates that no MODE REGISTER SET command needs to be issued. 1 Indicates that valid data contained in the register is ready to be issued as a MODE REGISTER SET command. 00 Chip select 0 is active. 01 Chip select 1 is active. 10 Reserved. 11 Reserved. Reserved. Write to zero for future compatibility. Mode Register Select MD_SEL specifies one of the following: • During a mode select command, selects the SDRAM mode register to be changed • During a precharge command, selects the SDRAM logical bank to be precharged. A precharge all command ignores this field. • During a refresh command, this field is ignored. Note that MD_SEL contains the value that is presented onto the memory bank address pins (MBAn) of the DDR controller. 000 MR 001 EMR 010 EMR2 011 EMR3 Set Refresh Forces an immediate refresh to the chip select specified by DDR_SDRAM_MD_CNTL[CS_SEL]. Software sets this bit and hardware clears it when the command is issued. Note: SET_REF, and SET_PRE are mutually exclusive; they cannot be set at the same time 000 MR Mode register 001 EMR Extended Mode Register 010 EMR2 Extended Mode Register 2 011 EMR3 Extended Mode Register 3 0 No REFRESH command to issue. 1 A REFRESH command is ready to issue. MSC8156 Reference Manual, Rev. 2 12-72 Freescale Semiconductor Memory Controller Programming Model Table 12-32. DDR_SDRAM_MD_CNTL Bit Descriptions (Continued) Bit Reset Description Settings SET_PRE 22 0 0 No PRECHARGE ALL command to issue. 1 Issue a PRECHARGE or PRECHARGE ALL command. CKE_CNTL 21–20 0 Set Precharge Forces a precharge command or precharge all command to be issued to the chip select specified by DDR_SDRAM_MD_CNTL[CS_SEL]. Software sets this bit, and hardware clears it when the command is issued. Note: SET_REF, and SET_PRE are mutually exclusive; they cannot be set at the same time Clock Enable Control Software uses tthese bits to set or clear all CKE signals issued to DRAM. When software forces the value driven on CKE, that value continues to be forced until software clears the CKE_CNTL bits. The DDR controller continues to drive the CKE signals to the value forced by software until another event causes the CKE signals to change (that is, self refresh entry/exit, power down entry/exit). Write Register Control Word If software sets this bit, then a register control word is written by asserting the selected chip selects while providing the programmed data on the MA and MBA signals. RAS, CAS, and WE remain deasserted during this write The MD_EN field should also be set to force a register control word write. This should only be set if DDR3 registered DIMMs are used and the register needs to be configured. If DDR_SDRAM_MD_CNTL is used to write RCW2 specifically, then software must guarantee that the timing parameter, t-STAB, is met before future accesses to the controller are allowed. In addition, DDR_SDRAM_MD_CNTL register cannot be used to write the RCWs if write leveling is used, since write leveling is run automatically before DDR_SDRAM_MD_CNTL can be used to force RCW writes. Reserved. Write to zero for future compatibility. Mode Register Value This field specifies the value that is presented on the memory address pins of the DDR controller during a MODE REGISTER SET command. This field is significant only when this register is used to issue a MODE REGISTER SET command or a PRECHARGE or PRECHARGE ALL command. For a MODE REGISTER SET command, this field contains the data to be written to the selected mode register. For a PRECHARGE command, MD_VALUE10 is mapped to MA10 to distinguish between a PRECHARGE command and a PRECHARGE ALL command, as follows: 0 Issue a PRECHARGE command; MD_SEL selects the logical bank to be precharged 1 Issue a PRECHARGE ALL command; all logical banks are precharged WRCW 19 0 — 18–16 MD_ VALUE 15–0 0 0 00 Software does not force the CKE signals. 01 Software forces the CKE signals to a low value. 10 Software forces the CKE signals to a high value. 11 Reserved. 0 Indicates that a register control word write is not issued if MD_EN is set. 1 Indicates that a register control word write is issued if MD_EN is set. All other values are not valid. Table 12-33 shows how DDR_SDRAM_MD_CNTL fields should be set for each of the tasks described above. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-73 DDR SDRAM Memory Controller Table 12-33. Settings of DDR_SDRAM_MD_CNTL Fields Field Mode Register Set Refresh Precharge Clock Enable Signals Control MD_EN 1 0 0 — SET_REF 0 1 0 — SET_PRE 0 0 1 — CS_SEL Chooses chip select (CS) MD_SEL Select mode register. See Table 12-32. — MD_VALUE Value written to mode register — CKE_CNTL 12.8.13 0 0 Bit 15 0 — Only MD_VALUE10 is significant. See Table 12-32. See Table 12-32. 0 30 29 28 DDR SDRAM Interval Configuration Register 27 26 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 REFINT R/W 0 0 14 13 12 11 10 9 8 0 0 0 0 0 Offset 0x0124 25 — Type Reset — DDR SDRAM Interval Configuration Register (MnDDR_SDRAM_INTERVAL) 31 Type Reset Selects logical bank 0 DDR_SDRAM_INTERVAL Bit — 0 0 7 BSTOPRE R/W 0 0 DDR_SDRAM_INTERVAL sets the number of DRAM clock cycles between bank refreshes issued to the DDR SDRAMs. In addition, it specifies the number of DRAM cycles that a page is maintained after it is accessed. Table 12-34. DDR_SDRAM_INTERVAL Bit Descriptions Bit Refresh REFINT 31–16 0 Description Refresh Interval Represents the number of memory bus clock cycles between refresh cycles. Depending on DDR_SDRAM_CFG_2 [NUM_PR], some number of rows are refreshed in each DDR SDRAM physical bank during each refresh cycle. The value for REFINT depends on the specific SDRAMs used and the interface clock frequency. Refreshes are not issued when REFINT is cleared to all 0s. MSC8156 Reference Manual, Rev. 2 12-74 Freescale Semiconductor Memory Controller Programming Model Table 12-34. DDR_SDRAM_INTERVAL Bit Descriptions (Continued) Bit Refresh — 15–14 BSTOPRE 13–0 0 Reserved. Write to zero for future compatibility. 0 Precharge Interval Specifies the duration (in memory bus clock cycles) that a page is retained after a DDR SDRAM access. The page open counter is loaded with BSTOPRE each time the page is accessed (including page hits). When the counter expires, the open page is closed with an SDRAM precharge bank command as soon as possible. If BSTOPRE has a value of zero, the DDR memory controller uses auto-precharge read and write commands rather than operating in page mode. This is called global auto-precharge mode. 12.8.14 Description DDR SDRAM Data Initialization Register (MnDDR_DATA_INIT) DDR_DATA_INIT Bit 31 30 DDR SDRAM Data Initialization Register 29 28 27 26 25 Type Reset 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 Type Reset 0 0 0 0 0 0 0 24 23 22 INIT_VALUE R/W 0 0 8 7 INIT_VALUE R/W 0 0 21 Offset 0x0128 20 19 18 17 16 0 0 0 0 0 0 0 6 5 4 3 2 1 0 0 0 0 0 0 0 0 DDR_DATA_INIT provides the value to initialize memory if DDR_SDRAM_CFG_2[D_INIT] is set. When ECC is enabled, initializing all the available memory space can ensure that reads from unwritten addresses does not return ECC errors and interrupts. Table 12-35. DDR_DATA_INIT Bit Descriptions Bits Reset INIT_VALUE 31–0 0 12.8.15 Description Initialization Value Specifies the initialization value for the DRAM if DDR_SDRAM_CFG_2[D_INIT] is set. DDR SDRAM Clock Control Configuration Register (MnDDR_SDRAM_CLK_CNTL) DDR_SDRAM_CLK_CNTL Bit 31 30 29 0 0 0 12 11 10 Type Reset 0 0 — R 0 Bit 15 14 13 Type Reset 28 DDR SDRAM Clock Control Configuration Register 27 26 25 24 23 CLK_ADJUST R/W 1 0 9 8 22 Offset 0x0130 21 20 19 18 17 16 0 0 0 0 0 0 0 — R 0 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 — R 0 0 0 0 0 0 0 0 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-75 DDR SDRAM Memory Controller DDR_SDRAM_CLK_CNTL provides a source synchronous option, along with a 1/8 cycle clock adjustment. Table 12-36. DDR_SDRAM_CLK_CNTL Bit Descriptions Bit Reset Description Settings — 31–27 CLK_ADJUST 26–23 0 Reserved. Write to zero for future compatibility. 4’b0100 Clock Adjust Specifies when the clock is launched in relationship to the address/command. Set delay from address/command start timing to MCK rising edge. 0000 Clock launched and aligned with address/command. 0001 Clock launched 1/8 applied cycle after address/command. 0010 Clock launched 1/4 applied cycle after address/command. 0011 Clock launched 3/8 applied cycle after address/command. 0100 Clock launched 1/2 applied cycle after address/command. 0101 Clock launched 5/8 applied cycle after address/command. 0110 Clock launched 3/4 applied cycle after address/command. 0111 Clock launched 7/8 applied cycle after address/command. 1000 Clock launched 1 applied cycle after address/command. 1001–1111Reserved. Figure 12-5, Figure 12-6, and Figure 12-7 in Section 12.4 show the timing relationships between clock and command for the case of CLK_ADJUST 0100 1/2 clock delay, which means nominal timing. The MCK rising edge is in the center of the address/command period in general. — 22–0 12.8.16 0 DDR SDRAM Initialization Address Register (MnDDR_INIT_ADDR) DDR_INIT_ADDR Bit 31 Reserved. Write to zero for future compatibility. 30 DDR SDRAM Initialization Address Register 29 28 27 26 25 Type Reset 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 Type Reset 0 0 0 0 0 0 0 24 23 INIT_ADDR R/W 0 0 8 7 INIT_ADDR R/W 0 0 22 21 Offset 0x0148 20 19 18 17 16 0 0 0 0 0 0 0 6 5 4 3 2 1 0 0 0 0 0 0 0 0 DDR_INIT_ADDR provides the address for the data strobe to data skew adjustment and automatic CAS to preamble calibration after setting DDR_SDRAM_CFG[MEM_EN]. Note: After the skew adjustment, this address contains bad ECC data, which is not important at power-on reset because all memory should subsequently be initialized if ECC is enabled either through software or through the use of the DDR_SDRAM_CFG_2[D_INIT] bit. However, if the DSP is reset after the DRAM enters Self-Refresh mode, memory is not initialized. Therefore this address should be written to avoid possible ECC errors when this address is accessed later. MSC8156 Reference Manual, Rev. 2 12-76 Freescale Semiconductor Memory Controller Programming Model Table 12-37. DDR_INIT_ADDR Bit Descriptions Bit Reset INIT_ADDR 31–0 0 12.8.17 Description Initialization Address Provides the address used for the data to data strobes skew adjustment and automatic CAS to preamble calibration after setting DDR_SDRAM_CFG[MEM_EN]. This address is written during the initialization sequence. DDR Initialization Enable (MnDDR_INIT_EN) DDR_INIT_EN 30 DDR SDRAM Initialization Enable Bit 31 Type Reset UIA R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 Type Reset Settings 29 28 27 26 25 24 23 Offset 0x014C 22 21 20 19 18 17 16 R 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 — — R 0 0 0 0 0 0 0 0 The DDR SDRAM initialization enable register provides the enable bit to use the address given by DDR_INIT_ADDR[INIT_ADDR] for the data to data strobes deskew calibration and for automatic CAS to preamble calibration during the DDR SDRAM initialization. Table 12-38 describes the DDR_INIT_EN fields. Table 12-38. DDR_INIT_EN Field Descriptions Bit Reset UIA 31 0 — 30–0 0 Description Use Initialization Address Indicates whether to use the initialization address. Settings 0 Use the default address for training sequence as calculated by the controller. This is the first valid address in the first enabled chip select. 1 Use the initialization address programmed in DDR_INIT_ADDR. Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-77 DDR SDRAM Memory Controller 12.8.18 DDR SDRAM Timing Configuration 4 (MnTIMING_CFG_4) TIMING_CFG_4 Bit 31 30 DDR SDRAM Timing Con figuration 4 29 28 27 26 RWT 25 24 23 22 WRT 21 Offset 0x0160 20 19 18 RRT 17 16 WWT Type Reset 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 — Type Reset DLL_LOCK R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The DDR SDRAM timing configuration 4 register provides additional timing fields required to support DDR3 memories. Table 12-39 describes the TIMING_CFG_4 fields. Table 12-39. TIMING_CFG_4 Field Descriptions Bits Reset Description Settings RWT 31–28 0 Read-to-Write Turnaround for Same Chip Select Specifies how many cycles are added between a read to write turnaround for transactions to the same chip select. If a value of 0000 is chosen, then the DDR controller uses the value used for transactions to different chip selects, as defined in TIMING_CFG_0[RWT]. This field can be used to improve performance when operating in burst-chop mode by forcing transactions to the same chip select to use extra cycles, while transaction to different chip selects can utilize the tri-state time on the DRAM interface. Regardless of the value that is set in this field, the value defined by TIMING_CFG_0[RWT] is also met before issuing a write command. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Default 1 clock 2 clocks 3 clocks 4 clocks 5 clocks 6 clocks 7 clocks 8 clocks 9 clocks 10 clocks 11 clocks 12 clocks 13 clocks 14 clocks 15 clocks WRT 27–24 0 Write-to-Read Turnaround for Same Chip Select Specifies how many cycles are added between a write to read turnaround for transactions to the same chip select. If a value of 0000 is chosen, then the DDR controller uses the value used for transactions to different chip selects, as defined in TIMING_CFG_0[WRT]. This field can be used to improve performance when operating in burst-chop mode by forcing transactions to the same chip select to use extra cycles, while transaction to different chip selects can utilize the tri-state time on the DRAM interface. Regardless of the value that is set in this field, the value defined by TIMING_CFG_0[WRT] is also met before issuing a read command. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Default 1 clock 2 clocks 3 clocks 4 clocks 5 clocks 6 clocks 7 clocks 8 clocks 9 clocks 10 clocks 11 clocks 12 clocks 13 clocks 14 clocks 15 clocks MSC8156 Reference Manual, Rev. 2 12-78 Freescale Semiconductor Memory Controller Programming Model Table 12-39. TIMING_CFG_4 Field Descriptions (Continued) Bits Reset Description Settings RRT 23–20 0 Read-to-Read Turnaround for Same Chip Select Specifies how many cycles are added between reads to the same chip select. If a value of 0000 is chosen, then 2 cycles is required between read commands to the same chip select if 4-beat bursts are used (4 cycles are required if 8-beat bursts are used). Note that DDR3 does not support 4-beat bursts. However, this field may be used to add extra cycles when burst-chop mode is used, and the DDR controller must wait 4 cycles for read-to-read transactions to the same chip select. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 BL/2 clocks BL/2 + 1 clock BL/2 + 2 clocks BL/2 + 3 clocks BL/2 + 4 clocks BL/2 + 5 clocks BL/2 + 6 clocks BL/2 + 7 clocks BL/2 + 8 clocks BL/2 + 9 clocks BL/2 + 10 clocks BL/2 + 11 clocks BL/2 + 12 clocks BL/2 + 13 clocks BL/2 + 14 clocks BL/2 + 15 clocks WWT 19–16 0 Write-to-Write Turnaround for Same Chip Select Specifies how many cycles are added between writes to the same chip select. If a value of 0000 is chosen, then 2 cycles is required between write commands to the same chip select if 4-beat bursts are used (4 cycles are required if 8-beat bursts are used). Note that DDR3 does not support 4-beat bursts. However, this field may be used to add extra cycles when burst-chop mode is used, and the DDR controller must wait 4 cycles for write-to-write transactions to the same chip select. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 BL/2 clocks BL/2 + 1 clock BL/2 + 2 clocks BL/2 + 3 clocks BL/2 + 4 clocks BL/2 + 5 clocks BL/2 + 6 clocks BL/2 + 7 clocks BL/2 + 8 clocks BL/2 + 9 clocks BL/2 + 10 clocks BL/2 + 11 clocks BL/2 + 12 clocks BL/2 + 13 clocks BL/2 + 14 clocks BL/2 + 15 clocks — 15–2 0 Reserved. Write to zero for future compatibility. DLL_LOCK 1–0 0 DDR SDRAM DLL Lock Time This provides the number of cycles that it takes for the DRAMs DLL to lock at power-on reset and after exiting self refresh. The controller waits the specified number of cycles before issuing any commands after exiting POR or self refresh. 00 01 10 11 200 clocks 512 clocks Reserved Reserved MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-79 DDR SDRAM Memory Controller 12.8.19 DDR SDRAM Timing Configuration 5 (MnTIMING_CFG_5) TIMING_CFG_5 Bit 31 30 DDR SDRAM Timing Con figuration 5 29 28 27 — Type Reset 0 Bit 15 25 24 23 22 — 21 20 19 RODT_OFF 18 17 16 WODT _ON — R/W 0 0 0 0 0 14 13 12 11 10 WODT_ON Type Reset 26 RODT_ON Offset 0x0164 — 0 0 0 0 0 0 9 8 7 6 5 4 WODT_OFF 0 0 0 0 3 2 1 0 0 0 0 0 — R/W 0 0 0 0 0 0 0 0 0 0 0 0 The DDR SDRAM timing configuration 5 register provides additional timing fields required to support DDR3 memories. Table 12-40 describes the TIMING_CFG_5 fields. Table 12-40. TIMING_CFG_5 Field Descriptions Bits Reset Description — 31–29 0 Reserved. Write to zero for future compatibility. RODT_ON 28–24 0 Read-to-ODT On Specifies the number of cycles that passes from when a read command is placed on the DRAM bus until the assertion of the relevant ODT signal(s). The default case (00000) provides a decode of RL - 3 cycles to support legacy of past products. RL is the read latency, derived from CAS latency + additive latency. If 2T/3T timing is used, one/two extra cycles are automatically added to the value selected in this field. Settings 00000 RL - 3 clocks 00001 0 clocks 00010 1 clocks 00011 2 clocks 00100 3 clocks 00101 4 clocks 00110 5 clocks 00111 6 clocks 01000 7 clocks 01001 8 clocks 01010 9 clocks 01011 10 clocks 01100 11 clocks 01101 12 clocks 01110 13 clocks. 011111 14 clocks 10000 15 clocks 10001 16 clocks 10010 17 clocks 10011 18 clocks 10100 19 clocks 10101 20 clocks 10110 21 clocks 10111 22 clocks 11000 23 clocks 11001 24 clocks 11010 25 clocks 11011 26 clocks 11100 27 clocks 11101 28 clocks 11110 29 clocks. 11111 30 clocks MSC8156 Reference Manual, Rev. 2 12-80 Freescale Semiconductor Memory Controller Programming Model Table 12-40. TIMING_CFG_5 Field Descriptions (Continued) Bits Reset Description — 23 0 Reserved. Write to zero for future compatibility. RODT_OFF 22–20 0 Read to ODT Off Specifies the number of cycles that the relevant ODT signal(s) remains asserted for each read transaction. The default case (000) leaves the ODT signal(s) asserted for 3 DRAM cycles. — 19–17 0 Reserved. Write to zero for future compatibility. WODT_ON 16–12 0 Write-to-ODT On Specifies the number of cycles that passes from when a write command is placed on the DRAM bus until the assertion of the relevant ODT signal(s). The default case (00000) provides a decode of WL - 3 cycles to support legacy of past products. WL is the write latency, derived from Write Latency + Additive Latency. If 2T/3T timing is used, one/two extra cycles are automatically added to the value selected in this field. — 11 0 Reserved. Write to zero for future compatibility. Settings 000 001 010 010 100 101 110 111 3 clocks 1 clock 2 clocks 3 clocks 4 clocks 5 clocks 6 clocks 7 clocks 00000 WL - 3 clocks 00001 0 clocks 00010 1 clocks 00011 2 clocks 00100 3 clocks 00101 4 clocks 00110 5 clocks 00111 6 clocks 01000 7 clocks 01001 8 clocks 01010 9 clocks 01011 10 clocks 01100 11 clocks 01101 12 clocks 01110 13 clocks. 011111 14 clocks 10000 15 clocks 10001 16 clocks 10010 17 clocks 10011 18 clocks 10100 19 clocks 10101 20 clocks 10110 21 clocks 10111 22 clocks 11000 23 clocks 11001 24 clocks 11010 25 clocks 11011 26 clocks 11100 27 clocks 11101 28 clocks 11110 29 clocks. 11111 30 clocks MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-81 DDR SDRAM Memory Controller Table 12-40. TIMING_CFG_5 Field Descriptions (Continued) Bits Reset Description WODT_ OFF 10–8 0 Write to ODT Off Specifies the number of cycles that the relevant ODT signal(s) remains asserted for each write transaction. The default case (000) leaves the ODT signal(s) asserted for 3 DRAM cycles. — 7–0 0 Reserved. Write to zero for future compatibility. 12.8.20 31 000 001 010 010 100 101 110 111 3 clocks 1 clock 2 clocks 3 clocks 4 clocks 5 clocks 6 clocks 7 clocks DDR ZQ Calibration Control (MnDDR_ZQ_CNTL) DDR_ZQ_ CNTL Bit Settings 30 DDR ZQ Calibration Control 29 ZQ_ EN 28 27 26 25 24 23 22 ZQINIT — Offset 0x0170 21 20 19 — 18 17 16 ZQOPER Type Reset 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 — Type Reset ZQCS — R/W 0 0 0 0 0 0 0 0 0 0 0 0 The DDR ZQ Calibration Control register provides the enable and controls required for ZQ calibration when using DDR3 SDRAM devices. There is a limitation for various DRAM timing parameters when ZQ calibration is used. The factors involved in this limitation are DDR_ZQ_CNTL[ZQOPER], DDR_ZQ_CNTL[ZQCS], TIMING_CFG_1[PRETOACT], TIMING_CFG_1[REFREC], DDR_SDRAM_INTERVAL[REFINT], and the number of chip selects enabled. If the following condition is true: [((DDR_ZQ_CNTL[ZQOPER] + DDR_ZQ_CNTL[ZQCS])* (# enabled chip selects)) + TIMING_CFG_1[PRETOACT] + TIMING_CFG_1[REFREC] + 2tCK] > (DDR_SDRAM_INTERVAL[REFINT]) it is possible that one refresh is skipped when the controller exits self refresh. If this is an issue, then posted refreshes can be used to extend the refresh interval. Another alternative is to use the DDR_SDRAM_MD_CNTL register to force an extra refresh to each chip select after exiting self refresh mode. However, DDR3 timing parameters for most devices/frequencies do not allow missed refresh cycles. Table 12-41 describes the DDR_ZQ_CNTL fields. MSC8156 Reference Manual, Rev. 2 12-82 Freescale Semiconductor Memory Controller Programming Model Table 12-41. DDR_ZQ_CNTL Field Descriptions Bit Reset Description ZQ_EN 31 0 ZQ Calibration Enable This bit determines whether ZQ calibration is used. This bit should be set only if DDR3 memory is used (DDR_SDRAM_CFG[SDRAM_TYPE] = 0b111). — 30–28 ZQ_INIT 27–24 0 Reserved. Write to zero for future compatibility. 0 Power-on Reset ZQ Calibration Time (tZQinit) Determines the number of cycles that must be allowed for DRAM ZQ calibration at power-on reset. Each chip select is calibrated separately, and this time must elapse after the ZQCL command is issued for each chip select before a separate command can be issued. Reserved. Write to zero for future compatibility. 0111 128 clocks 1000 256 clocks 1001 512 clocks 1010 1024 clocks Normal Operation Full Calibration Time (tZQoper) Determines the number of cycles that must be allowed for DRAM ZQ calibration when exiting self refresh. Each chip select is calibrated separately, and this time must elapse after the ZQCL command is issued for each chip select before a separate command may be issued. Reserved. Write to zero for future compatibility. 0111 128 clocks 1000 256 clocks 1001 512 clocks 1010 1024 clocks Normal Operation Short Calibration Time (tZQCS) Determines the number of cycles that must be allowed for DRAM ZQ calibration during dynamic calibration which is issued every 32 refresh cycles. Each chip select is calibrated separately, and this time must elapse after the ZQCS command is issued for each chip select before a separate command may be issued. 0000 1 clocks 0001 2 clocks 0010 4 clocks 0011 8 clocks 0100 16 clocks 0101 32 clocks — 23–20 ZQOPER 19–16 — 15–12 ZQCS 11–8 0 0 0 0 Settings 0 ZQ Calibration is not used. 1 ZQ Calibration is used. A ZQCL command is issued by the DDR controller after power-on reset and anytime the DDR controller exits self refresh. A ZQCS command is issued every 32 refresh sequences to account for VT variations. All other values reserved. All other values reserved. 0110 64 clocks 0111 128 clocks 1000 256 clocks 1001 512 clocks All other values reserved. — 7–0 0 Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-83 DDR SDRAM Memory Controller 12.8.21 DDR Write Leveling Control (MnDDR_WRLVL_CNTL) DDR_WRLVL_CNTL Bit 31 30 DDR Write Leveling Control 29 28 27 26 25 24 23 WRLVL_MRD — WRLVL _EN 22 Offset 0x0174 19 18 — WRLVL_ODTEN 21 20 — WRLVL_DQSEN 17 16 Type Reset 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 WRLVL_SMPL Type Reset — WRLVL_WLR — WRLVL_START R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The DDR Write Leveling Control register provides controls for write leveling, as it is supported for DDR3 memory devices. Table 12-42 describes the DDR_WRLVL_CNTL fields. Table 12-42. DDR_WRLVL_CNTL Field Descriptions Bits Reset WRLVL_EN 31 0 Description Write Leveling Enable This bit determines if write leveling is used. If this bit is set, then the DDR controller performs write leveling immediately after initializing the DRAM. This bit should only be set if DDR3 memory is used (DDR_SDRAM_CFG[SDRAM_TYPE] = 3’b111). In addition, write leveling is not supported for DDR3 mirrored DIMMs. — 30–27 0 Reserved. Write to zero for future compatibility. WRLVL_ MRD 26–24 0 First DQS Pulse Rising Edge after Margining Mode Is Programmed (tWL_MRD) Determines how many cycles to wait after margining mode has been programmed before the first DQS pulse may be issued. This field is only relevant when DDR_WRLVL_CNTL[WRLVL_EN] is set. — 23 0 Reserved. Write to zero for future compatibility. WRLVL_ ODTEN 22–20 0 ODT Delay after Margining Mode Is Programmed (tWL_ODTEN) Determines how many cycles to wait after margining mode is programmed.until ODT is asserted.This field is only relevant when DDR_WRLVL_CNTL[WRLVL_EN] is set. — 19 0 Reserved. Write to zero for future compatibility. Settings 0 Write leveling is not used 1 Write leveling is used 000 001 010 011 100 101 110 111 1 clocks 2 clocks 4 clocks 8 clocks 16 clocks 32 clocks 64 clocks 128 clocks 000 001 010 011 100 101 110 111 1 clocks 2 clocks 4 clocks 8 clocks 16 clocks 32 clocks 64 clocks 128 clocks MSC8156 Reference Manual, Rev. 2 12-84 Freescale Semiconductor Memory Controller Programming Model Table 12-42. DDR_WRLVL_CNTL Field Descriptions (Continued) Bits Reset Description WRLVL_ DQSEN 18–16 0 DQS/DQS Delay after Margining Mode Is Programmed (tWL_DQSEN) Determines how many cycles to wait after margining mode has been programmed until DQS may be actively driven. This field is only relevant when DDR_WRLVL_CNTL[WRLVL_EN] is set. 000 001 010 011 100 101 110 111 1 clocks 2 clocks 4 clocks 8 clocks 16 clocks 32 clocks 64 clocks 128 clocks WRLVL_ SMPL 15–12 0 Write Leveling Sample Time Determines the number of cycles that must pass before the data signals are sampled after a DQS pulse during margining mode. This field should be programmed at least 6 cycles higher than tWLO to allow enough time for propagation delay and sampling of the prime data bits. This field is only relevant when DDR_WRLVL_CNTL[WRLVL_EN] is set. 0000 0001 0010 0011 0100 0101 1010 0111 1000 1001 1010 1011 1100 1101 1010 1111 Reserved (if DDR_ WRLVL_CNTL[WRL VL_EN] is set) 1 clocks 2 clocks 3 clocks 4 clocks 5 clocks 6 clocks 7 clocks 8 clocks 9 clocks 10 clocks 11 clocks 12 clocks 13 clocks 14 clocks 15 clocks 000 001 010 011 100 101 110 111 1 clocks 2 clocks 4 clocks 8 clocks 16 clocks 32 clocks 64 clocks 128 clocks — 11 0 Reserved. Write to zero for future compatibility. WRLVL_ WLR 10–8 0 Write Leveling Repetition Time Determines the number of cycles that must pass between DQS pulses during write leveling. This field is only relevant when DDR_WRLVL_CNTL[WRLVL_EN] is set. Settings MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-85 DDR SDRAM Memory Controller Table 12-42. DDR_WRLVL_CNTL Field Descriptions (Continued) Bits Reset Description — 7–5 0 Reserved. Write to zero for future compatibility. WRLVL_ START 4–0 0 Write Leveling Start Time Determines the value to use for the DQS_ADJUST for the first sample when write leveling is enabled. Settings 00000 0 clock delay 00001 1/8 clock delay 00010 1/4 clock delay 00011 3/8 clock delay 00100 1/2 clock delay 00101 5/8 clock delay 00110 3/4 clock delay 00111 7/8 clock delay 01000 1 clock delay 01001 9/8 clock delay 01010 5/4 clock delay 01011 11/8 clock delay 01100 3/2 clock delay 01101 13/8 clock delay 01110 7/4 clock delay 01111 15/8 clock delay 10000 2 clock delay 10001 17/8 clock delay 10010 9/4 clock delay 10011 19/8 clock delay 10100 5/2 clock delay 10101– 11111 Reserved MSC8156 Reference Manual, Rev. 2 12-86 Freescale Semiconductor Memory Controller Programming Model 12.8.22 DDR Write Leveling Control 2 (MnDDR_WRLVL_CNTL_2) DDR_WRLVL_CNTL_2 Bit 31 30 29 DDR Write Leveling Control 2 28 27 26 25 24 23 WRLVL_START_1 — 22 Offset 0x0190 21 20 — 19 18 17 16 WRLVL_START_2 Type Reset 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 WRLVL_START_3 — Type Reset — WRLVL_START_4 R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The DDR Write Leveling Control 2 register provides controls for write leveling, as it is supported for DDR3 memory devices. This register specifically defines the starting points for the individual data strobes. Table 12-43 describes the DDR_WRLVL_CNTL_2 fields. Table 12-43. DDR_WRLVL_CNTL_2 Field Descriptions Bits Reset Description — 31–29 0 Reserved. Write to zero for future compatibility. WRLVL_ START_1 28–24 0 Write Leveling Start Time for DQS1 Determines the value to use for the DQS_ADJUST for the first sample when write leveling is enabled. Settings 00000 Use value from DDR_WRLVL_CNTL [WRLVL_START] 00001 1/8 clock delay 00010 1/4 clock delay 00011 3/8 clock delay 00100 1/2 clock delay 00101 5/8 clock delay 00110 3/4 clock delay 00111 7/8 clock delay 01000 1 clock delay 01001 9/8 clock delay 01010 5/4 clock delay 01011 11/8 clock delay 01100 3/2 clock delay 01101 13/8 clock delay 01110 7/4 clock delay 01111 15/8 clock delay 10000 2 clock delay 10001 17/8 clock delay 10010 9/4 clock delay 10011 19/8 clock delay 10100 5/2 clock delay 10101– 11111 Reserved MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-87 DDR SDRAM Memory Controller Table 12-43. DDR_WRLVL_CNTL_2 Field Descriptions (Continued) Bits Reset Description — 23–21 0 Reserved. Write to zero for future compatibility. WRLVL_ START_2 20–16 0 Write Leveling Start Time for DQS2 Determines the value to use for the DQS_ADJUST for the first sample when write leveling is enabled. — 15–13 0 Reserved. Write to zero for future compatibility. WRLVL_ START_3 12–8 0 Write Leveling Start Time for DQS3 Determines the value to use for the DQS_ADJUST for the first sample when write leveling is enabled. Settings 00000 Use value from DDR_WRLVL_CNTL [WRLVL_START] 00001 1/8 clock delay 00010 1/4 clock delay 00011 3/8 clock delay 00100 1/2 clock delay 00101 5/8 clock delay 00110 3/4 clock delay 00111 7/8 clock delay 01000 1 clock delay 01001 9/8 clock delay 01010 5/4 clock delay 01011 11/8 clock delay 01100 3/2 clock delay 01101 13/8 clock delay 01110 7/4 clock delay 01111 15/8 clock delay 10000 2 clock delay 10001 17/8 clock delay 10010 9/4 clock delay 10011 19/8 clock delay 10100 5/2 clock delay 10101– 11111 Reserved 00000 Use value from DDR_WRLVL_CNTL [WRLVL_START] 00001 1/8 clock delay 00010 1/4 clock delay 00011 3/8 clock delay 00100 1/2 clock delay 00101 5/8 clock delay 00110 3/4 clock delay 00111 7/8 clock delay 01000 1 clock delay 01001 9/8 clock delay 01010 5/4 clock delay 01011 11/8 clock delay 01100 3/2 clock delay 01101 13/8 clock delay 01110 7/4 clock delay 01111 15/8 clock delay 10000 2 clock delay 10001 17/8 clock delay 10010 9/4 clock delay 10011 19/8 clock delay 10100 5/2 clock delay 10101– 11111 Reserved MSC8156 Reference Manual, Rev. 2 12-88 Freescale Semiconductor Memory Controller Programming Model Table 12-43. DDR_WRLVL_CNTL_2 Field Descriptions (Continued) Bits Reset Description — 7–5 0 Reserved. Write to zero for future compatibility. WRLVL_ START_4 4–0 0 Write Leveling Start Time for DQS4 Determines the value to use for the DQS_ADJUST for the first sample when write leveling is enabled. Settings 00000 Use value from DDR_WRLVL_CNTL [WRLVL_START] 00001 1/8 clock delay 00010 1/4 clock delay 00011 3/8 clock delay 00100 1/2 clock delay 00101 5/8 clock delay 00110 3/4 clock delay 00111 7/8 clock delay 01000 1 clock delay 01001 9/8 clock delay 01010 5/4 clock delay 01011 11/8 clock delay 01100 3/2 clock delay 01101 13/8 clock delay 01110 7/4 clock delay 01111 15/8 clock delay 10000 2 clock delay 10001 17/8 clock delay 10010 9/4 clock delay 10011 19/8 clock delay 10100 5/2 clock delay 10101– 11111 Reserved MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-89 DDR SDRAM Memory Controller 12.8.23 DDR Write Leveling Control 3 (MnDDR_WRLVL_CNTL_3) DDR_WRLVL_CNTL_3 Bit 31 30 29 DDR Write Leveling Control 3 28 27 26 25 24 23 WRLVL_START_5 — 22 Offset 0x0194 21 20 — 19 18 17 16 WRLVL_START_6 Type Reset 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 WRLVL_START_7 — Type Reset — WRLVL_START_8 R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 The DDR Write Leveling Control 3 register provides controls for write leveling, as it is supported for DDR3 memory devices. This register specifically defines the starting points for the individual data strobes. Table 12-43 describes the DDR_WRLVL_CNTL_3 fields. Table 12-44. DDR_WRLVL_CNTL_3 Field Descriptions Bits Reset Description — 31–29 0 Reserved. Write to zero for future compatibility. WRLVL_ START_5 28–24 0 Write Leveling Start Time for DQS5 Determines the value to use for the DQS_ADJUST for the first sample when write leveling is enabled. — 23–21 0 Reserved. Write to zero for future compatibility. Settings 00000 Use value from DDR_WRLVL_CNTL [WRLVL_START] 00001 1/8 clock delay 00010 1/4 clock delay 00011 3/8 clock delay 00100 1/2 clock delay 00101 5/8 clock delay 00110 3/4 clock delay 00111 7/8 clock delay 01000 1 clock delay 01001 9/8 clock delay 01010 5/4 clock delay 01011 11/8 clock delay 01100 3/2 clock delay 01101 13/8 clock delay 01110 7/4 clock delay 01111 15/8 clock delay 10000 2 clock delay 10001 17/8 clock delay 10010 9/4 clock delay 10011 19/8 clock delay 10100 5/2 clock delay 10101– 11111 Reserved MSC8156 Reference Manual, Rev. 2 12-90 Freescale Semiconductor Memory Controller Programming Model Table 12-44. DDR_WRLVL_CNTL_3 Field Descriptions (Continued) Bits Reset Description WRLVL_ START_6 20–16 0 Write Leveling Start Time for DQS6 Determines the value to use for the DQS_ADJUST for the first sample when write leveling is enabled. — 15–13 0 Reserved. Write to zero for future compatibility. WRLVL_ START_7 12–8 0 Write Leveling Start Time for DQS7 Determines the value to use for the DQS_ADJUST for the first sample when write leveling is enabled. Settings 00000 Use value from DDR_WRLVL_CNTL [WRLVL_START] 00001 1/8 clock delay 00010 1/4 clock delay 00011 3/8 clock delay 00100 1/2 clock delay 00101 5/8 clock delay 00110 3/4 clock delay 00111 7/8 clock delay 01000 1 clock delay 01001 9/8 clock delay 01010 5/4 clock delay 01011 11/8 clock delay 01100 3/2 clock delay 01101 13/8 clock delay 01110 7/4 clock delay 01111 15/8 clock delay 10000 2 clock delay 10001 17/8 clock delay 10010 9/4 clock delay 10011 19/8 clock delay 10100 5/2 clock delay 10101– 11111 Reserved 00000 Use value from DDR_WRLVL_CNTL [WRLVL_START] 00001 1/8 clock delay 00010 1/4 clock delay 00011 3/8 clock delay 00100 1/2 clock delay 00101 5/8 clock delay 00110 3/4 clock delay 00111 7/8 clock delay 01000 1 clock delay 01001 9/8 clock delay 01010 5/4 clock delay 01011 11/8 clock delay 01100 3/2 clock delay 01101 13/8 clock delay 01110 7/4 clock delay 01111 15/8 clock delay 10000 2 clock delay 10001 17/8 clock delay 10010 9/4 clock delay 10011 19/8 clock delay 10100 5/2 clock delay 10101– 11111 Reserved MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-91 DDR SDRAM Memory Controller Table 12-44. DDR_WRLVL_CNTL_3 Field Descriptions (Continued) Bits Reset Description — 7–5 0 Reserved. Write to zero for future compatibility. WRLVL_ START_8 4–0 0 Write Leveling Start Time for DQS8 Determines the value to use for the DQS_ADJUST for the first sample when write leveling is enabled. Settings 00000 Use value from DDR_WRLVL_CNTL [WRLVL_START] 00001 1/8 clock delay 00010 1/4 clock delay 00011 3/8 clock delay 00100 1/2 clock delay 00101 5/8 clock delay 00110 3/4 clock delay 00111 7/8 clock delay 01000 1 clock delay 01001 9/8 clock delay 01010 5/4 clock delay 01011 11/8 clock delay 01100 3/2 clock delay 01101 13/8 clock delay 01110 7/4 clock delay 01111 15/8 clock delay 10000 2 clock delay 10001 17/8 clock delay 10010 9/4 clock delay 10011 19/8 clock delay 10100 5/2 clock delay 10101– 11111 Reserved MSC8156 Reference Manual, Rev. 2 12-92 Freescale Semiconductor Memory Controller Programming Model 12.8.24 DDR Pre-Drive Conditioning Control (MnDDR_PD_CNTL) DDR_PD_CNTL Bit 31 30 DDR Pre_Drive Conditioning Control 29 28 27 26 25 24 0 6 — 23 Type Reset 0 0 0 0 0 0 0 PDAR R/W 0 0 Bit 15 14 13 12 11 10 9 8 TVPD PD_EN PDAW Type Reset 0 0 0 — 0 0 0 0 7 PD_ON R/W 0 0 22 Offset 0x0178 21 20 19 18 16 0 0 0 0 0 0 5 4 3 2 1 0 0 0 PD_OFF — 0 17 PDAW — 0 0 0 0 The DDR Pre-Drive Conditioning Control register provides controls for asserting termination at the on-chip I/Os prior to driving DQS/DQ for write commands. Table 12-45 describes the DDR_PD_CNTL fields. Table 12-45. DDR_PD_CNTL Field Descriptions Bits Reset PD_EN 31 0 Description 0 Pre-Drive Conditioning Enable This bit determines whether termination is asserted to the on-chip I/Os prior to write commands. This helps bring DRAM/IO 1 terminated signals near VREF before driving an active preamble. The result is a more symmetrical eye with less overshoot on the first rising edge of these signals. TVPD 30–28 0 Termination Value During Pre-drive Conditioning This represents the value of the termination that is used during pre-drive conditioning. — 27 0 Reserved. Write to zero for future compatibility. PDAR 26–20 0 Pre-Drive After Read If pre-drive conditioning is enabled, it may not be desirable to assert termination to the on-chip IOs immediately after a prior read. This field represents the number of cycles that must pass after a previous read is issue before pre-drive conditioning is available for a future write. Note that the decision to use pre-drive conditioning is made at the time the write command is issued. — 19 0 Settings 000 001 010 011 100 101 110 111 Pre-drive conditioning is not used Pre-drive conditioning is used 75 ohms 60 ohms 150 ohms 120 ohms 46 ohms 43 ohms 33 ohms Reserved 0000000 0000001 0000010 ... 1111111 0 clocks 1 clocks 2 clocks 127 clocks Note: The value represents the actual number of clocks to use Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-93 DDR SDRAM Memory Controller Table 12-45. DDR_PD_CNTL Field Descriptions (Continued) Bits Reset Description PDAW 18–12 0 Pre-Drive After Write If pre-drive conditioning is enabled, it may not be desirable to assert termination to the on-chip IOs immediately after a prior write. This field represents the number of cycles that must pass after a previous write is issue before pre-drive conditioning is available for a future write. Note that the decision to use pre-drive conditioning is made at the time the write command is issued. — 11 0 Reserved. Write to zero for future compatibility. PD_ON 10–6 0 Pre-Drive Conditioning On Specifies the number of cycles that passes from when a write command is placed on the DRAM bus until the assertion of termination at the on-chip IOs. Note that DDR_PD_CNTL[PD_ON] + DDR_PD_CNTL[PD_OFF} should not be greater than 31. Settings 0000000 0000001 0000010 ... 1111111 0 clocks 1 clocks 2 clocks 127 clocks Note: The value represents the actual number of clocks to use 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 Reserved 1 clocks 2 clocks 3 clocks 4 clocks 5 clocks 6 clocks 7 clocks 8 clocks 9 clocks 10 clocks 11 clocks 12 clocks 13 clocks 14 clocks 15 clocks 16 clocks 17 clocks 18 clocks 19 clocks 20 clocks 21 clocks 22 clocks 23 clocks 24 clocks 25 clocks 26 clocks 27 clocks 28 clocks 29 clocks 30 clocks 31 clocks MSC8156 Reference Manual, Rev. 2 12-94 Freescale Semiconductor Memory Controller Programming Model Table 12-45. DDR_PD_CNTL Field Descriptions (Continued) Bits Reset Description — 5 0 Reserved. Write to zero for future compatibility. PD_OFF 4–0 0 Pre-Drive Conditioning Off Specifies the number of cycles that the termination at the on-chip IOs remains asserted prior to a write transaction. Note that DDR_PD_CNTL[PD_ON] + DDR_PD_CNTL[PD_OFF} should note be greater than 31. Settings 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 Reserved 1 clocks 2 clocks 3 clocks 4 clocks 5 clocks 6 clocks 7 clocks 8 clocks 9 clocks 10 clocks 11 clocks 12 clocks 13 clocks 14 clocks 15 clocks 16 clocks 17 clocks 18 clocks 19 clocks 20 clocks 21 clocks 22 clocks 23 clocks 24 clocks 25 clocks 26 clocks 27 clocks 28 clocks 29 clocks 30 clocks 31 clocks MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-95 DDR SDRAM Memory Controller 12.8.25 DDR Self Refresh Counter (MnDDR_SR_CNTR) DDR_SR_CNTR Bit 31 30 DDR Self Refresh Counter 29 28 27 26 25 24 23 22 Offset 0x017C 21 20 19 18 — 17 16 SR_IT Type Reset 0 0 0 0 0 0 R 0 0 0 0 0 0 0 0 R/W 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 — R Type Reset 0 0 0 0 0 0 0 0 DDR_SR_CNTR can be programmed to force the DDR controller to enter self refresh after a predefined period of idle time. Table 12-46. DDR_SR_CNTR Bit Descriptions Bit Reset Description — 31–20 SR_IT 19–16 0 Reserved. Write to zero for future compatibility. 0 Self Refresh Idle Threshold Defines the number of DRAM cycles that must pass while the DDR controller is idle before it enters self refresh. Anytime a transaction is issued to the DDR controller, it resets its internal counter. When a new transaction is received by the DDR controller, it exits self refresh and reset its internal counter. If this field is zero, then the described power savings feature is disabled. In addition, if a non-zero value is programmed into this field, then the DDR controller exits self refresh anytime a transaction is issued to the DDR controller, regardless of the reason self refresh was initially entered. — 15–0 0 Reserved. Write to zero for future compatibility. Settings 0000 Automatic self refresh entry disabled 0001 210 DRAM clocks 0010 212 DRAM clocks 0011 214 DRAM clocks 0100 216 DRAM clocks 0101 218 DRAM clocks 0110 220 DRAM clocks 0111 222 DRAM clocks 1000 224 DRAM clocks 1001 226 DRAM clocks 1010 228 DRAM clocks 1011 230 DRAM clocks 1100-1111 Reserved MSC8156 Reference Manual, Rev. 2 12-96 Freescale Semiconductor Memory Controller Programming Model 12.8.26 DDR SDRAM Register Control Words 1 (MnDDR_SDRAM_RCW_1) DDR_SDRAM_RCW_1 Bit 31 30 29 DDR SDRAM Register Control Word 1 28 27 RCW0 26 25 24 23 RCW1 22 21 Offset 0x0180 20 19 RCW2 18 17 16 RCW3 Type Reset 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RCW4 Type Reset RCW5 RCW6 RCW7 R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DDR_SDRAM_RCW_1 should be programmed with the intended values of the register control words if DDR_SDRAM_CFG[RCW_EN] is set. Each 4-bit field represents the value that is placed on MA3, MA4, MBA0, and MBA1 during register control word writes. Table 12-47. DDR_SDRAM_RCW_1 Bit Descriptions Bit Reset Description RCW0 31–28 0 RCW1 27–24 0 RCW2 23–20 0 RCW3 19–16 0 RCW4 15–12 0 RCW5 11–8 0 RCW6 7–4 0 RCW7 3–0 0 Register Control Word 0 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 0. Register Control Word 1 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 1. Register Control Word 2 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 2. Register Control Word 3 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 3. Register Control Word 4 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 4. Register Control Word 5 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 5. Register Control Word 6 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 6. Register Control Word 7 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 7. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-97 DDR SDRAM Memory Controller 12.8.27 DDR SDRAM Register Control Words 2 (MnDDR_SDRAM_RCW_2) DDR_SDRAM_RCW_2 Bit 31 30 29 DDR SDRAM Register Control Word 2 28 27 RCW8 26 25 24 23 RCW9 22 21 Offset 0x0184 20 19 RCW10 18 17 16 RCW11 Type Reset 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RCW12 Type Reset RCW13 RCW14 RCW15 R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DDR_SDRAM_RCW_2 should be programmed with the intended values of the register control words if DDR_SDRAM_CFG[RCW_EN] is set. Each 4-bit field represents the value that is placed on MA3, MA4, MBA0, and MBA1 during register control word writes. Table 12-48. DDR_SDRAM_RCW_2 Bit Descriptions Bit Reset Description RCW8 31–28 0 RCW9 27–24 0 RCW10 23–20 0 RCW11 19–16 0 RCW12 15–12 0 RCW13 11–8 0 RCW14 7–4 0 RCW15 3–0 0 Register Control Word 8 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 8. Register Control Word 9 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 9. Register Control Word 10 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 10. Register Control Word 11 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 11. Register Control Word 12 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 12. Register Control Word 13 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 13. Register Control Word 14 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 14. Register Control Word 15 Represents the value that is placed on MBA[1], MBA[0], MA[4], and MA[3] during writes to register control word 15. MSC8156 Reference Manual, Rev. 2 12-98 Freescale Semiconductor Memory Controller Programming Model 12.8.28 DDR Debug Status Register 1 (MnDDRDSR_1) DDRDSR_1 Bit 31 DDR Debug Status Register 1 30 29 DDRDC 28 27 26 23 25 24 0 0 0 6 5 4 Type Reset 0 0 0 0 0 0 0 MDICNZ R 0 0 Bit 15 14 13 12 11 10 9 8 MDICPZ CPZ Type Reset 22 Offset 0x0B20 21 20 19 18 17 16 0 0 0 0 3 2 1 0 0 0 — 7 CNZ DPZ DNZ R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DDRDSR_1 contains the DDR driver compensation input value and the current settings of the P and N FET impedance for MDICn, command/control, and data. Note: This register is read only Table 12-49. DDRDSR_1 Bit Descriptions Bit Reset Description DDRDC 31–30 MDICPZ 29–26 MDICNZ 25–22 — 21–16 CPZ 15–12 CNZ 11–8 DPZ 7–4 DNZ 3–0 0 DDR Driver Compensation Input Value 0 Current Setting of PFET Driver MDIC Impedance 0 Current Setting of NFET Driver MDIC Impedance 0 Reserved. Always read as zero 0 Current Setting of PFET Driver Command Impedance 0 Current Setting of NFET Driver Command Impedance 0 Current Setting of PFET Driver Data Impedance 0 Current Setting of NFET Driver Data Impedance MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-99 DDR SDRAM Memory Controller 12.8.29 DDR Debug Status Register 2 (MnDDRDSR_2) DDRDSR_2 Bit 31 DDR Debug Status Register 2 30 29 28 27 26 CLKPZ 25 24 23 22 Offset 0x0B24 21 20 CLKNZ 19 18 17 16 — Type Reset 0 0 0 0 0 0 0 0 R 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 — R Type Reset 0 0 0 0 0 0 0 0 DDRDSR_2 contains the current settings of the P and N FET impedance for the DDR drivers for clocks. Note: This register is read only Table 12-50. DDRDSR_2 Bit Descriptions Bit Reset CLKPZ 31–28 CLKNZ 27–24 — 23–0 0 Current Setting of PFET Driver Clock Impedance 0 Current Setting of NFET Driver Clock Impedance 0 Reserved. Always read as zero 12.8.30 Description DDR Control Driver Register 1 (MnDDRCDR_1) DDRCDR_1 Bit 31 DDR Control Driver Register 1 30 29 DHC_ DSO_ EN MDIC_ EN 28 27 26 25 DSO_MDICPZ 24 23 22 DSO_MDICNZ Offset 0x0B28 21 20 19 DSO_ DSO_ MDIC_ MDIC_ PZ_OE NZ_OE 18 17 16 DSO_ DSO_ C_EN D_EN ODT Type Reset 0 0 0 0 0 0 0 0 R/W 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DSO_CPZ Type Reset DSO_CNZ DSO_DPZ DSO_DNZ R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DDRCDR_1 sets the driver hardware compensation enable, the DDR MDIC driver P/N impedance, ODT termination value for IOs, driver software override enable for MDIC, driver software override enable for address/command, driver software override enable for data, the DDR address/command driver P/N impedance, and the DDR data driver P/N impedance. MSC8156 Reference Manual, Rev. 2 12-100 Freescale Semiconductor Memory Controller Programming Model Table 12-51. DDRCDR_1 Bit Descriptions Bit Reset DHC_EN 31 DSO_MDIC_ EN 30 0 DDR Driver Hardware Compensation Enable 0 Driver Software Override Enable for MDIC DSO_MDICPZ 29–26 DSO_ MDICNZ 25–22 DSO_MDIC_ PZ_OE 21 DSO_MDIC_ NZ_OE 20 ODT 19–18 0 Driver Software Override Value for MDIC P-Impedance Driver Software Override Value for MDIC N-Impedance DSO_C_EN 17 DSO_D_EN 16 DSO_CPZ 15–12 DSO_CNZ 11–8 DSO_DPZ 7–4 DSO_DNZ 3–0 0 0 0 0 0 0 0 0 0 0 Description Driver Software Override Output Enable for P-Impedance This field is effective only if DSO_MDIC_EN is set Driver Software Override Output Enable for N-Impedance This field is effective only if DSO_MDIC_EN is set ODT Termination Value for I/Os This is combined with DDRCDR_2[ODT] to determine the termination value. The termination value is based on concatenating these 2 fields (DDRCDR_1[ODT]|DDRCDR_2[ODT]) Driver Software Override Enable for Address/Command Driver Software Override Enable for Data Settings 0 Hardware compensation disabled. 1 Hardware compensation enabled. 0 Software override for MDIC disabled. 1 Software override for MDIC enabled. 0 Output disabled. 1 Output enabled. 0 Output disabled. 1 Output enabled. 000 75 ohm (JEDEC DDR2) 001 55 ohm 010 60 ohm (JEDEC DDR3) 011 50 ohm (JEDEC DDR2) 100 150 ohm (JEDEC DDR2) 101 43 ohm 110 120 ohm (JEDEC DDR3) 111 Reserved 0 Override disabled. 1 Override enabled. 0 Override disabled. 1 Override enabled. DDR Driver Software Override Value for Command P-Impedance Override. DDR Driver Software Override Value for Command N-Impedance Override. DDR Driver Software Override Value for Data P-Impedance Override. DDR Driver Software Override Value for Data N-Impedance Override. The fields in DDRCDR_1, other than DDRCDR_1[ODT], are used to enable driver calibration with the MDIC[0–1] pins. This can be used to calibrate the DDR drivers to 18 ohms. However, this should only be used for full-strength driver applications. If half strength is desired, then this calibration should remain disabled. The hardware DDR driver calibration is enabled via DDRCDR_1[DHC_EN]. Note: All Driver Calibration setting, either software or hardware, should be set before DDR_SDRAM_CFG[MEM_EN] is set. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-101 DDR SDRAM Memory Controller Software can be used to calibrate the drivers instead of the automatic hardware calibration. If software calibration is used, the following steps should be taken: 1. Set DDRCDR_1[DSO_MDIC_EN] and ensure that DDRCDR_1[DHC_EN] is cleared 2. Set the highest impedance (value 0000) for DDRCDR_1[DSO_MDICPZ] 3. Set DDRCDR_1[DSO_MDIC_PZ_OE] to enable the output enable for MDIC[0] 4. After at least 4 cycles, read DDRDSR_1[0]. If the value is 0, then use the next lowest impedance, and read DDRDSR_1[0] again. Once a value of 1 is detected, then leave DDRCDR_1[DSO_MDICPZ] at the calibrated value 5. Clear DDRCDR_1[DSO_MDIC_PZ_OE] 6. After DDRCDR_1[DSO_MDICPZ} is calibrated, set a value of 0000 for DDRCDR_1[DSO_MDICNZ] 7. Set DDRCDR_1[DSO_MDIC_NZ_OE] to enable the output enable for MDIC[1] 8. After at least 4 cycles, read DDRDSR_1[1]. If the value is 1, then use the next lowest impedance, and read DDRDSR_1[1] again. Once a value of 0 is detected, then leave DDRCDR_1[DSO_MDICNZ] at the calibrated value 9. Clear DDRCDR_1[DSO_MDIC_NZ_OE] The legal impedance values (from highest impedance to lowest impedance) for DDR2 (1.8 V) are: 0000 lowest strength/highest impedance 0001 0011 0010 0110 0111 half strength - used when driver calibration is not used by setting DDR_SDRAM_CFG[HSE] 0101 0100 1100 1101 1111 1110 1010 1011 full strength (default) 1001 1000 highest strength/lowest impedance MSC8156 Reference Manual, Rev. 2 12-102 Freescale Semiconductor Memory Controller Programming Model The legal impedance values (from highest impedance to lowest impedance) for DDR3 (1.5 V) are: Note: 0000 lowest strength/highest impedance 0001 0011 0010 0110 0111 half strength - used when driver calibration is not used by setting DDR_SDRAM_CFG[HSE] 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 highest strength/lowest impedance (default) Drivers may either be calibrated to full-strength or half-strength MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-103 DDR SDRAM Memory Controller 12.8.31 DDR Control Driver Register 2 (MnDDRCDR_2) DDRCDR_2 Bit 31 DSO_ CLK_ EN Type R/W Reset 0 Bit 15 Type Reset 0 DDR Control Driver Register 2 30 29 28 27 26 25 24 23 DSO_CLKPZ — 22 Offset 0x0B2C 21 20 19 18 DSO_CLKNZ 17 16 — 0 R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 — R 0 0 ODT R/W 0 0 0 R/W 0 0 0 R 0 0 0 0 0 0 DDRCDR_2 sets the driver software override enable for clocks, and the DDR clocks driver P/N impedance. Table 12-52. DDRCDR_2 Bit Descriptions Bit Reset DSO_CLK_ EN 31 — 30–28 DSO_CLKPZ 27–24 DSO_CLKNZ 23–20 — 19–1 ODT 0 0 Driver Software Override Enable for Clocks 0 Reserved. Write to zero for future compatibility. 0 DDR Driver Software Override Value for Clocks P-Impedance Override DDR Driver Software Override Value for Clocks N-Impedance Override Reserved. Write to zero for future compatibility. 0 0 0 Description ODT Termination Value for I/Os This is combined with DDRCDR_1[ODT] to determine the termination value. The termination value is based on concatenating these 2 fields (DDRCDR_1[ODT]|DDRCDR_2[ODT]). Settings 0 Software override disabled. 1 Software override enabled. 000 75 ohm (JEDEC DDR2) 001 55 ohm 010 60 ohm (JEDEC DDR3) 011 50 ohm (JEDEC DDR2) 100 150 ohm (JEDEC DDR2) 101 43 ohm 110 120 ohm (JEDEC DDR3) 111 Reserved MSC8156 Reference Manual, Rev. 2 12-104 Freescale Semiconductor Memory Controller Programming Model 12.8.32 DDR SDRAM IP Block Revision 1 Register (MnDDR_IP_REV1) DDR_IP_REV1 Bit 31 DDR SDRAM IP Block Revision 1 Register 30 29 28 27 26 25 24 23 Offset 0x0BF8 22 21 20 19 18 17 16 IP_ID R Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 IP_MJ Type Reset IP_MN R 0 0 0 0 0 1 0 0 0 0 0 0 0 DDR_IP_REV1 provides read-only fields with the IP block ID, along with major and minor revision information. Table 12-53. DDR_IP_REV1 Bit Descriptions Bit Reset IP_ID 31–16 IP_MJ 15–8 IP_MN 7–0 0x0002 12.8.33 Description 0x04 IP Block ID For the DDR controller. Major Revision 0x00 Minor Revision DDR SDRAM IP Block Revision 2 Register (MnDDR_IP_REV2) DDR_IP_REV2 Bit 31 DDR SDRAM IP Block Revision 2 Register 30 29 28 27 26 25 24 23 22 21 — Offset 0x0BFC 20 19 18 17 16 IP_INIT Type Reset 0 0 0 0 0 0 0 0 R 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 — Type Reset IP_CFG R 0 0 0 0 0 0 0 0 0 0 0 0 0 DDR_IP_REV2 provides read-only fields with the IP block integration and configuration options. Table 12-54. DDR_IP_REV2 Bit Descriptions Bit Reset — 31–24 IP_INT 23–16 0 Reserved. Always read as zero Description 0 IP Block Integration Options MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-105 DDR SDRAM Memory Controller Table 12-54. DDR_IP_REV2 Bit Descriptions (Continued) Bit Reset — 15–8 IP_CFG 7–0 0 Reserved. Always read as zero 0 IP Block Configuration Options 12.8.34 Description DDR SDRAM Memory Data Path Error Injection Mask High Register (MnDATA_ERR_INJECT_HI) DATA_ERR_INJECT_HI Bit 31 30 29 28 DDR SDRAM Memory Data Path Error Injection Mask High Register 27 26 25 24 23 22 21 Offset 0x0E00 20 19 18 17 16 EIMH R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 EIMH R/W Type Reset 0 0 0 0 0 0 0 0 DATA_ERR_INJECT_HI register is used to inject ECC errors for the 32-msb of a 64-bit SDRAM data bus interfaces. Table 12-55. DATA_ERR_INJECT_HI Bit Descriptions Bit Reset Description EIMH 31–0 0 Error Injection Mask High Data Path Tests ECC by forcing errors on the highest 32 bits of the data path. When error injection is enabled, setting a bit causes the corresponding data path bit to be inverted during memory bus writes. 12.8.35 DDR SDRAM Memory Data Path Error Injection Mask Low Register (MnDATA_ERR_INJECT_LO) DATA_ERR_INJECT_LO Bit 31 30 29 28 DDR SDRAM Memory Data Path Error Injection Mask Low Register 27 26 25 24 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 EIML R/W Type Reset 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 Type Reset 23 Offset 0x0E04 EIML R/W 0 0 0 0 0 0 0 0 MSC8156 Reference Manual, Rev. 2 12-106 Freescale Semiconductor Memory Controller Programming Model DATA_ERR_INJECT_LO register is used to inject ECC errors for the 32-lsb of a 64-bit SDRAM data bus interfaces. Table 12-56. DATA_ERR_INJECT_LO Bit Descriptions Bit Reset Description EIML 31–0 0 Error Injection Mask Low Data Path Tests ECC by forcing errors on the lowest 32 bits of the data path. When the Error Injection is enabled, setting a bit causes the corresponding data path bit to be inverted during memory bus writes. 12.8.36 DDR SDRAM Memory Data Path Error Injection Mask ECC Register (MnERR_INJECT) ERR_INJECT Bit 31 DDR SDRAM Memory Data Path Error Injection Mask ECC Register 30 29 28 27 26 25 24 0 0 0 0 0 7 6 5 4 Type Reset 0 0 0 0 0 0 0 — R 0 Bit 15 14 13 12 11 10 9 8 0 — R 0 Type Reset 0 0 23 22 Offset 0x0E08 21 20 EIEN 0 0 0 0 0 0 0 19 18 17 16 0 0 APIEN R/W 0 3 2 1 0 EEIM R/W 0 0 0 0 0 ERR_INJECT register sets the ECC mask, enables errors to be written to ECC memory. In addition, a single address parity error can be injected through this register. Table 12-57. ERR_INJECT Bit Descriptions Bit Reset Description — 31–17 APIEN 15 0 Reserved. Write to zero for future compatibility. 0 Address Parity Error Injection Enable. This bit is cleared by hardware after a single address parity error has been injected. — 15–9 EIEN 8 0 Reserved. Write to zero for future compatibility. 0 EEIM 7–0 0 Error Injection Enable Enables/disables injection of errors. This applies to the data mask bits and to the ECC mask bits. Note: Error injection should not be enabled until the memory controller has been enabled through DDR_SDRAM_CFG[MEM_EN]. ECC Error Injection Mask (0–7) Setting a mask bit causes the corresponding ECC bit to be inverted during memory bus writes. Settings 0 Address parity error injection disabled. 1 Address parity error injection enabled. 0 Error injection disabled. 1 Error injection enabled. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-107 DDR SDRAM Memory Controller 12.8.37 DDR SDRAM Memory Data Path Read Capture Data High Register (MnCAPTURE_DATA_HI) CAPTURE_DATA_HI Bit 31 30 29 DDR SDRAM Memory Data Path Read Capture Data High Register 28 27 26 25 24 23 22 Offset 0x0E20 21 20 19 18 17 16 Type Reset 0 0 0 0 0 0 0 ECHD R/W 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 ECHD R/W 0 0 0 0 0 0 0 0 0 Type Reset 0 0 0 0 0 0 CAPTURE_DATA_HI stores the high 32 bits of the read data path during error capture. Table 12-58. CAPTURE_DATA_HI Bit Descriptions Bit Reset ECHD 31–0 0 12.8.38 Description Error Capture High Data Path Captures the high 32 bits of the data path when errors are detected. DDR SDRAM Memory Data Path Read Capture Data Low Register (MnCAPTURE_DATA_LO) CAPTURE_DATA_LO Bit 31 30 29 DDR SDRAM Memory Data Path Read Capture Data Low Register 28 27 26 25 24 23 22 Offset 0x0E24 21 20 19 18 17 16 ECLD R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 ECLD R/W Type Reset 0 0 0 0 0 0 0 0 CAPTURE_DATA_LO stores the low 32 bits of the read data path during error capture. Table 12-59. CAPTURE_DATA_LO Bit Descriptions Bit Reset ECLD 31–0 0 Description Error Capture Low Data Path Captures the low 32 bits of the data path when errors are detected. MSC8156 Reference Manual, Rev. 2 12-108 Freescale Semiconductor Memory Controller Programming Model 12.8.39 DDR SDRAM Memory Data Path Read Capture ECC Register (MnCAPTURE_ECC) CAPTURE_ECC Bit 31 30 DDR SDRAM Memory Data Path Read Capture ECC Register 29 28 27 26 25 24 23 22 Offset 0x0E28 21 20 19 18 17 16 — R Type Reset 0 0 0 0 0 0 0 0 0 0 0 ECE-32 R/W 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 ECE-64 R/W 0 0 0 0 0 — R Type Reset 0 0 0 0 0 0 0 0 0 0 CAPTURE_ECC stores the ECC syndrome bits on the data bus when an error is detected. Table 12-60. CAPTURE_ECC Bit Descriptions Bit Reset — 31–24 ECE-64 23–16 — 15–8 ECE-64 7–0 0 Reserved. Write to zero for future compatibility. 0 Error Capture ECC In 32-bit bus mode, captures the ECC bits of the 1st 32-bits when errors are detected Reserved. Write to zero for future compatibility. 0 0 12.8.40 Description Error Capture ECC In 64-bit bus mode, captures the ECC bits of entire bus when errors are detected. (0–7) In 32-bit bus mode. captures the ECC bits of the 2nd 32-bits when errors are detected DDR SDRAM Memory Error Detect Register (MnERR_DETECT) ERR_DETECT Bit 31 Type Reset MME W1C 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 0 — R 0 0 Type Reset Note: 0 30 DDR SDRAM Memory Error Detect Register 29 28 27 26 25 24 23 22 21 Offset 0x0E40 20 19 18 17 16 — 0 0 0 0 R 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 0 APE W1C 0 ACE W1C 0 0 — R 0 — R 0 MSE W1C 0 0 MBE SBE W1C 0 0 W1C - Write 0b1 to clear the bit, writing 0b0 as no effect. ERR_DETECT stores the detection bits for multiple memory errors, single- and multiple-bit ECC errors, calibration error, and memory select errors. Each bit is cleared when software writes a value of 1 to it. System software can determine the type of memory error by examining the MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-109 DDR SDRAM Memory Controller contents of this register. If an error is disabled with ERR_DISABLE, the corresponding error is never detected or captured in ERR_DETECT. Table 12-61. ERR_DETECT Bit Descriptions Bit Reset MME 31 0 Description Settings Multiple Memory Errors Indicates whether multiple memory errors of the same type were detected. This bit is cleared by software writing a 1 to it. — 30–9 APE 8 0 Reserved. Write to zero for future compatibility. 0 ACE 7 0 Address parity error. Indicates whether an address parity error was detected. This bit is cleared by software writing a 1 to it. Automatic Calibration Error Indicates whether an automatic calibration error was detected. This bit is cleared by software writing a 1 to it. — 6–4 MBE 3 0 Reserved. Write to zero for future compatibility. 0 Multiple-Bit Error Indicates whether a multiple-bit error was detected. This bit is cleared by software writing a 1 to it. Single-Bit ECC Error Indicates whether the number of single-bit ECC errors detected is equal to the threshold set in ERR_SBE[SBET]. This bit is cleared by software writing a 1 to it. Reserved. Write to zero for future compatibility. SBE 2 — 1 MSE 0 0 0 12.8.41 Memory Select Error Indicates whether a memory select error has been detected. This bit is cleared by software writing a 1 to it. 31 Multiple memory errors were not detected. 1 Multiple memory errors of the same type were detected. 0 An address parity error has not been detected. 1 An address parity error has been detected 0 Automatic calibration Error has not been detected. 1 Automatic calibration Error has been detected.. 0 Multiple-bit error not detected. 1 Multiple-bit error detected. 0 The number of errors is less than the threshold. 1 The number of errors is equal or greater than the threshold. 0 Memory select error not detected. 1 Memory select error detected. DDR SDRAM Memory Error Disable Register (MnERR_DISABLE) ERR_DISABLE Bit 0 30 DDR SDRAM Memory Error Disable Register 29 28 27 26 25 24 Offset 0x0E44 23 22 21 20 19 18 17 16 — R Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 — R 0 0 — R 0 — R 0 MSED R/W 0 Type Reset 0 0 0 0 0 APED ACED R/W R/W 0 0 0 MBED SBED R/W 0 0 ERR_DISABLE selectively disables the DDR controller error detection circuitry. Disabled errors are not detected or reported. MSC8156 Reference Manual, Rev. 2 12-110 Freescale Semiconductor Memory Controller Programming Model Table 12-62. ERR_DISABLE Bit Descriptions Bit Reset Description — 31–9 APED 8 0 Reserved. Write to zero for future compatibility. 0 ACED 7 0 Address parity error disable Address parity errors are detected if DDR_SDRAM_CFG_2[AP_EN] is set. They are reported if ERR_INT_EN[APEE] is set. Automatic Calibration Error Disable Enables/disables automatic calibration errors detection — 6–4 MBED 3 0 Reserved. Write to zero for future compatibility. 0 SBED 2 0 Multiple-Bit ECC Error Disable Enables/disables multiple-bit ECC errors detection. When this bit is cleared, multiple-bit errors are detected if DDR_SDRAM_CFG[ECC_EN] is set. They are reported if ERR_INT_EN[MBEE] is set. Single-Bit ECC Error Disable Enables/disables single-bit ECC errors detection. 1 MSED 0 0 0 Reserved. Write to zero for future compatibility. Memory Select Error Disable Enables/disables memory select errors detection. Settings 0 Address parity errors are detected. 1 Address parity errors are not detected or reported. 0 Automatic Calibration errors enabled. 1 Automatic Calibration errors disabled. 0 Multiple-bit ECC errors detected 1 Multiple-bit ECC errors not detected or reported. 0 Single-bit ECC errors detection is enabled. 1 Single-bit ECC errors detection is disabled. 0 Memory select errors detection is enabled. 1 Memory select errors detection is disabled. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-111 DDR SDRAM Memory Controller 12.8.42 DDR SDRAM Memory Error Interrupt Enable Register (MnERR_INT_EN) ERR_INT_EN Bit 31 DDR SDRAM Memory Error Interrupt Enable Register 30 29 28 27 26 25 24 Offset 0x0E48 23 22 21 20 19 18 17 16 — R Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 — R 0 0 — R 0 — R 0 MSEE R/W 0 Type Reset 0 0 0 0 0 APEE ACEE R/W R/W 0 0 0 MBEE SBEE R/W 0 0 ERR_INT_EN enables ECC interrupts, calibration error, address/command parity error or memory select error interrupts. When an enabled interrupt condition occurs, the DDR Controller interrupt request signal is asserted to the embedded programmable interrupt controller (EPIC) Table 12-63. ERR_INT_EN Bit Descriptions Bit Reset — 31–9 APEE 8 0 Reserved. Write to zero for future compatibility. 0 Address parity error interrupt enable ACEE 7 0 Automatic Calibration Error Interrupt Enable Specifies whether automatic calibration errors generate interrupts. — 6–4 MBEE 3 Description Settings 0 Address parity errors cannot generate interrupts. 1 Address parity errors generate interrupts. 0 Calibration errors cannot generate interrupts. 1 Calibration errors generate interrupts. 0 Reserved. Write to zero for future compatibility. 0 Multiple-Bit ECC Error Interrupt Enable Specifies whether multiple-bit ECC errors generate interrupts. 0 Multiple-bit ECC errors cannot generate interrupts. 1 0 Multiple-bit ECC errors generate interrupts. Single-bit ECC errors cannot generate interrupts. SBEE 2 0 Single-Bit ECC Error Interrupt Enable Specifies whether single-bit ECC errors generate interrupts. — 1 MSEE 0 0 Reserved. Write to zero for future compatibility. Memory Select Error Interrupt Enable Specifies whether memory select errors generate interrupts. 1 Single-bit ECC errors generate interrupts. 0 Memory select errors do not generate interrupts. 1 Memory select errors generate interrupts. MSC8156 Reference Manual, Rev. 2 12-112 Freescale Semiconductor Memory Controller Programming Model 12.8.43 DDR SDRAM Memory Error Attributes Capture Register (MnCAPTURE_ATTRIBUTES) CAPTURE_ATTRIBUTES DDR SDRAM Memory Error Attributes Capture Register Bit 31 30 29 28 27 26 25 Type Reset — R 0 0 BNUM R/W 0 0 — R 0 0 TSIZ R/W 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 0 — R 0 Type Reset — R 0 24 23 0 0 0 0 0 21 20 19 18 17 16 0 0 0 0 0 4 3 2 1 0 0 VLD R/W 0 — R TTYP R/W 0 22 Offset 0x0E4C 0 0 0 0 0 CAPTURE_ATTRIBUTES sets attributes for errors including type, size, source, and so on. Table 12-64. CAPTURE_ATTRIBUTES Bit Descriptions Bit Reset — 31 BNUM 30–28 0 Reserved. Write to zero for future compatibility. 0 — 27 TSIZ 26–24 0 Data Beat Number Captures the data beat number for the detected error. This bit is relevant only for ECC errors. Reserved. Write to zero for future compatibility. 0 Description Transaction Size for Error Captures the transaction size in 64-bit increments. Settings 000 4 × 64 bits. 001 1 × 64 bits. 010 2 × 64 bits. 011 3 × 64 bits. All other values are reserved — 23–14 TTYP 13–12 0 Reserved. Write to zero for future compatibility. 0 Transaction Type for Error Specifies the access type that generates the error. 00 Reserved. 01 Write. 10 Read. 11 Read-modify-write. — 11–1 VLD 0 0 Reserved. Write to zero for future compatibility. 0 Valid Set as soon as valid information is captured in the error capture registers. 0 No valid information captured 1 Valid information captured MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-113 DDR SDRAM Memory Controller 12.8.44 DDR SDRAM Memory Error Address Capture Register (MnCAPTURE_ADDRESS) CAPTURE_ADDRESS Bit 31 30 29 DDR SDRAM Memory Error Address Capture Register 28 27 26 25 24 23 22 21 Offset 0x0E50 20 19 18 17 16 Type Reset 0 0 0 0 0 0 0 CADDR R/W 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 CADDR R/W 0 0 0 0 0 0 0 0 0 Type Reset 0 0 0 0 0 0 CAPTURE_ADDRESS holds the 32-bit of the transaction address when a DDR ECC error is detected. Table 12-65. CAPTURE_ADDRESS Bit Descriptions Bit Reset CADDR 31–0 0 12.8.45 31 Settings Captured Address Captures the 32 bits of the transaction address when an error is detected. DDR SDRAM Single-Bit ECC Memory Error Management Register (MnERR_SBE) ERR_SBE Bit Description DDR SDRAM Single-Bit ECC Memory Error Management Register 30 29 28 27 26 25 24 23 22 21 Offset 0x0E58 20 — R 19 18 17 16 SBET R/W Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 SBEC R/W 0 0 0 0 0 Type Reset — R 0 0 0 0 0 0 0 0 0 0 ERR_SBE stores the threshold value for reporting single-bit errors and the number of single-bit errors counted since the last error report. When the counter field reaches the threshold, it wraps back to the reset value (0). If necessary, software must clear the counter after it has managed the error. MSC8156 Reference Manual, Rev. 2 12-114 Freescale Semiconductor Memory Controller Programming Model Table 12-66. ERR_SBE Bit Descriptions Bit Reset — 31–24 SBET 23–16 0 Reserved. Write to zero for future compatibility. 0 — 15–8 SBEC 7–0 0 Single-Bit Error Threshold Establishes the number of single-bit errors that must be detected before an error condition is reported. Reserved. Write to zero for future compatibility. 12.8.46 Description 0 Single-Bit Error Counter Indicates the number of single-bit errors detected and corrected since the last error report. If single-bit error reporting is enabled, an error is reported when this value equals the SBET value. SBEC is automatically cleared when the threshold value is reached. Debug Register 2 (MnDEBUG_2) DEBUG_2 Bit 31 Debug Register 2 30 29 28 27 26 25 24 Offset 0x0F04 23 22 21 20 19 18 17 16 — R Type Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IDLE — 1 0 — Type Reset R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DEBUG_2 is used to indicate whether the controller is active. Table 12-67. ERR_SBE Bit Descriptions Bit Reset Description — 31–2 IDLE 1 0 Reserved. Write to zero for future compatibility. 1 Idle The DDR controller is in idle state. — 0 0 Settings 0 Active 1 Idle Reserved. Write to zero for future compatibility. MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 12-115 DDR SDRAM Memory Controller MSC8156 Reference Manual, Rev. 2 12-116 Freescale Semiconductor Interrupt Handling 13 The MSC8156 interrupt system is optimized for a multi-processing environment and performs the following functions: Routes each of the interrupt sources to each of the extended SC3850 cores thus allowing: — Flexible resource allocations as well as for a symmetrical or a non-symmetrical application architecture. — Provides a core-to-core full interrupt mesh. — Provides external host-to-core signaling mechanism by virtual interrupt generation. Allows for the enabling/disabling of each interrupt source per core. The MSC8156 supports both internal and external interrupt sources as well as allowing for the generation of an interrupt to external devices. There are three device level interrupt handlers in the MSC8156: 1. Global interrupt controller. Allows for the generation of virtual interrupt requests (VIRQ) as well as virtual non-maskable interrupts (VNMI) towards the cores as well as generates interrupts to external devices. 2. General configuration block. Concentrates and routes rare and debug interrupts to the SC3400 cores. 3. Embedded programmable interrupt controller (EPIC). Concentrates all the interrupt directed at the associated core and dispatches the highest priority interrupt to the SC3400 core. Although there are various interrupts in the system designated as non-maskable interrupts (NMIs), you must program them to be non-maskable in the EPIC. This is typically done by the boot program. Note: See the SC3850 DSP Core Subsystem Reference Manual for details about the EPIC. The manual is available with a signed non-disclosure agreement. Contact your local Freescale dealer or sales representative for more information. Note: The QUICC Engine module also includes an interrupt controller that handles interrupts within the module for the dual-RISC processor system. For details about that interrupt controller and how to program it, refer to Chapter 18, QUICC Engine Subsystem and the QUICC Engine™ Block Reference Manual with Protocol Interworking (QEIWRM). MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 13-1 Interrupt Handling 13.1 Global Interrupt Controller (GIC) The GIC generates 16 VIRQs and 8 VNMIs to the DSP cores by writing to registers in the GIC memory map. The GIC also uses two additional VIRQ slots to generate a non-maskable interrupt NMI_OUT and a maskable interrupt INT_OUT to external devices. A virtual interrupt/VNMI is generated via a write access to the Virtual Interrupt Generation Register (VIGR) by one of the SC3400 cores or an external host CPU. Table 13-1 describes the destination of the supported VIRQs. Table 13-1. VIRQ Description VIRQ Num Destination VIRQ_0 Connected to Virtual Interrupt 0 at SC3400 VIRQ_1 Connected to Virtual Interrupt 1 at SC3400 VIRQ_2 Connected to Virtual Interrupt 2 at SC3400 VIRQ_3 Connected to Virtual Interrupt 3 at SC3400 VIRQ_4 Connected to Virtual Interrupt 4 at SC3400 VIRQ_5 Connected to Virtual Interrupt 5 at SC3400 VIRQ_6 Connected to Virtual Interrupt 6 at SC3400 VIRQ_7 Connected to Virtual Interrupt 7 at SC3400 VIRQ_8 Connected to Virtual Interrupt 8 at SC3400 VIRQ_9 Connected to Virtual Interrupt 9 at SC3400 VIRQ_10 Connected to Virtual Interrupt 10 at SC3400 VIRQ_11 Connected to Virtual Interrupt 11 at SC3400 VIRQ_12 Connected to Virtual Interrupt 12 at SC3400 VIRQ_13 Connected to Virtual Interrupt 13 at SC3400 VIRQ_14 Connected to Virtual Interrupt 14 at SC3400 VIRQ_15 Connected to Virtual Interrupt 15 at SC3400 VIRQ_16 Connected to VNMI_0 VIRQ_17 Connected to VNMI_1 VIRQ_18 Connected to VNMI_2 VIRQ_19 Connected to VNMI_3 VIRQ_20 Connected to VNMI_4 VIRQ_21 Connected to VNMI_5 VIRQ_22 Connected to VNMI_6 VIRQ_23 Connected to VNMI_7 VIRQ_24 Use to generate INT_OUT (see 13.2.2, External Interrupts) VIRQ_25 Use to generate NMI_OUT (see 13.2.2, External Interrupts) The GIC has a status register to indicate whether a virtual interrupt was generated at least once, while not preventing the generation of another interrupt. The core that services the interrupt may clear this status bit by writing a value of one to it, or it may ignore this bit and work locally. MSC8156 Reference Manual, Rev. 2 13-2 Freescale Semiconductor General Configuration Block 13.2 General Configuration Block The general configuration block performs services for rare and debug interrupts generated throughout the MSC8156 before they reach the SC3850 EPICs. These services include: Generating ORed interrupt signals towards the SC3400 cores (see Section 13.2.1). Providing an interrupt enable bit for each interrupt source for each SC3400 core (see Section 13.5.2, General Interrupt Configuration, on page 13-26). Providing a status bit for each interrupt source. These bits are shared for all the SC3400 cores (see Section 13.5.2, General Interrupt Configuration, on page 13-26). 13.2.1 Interrupt Groups The general configuration block generates 5 interrupts based on the groups of ORed interrupts described in Table 13-2. Table 13-2. General Configuration Block Interrupt Sources TDM TDM 0 Rx error TDM 0 Tx error TDM 1 Rx error TDM 1 Tx error TDM 2 Rx error TDM 2 Tx error TDM 3 Rx error TDM 3 Tx error Debug CLASS 0 overrun General Parity error from TDM[0–3] Watch Dog Timer MAPLE-B MAPLE general Watch Dog Timer 0 error QUICC Engine module Watch Dog Timer 1 DRAM double soft error QUICC Engine module IMEM Watch Dog Timer 2 CLASS 0 error double soft error Performance Monitor all DMA error Watch Dog Timer 3 Core subsystems 0 and DDR1 interrupt Watch Dog Timer 4 1 MEX address error. Core subsystems 2 and DDR2 interrupt Watch Dog Timer 5 3 MEX address error. Core subsystems 4 and OCN0 to MBus Watch Dog Timer 6 5 MEX address error. OCN1 to MBus Watch Dog Timer 7 MAPLE FFT double soft error MAPLE DFT double soft error MAPLE IMEM double soft error MAPLE DRAM double soft error CLASS 0 watchpoint MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 13-3 Interrupt Handling 13.2.2 External Interrupts The MSC8156 allows a number of external interrupt inputs to be multiplexed with the GPIO signals to enable external devices to interrupt the cores (see Chapter 22, GPIO). There are also dedicated external interrupt pins. Note: All external IRQ signals are multiplexed options of the associated GPIO ports. Table 13-3 summarizes all the external interrupt inputs in the MSC8156. Table 13-3. MSC8156 External Interrupt Pins Name GPIO Direction NMI N/A In NMI_OUT N/A Out INT_OUT N/A Out IRQ0 GPIO0 In IRQ1 GPIO1 In IRQ2 GPIO2 In IRQ3 GPIO3 In IRQ4 GPIO4 In IRQ5 GPIO5 In IRQ6 GPIO6 In IRQ7 GPIO7 In IRQ8 GPIO8 In IRQ9 GPIO9 In IRQ10 GPIO10 In IRQ11 GPIO11 In IRQ12 GPIO12 In IRQ13 GPIO13 In IRQ14 GPIO14 In IRQ15 GPIO15 In INT_OUT is asserted when VIRQ_24 is asserted. NMI_OUT is asserted when VIRQ_25 is asserted. MSC8156 Reference Manual, Rev. 2 13-4 Freescale Semiconductor General Configuration Block 13.2.3 Interrupt Handling The MSC8156 interrupts sources can be grouped in to four basic types: 1. Interrupts that represent a single interrupt source and are routed directly to the cores (for example, the TDM0 Rx first threshold interrupt). 2. Interrupts that represent multiple interrupt sources and are routed directly to the cores (for example, all I2C interrupts). 3. Interrupts that represent a single interrupt source and are routed to the cores via the general configuration block (for example, MAPLE general error interrupt). 4. Interrupts that represent multiple interrupt sources and are routed to the cores via the General Configuration Block (for example, parity error from TDM[0–3] interrupt). Figure 13-1 outlines the flow for handling the various types of interrupts. Core Interrupted Interrupt source type type 4 Read General Configuration Block Status Register(s) to decide which interrupt source to go to type 1 type 3 Handle General Configuration Block Status Register type 2 Read Status Register at source and decide which interrupt to handle Handle Status Register at interrupt source Handle Interrupt Figure 13-1. Interrupt Handling Flow MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 13-5 Interrupt Handling As an example of handling a type 4 interrupt, processing of a QUICC Engine interrupt is provided. In Table 13-2, there are two types of QUICC Engine interrupts that are routed through the GCRs: DRAM double soft error IMEM double soft error When enabled and unmasked, both interrupts are concentrated to the GCR general interrupt which is routed to all cores. The GIER1_[0–5] registers allow the user to mask/unmask the interrupts for any or all of the cores. If the general interrupt from the GCR is received by a core (index 245), the ISR should read GIR1 (GCR offset 0x80) to identify the origin of the general interrupt. Bits 18 and 19 in the register represent DRAM double soft error and IMEM double soft error, respectively. After identifying that the interrupt is coming from the QUICC Engine subsystem, the cores can handle the interrupt in the same way as other QUICC Engine interrupts that are directed to the DSP core subsystems. There are nine other QUICC Engine interrupts that use indexes 132–141 as indicated in Table 13-4. Details about the QUICC Engine interrupt controller and how to use this interrupts is provided in Chapter 18, QUICC Engine Subsystem and the QUICC Engine™ Block Reference Manual with Interworking (QEIWRM). 13.3 Interrupt Mapping The EPIC can support up to 256 interrupt sources that can be level-, edge-, or double-edge triggered. The interrupts can have an assigned priority from 1(lowest) to 31 (highest) as well as non-maskable (priority 32). The first 34 interrupt sources are used internally by the SC3850 DSP cores. The core-to-core interrupt mesh uses another 12 interrupts for core-to-core communication. All other interrupts are used by the MSC8156 device. The MSC8156 does not implement all of these possible sources. Table 13-4 describes the interrupt capabilities (level/edge) and index for each interrupt source. The interrupt default priority at wake up is 0 (all interrupts are ignored). Interrupt sources routed via the general configuration block do not appear in the table because their function is set by the GCR. Table 13-4. MSC8156 Interrupt Table IRQ index Level Edge From Core Subsystem 0 34 + + From Core Subsystem 0 35 + + From Core Subsystem 1 36 + + From Core Subsystem 1 37 + + Interrupt Description Core Subsystem Interrupt Mesh MSC8156 Reference Manual, Rev. 2 13-6 Freescale Semiconductor Interrupt Mapping Table 13-4. MSC8156 Interrupt Table (Continued) IRQ index Level Edge From Core Subsystem 2 38 + + From Core Subsystem 2 39 + + From Core Subsystem 3 40 + + From Core Subsystem 3 41 + + From Core Subsystem 4 42 + + From Core Subsystem 4 43 + + From Core Subsystem 5 44 + + From Core Subsystem 5 45 + + TDM 0 Rx first threshold 50 + + TDM 0 Rx second threshold 51 + + TDM 0 Tx first threshold 52 + + TDM 0 Tx second threshold 53 + + TDM 1 Rx first threshold 54 + + TDM 1 Rx second threshold 55 + + TDM 1 Tx first threshold 56 + + TDM 1 Tx second threshold 57 + + TDM 2 Rx first threshold 58 + + TDM 2 Rx second threshold 59 + + TDM 2 Tx first threshold 60 + + TDM 2 Tx second threshold 61 + + TDM 3 Rx first threshold 62 + + TDM 3 Rx second threshold 63 + + TDM 3 Tx first threshold 64 + + TDM 3 Tx second threshold 65 + + Serial RapidIO message in 0 82 + — Serial RapidIO message in 1 83 + — Serial RapidIO message out 0 84 + — Serial RapidIO message out 1 85 + — Serial RapidIO doorbell inbound 86 + — Serial RapidIO doorbell outbound 87 + — Serial RapidIO general error 88 + — Ethernet 1 all 91 + — Ethernet 1 Rx 0 92 + — Ethernet 1 Rx 1 93 + — Ethernet 1 Rx 2 94 + — Ethernet 1 Rx 3 95 + — Interrupt Description TDM Serial RapidIO Ethernet 1 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 13-7 Interrupt Handling Table 13-4. MSC8156 Interrupt Table (Continued) IRQ index Level Edge Ethernet 1 Rx 4 96 + — Ethernet 1 Rx 5 97 + — Ethernet 1 Rx 6 98 + — Ethernet 1 Rx 7 99 + — Ethernet 1 Tx 0 100 + — Ethernet 1 Tx 1 101 + — Ethernet 1 Tx 2 102 + — Ethernet 1 Tx 3 103 + — Ethernet 1 Tx 4 104 + — Ethernet 1 Tx 5 105 + — Ethernet 1 Tx 6 106 + — Ethernet 1 Tx 7 107 + — Ethernet 2 all 109 + — Ethernet 2 Rx 0 110 + — Ethernet 2 Rx 1 111 + — Ethernet 2 Rx 2 112 + — Ethernet 2 Rx 3 113 + — Ethernet 2 Rx 4 114 + — Ethernet 2 Rx 5 115 + — Ethernet 2 Rx 6 116 + — Ethernet 2 Rx 7 117 + — Ethernet 2 Tx 0 118 + — Ethernet 2 Tx 1 119 + — Ethernet 2 Tx 2 120 + — Ethernet 2 Tx 3 121 + — Ethernet 2 Tx 4 122 + — Ethernet 2 Tx 5 123 + — Ethernet 2 Tx 6 124 + — Ethernet 2 Tx 7 125 + — PCI Express INTA 127 + — PCI Express INTB 128 + — PCI Express INTC 129 + — PCI Express INTD 130 + — PCI Express general interrupt 131 + — QUICC Engine interrupt output 0 132 + — QUICC Engine interrupt output 1 133 + — Interrupt Description Ethernet 2 PCI Express QUICC Engine Subsystem MSC8156 Reference Manual, Rev. 2 13-8 Freescale Semiconductor Interrupt Mapping Table 13-4. MSC8156 Interrupt Table (Continued) IRQ index Level Edge QUICC Engine interrupt output 2 134 + — QUICC Engine interrupt output 3 135 + — QUICC Engine interrupt output 4 136 + — QUICC Engine interrupt output 5 137 + — QUICC Engine interrupt output 6 138 + — QUICC Engine interrupt output 7 139 + — QUICC Engine module critical 140 + — QUICC Engine module regular 141 + — DMA channel 0 EOB 144 + — DMA channel 1 EOB 145 + — DMA channel 2 EOB 146 + — DMA channel 3 EOB 147 + — DMA channel 4 EOB 148 + — DMA channel 5 EOB 149 + — DMA channel 6 EOB 150 + — DMA channel 7 EOB 151 + — DMA channel 8 EOB 152 + — DMA channel 9 EOB 153 + — DMA channel 10 EOB 154 + — DMA channel 11 EOB 155 + — DMA channel 12 EOB 156 + — DMA channel 13 EOB 157 + — DMA channel 14 EOB 158 + — DMA channel 15 EOB 159 + — Timer 0 Channel 0 160 + — Timer 0 Channel 1 161 + — Timer 0 Channel 2 162 + — Timer 0 Channel 3 163 + — Timer 1 Channel 0 164 + — Timer 1 Channel 1 165 + — Timer 1 Channel 2 166 + — Timer 1 Channel 3 167 + — Timer 2 Channel 0 168 + — Timer 2 Channel 1 169 + — Timer 2 Channel 2 170 + — Interrupt Description DMA Timer 0 Timer 1 Timer 2 MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 13-9 Interrupt Handling Table 13-4. MSC8156 Interrupt Table (Continued) IRQ index Level Edge 171 + — Timer 3 Channel 0 172 + — Timer 3 Channel 1 173 + — Timer 3 Channel 2 174 + — Timer 3 Channel 3 175 + — 176 + — Virtual Interrupt 0 177 — + Virtual Interrupt 1 178 — + Virtual Interrupt 2 179 — + Virtual Interrupt 3 180 — + Virtual Interrupt 4 181 — + Virtual Interrupt 5 182 — + Virtual Interrupt 6 183 — + Virtual Interrupt 7 184 — + Virtual Interrupt 8 185 — + Virtual Interrupt 9 186 — + Virtual Interrupt 10 187 — + Virtual Interrupt 11 188 — + Virtual Interrupt 12 189 — + Virtual Interrupt 13 190 — + Virtual Interrupt 14 191 — + Virtual Interrupt 15 192 — + Virtual Non Maskable Interrupt 0 193 — + Virtual Non Maskable Interrupt 1 194 — + Virtual Non Maskable Interrupt 2 195 — + Virtual Non Maskable Interrupt 3 196 — + Virtual Non Maskable Interrupt 4 197 — + Virtual Non Maskable Interrupt 5 198 — + Virtual Non Maskable Interrupt 6 199 — + Virtual Non Maskable Interrupt 7 200 — + Channel 0 Interrupt 203 + — Channel 1 Interrupt 204 + — Channel 2 Interrupt 205 + — Channel 3 Interrupt 206 + — Interrupt Description Timer 2 Channel 3 Timer 3 UART UART all Global Interrupt Controller OCNDMA0 MSC8156 Reference Manual, Rev. 2 13-10 Freescale Semiconductor Interrupt Mapping Table 13-4. MSC8156 Interrupt Table (Continued) IRQ index Level Edge 208 + — MAPLE BD 0 209 + + MAPLE BD 1 210 + + MAPLE BD 2 211 + + MAPLE BD 3 212 + + MAPLE BD 4 213 + + MAPLE BD 5 214 + + MAPLE BD 6 215 + + MAPLE BD 7 216 + + MAPLE BD 8 217 + + MAPLE BD 9 218 + + MAPLE BD 10 219 + + MAPLE BD 11 220 + + MAPLE BD 12 221 + + MAPLE BD 13 222 + + MAPLE BD 14 223 + + MAPLE BD 15 224 + + IRQ0 (see note) 226 + + IRQ1 (see note) 227 + + IRQ2 (see note) 228 + + IRQ3 (see note) 229 + + IRQ4 (see note) 230 + + IRQ5 (see note) 231 + + IRQ6 (see note) 232 + + IRQ7 (see note) 233 + + IRQ8 (see note) 234 + + IRQ9 (see note) 235 + + IRQ10 (see note) 236 + + IRQ11 (see note) 237 + + IRQ12 (see note) 238 + + IRQ13 (see note) 239 + + IRQ14 (see note) 240 + + IRQ15 (see note) 241 + + NMI (see note) 242 + + Interrupt Description I2C I2C all MAPLE-B External IRQs General Configuration Block MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 13-11 Interrupt Handling Table 13-4. MSC8156 Interrupt Table (Continued) IRQ index Level Edge ORed TDM interrupts 243 + — ORed Debug Interrupts 244 + — ORed General Interrupts 245 + — ORed Watch Dog Timer Interrupts 246 + — ORed MAPLE Interrupts 247 + — Channel 0 Interrupt 248 + — Channel 1 Interrupt 249 + — Channel 2 Interrupt 250 + — Channel 3 Interrupt 251 + — Interrupt Description OCNDMA1 Note: For NMIs and IRQs, when configured as edge-triggered interrupts, assertion of the interrupt is sensed by the cores when the signals are changing state from 1 to 0. Table 13-5. Interrupt Summary Reference by Interrupt Indexes and VBA Offset Interrupt Index Name Description EPIC Interrupt Index Offset from VBA Fetch Set Dec Hex Dec Hex Dec Hex No. Size 0 0x0 — — 0 0x0 1 16 B Trap0 Internal exception (generated by a TRAP0 instruction) Trap1 Internal exception (generated by a TRAP1 instruction) — — 16 0x10 1 16 B Trap2 Internal exception (generated by a TRAP2 instruction) — — 32 0x20 1 16 B Trap3 Internal exception (generated by a TRAP3 instruction) — — 48 0x30 1 16 B Reserved — 1 0x1 — — 64 0x40 4 64 B ILLEGAL Illegal instruction or set. 2 0x2 — — 128 0x80 4 64 B DEBUG • Debug exception (OCE) • DEBUG/EV instruction and EDCA are Precise 3 0x3 — — 192 0xC0 4 64 B After • EDCD is Precise After (+2 read, +5 write) OVERFLOW Overflow exception (DALU). 4 0x4 — — 256 0x100 4 64 B Reserved — 5 0x5 — — 320 0x140 1 16 B MSC8156 Reference Manual, Rev. 2 13-12 Freescale Semiconductor Interrupt Mapping Table 13-5. Interrupt Summary Reference by Interrupt Indexes and VBA Offset (Continued) Interrupt Index Name Description Dec Hex EPIC Interrupt Index Offset from VBA Fetch Set Dec Hex Dec Hex No. Size OCE OCE exception. — — 328 0x148 1 16 B IMMUAE Instruction MMU address error. — — 336 0x150 1 16 B DMMUAE Data MMU address error. — — 344 0x158 1 16 B Reserved — — — 352 0x160 1 16 B IEDC Instruction EDC error. — — 360 0x168 1 16 B DEDC Data EDC error. — — 368 0x170 1 16 B Reserved — — — 376 0x178 1 16 B Reserved — 6 0x6 — — 384 0x180 4 64 B Reserved — 7 0x7 — — 448 0x1C0 4 64 B I_MIFER Master interface errors from the MMU (NMI) 8 0x8 0 0x0 512 0x200 1 16 B I_SIFER Slave interface errors from the MMU (NMI) 9 0x9 1 0x1 528 0x210 1 16 B I_WBBEDC WBB soft data error (NMI) 10 0xA 2 0x2 544 0x220 1 16 B Reserved Reserved 11 0xB 3 0x3 560 0x230 1 16 B I_ICDME ICache double match error (NMI) 12 0xC 4 0x4 576 0x240 1 16 B I_DCDME DCache double match error (NMI) 13 0xD 5 0x5 592 0x250 1 16 B I_L2NM2 L2 non-mapped M2 access (NMI) 14 0xE 6 0x6 608 0x260 1 16 B I_L2NAE L2 non-aligned non-allocated access (NMI) 15 0xF 7 0x7 624 0x270 1 16 B Reserved Reserved for internal DSP subsystem use 16 0x10 8 0x8 640 0x280 1 16 B I_ICAES ICache end-of-sweep operation exception 17 0x11 9 0x9 656 0x290 1 16 B I_DCAES DCache end-of-sweep operation exception 18 0x12 10 0xA 672 0x2A0 1 16 B I_L2AES L2 Cache end-of-sweep operation exception operational in a DSP subsystem with L2 cache 19 0x13 11 0xB 688 0x2B0 1 16 B I_TM0 Timer 0 interrupt 20 0x14 12 0xC 704 0x2C0 1 16 B I_TM1 Timer 1 interrupt 21 0x15 13 0xD 720 0x2D0 1 16 B I_DPUA DPU interrupt A 22 0x16 14 0xE 736 0x2E0 1 16 B i_DPUB DPU interrupt B 23 0x17 15 0xF 752 0x2F0 1 16 B MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 13-13 Interrupt Handling Table 13-5. Interrupt Summary Reference by Interrupt Indexes and VBA Offset (Continued) Interrupt Index Name Description EPIC Interrupt Index Offset from VBA Fetch Set Dec Hex Dec Hex Dec Hex No. Size I_ICNCH ICache noncacheable hit exception 24 0x18 16 0x10 768 0x300 1 16 B I_DCNCH DCache noncacheable hit exception 25 0x19 17 0x11 784 0x310 1 16 B I_L2NCH L2 cache noncacheable hit exception 26 0x1A 18 0x12 800 0x320 1 16 B I_L2ESP L2 cache end-of-software prefetch 27 0x1B 19 0x13 816 0x330 1 16 B Reserved — 28 0x1C 20 0x14 832 0x340 1 16 B Reserved — 29 0x1D 21 0x15 848 0x350 1 16 B Reserved — 30 0x1E 22 0x16 864 0x360 1 16 B Reserved — 31 0x1F 23 0x17 880 0x370 1 16 B Reserved — 32 0x20 24 0x18 896 0x380 1 16 B Reserved — 33 0x21 25 0x19 912 0x390 1 16 B Reserved — 34 0x22 26 0x1A 928 0x3A0 1 16 B Reserved — 35 0x23 27 0x1B 944 0x3B0 1 16 B Reserved — 36 0x24 28 0x1C 960 0x3C0 1 16 B Reserved — 37 0x25 29 0x1D 976 0x3D0 1 16 B Reserved — 38 0x26 30 0x1E 992 0x3E0 1 16 B Reserved — 39 0x27 31 0x1F 1008 0x3F0 1 16 B Reserved — 40 0x28 32 0x20 1024 0x400 1 16 B Reserved — 41 0x29 33 0x21 1040 0x410 1 16 B IRQ34 From Core Subsystem 0 42 0x2A 34 0x22 1056 0x420 1 16 B IRQ35 From Core Subsystem 0 43 0x2B 35 0x23 1072 0x430 1 16 B IRQ36 From Core Subsystem 1 44 0x2C 36 0x24 1088 0x440 1 16 B IRQ37 From Core Subsystem 1 45 0x2D 37 0x25 1104 0x450 1 16 B IRQ38 From Core Subsystem 2 46 0x2E 38 0x26 1120 0x460 1 16 B IRQ39 From Core Subsystem 2 47 0x2F 39 0x27 1136 0x470 1 16 B IRQ40 From Core Subsystem 3 48 0x30 40 0x28 1152 0x480 1 16 B IRQ41 From Core Subsystem 3 49 0x31 41 0x29 1168 0x490 1 16 B IRQ42 — 50 0x32 42 0x2A 1184 0x4A0 1 16 B IRQ43 — 51 0x33 43 0x2B 1200 0x4B0 1 16 B IRQ44 — 52 0x34 44 0x2C 1216 0x4C0 1 16 B IRQ45 — 53 0x35 45 0x2D 1232 0x4D0 1 16 B IRQ46 — 54 0x36 46 0x2E 1248 0x4E0 1 16 B IRQ47 — 55 0x37 47 0x2F 1264 0x4F0 1 16 B MSC8156 Reference Manual, Rev. 2 13-14 Freescale Semiconductor Interrupt Mapping Table 13-5. Interrupt Summary Reference by Interrupt Indexes and VBA Offset (Continued) Interrupt Index Name Description EPIC Interrupt Index Offset from VBA Fetch Set Dec Hex Dec Hex Dec Hex No. Size IRQ48 — 56 0x38 48 0x30 1280 0x500 1 16 B IRQ49 — 57 0x39 49 0x31 1296 0x510 1 16 B IRQ50 TDM 0 Rx first threshold 58 0x3A 50 0x32 1312 0x520 1 16 B IRQ51 TDM 0 Rx second threshold 59 0x3B 51 0x33 1328 0x530 1 16 B IRQ52 TDM 0 Tx first threshold 60 0x3C 52 0x34 1344 0x540 1 16 B IRQ53 TDM 0 Tx second threshold 61 0x3D 53 0x35 1360 0x550 1 16 B IRQ54 TDM 1 Rx first threshold 62 0x3E 54 0x36 1376 0x560 1 16 B IRQ55 TDM 1 Rx second threshold 63 0x3F 55 0x37 1392 0x570 1 16 B IRQ56 TDM 1 Tx first threshold 64 0x40 56 0x38 1408 0x580 1 16 B IRQ57 TDM 1 Tx second threshold 65 0x41 57 0x39 1424 0x590 1 16 B IRQ58 TDM 2 Rx first threshold 66 0x42 58 0x3A 1440 0x5A0 1 16 B IRQ59 TDM 2 Rx second threshold 67 0x43 59 0x3B 1456 0x5B0 1 16 B IRQ60 TDM 2 Tx first threshold 68 0x44 60 0x3C 1472 0x5C0 1 16 B IRQ61 TDM 2 Tx second threshold 69 0x45 61 0x3D 1488 0x5D0 1 16 B IRQ62 TDM 3 Rx first threshold 70 0x46 62 0x3E 1504 0x5E0 1 16 B IRQ63 TDM 3 Rx second threshold 71 0x47 63 0x3F 1520 0x5F0 1 16 B IRQ64 TDM 3 Tx first threshold 72 0x48 64 0x40 1536 0x600 1 16 B IRQ65 TDM 3 Tx second threshold 73 0x49 65 0x41 1552 0x610 1 16 B IRQ66 — 74 0x4A 66 0x42 1568 0x620 1 16 B IRQ67 — 75 0x4B 67 0x43 1584 0x630 1 16 B IRQ68 — 76 0x4C 68 0x44 1600 0x640 1 16 B IRQ69 — 77 0x4D 69 0x45 1616 0x650 1 16 B IRQ70 — 78 0x4E 70 0x46 1632 0x660 1 16 B IRQ71 — 79 0x4F 71 0x47 1648 0x670 1 16 B IRQ72 — 80 0x50 72 0x48 1664 0x680 1 16 B IRQ73 — 81 0x51 73 0x49 1680 0x690 1 16 B IRQ74 — 82 0x52 74 0x4A 1696 0x6A0 1 16 B IRQ75 — 83 0x53 75 0x4B 1712 0x6B0 1 16 B IRQ76 — 84 0x54 76 0x4C 1728 0x6C0 1 16 B MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 13-15 Interrupt Handling Table 13-5. Interrupt Summary Reference by Interrupt Indexes and VBA Offset (Continued) Interrupt Index Name Description EPIC Interrupt Index Offset from VBA Fetch Set Dec Hex Dec Hex Dec Hex No. Size IRQ77 — 85 0x55 77 0x4D 1744 0x6D0 1 16 B IRQ78 — 86 0x56 78 0x4E 1760 0x6E0 1 16 B IRQ79 — 87 0x57 79 0x4F 1776 0x6F0 1 16 B IRQ80 — 88 0x58 80 0x50 1792 0x700 1 16 B IRQ81 — 89 0x59 81 0x51 1808 0x710 1 16 B IRQ82 Serial RapidIO message in 0 90 0x5A 82 0x52 1824 0x720 1 16 B IRQ83 Serial RapidIO message in 1 91 0x5B 83 0x53 1840 0x730 1 16 B IRQ84 Serial RapidIO message out 0 92 0x5C 84 0x54 1856 0x740 1 16 B IRQ85 Serial RapidIO message out 1 93 0x5D 85 0x55 1872 0x750 1 16 B IRQ86 Serial RapidIO doorbell inbound 94 0x5E 86 0x56 1888 0x760 1 16 B IRQ87 Serial RapidIO doorbell outbound 95 0x5F 87 0x57 1904 0x770 1 16 B IRQ88 Serial RapidIO general error 96 0x60 88 0x58 1920 0x780 1 16 B IRQ89 — 97 0x61 89 0x59 1936 0x790 1 16 B IRQ90 — 98 0x62 90 0x5A 1952 0x7A0 1 16 B IRQ91 Ethernet 1 all 99 0x63 91 0x5B 1968 0x7B0 1 16 B IRQ92 Ethernet 1 Rx 0 100 0x64 92 0x5C 1984 0x7C0 1 16 B IRQ93 Ethernet 1 Rx 1 101 0x65 93 0x5D 2000 0x7D0 1 16 B IRQ94 Ethernet 1 Rx 2 102 0x66 94 0x5E 2016 0x7E0 1 16 B IRQ95 Ethernet 1 Rx 3 103 0x67 95 0x5F 2032 0x7F0 1 16 B IRQ96 Ethernet 1 Rx 4 104 0x68 96 0x60 2048 0x800 1 16 B IRQ97 Ethernet 1 Rx 5 105 0x69 97 0x61 2064 0x810 1 16 B IRQ98 Ethernet 1 Rx 6 106 0x6A 98 0x62 2080 0x820 1 16 B IRQ99 Ethernet 1 Rx 7 107 0x6B 99 0x63 2096 0x830 1 16 B IRQ100 Ethernet 1 Tx 0 108 0x6C 100 0x64 2112 0x840 1 16 B IRQ101 Ethernet 1 Tx 1 109 0x6D 101 0x65 2128 0x850 1 16 B IRQ102 Ethernet 1 Tx 2 110 0x6E 102 0x66 2144 0x860 1 16 B IRQ103 Ethernet 1 Tx 3 111 0x6F 103 0x67 2160 0x870 1 16 B IRQ104 Ethernet 1 Tx 4 112 0x70 104 0x68 2176 0x880 1 16 B IRQ105 Ethernet 1 Tx 5 113 0x71 105 0x69 2192 0x890 1 16 B IRQ106 Ethernet 1 Tx 6 114 0x72 106 0x6A 2208 0x8A0 1 16 B MSC8156 Reference Manual, Rev. 2 13-16 Freescale Semiconductor Interrupt Mapping Table 13-5. Interrupt Summary Reference by Interrupt Indexes and VBA Offset (Continued) Interrupt Index Name Description EPIC Interrupt Index Offset from VBA Fetch Set Dec Hex Dec Hex Dec Hex No. Size IRQ107 Ethernet 1 Tx 7 115 0x73 107 0x6B 2224 0x8B0 1 16 B IRQ108 — 116 0x74 108 0x6C 2240 0x8C0 1 16 B IRQ109 Ethernet 2 all 117 0x75 109 0x6D 2256 0x8D0 1 16 B IRQ110 Ethernet 2 Rx 0 118 0x76 110 0x6E 2272 0x8E0 1 16 B IRQ111 Ethernet 2 Rx 1 119 0x77 111 0x6F 2288 0x8F0 1 16 B IRQ112 Ethernet 2 Rx 2 120 0x78 112 0x70 2304 0x900 1 16 B IRQ113 Ethernet 2 Rx 3 121 0x79 113 0x71 2320 0x910 1 16 B IRQ114 Ethernet 2 Rx 4 122 0x7A 114 0x72 2336 0x920 1 16 B IRQ115 Ethernet 2 Rx 5 123 0x7B 115 0x73 2352 0x930 1 16 B IRQ116 Ethernet 2 Rx 6 124 0x7C 116 0x74 2368 0x940 1 16 B IRQ117 Ethernet 2 Rx 7 125 0x7D 117 0x75 2384 0x950 1 16 B IRQ118 Ethernet 2 Tx 0 126 0x7E 118 0x76 2400 0x960 1 16 B IRQ119 Ethernet 2 Tx 1 127 0x7F 119 0x77 2416 0x970 1 16 B IRQ120 Ethernet 2 Tx 2 128 0x80 120 0x78 2432 0x980 1 16 B IRQ121 Ethernet 2 Tx 3 129 0x81 121 0x79 2448 0x990 1 16 B IRQ122 Ethernet 2 Tx 4 130 0x82 122 0x7A 2464 0x9A0 1 16 B IRQ123 Ethernet 2 Tx 5 131 0x83 123 0x7B 2480 0x9B0 1 16 B IRQ124 Ethernet 2 Tx 6 132 0x84 124 0x7C 2496 0x9C0 1 16 B IRQ125 Ethernet 2 Tx 7 133 0x85 125 0x7D 2512 0x9D0 1 16 B IRQ126 — 134 0x86 126 0x7E 2528 0x9E0 1 16 B IRQ127 PCI Express INTA 135 0x87 127 0x7F 2544 0x9F0 1 16 B IRQ128 PCI Express INTB 136 0x88 128 0x80 2560 0xA00 1 16 B IRQ129 PCI Express INTC 137 0x89 129 0x81 2576 0xA10 1 16 B IRQ130 PCI Express INTD 138 0x8A 130 0x82 2592 0xA20 1 16 B IRQ131 PCI Express general interrupt 139 0x8B 131 0x83 2608 0xA30 1 16 B IRQ132 QUICC Engine interrupt output 0 140 0x8C 132 0x84 2624 0xA40 1 16 B IRQ133 QUICC Engine interrupt output 1 141 0x8D 133 0x85 2640 0xA50 1 16 B IRQ134 QUICC Engine interrupt output 2 142 0x8E 134 0x86 2656 0xA60 1 16 B IRQ135 QUICC Engine interrupt output 3 143 0x8F 135 0x87 2672 0xA70 1 16 B IRQ136 QUICC Engine interrupt output 4 144 0x90 136 0x88 2688 0xA80 1 16 B MSC8156 Reference Manual, Rev. 2 Freescale Semiconductor 13-17 Interrupt Handling Table 13-5. Interrupt Summary Reference by Interrupt Indexes and VBA Offset (Continued) Interrupt Index Name Description EPIC Interrupt Index Offset from VBA Fetch Set Dec Hex Dec Hex Dec Hex No. Size IRQ137 QUICC Engine interrupt output 5 145 0x91 137 0x89 2704 0xA90 1 16 B IRQ138 QUICC Engine interrupt output 6 146 0x92 138 0x8A 2720 0xAA0 1 16 B IRQ139 QUICC Engine interrupt output 7 147 0x93 139 0x8B 2736 0xAB0 1 16 B IRQ140 QUICC Engine module critical 148 0x94 140 0x8C 2752 0xAC0 1 16 B IRQ141 QUICC Engine module regular 149 0x95 141 0x8D 2768 0xAD0 1 16 B IRQ142 — 150 0x96 142 0x8E 2784 0xAE0 1 16 B IRQ143 — 151 0x97 143 0x8F 2800 0xAF0 1 16 B IRQ144 DMA channel 0 EOB 152 0x98 144 0x90 2816 0xB00 1 16 B IRQ145 DMA channel 1 EOB 153 0x99 145 0x91 2832 0xB10 1 16 B IRQ146 DMA channel 2 EOB 154 0x9A 146 0x92 2848 0xB20 1 16 B IRQ147 DMA channel 3 EOB 155 0x9B 147 0x93 2864 0xB30 1 16 B IRQ148 DMA channel 4 EOB 156 0x9C 148 0x94 2880 0xB40 1 16 B IRQ149 DMA channel 5 EOB 157 0x9D 149 0x95 2896 0xB50 1 16 B IRQ150 DMA channel 6 EOB 158 0x9E 150 0x96 2912 0xB60 1 16 B IRQ151 DMA channel 7 EOB 159 0x9F 151 0x97 2928 0xB70 1 16 B IRQ152 DMA channel 8 EOB 160 0xA0 152 0x98 2944 0xB80 1 16 B IRQ153 DMA channel 9 EOB 161 0xA1 153 0x99 2960 0xB90 1 16 B IRQ154 DMA channel 10 EOB 162 0x
advertisement
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Related manuals
advertisement