0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
TMPR4938XBG-300

TMPR4938XBG-300

  • 厂商:

    TOSHIBA(东芝)

  • 封装:

  • 描述:

    TMPR4938XBG-300 - 64-Bit TX System RISC TX49 Family - Toshiba Semiconductor

  • 数据手册
  • 价格&库存
TMPR4938XBG-300 数据手册
64-Bit TX System RISC TX49 Family TMPR4938 Rev. 2.0 R4000/R4400/R5000 are a trademark of MIPS Technologies, Inc. The information contained herein is subject to change without notice. The information contained herein is presented only as a guide for the applications of our products. No responsibility is assumed by TOSHIBA for any infringements of patents or other rights of the third parties which may result from its use. No license is granted by implication or otherwise under any patent or patent rights of TOSHIBA or others. TOSHIBA is continually working to improve the quality and reliability of its products. Nevertheless, semiconductor devices in general can malfunction or fail due to their inherent electrical sensitivity and vulnerability to physical stress. It is the responsibility of the buyer, when utilizing TOSHIBA products, to comply with the standards of safety in making a safe design for the entire system, and to avoid situations in which a malfunction or failure of such TOSHIBA products could cause loss of human life, bodily injury or damage to property. In developing your designs, please ensure that TOSHIBA products are used within specified operating ranges as set forth in the most recent TOSHIBA products specifications. Also, please keep in mind the precautions and conditions set forth in the “Handling Guide for Semiconductor Devices,” or “TOSHIBA Semiconductor Reliability Handbook” etc.. The Toshiba products listed in this document are intended for usage in general electronics applications (computer, personal equipment, office equipment, measuring equipment, industrial robotics, domestic appliances, etc.). These Toshiba products are neither intended nor warranted for usage in equipment that requires extraordinarily high quality and/or reliability or a malfunction or failure of which may cause loss of human life or bodily injury (“Unintended Usage”). Unintended Usage include atomic energy control instruments, airplane or spaceship instruments, transportation instruments, traffic signal instruments, combustion control instruments, medical instruments, all types of safety devices, etc.. Unintended Usage of Toshiba products listed in this document shall be made at the customer’s own risk. The products described in this document may include products subject to the foreign exchange and foreign trade laws. The products described in this document contain components made in the United States and subject to export control of the U.S. authorities. Diversion contrary to the U.S. law is prohibited. TOSHIBA products should not be embedded to the downstream products which are prohibited to be produced and sold, under any law and regulations. © 2005 TOSHIBA CORPORATION All Rights Reserved Preface Thank you for new or continued patronage of TOSHIBA semiconductor products. This is the 2005 edition of the user’s manual for the TMPR4938 64-bit RISC microprocessor. This databook is written so as to be accessible to engineers who may be designing a TOSHIBA microprocessor into their products for the first time. No prior knowledge of this device is assumed. What we offer here is basic information about the microprocessor, a discussion of the application fields in which the microprocessor is utilized, and an overview of design methods. On the other hand, the more experienced designer will find complete technical specifications for this product. Toshiba continually updates its technical information. Your comments and suggestions concerning this and other Toshiba documents are sincerely appreciated and may be utilized in subsequent editions. For updating of the data in this manual, or for additional information about the product appearing in it, please contact your nearest Toshiba office or authorized Toshiba dealer. March 2005 Table of Contents Table of Contents Handling Precautions TMPR4938 1. Overview and Features ........................................................................................................................................... 1-1 1.1 Overview........................................................................................................................................................ 1-1 1.2 Features .......................................................................................................................................................... 1-1 1.2.1 Features of the TX49/H3 core.............................................................................................................. 1-2 1.2.2 Features of TX4938 peripheral functions ............................................................................................ 1-2 2. Configuration.......................................................................................................................................................... 2-1 2.1 TX4938 block diagram .................................................................................................................................. 2-1 3. Signals ............................................................................................................................................................. 3-1 3.1 Pin Signal Description ................................................................................................................................... 3-1 3.1.1 Signals Common to SDRAM and External Bus Interfaces.................................................................. 3-1 3.1.2 SDRAM Interface Signals ................................................................................................................... 3-2 3.1.3 External Interface Signals.................................................................................................................... 3-3 3.1.4 DMA Interface Signals ........................................................................................................................ 3-4 3.1.5 PCI Interface Signals ........................................................................................................................... 3-4 3.1.6 Serial I/O Interface Signals.................................................................................................................. 3-6 3.1.7 Timer Interface Signals........................................................................................................................ 3-6 3.1.8 Parallel I/O Interface Signals ............................................................................................................... 3-6 3.1.9 AC-link Interface Signals .................................................................................................................... 3-7 3.1.10 Interrupt Signals................................................................................................................................... 3-7 3.1.11 SPI Interface Signals............................................................................................................................ 3-7 3.1.12 ISA/ATA Interface Signals................................................................................................................... 3-8 3.1.13 ETHER Interface Signals (Channel 0)................................................................................................. 3-8 3.1.14 ETHER Interface Signals (Channel 1)................................................................................................. 3-9 3.1.15 NAND Flash Memory Interface Signals............................................................................................ 3-10 3.1.16 Extended EJTAG Interface Signals.................................................................................................... 3-10 3.1.17 Clock Signals ..................................................................................................................................... 3-11 3.1.18 Initialization Signal............................................................................................................................ 3-11 3.1.19 Test Signals........................................................................................................................................ 3-11 3.1.20 Power Supply Pins ............................................................................................................................. 3-12 3.2 3.3 Boot Configuration ...................................................................................................................................... 3-13 Pin multiplex................................................................................................................................................ 3-17 4. Address Mapping.................................................................................................................................................... 4-1 4.1 TX4938 Physical Address Map...................................................................................................................... 4-1 4.2 Register Map.................................................................................................................................................. 4-2 4.2.1 Addressing ........................................................................................................................................... 4-2 4.2.2 Ways to Access to Internal Registers ................................................................................................... 4-2 4.2.3 Register Map........................................................................................................................................ 4-3 5. Configuration Registers .......................................................................................................................................... 5-1 5.1 Detailed Description ...................................................................................................................................... 5-1 5.1.1 Detecting G-Bus Timeout .................................................................................................................... 5-1 5.2 Registers......................................................................................................................................................... 5-2 5.2.1 Chip Configuration Register (CCFG) 0xE000..................................................................................... 5-3 5.2.2 Chip Revision ID Register (REVID) 0xE008...................................................................................... 5-6 5.2.3 Pin Configuration Register (PCFG) 0xE010 ....................................................................................... 5-7 5.2.4 Timeout Error Access Address Register (TOEA) 0xE018 ................................................................ 5-10 5.2.5 Clock Control Register (CLKCTR) 0xE020...................................................................................... 5-11 5.2.6 G-Bus Arbiter Control Register (GARBC) 0xE030........................................................................... 5-14 5.2.7 Register Address Mapping Register (RAMP) 0xE048 ...................................................................... 5-15 i Table of Contents 5.2.8 6. Clocks Jump Address Register (JMPADR) 0xE058 ...................................................................................... 5-16 ............................................................................................................................................................. 6-1 6.1 TX4938 Clock Signals ................................................................................................................................... 6-1 6.2 Power-Down Mode ........................................................................................................................................ 6-5 6.2.1 Halt Mode and Doze Mode.................................................................................................................. 6-5 6.2.2 Power Reduction for Peripheral Modules............................................................................................ 6-5 6.3 Power-On Sequence ....................................................................................................................................... 6-6 7. External Bus Controller .......................................................................................................................................... 7-1 7.1 Features .......................................................................................................................................................... 7-1 7.2 Block Diagram ............................................................................................................................................... 7-2 7.3 Detailed Explanation...................................................................................................................................... 7-3 7.3.1 External Bus Control Register ............................................................................................................. 7-3 7.3.2 Global/Boot-up Options....................................................................................................................... 7-4 7.3.3 Address Mapping................................................................................................................................. 7-5 7.3.4 External Address Output...................................................................................................................... 7-6 7.3.5 Data Bus Size....................................................................................................................................... 7-7 7.3.6 Access Mode........................................................................................................................................ 7-9 7.3.7 Access Timing ................................................................................................................................... 7-13 7.3.8 Clock Options .................................................................................................................................... 7-19 7.3.9 ISA /ATA Mode ................................................................................................................................. 7-20 7.4 Register ........................................................................................................................................................ 7-24 7.4.1 External Bus Channel Control Register (EBCCRn) 0x9000 (ch. 0), 0x9008 (ch. 1) 0x9010 (ch. 2), 0x9018 (ch. 3) 0x9020 (ch. 4), 0x9028 (ch. 5) 0x9030 (ch. 6), 0x9038 (ch. 7)...... 7-25 7.5 Timing Diagrams ......................................................................................................................................... 7-28 7.5.1 ACE* Signal ...................................................................................................................................... 7-29 7.5.2 Normal mode access (Single, 32-bit Bus).......................................................................................... 7-31 7.5.3 Normal mode access (Burst, 32-bit Bus) ........................................................................................... 7-35 7.5.4 Normal Mode Access (Single, 16-bit bus) ......................................................................................... 7-37 7.5.5 Normal Mode Access (Burst, 16-bit Bus).......................................................................................... 7-41 7.5.6 Normal Mode Access (Single, 8-bit Bus) .......................................................................................... 7-43 7.5.7 Normal Mode Access (Burst, 8-bit Bus)............................................................................................ 7-46 7.5.8 Page Mode Access (Burst, 32-bit Bus) .............................................................................................. 7-48 7.5.9 External ACK Mode Access (32-bit Bus) .......................................................................................... 7-50 7.5.10 READY Mode Access (32-bit Bus) ................................................................................................... 7-56 7.5.11 ISA IO Space Access ......................................................................................................................... 7-58 7.5.12 ATA/PIO Transfer Mode Access........................................................................................................ 7-60 7.6 Flash ROM, SRAM Usage Example ........................................................................................................... 7-62 8. DMA Controller...................................................................................................................................................... 8-1 8.1 Features .......................................................................................................................................................... 8-1 8.2 Block Diagram ............................................................................................................................................... 8-2 8.3 Detailed Explanation...................................................................................................................................... 8-4 8.3.1 Transfer Mode...................................................................................................................................... 8-4 8.3.2 On-chip Registers ................................................................................................................................ 8-5 8.3.3 External I/O DMA Transfer Mode ....................................................................................................... 8-5 8.3.4 Internal I/O DMA Transfer Mode ........................................................................................................ 8-8 8.3.5 Memory-Memory Copy Mode............................................................................................................. 8-9 8.3.6 Memory Fill Transfer Mode ................................................................................................................ 8-9 8.3.7 Single Address Transfer ....................................................................................................................... 8-9 8.3.8 Dual Address Transfer ....................................................................................................................... 8-12 8.3.9 DMA Transfer.................................................................................................................................... 8-17 8.3.10 Chain DMA Transfer ......................................................................................................................... 8-18 8.3.11 D ynamic Chain Operation ................................................................................................................. 8-20 8.3.12 Interrupts............................................................................................................................................ 8-21 8.3.13 Transfer Stall Detection Function ...................................................................................................... 8-21 8.3.14 Arbitration Among DMA Channels ................................................................................................... 8-22 ii Table of Contents 8.3.15 Restrictions in Access to PCI Bus...................................................................................................... 8-22 8.4 DMA Controller Registers ........................................................................................................................... 8-23 8.4.1 DMA Master Control Register (DM0MCR, DM1MCR)................................................................... 8-25 8.4.2 DMA Channel Control Register (DM0CCRn, DM1CCRn) .............................................................. 8-27 8.4.3 DMA Channel Status Register (DM0CSRn, DM1CSRn)) ................................................................ 8-31 8.4.4 DMA Source Address Register (DM0SARn, DM1SARn) ................................................................ 8-33 8.4.5 DMA Destination Address Register (DM0DARn, DM1DARn)........................................................ 8-34 8.4.6 DMA Chain Address Register (DM0CHARn, DM1CHARn) ........................................................... 8-35 8.4.7 DMA Source Address Increment Register (DM0SAIRn, DM1SAIRn)............................................. 8-36 8.4.8 DMA Destination Address Increment Register (DM0DAIRn, DM1DAIRn) .................................... 8-37 8.4.9 DMA Count Register (DM0CNTRn, DM1CNTRn).......................................................................... 8-38 8.4.10 DMA Memory Fiill Data Register (DM0MFDR, DM1MFDR) ........................................................ 8-39 8.5 Timing Diagrams ......................................................................................................................................... 8-40 8.5.1 Single Address Single Transfer from Memory to I/O (32-bit ROM) ................................................. 8-40 8.5.2 Single Address Single Transfer from Memory to I/O (16-bit ROM) ................................................. 8-41 8.5.3 Single Address Single Transfer from I/O to Memory (32-bit SRAM)............................................... 8-42 8.5.4 Single Address Burst Transfer from Memory to I/O (32-bit ROM) .................................................. 8-43 8.5.5 Single Address Burst Transfer from I/O to Memory (32-bit SRAM) ................................................ 8-44 8.5.6 Single Address Single Transfer from Memory to I/O (16-bit ROM) ................................................. 8-46 8.5.7 Single Address Single Transfer from I/O to Memory (16-bit SRAM)............................................... 8-47 8.5.8 Single Address Single Transfer from Memory to I/O (32-bit Half Speed ROM) .............................. 8-48 8.5.9 Single Address Single Transfer from I/O to Memory (32-bit Half Speed SRAM) ............................ 8-49 8.5.10 Single Address Single Transfer from Memory to I/O (64-bit SRAM)............................................... 8-50 8.5.11 Single Address Single Transfer from I/O to Memory (64-bit SDRAM) ............................................ 8-51 8.5.12 Single Address Single Transfer from Memory to I/O of Last Cycle when DMADONE* Signal is Set to Output ...................................................................................... 8-52 8.5.13 Single Address Single Transfer from Memory to I/O (32-bit SDRAM) ............................................ 8-53 8.5.14 Single Address Single Transfer from I/O to Memory (32-bit SDRAM) ............................................ 8-54 8.5.15 External I/O Device – SRAM Dual Address Transfer ....................................................................... 8-55 8.5.16 External I/O Device – SDRAM Dual Address Transfer .................................................................... 8-57 8.5.17 External I/O Device (Non-burst) – SDRAM Dual Address Transfer................................................. 8-59 9. SDRAM Controller................................................................................................................................................. 9-1 9.1 9.2 Characteristics................................................................................................................................................ 9-1 Block Diagram ............................................................................................................................................... 9-2 9.3 Detailed Explanation...................................................................................................................................... 9-3 9.3.1 Supported SDRAM configurations...................................................................................................... 9-3 9.3.2 Address Mapping................................................................................................................................. 9-4 9.3.3 Initialization of SDRAM ..................................................................................................................... 9-9 9.3.4 Initialization of Memory Data, ECC/Parity ....................................................................................... 9-10 9.3.5 Low Power Consumption Function ................................................................................................... 9-11 9.3.6 Bus Errors .......................................................................................................................................... 9-12 9.3.7 Memory Read and Memory Write ..................................................................................................... 9-12 9.3.8 Slow Write Burst................................................................................................................................ 9-12 9.3.9 Clock Feedback ................................................................................................................................. 9-12 9.3.10 ECC ................................................................................................................................................... 9-13 9.4 Registers....................................................................................................................................................... 9-17 9.4.1 SDRAM Channel Control Register (SDCCRn) 0x8000 (ch. 0) 0x8008 (ch. 1) 0x8010 (ch. 2) 0x8018 (ch. 3)........................................................................................................... 9-18 9.4.2 SDRAM Timing Register (SDCTR) 0x8040 ..................................................................................... 9-20 9.4.3 SDRAM Command Register (SDCCMD) 0x8058 ............................................................................ 9-22 9.4.4 ECC Control Register (ECCCR) 0xA000.......................................................................................... 9-23 9.4.5 ECC Status Register (ECCSR) 0xA008............................................................................................. 9-25 9.5 Timing Diagrams ......................................................................................................................................... 9-26 9.5.1 Single Read (64-bit Bus).................................................................................................................... 9-26 9.5.2 Single Write (64-bit Bus) ................................................................................................................... 9-28 9.5.3 Burst Read (64-bit Bus) ..................................................................................................................... 9-30 9.5.4 Burst Write (64-bit Bus) .................................................................................................................... 9-31 iii Table of Contents 9.5.5 9.5.6 9.5.7 9.5.8 9.6 Burst Write (64-bit Bus, Slow Write Burst) ....................................................................................... 9-32 Single Read (32-bit Bus).................................................................................................................... 9-33 Single Write (32-bit Bus) ................................................................................................................... 9-35 Low Power Consumption and Power Down Mode ........................................................................... 9-37 SDRAM Usage Example ............................................................................................................................. 9-42 10. PCI Controller....................................................................................................................................................... 10-1 10.1 Features ........................................................................................................................................................ 10-1 10.1.1 Overall ............................................................................................................................................... 10-1 10.1.2 Initiator Function ............................................................................................................................... 10-1 10.1.3 Target Function .................................................................................................................................. 10-2 10.1.4 PCI Arbiter......................................................................................................................................... 10-2 10.1.5 PDMAC (PCI DMA Controller)........................................................................................................ 10-2 10.2 Block Diagram ............................................................................................................................................. 10-3 10.3 Detailed Explanation.................................................................................................................................... 10-4 10.3.1 Terminology Explanation .................................................................................................................. 10-4 10.3.2 On-chip Register ................................................................................................................................ 10-4 10.3.3 Supported PCI Bus Commands ......................................................................................................... 10-6 10.3.4 Initiator Access (G-Bus → PCI Bus Address Conversion) ................................................................ 10-8 10.3.5 Target Access (PCI Bus → G-Bus Address Conversion)................................................................. 10-10 10.3.6 Post Write Function ......................................................................................................................... 10-12 10.3.7 Endian Switching Function.............................................................................................................. 10-12 10.3.8 66 MHz Operation Mode................................................................................................................. 10-13 10.3.9 Power Management ......................................................................................................................... 10-14 10.3.10 PDMAC (PCI DMA Controller)...................................................................................................... 10-15 10.3.11 Error Detection, Interrupt Reporting................................................................................................ 10-18 10.3.12 PCI Bus Arbiter................................................................................................................................ 10-20 10.3.13 PCI Boot .......................................................................................................................................... 10-22 10.3.14 Set Configuration Space .................................................................................................................. 10-23 10.3.15 PCI Clock ........................................................................................................................................ 10-23 10.4 PCI Controller Control Register................................................................................................................. 10-24 10.4.1 ID Register (PCIID) 0xD000 ........................................................................................................... 10-26 10.4.2 PCI Status, Command Register (PCISTATUS) 0xD004.................................................................. 10-27 10.4.3 Class Code, Revision ID Register (PCICCREV) 0xD008............................................................... 10-30 10.4.4 PCI Configuration 1 Register (PCICFG1) 0xD00C......................................................................... 10-31 10.4.5 P2G Memory Space 0 PCI Lower Base Address Register (P2GM0PLBASE) 0xD010 ................ 10-32 10.4.6 P2G Memory Space 0 PCI Upper Base Address Register (P2GM0PUBASE) 0xD014 ................ 10-33 10.4.7 P2G Memory Space 1 PCI Lower Base Address Register (P2GM1PLBASE) 0xD018 ................ 10-33 10.4.8 P2G Memory Space 1 PCI Upper Base Address Register (P2GM1PUBASE) 0xD01C ................ 10-34 10.4.9 P2G Memory Space 2 PCI Base Address Register (P2GM2PBASE) 0xD020......................... 10-34 10.4.10 P2G I/O Space PCI Base Address Register (P2GIOPBASE) 0xD024 ...................................... 10-35 10.4.11 Subsystem ID Register (PCISID) 0xD02C...................................................................................... 10-36 10.4.12 Capabilities Pointer Register (PCICAPPTR) 0xD034..................................................................... 10-37 10.4.13 PCI Configuration 2 Register (PCICFG2) 0xD03C......................................................................... 10-38 10.4.14 G2P Timeout Count Register (G2PTOCNT) 0xD040 .................................................................... 10-39 10.4.15 G2P Status Register (G2PSTATUS) 0xD080................................................................................... 10-40 10.4.16 G2P Interrupt Mask Register (G2PMASK) 0xD084 ....................................................................... 10-41 10.4.17 Satellite Mode PCI Status Register (PCISSTATUS) 0xD088.................................................... 10-42 10.4.18 PCI Status Interrupt Mask Register (PCIMASK) 0xD08C.............................................................. 10-43 10.4.19 P2G Configuration Register (P2GCFG) 0xD090 ............................................................................ 10-44 10.4.20 P2G Status Register (P2GSTATUS) 0xD094 .................................................................................. 10-46 10.4.21 P2G Interrupt Mask Register (P2GMASK) 0xD098 ....................................................................... 10-47 10.4.22 P2G Current Command Register (P2GCCMD) 0xD09C ................................................................ 10-48 10.4.23 PCI Bus Arbiter Request Port Register (PBAREQPORT) 0xD100 ........................................... 10-49 10.4.24 PCI Bus Arbiter Configuration Register (PBACFG) 0xD104 ................................................... 10-51 10.4.25 PCI Bus Arbiter Status Register (PBASTATUS) 0xD108 ............................................................... 10-52 10.4.26 PCI Bus Arbiter Interrupt Mask Register (PBAMASK) 0xD10C ............................................. 10-53 10.4.27 PCI Bus Arbiter Broken Master Register (PBABM) 0xD110 ................................................... 10-54 iv Table of Contents 10.4.28 10.4.29 10.4.30 10.4.31 10.4.32 10.4.33 10.4.34 10.4.35 10.4.36 10.4.37 10.4.38 10.4.39 10.4.40 10.4.41 10.4.42 10.4.43 10.4.44 10.4.45 10.4.46 10.4.47 10.4.48 10.4.49 10.4.50 10.4.51 10.4.52 10.4.53 10.4.54 10.4.55 10.4.56 10.4.57 10.4.58 10.4.59 10.4.60 10.4.61 10.4.62 10.4.63 PCI Bus Arbiter Current Request Register (PBACREQ) 0xD114 ............................................. 10-55 PCI Bus Arbiter Current Grant Register (PBACGNT) 0xD118 ................................................ 10-56 PCI Bus Arbiter Current State Register (PBACSTATE) 0xD11C ............................................. 10-57 G2P Memory Space 0 G-Bus Base Address Register (G2PM0GBASE) 0xD120 ..................... 10-59 G2P Memory Space 1 G-Bus Base Address Register (G2PM1GBASE) 0xD128 ..................... 10-60 G2P Memory Space 2 G-Bus Base Address Register (G2PM2GBASE) 0xD130 ..................... 10-61 G2P I/O Space G-Bus Base Address Register (G2PIOGBASE) 0xD138.................................. 10-62 G2P Memory Space 0 Address Mask Register (G2PM0MASK) 0xD140................................. 10-63 G2P Memory Space 1 Address Mask Register (G2PM1MASK) 0xD144................................. 10-64 G2P Memory Space 2 Address Mask Register (G2PM2MASK) 0xD148................................. 10-65 G2P I/O Space Address Mask Register (G2PIOMASK) 0xD14C ............................................. 10-66 G2P Memory Space 0 PCI Base Address Register (G2PM0PBASE) 0xD150 .......................... 10-67 G2P Memory Space 1 PCI Base Address Register (G2PM1PBASE) 0xD158 .......................... 10-68 G2P Memory Space 2 PCI Base Address Register (G2PM2PBASE) 0xD160 .......................... 10-69 G2P I/O Space PCI Base Address Register (G2PIOPBASE) 0xD168....................................... 10-70 PCI Controller Configuration Register (PCICCFG) 0xD170 .................................................... 10-71 PCI Controller Status Register (PCICSTATUS) 0xD174 ................................................................ 10-74 PCI Controller Interrupt Mask Register (PCICMASK) 0xD178 ............................................... 10-76 P2G Memory Space 0 G-Bus Base Address Register (P2GM0GBASE) 0xD180 ..................... 10-77 P2G Memory Space 1 G-Bus Base Address Register (P2GM1GBASE) 0xD188 ..................... 10-78 P2G Memory Space 2 G-Bus Base Address Register (P2GM2GBASE) 0xD190 ..................... 10-79 P2G I/O Space G-Bus Base Address Register (P2GIOGBASE) 0xD198.................................. 10-80 G2P Configuration Address Register(G2PCFGADRS) 0xD1A0 .............................................. 10-81 G2P Configuration Data Register (G2PCFGDATA) 0xD1A4 ................................................... 10-82 G2P Interrupt Acknowledge Data Register (G2PINTACK) 0xD1C8 ........................................ 10-83 G2P Special Cycle Data Register (G2PSPC) 0xD1CC.................................................................... 10-84 Configuration Data 0 Register (PCICDATA0) 0xD1D0.................................................................. 10-85 Configuration Data 1 Register (PCICDATA1) 0xD1D4.................................................................. 10-86 Configuration Data 2 Register (PCICDATA2) 0xD1D8.................................................................. 10-87 Configuration Data 3 Register (PCICDATA3) 0xD1DC ................................................................. 10-88 PDMAC Chain Address Register (PDMCA) 0xD200 .................................................................... 10-89 PDMAC G-Bus Address Register (PDMGA) 0xD208.................................................................... 10-90 PDMAC PCI Bus Address Register (PDMPA) 0xD210 .................................................................. 10-91 PDMAC Count Register (PDMCTR) 0xD218 ................................................................................ 10-92 PDMAC Configuration Register (PDMCFG) 0xD220.................................................................... 10-93 PDMAC Status Register (PDMSTATUS) 0xD228 ........................................................................ 10-95 10.5 PCI Configuration Space Register ............................................................................................................. 10-98 10.5.1 Capability ID Register (Cap_ID) 0xDC .......................................................................................... 10-99 10.5.2 Next Item Pointer Register (Next_Item_Ptr) 0xDD...................................................................... 10-100 10.5.3 Power Management Capability Register (PMC) 0xDE ................................................................. 10-101 10.5.4 Power Management Control/Status Register (PMCSR) 0xE0 ................................................. 10-102 11. Serial I/O Port ....................................................................................................................................................... 11-1 11.1 Features ........................................................................................................................................................ 11-1 11.2 Block Diagram ............................................................................................................................................. 11-2 11.3 Detailed Explanation.................................................................................................................................... 11-3 11.3.1 Overview ........................................................................................................................................... 11-3 11.3.2 Data Format ....................................................................................................................................... 11-3 11.3.3 Serial Clock Generator....................................................................................................................... 11-5 11.3.4 Data Reception................................................................................................................................... 11-7 11.3.5 Data Transmission ............................................................................................................................. 11-7 11.3.6 DMA Transfer.................................................................................................................................... 11-7 11.3.7 Flow Control...................................................................................................................................... 11-8 11.3.8 Reception Data Status........................................................................................................................ 11-8 11.3.9 Reception Time Out ........................................................................................................................... 11-9 11.3.10 Software Reset ................................................................................................................................... 11-9 11.3.11 Error Detection/Interrupt Signaling ..................................................................................................11-10 11.3.12 Multi-Controller System ...................................................................................................................11-11 11.4 Registers......................................................................................................................................................11-12 v Table of Contents 11.4.1 11.4.2 11.4.3 11.4.4 11.4.5 11.4.6 11.4.7 11.4.8 11.4.9 Line Control Register 0 (SILCR0) 0xF300 (Ch. 0) Line Control Register 1 (SILCR1) 0xF400 (Ch. 1) ..........................................................................11-13 DMA/Interrupt Control Register 0 (SIDICR0) 0xF304 (Ch. 0) DMA/Interrupt Control Register 1 (SIDICR1) 0xF404 (Ch. 1)........................................................11-15 DMA/Interrupt Status Register 0 (SIDISR0) 0xF308 (Ch. 0) DMA/Interrupt Status Register 1 (SIDISR1) 0xF408 (Ch. 1) ..........................................................11-17 Status Change Interrupt Status Register 0 (SISCISR0) 0xF30C (Ch. 0) Status Change Interrupt Status Register 1 (SISCISR1) 0xF40C (Ch. 1) .......................................11-19 FIFO Control Register 0 (SIFCR0) 0xF310 (Ch. 0) FIFO Control Register 1 (SIFCR1) 0xF410 (Ch. 1) .........................................................................11-20 Flow Control Register 0 (SIFLCR0) 0xF314 (Ch. 0) Flow Control Register 1 (SIFLCR1) 0xF414 (Ch. 1) .......................................................................11-21 Baud Rate Control Register 0 (SIBGR0) 0xF318 (Ch. 0) Baud Rate Control Register 1 (SIBGR1) 0xF418 (Ch. 1) ................................................................11-22 Transmit FIFO Register 0 (SITFIFO0) 0xF31C (Ch. 0) Transmit FIFO Register 1 (SITFIFO1) 0xF41C (Ch. 1) ...................................................................11-23 Receive FIFO Register 0 (SIRFIFO0) 0xF320 (Ch. 0) Receive FIFO Register 1 (SIRFIFO1) 0xF420 (Ch. 1).....................................................................11-24 12. Timer/Counter....................................................................................................................................................... 12-1 12.1 12.2 Features ........................................................................................................................................................ 12-1 Block Diagram ............................................................................................................................................. 12-2 12.3 Detailed Explanation.................................................................................................................................... 12-3 12.3.1 Overview ........................................................................................................................................... 12-3 12.3.2 Counter Clock.................................................................................................................................... 12-3 12.3.3 Counter .............................................................................................................................................. 12-4 12.3.4 Interval Timer Mode .......................................................................................................................... 12-4 12.3.5 Pulse Generator Mode ....................................................................................................................... 12-6 12.3.6 Watchdog Timer Mode ...................................................................................................................... 12-7 12.4 Registers....................................................................................................................................................... 12-9 12.4.1 Timer Control Register n (TMTCRn) TMTCR0 0xF000 TMTCR1 0xF100 TMTCR2 0xF200... 12-10 12.4.2 Timer Interrupt Status Register n (TMTISRn) TMTISR0 0xF004 TMTISR1 0xF104 TMTISR2 0xF204 ............................................................................................................................12-11 12.4.3 Compare Register An (TMCPRAn) TMCPRA0 0xF008 TMCPRA1 0xF108 TMCPRA2 0xF208.......................................................................................................................... 12-12 12.4.4 Compare Register Bn (TMCPRBn) TMCPRB0 0xF00C TMCPRB1 0xF10C .............................. 12-13 12.4.5 Interval Timer Mode Register n (TMITMRn) TMITMR0 0xF010 TMITMR1 0xF110 TMITMR2 0xF210 .......................................................................................................................... 12-14 12.4.6 Divide Register n (TMCCDRn) TMCCDR0 0xF020 TMCCDR1 0xF120 TMCCDR2 0xF220 .. 12-15 12.4.7 Pulse Generator Mode Register n (TMPGMRn) TMPGMR0 0xF000 TMPGMR1 0xF130 ........ 12-16 12.4.8 Watchdog Timer Mode Register n (TMWTMRn) TMWTMR2 0xF240 ....................................... 12-17 12.4.9 Timer Read Register n (TMTRRn) 0xF0F0 TMTRR0 0xF0F0 TMTRR1 0xF1F0 TMTRR2 0xF2F0 ............................................................................................................................ 12-18 13. Parallel I/O Port .................................................................................................................................................... 13-1 13.1 13.2 Characteristics.............................................................................................................................................. 13-1 Block Diagram ............................................................................................................................................. 13-1 13.3 Detailed Description .................................................................................................................................... 13-2 13.3.1 Selecting PIO Pins ............................................................................................................................. 13-2 13.3.2 General-purpose Parallel Port ............................................................................................................ 13-2 13.4 Registers....................................................................................................................................................... 13-2 13.4.1 PIO Output Data Register (PIODO) 0xF500 ..................................................................................... 13-3 13.4.2 PIO Input Data Register (PIODI) 0xF504 ......................................................................................... 13-3 13.4.3 PIO Direction Control Register (PIODIR) 0xF508 ........................................................................... 13-4 13.4.4 PIO Open Drain Control Register (XPIOOD) 0xF50C ..................................................................... 13-4 14. AC-link Controller................................................................................................................................................ 14-1 14.1 Features ........................................................................................................................................................ 14-1 vi Table of Contents 14.2 Configuration ............................................................................................................................................... 14-2 14.3 Functional Description................................................................................................................................. 14-3 14.3.1 CODEC Connection .......................................................................................................................... 14-3 14.3.2 Boot Configuration ............................................................................................................................ 14-4 14.3.3 Usage Flow ........................................................................................................................................ 14-5 14.3.4 AC-link Start Up................................................................................................................................ 14-7 14.3.5 CODEC Register Access ................................................................................................................... 14-8 14.3.6 Sample-data Transmission and Reception ......................................................................................... 14-9 14.3.7 GPIO Operation ............................................................................................................................... 14-14 14.3.8 Interrupt ........................................................................................................................................... 14-15 14.3.9 AC-link Low-power Mode .............................................................................................................. 14-15 14.4 Registers..................................................................................................................................................... 14-16 14.4.1 ACLC Control Enable Register 0xF700 ......................................................................................... 14-17 14.4.2 ACLC Control Disable Register 0xF704 ........................................................................................ 14-20 14.4.3 ACLC CODEC Register Access Register 0xF708 .......................................................................... 14-22 14.4.4 ACLC Interrupt Status Register 0xF710......................................................................................... 14-23 14.4.5 ACLC Interrupt Masked Status Register 0xF714 ............................................................................ 14-25 14.4.6 ACLC Interrupt Enable Register 0xF718 ........................................................................................ 14-25 14.4.7 ACLC Interrupt Disable Register 0xF71C....................................................................................... 14-25 14.4.8 ACLC Semaphore Register 0xF720 .............................................................................................. 14-26 14.4.9 ACLC GPI Data Register 0xF740 ................................................................................................. 14-27 14.4.10 ACLC GPO Data Register 0xF744................................................................................................ 14-28 14.4.11 ACLC Slot Enable Register 0xF748.............................................................................................. 14-29 14.4.12 ACLC Slot Disable Register 0xF74C ............................................................................................ 14-31 14.4.13 ACLC FIFO Status Register 0xF750 ............................................................................................. 14-32 14.4.14 ACLC DMA Request Status Register 0xF780................................................................................ 14-34 14.4.15 ACLC DMA Channel Selection Register 0xF784 ........................................................................... 14-35 14.4.16 ACLC Audio PCM Output Data Register 0xF7A0.......................................................................... 14-36 14.4.17 ACLC Center Data Register 0xF7A8 ............................................................................................ 14-37 14.4.18 ACLC Audio PCM Input Data Register 0xF7B0............................................................................ 14-38 14.4.19 ACLC Modem Input Data Register 0xF7BC.................................................................................. 14-39 14.4.20 ACLC Revision ID Register 0xF7FC ............................................................................................ 14-40 15. Interrupt Controller ............................................................................................................................................... 15-1 15.1 Characteristics.............................................................................................................................................. 15-1 15.2 Block Diagram ............................................................................................................................................. 15-2 15.3 Detailed Explanation.................................................................................................................................... 15-4 15.3.1 Interrupt sources ................................................................................................................................ 15-4 15.3.2 Interrupt request detection ................................................................................................................. 15-5 15.3.3 Interrupt level assigning..................................................................................................................... 15-5 15.3.4 Interrupt priority assigning ................................................................................................................ 15-6 15.3.5 Interrupt notification .......................................................................................................................... 15-7 15.3.6 Clearing interrupt requests................................................................................................................. 15-7 15.3.7 Interrupt requests ............................................................................................................................... 15-8 15.4 Registers..................................................................................................................................................... 15-10 15.4.1 Interrupt Detection Enable Register (IRDEN) 0xF600.....................................................................15-11 15.4.2 Interrupt Detection Mode Register 0 (IRDM0) 0xF604 .................................................................. 15-12 15.4.3 Interrupt Detection Mode Register 1 (IRDM1) 0xF608 .................................................................. 15-14 15.4.4 Interrupt Level Register 0 (IRLVL0) 0xF610 .................................................................................. 15-17 15.4.5 Interrupt Level Register (IRLVL1) 0xF614 ..................................................................................... 15-19 15.4.6 Interrupt Level Register 2 (IRLVL2) 0xF618 .................................................................................. 15-21 15.4.7 Interrupt Level Register 3 (IRLVL3) 0xF61C ................................................................................. 15-22 15.4.8 Interrupt Level Register 4 (IRLVL4) 0xF620 .................................................................................. 15-24 15.4.9 Interrupt Level Register 5 (IRLVL5) 0xF624 ................................................................................ 15-26 15.4.10 Interrupt Level Register 6 (IRLVL6) 0xF628 .................................................................................. 15-28 15.4.11 Interrupt Level Register 7 (IRLVL7) 0xF62C ................................................................................. 15-30 15.4.12 Interrupt Mask Level Register (IRMSK) 0xF640............................................................................ 15-32 15.4.13 Interrupt Edge Detection Clear Register (IREDC) 0xF660 ............................................................. 15-33 vii Table of Contents 15.4.14 15.4.15 15.4.16 15.4.17 15.4.18 15.4.19 15.4.20 15.4.21 16.1 16.2 Interrupt Pending Register (IRPND) 0xF680 .................................................................................. 15-34 Interrupt Current Status Register (IRCS) 0xF6A0........................................................................... 15-37 Interrupt Request Flag Register 0 (IRFLAG0) 0xF510 ................................................................... 15-39 Interrupt Request Flag Register 1 (IRFLAG1) 0xF514 ................................................................... 15-40 Interrupt Request Polarity Control Register (IRPOL) 0xF518 ........................................................ 15-41 Interrupt Request Control Register (IRRCNT) 0xF51C .................................................................. 15-42 Interrupt Request Internal Interrupt Mask Register (IRMASKINT) 0xF520 .................................. 15-43 Interrupt Request External Interrupt Mask Register (IRMASKEXT) 0xF524 ................................ 15-44 16. Ethernet Controller ............................................................................................................................................... 16-1 Features ........................................................................................................................................................ 16-1 Block diagram.............................................................................................................................................. 16-1 16.3 Detailed explanation .................................................................................................................................... 16-2 16.3.1 Accessing the Ethernet Controller ..................................................................................................... 16-2 16.3.2 Data structure..................................................................................................................................... 16-4 16.3.3 System control model ........................................................................................................................ 16-5 16.3.4 Functional overview .......................................................................................................................... 16-6 16.3.5 DMA function block ........................................................................................................................ 16-10 16.3.6 MAC function blocks .......................................................................................................................16-11 16.3.7 Memory configuration ..................................................................................................................... 16-13 16.3.8 MAC operation ................................................................................................................................ 16-20 16.3.9 DMA operation ................................................................................................................................ 16-32 16.4 Registers..................................................................................................................................................... 16-37 16.4.1 Overview ......................................................................................................................................... 16-37 16.4.2 PCI Configuration Register group ................................................................................................... 16-42 16.4.3 DMA Control, Status Register group ............................................................................................... 16-54 16.4.4 Flow Control Register group ........................................................................................................... 16-68 16.4.5 MAC Control, Status Register group ............................................................................................... 16-70 17. SPI (Serial Peripheral Interface) Module (SPI) .................................................................................................... 17-1 17.1 17.2 Characteristics.............................................................................................................................................. 17-1 Block diagram.............................................................................................................................................. 17-2 17.3 Operational description ................................................................................................................................ 17-3 17.3.1 Operation modes................................................................................................................................ 17-3 17.3.2 Transmitter/Receiver.......................................................................................................................... 17-3 17.3.3 Baud Rate Generator.......................................................................................................................... 17-4 17.3.4 Transfer format .................................................................................................................................. 17-5 17.3.5 Interframe Delay Time Counter ......................................................................................................... 17-6 17.3.6 Buffer configuration .......................................................................................................................... 17-7 17.3.7 SPI system errors ............................................................................................................................... 17-7 17.3.8 Interrupts............................................................................................................................................ 17-7 17.4 Registers....................................................................................................................................................... 17-8 17.4.1 SPI Master Control Register (SPMCR) 0xF800 ................................................................................ 17-8 17.4.2 SPI Control Register 0 (SPCR0) 0xF804.......................................................................................... 17-9 17.4.3 SPI Control Register 1 (SPCR1) 0xF808..........................................................................................17-11 17.4.4 SPI Interframe Delay Time Counter (SPFS) 0xF80C ...................................................................... 17-12 17.4.5 SPI Status Register (SPSR) 0xF814................................................................................................ 17-13 17.4.6 SPI Data Register (SPDR) 0xF818 ................................................................................................. 17-14 18. NAND Flash Memory IPL ................................................................................................................................... 18-1 18.1 Features ........................................................................................................................................................ 18-1 18.2 Block Diagram ............................................................................................................................................. 18-2 18.2.1 System Block Diagram ...................................................................................................................... 18-2 18.2.2 Function Block Diagram.................................................................................................................... 18-2 18.3 Detailed Explanation.................................................................................................................................... 18-3 18.3.1 NAND IPL Operation Conditions...................................................................................................... 18-3 18.3.2 NAND IPL Operation ........................................................................................................................ 18-4 18.3.3 NAND Flash Memory IPL Address Map........................................................................................... 18-8 viii Table of Contents 18.3.4 18.3.5 18.3.6 19.1 19.2 NAND Flash Memory IPL Control Information...............................................................................18-11 Data configuration of NAND Flash Memory .................................................................................. 18-17 NAND Flash Memory IPL Error Handling ..................................................................................... 18-26 19. On-Chip SRAM .................................................................................................................................................... 19-1 Characteristics.............................................................................................................................................. 19-1 Block diagram.............................................................................................................................................. 19-1 19.3 Detailed explanation .................................................................................................................................... 19-2 19.3.1 Base address ...................................................................................................................................... 19-2 19.3.2 Access cycle count............................................................................................................................. 19-2 19.4 Register ........................................................................................................................................................ 19-3 19.4.1 On-chip SRAM Control Register (SRAMCR : 0x6000) ................................................................... 19-3 20. NAND Flash Memory Controller ......................................................................................................................... 20-1 20.1 20.2 Features ........................................................................................................................................................ 20-1 Block diagram.............................................................................................................................................. 20-1 20.3 Detailed operation ........................................................................................................................................ 20-2 20.3.1 Accessing NAND flash memory ....................................................................................................... 20-2 20.3.2 ECC control ....................................................................................................................................... 20-5 20.4 Registers....................................................................................................................................................... 20-6 20.4.1 NAND Flash Memory Data Transfer Register (NDFDTR) 0x5000 .................................................. 20-6 20.4.2 NAND Flash Memory Mode Control Register (NDFMCR) 0x5008................................................. 20-7 20.4.3 NAND Flash Memory Status Register (NDFSR) 0x5010 ................................................................. 20-8 20.4.4 NAND Flash Memory Interrupt Status Register (NDFISR) 0x5018 ................................................. 20-9 20.4.5 NAND Flash Memory Interrupt Mask Register (NDFIMR) 0x5020 .............................................. 20-10 20.4.6 NAND Flash Memory Strobe Pulse Width Register (NDFSPR) 0x5028 .........................................20-11 20.4.7 NAND Flash Memory Reset Register (NDFRSTR) 0x5030 ........................................................... 20-12 20.5 Timing diagram.......................................................................................................................................... 20-13 20.5.1 Command cycles and address cycles ............................................................................................... 20-13 20.5.2 Data read cycles............................................................................................................................... 20-14 20.5.3 Data write cycles.............................................................................................................................. 20-15 20.6 NAND flash memory connection example ................................................................................................ 20-16 21. Extended EJTAG Interface ................................................................................................................................... 21-1 21.1 Extended EJTAG Interface .......................................................................................................................... 21-1 21.2 JTAG Boundary Scan Test .......................................................................................................................... 21-2 21.2.1 JTAG Controller and Register ........................................................................................................... 21-2 21.2.2 Instruction Register............................................................................................................................ 21-3 21.2.3 Boundary Scan Register..................................................................................................................... 21-3 21.2.4 Device ID Register ............................................................................................................................ 21-6 21.3 Initializing the Extended EJTAG Interface .................................................................................................. 21-7 22. Electrical Characteristics ...................................................................................................................................... 22-1 22.1 Absolute maximum rating (*1) .................................................................................................................... 22-1 22.2 Recommended operating conditions ............................................................................................................ 22-1 22.3 DC characteristics ........................................................................................................................................ 22-2 22.3.1 DC characteristics of pins other than PCI Interface pins ................................................................... 22-2 22.3.2 DC characteristics of PCI Interface pins............................................................................................ 22-3 22.4 PLL power.................................................................................................................................................... 22-4 22.4.1 PLL power connection example ........................................................................................................ 22-4 22.5 AC characteristics ........................................................................................................................................ 22-5 22.5.1 MASTERCLK AC characteristics ..................................................................................................... 22-5 22.5.2 Power on AC characteristics .............................................................................................................. 22-5 22.5.3 SDRAM Interface AC characteristics................................................................................................ 22-6 22.5.4 External Bus Interface AC characteristics ......................................................................................... 22-8 22.5.5 PCI Interface AC characteristics (66 MHz) ....................................................................................... 22-9 22.5.6 PCI Interface AC characteristics (33 MHz) ....................................................................................... 22-9 ix Table of Contents 22.5.7 22.5.8 22.5.9 22.5.10 22.5.11 22.5.12 22.5.13 22.5.14 22.5.15 22.5.16 23.1 23.2 24.1 24.2 24.3 24.4 24.5 24.6 PCI EEPROM Interface AC characteristics......................................................................................22-11 DMA Interface AC characteristics ....................................................................................................22-11 Interrupt Interface AC characteristics .............................................................................................. 22-12 SIO Interface AC characteristics...................................................................................................... 22-13 Timer Interface AC characteristics .................................................................................................. 22-13 PIO Interface AC characteristics...................................................................................................... 22-14 AC-link Interface AC characteristics ............................................................................................... 22-14 NAND Flash Memory Interface AC characteristics ........................................................................ 22-15 SPI AC characteristics ..................................................................................................................... 22-16 Ethernet Interface (MII) AC characteristics..................................................................................... 22-17 23. Pinout and Package Information........................................................................................................................... 23-1 Pinout Diagram ............................................................................................................................................ 23-1 Package Dimensions .................................................................................................................................... 23-9 Notes on TX49/H3 Core .............................................................................................................................. 24-1 Notes on External Bus Controller ................................................................................................................ 24-3 Notes on DMA Controller............................................................................................................................ 24-3 Note on PCI Controller ................................................................................................................................ 24-6 Notes on Serial I/O Port ............................................................................................................................. 24-10 Notes on Ether Controller ...........................................................................................................................24-11 24. Notes on Use of TMPR4938................................................................................................................................. 24-1 25. Parts Number when Ordering ............................................................................................................................... 25-1 Appendix A A.1 A.2 A.3 A.4 A.5 TX49/H3 Core Supplement ................................................................................................................ A-1 Processor ID.................................................................................................................................................. A-1 Interrupts....................................................................................................................................................... A-1 Bus Snoop ..................................................................................................................................................... A-1 Halt/Doze mode ............................................................................................................................................ A-1 Memory access order .................................................................................................................................... A-1 TMPR4938 Revision History............................................................................................................................................1 x Handling Precautions 1 Using Toshiba Semiconductors Safely 1. Using Toshiba Semiconductors Safely TOSHIBA are continually working to improve the quality and the reliability of their products. Nevertheless, semiconductor devices in general can malfunction or fail due to their inherent electrical sensitivity and vulnerability to physical stress. It is the responsibility of the buyer, when utilizing TOSHIBA products, to observe standards of safety, and to avoid situations in which a malfunction or failure of a TOSHIBA product could cause loss of human life, bodily injury or damage to property. In developing your designs, please ensure that TOSHIBA products are used within specified operating ranges as set forth in the most recent products specifications. Also, please keep in mind the precautions and conditions set forth in the TOSHIBA Semiconductor Reliability Handbook. The TOSHIBA products listed in this document are intended for usage in general electronics applications (computer, personal equipment, office equipment, measuring equipment, industrial robotics, domestic appliances, etc.). These TOSHIBA products are neither intended nor warranted for usage in equipment that requires extraordinarily high quality and/or reliability or a malfunction or failure of which may cause loss of human life or bodily injury (“Unintended Usage”). Unintended Usage include atomic energy control instruments, airplane or spaceship instruments, transportation instruments, traffic signal instruments, combustion control instruments, medical instruments, all types of safety devices, etc.. Unintended Usage of TOSHIBA products listed in this document shall be made at the customer’s own risk. 1-1 1 Using Toshiba Semiconductors Safely 1-2 2 Safety Precautions 2. Safety Precautions This section lists important precautions which users of semiconductor devices (and anyone else) should observe in order to avoid injury and damage to property, and to ensure safe and correct use of devices. Please be sure that you understand the meanings of the labels and the graphic symbol described below before you move on to the detailed descriptions of the precautions. [Explanation of labels] Indicates an imminently hazardous situation which will result in death or serious injury if you do not follow instructions. Indicates a potentially hazardous situation which could result in death or serious injury if you do not follow instructions. Indicates a potentially hazardous situation which if not avoided, may result in minor injury or moderate injury. [Explanation of graphic symbol] Graphic symbol Meaning Indicates that caution is required (laser beam is dangerous to eyes). 2-1 2 Safety Precautions 2.1 General Precautions regarding Semiconductor Devices Do not use devices under conditions exceeding their absolute maximum ratings (e.g. current, voltage, power dissipation or temperature). This may cause the device to break down, degrade its performance, or cause it to catch fire or explode resulting in injury. Do not insert devices in the wrong orientation. Make sure that the positive and negative terminals of power supplies are connected correctly. Otherwise the rated maximum current or power dissipation may be exceeded and the device may break down or undergo performance degradation, causing it to catch fire or explode and resulting in injury. When power to a device is on, do not touch the device’s heat sink. Heat sinks become hot, so you may burn your hand. Do not touch the tips of device leads. Because some types of device have leads with pointed tips, you may prick your finger. When conducting any kind of evaluation, inspection or testing, be sure to connect the testing equipment’s electrodes or probes to the pins of the device under test before powering it on. Otherwise, you may receive an electric shock causing injury. Before grounding an item of measuring equipment or a soldering iron, check that there is no electrical leakage from it. Electrical leakage may cause the device which you are testing or soldering to break down, or could give you an electric shock. Always wear protective glasses when cutting the leads of a device with clippers or a similar tool. If you do not, small bits of metal flying off the cut ends may damage your eyes. 2-2 2 Safety Precautions 2.2 2.2.1 Precautions Specific to Each Product Group Optical semiconductor devices W hen a visible semiconductor laser is operating, do not look directly into the laser beam or look through the optical system. This is highly likely to impair vision, and in the worst case may cause blindness. If it is necessary to examine the laser apparatus, for example to inspect its optical characteristics, always wear the appropriate type of laser protective glasses as stipulated by IEC standard IEC825-1. Ensure that the current flowing in an LED device does not exceed the device’s maximum rated current. This is particularly important for resin-packaged LED devices, as excessive current may cause the package resin to blow up, scattering resin fragments and causing injury. When testing the dielectric strength of a photocoupler, use testing equipment which can shut off the supply voltage to the photocoupler. If you detect a leakage current of more than 100 µA, use the testing equipment to shut off the photocoupler’s supply voltage; otherwise a large short-circuit current will flow continuously, and the device may break down or burst into flames, resulting in fire or injury. When incorporating a visible semiconductor laser into a design, use the device’s internal photodetector or a separate photodetector to stabilize the laser’s radiant power so as to ensure that laser beams exceeding the laser’s rated radiant power cannot be emitted. If this stabilizing mechanism does not work and the rated radiant power is exceeded, the device may break down or the excessively powerful laser beams may cause injury. 2.2.2 Power devices Never touch a power device while it is powered on. Also, after turning off a power device, do not touch it until it has thoroughly discharged all remaining electrical charge. Touching a power device while it is powered on or still charged could cause a severe electric shock, resulting in death or serious injury. When conducting any kind of evaluation, inspection or testing, be sure to connect the testing equipment’s electrodes or probes to the device under test before powering it on. When you have finished, discharge any electrical charge remaining in the device. Connecting the electrodes or probes of testing equipment to a device while it is powered on may result in electric shock, causing injury. 2-3 2 Safety Precautions Do not use devices under conditions which exceed their absolute maximum ratings (current, voltage, power dissipation, temperature etc.). This may cause the device to break down, causing a large short-circuit current to flow, which may in turn cause it to catch fire or explode, resulting in fire or injury. Use a unit which can detect short-circuit currents and which will shut off the power supply if a short-circuit occurs. If the power supply is not shut off, a large short-circuit current will flow continuously, which may in turn cause the device to catch fire or explode, resulting in fire or injury. When designing a case for enclosing your system, consider how best to protect the user from shrapnel in the event of the device catching fire or exploding. Flying shrapnel can cause injury. When conducting any kind of evaluation, inspection or testing, always use protective safety tools such as a cover for the device. Otherwise you may sustain injury caused by the device catching fire or exploding. Make sure that all metal casings in your design are grounded to earth. Even in modules where a device’s electrodes and metal casing are insulated, capacitance in the module may cause the electrostatic potential in the casing to rise. Dielectric breakdown may cause a high voltage to be applied to the casing, causing electric shock and injury to anyone touching it. When designing the heat radiation and safety features of a system incorporating high-speed rectifiers, remember to take the device’s forward and reverse losses into account. The leakage current in these devices is greater than that in ordinary rectifiers; as a result, if a high-speed rectifier is used in an extreme environment (e.g. at high temperature or high voltage), its reverse loss may increase, causing thermal runaway to occur. This may in turn cause the device to explode and scatter shrapnel, resulting in injury to the user. A design should ensure that, except when the main circuit of the device is active, reverse bias is applied to the device gate while electricity is conducted to control circuits, so that the main circuit will become inactive. Malfunction of the device may cause serious accidents or injuries. W hen conducting any kind of evaluation, inspection or testing, either wear protective gloves or wait until the device has cooled properly before handling it. Devices become hot when they are operated. Even after the power has been turned off, the device will retain residual heat which may cause a burn to anyone touching it. 2.2.3 Bipolar ICs (for use in automobiles) If your design includes an inductive load such as a motor coil, incorporate diodes or similar devices into the design to prevent negative current from flowing in. The load current generated by powering the device on and off may cause it to function erratically or to break down, which could in turn cause injury. Ensure that the power supply to any device which incorporates protective functions is stable. If the power supply is unstable, the device may operate erratically, preventing the protective functions from working correctly. If protective functions fail, the device may break down causing injury to the user. 2-4 3 General Safety Precautions and Usage Considerations 3. General Safety Precautions and Usage Considerations This section is designed to help you gain a better understanding of semiconductor devices, so as to ensure the safety, quality and reliability of the devices which you incorporate into your designs. 3.1 3.1.1 From Incoming to Shipping Electrostatic discharge (ESD) When handling individual devices (which are not yet mounted on a printed circuit board), be sure that the environment is protected against electrostatic electricity. Operators should wear anti-static clothing, and containers and other objects which come into direct contact with devices should be made of anti-static materials and should be grounded to earth via an 0.5- to 1.0-MΩ protective resistor. Please follow the precautions described below; this is particularly important for devices which are marked “Be careful of static.”. (1) Work environment • When humidity in the working environment decreases, the human body and other insulators can easily become charged with static electricity due to friction. Maintain the recommended humidity of 40% to 60% in the work environment, while also taking into account the fact that moisture-proof-packed products may absorb moisture after unpacking. • Be sure that all equipment, jigs and tools in the working area are grounded to earth. • Place a conductive mat over the floor of the work area, or take other appropriate measures, so that the floor surface is protected against static electricity and is grounded to earth. The surface resistivity should be 104 to 108 Ω/sq and the resistance between surface and ground, 7.5 × 105 to 108 Ω • Cover the workbench surface also with a conductive mat (with a surface resistivity of 104 to 108 Ω/sq, for a resistance between surface and ground of 7.5 × 105 to 108 Ω) . The purpose of this is to disperse static electricity on the surface (through resistive components) and ground it to earth. Workbench surfaces must not be constructed of low-resistance metallic materials that allow rapid static discharge when a charged device touches them directly. • Pay attention to the following points when using automatic equipment in your workplace: (a) When picking up ICs with a vacuum unit, use a conductive rubber fitting on the end of the pick-up wand to protect against electrostatic charge. (b) Minimize friction on IC package surfaces. If some rubbing is unavoidable due to the device’s mechanical structure, minimize the friction plane or use material with a small friction coefficient and low electrical resistance. Also, consider the use of an ionizer. (c) In sections which come into contact with device lead terminals, use a material which dissipates static electricity. (d) Ensure that no statically charged bodies (such as work clothes or the human body) touch the devices. 3-1 3 General Safety Precautions and Usage Considerations (e) Make sure that sections of the tape carrier which come into contact with installation devices or other electrical machinery are made of a low-resistance material. (f) Make sure that jigs and tools used in the assembly process do not touch devices. (g) In processes in which packages may retain an electrostatic charge, use an ionizer to neutralize the ions. • Make sure that CRT displays in the working area are protected against static charge, for example by a VDT filter. As much as possible, avoid turning displays on and off. Doing so can cause electrostatic induction in devices. • Keep track of charged potential in the working area by taking periodic measurements. • Ensure that work chairs are protected by an anti-static textile cover and are grounded to the floor surface by a grounding chain. (Suggested resistance between the seat surface and grounding chain is 7.5 × 105 to 1012Ω.) • Install anti-static mats on storage shelf surfaces. (Suggested surface resistivity is 104 to 108 Ω/sq; suggested resistance between surface and ground is 7.5 × 105 to 108 Ω.) • For transport and temporary storage of devices, use containers (boxes, jigs or bags) that are made of anti-static materials or materials which dissipate electrostatic charge. • Make sure that cart surfaces which come into contact with device packaging are made of materials which will conduct static electricity, and verify that they are grounded to the floor surface via a grounding chain. • In any location where the level of static electricity is to be closely controlled, the ground resistance level should be Class 3 or above. Use different ground wires for all items of equipment which may come into physical contact with devices. (2) Operating environment • Operators must wear anti-static clothing and conductive shoes (or a leg or heel strap). • Operators must wear a wrist strap grounded to earth via a resistor of about 1 MΩ. • Soldering irons must be grounded from iron tip to earth, and must be used only at low voltages (6 V to 24 V). • If the tweezers you use are likely to touch the device terminals, use anti-static tweezers and in particular avoid metallic tweezers. If a charged device touches a low-resistance tool, rapid discharge can occur. When using vacuum tweezers, attach a conductive chucking pat to the tip, and connect it to a dedicated ground used especially for anti-static purposes (suggested resistance value: 104 to 108 Ω). • Do not place devices or their containers near sources of strong electrical fields (such as above a CRT). 3-2 3 General Safety Precautions and Usage Considerations • When storing printed circuit boards which have devices mounted on them, use a board container or bag that is protected against static charge. To avoid the occurrence of static charge or discharge due to friction, keep the boards separate from one other and do not stack them directly on top of one another. • Ensure, if possible, that any articles (such as clipboards) which are brought to any location where the level of static electricity must be closely controlled are constructed of anti-static materials. • In cases where the human body comes into direct contact with a device, be sure to wear anti-static finger covers or gloves (suggested resistance value: 108 Ω or less). • Equipment safety covers installed near devices should have resistance ratings of 109 Ω or less. • If a wrist strap cannot be used for some reason, and there is a possibility of imparting friction to devices, use an ionizer. • The transport film used in TCP products is manufactured from materials in which static charges tend to build up. When using these products, install an ionizer to prevent the film from being charged with static electricity. Also, ensure that no static electricity will be applied to the product’s copper foils by taking measures to prevent static occuring in the peripheral equipment. 3.1.2 Vibration, impact and stress Handle devices and packaging materials with care. To avoid damage to devices, do not toss or drop packages. Ensure that devices are not subjected to mechanical vibration or shock during transportation. Ceramic package devices and devices in canister-type packages which have empty space inside them are subject to damage from vibration and shock because the bonding wires are secured only at their ends. Vibration Plastic molded devices, on the other hand, have a relatively high level of resistance to vibration and mechanical shock because their bonding wires are enveloped and fixed in resin. However, when any device or package type is installed in target equipment, it is to some extent susceptible to wiring disconnections and other damage from vibration, shock and stressed solder junctions. Therefore when devices are incorporated into the design of equipment which will be subject to vibration, the structural design of the equipment must be thought out carefully. If a device is subjected to especially strong vibration, mechanical shock or stress, the package or the chip itself may crack. In products such as CCDs which incorporate window glass, this could cause surface flaws in the glass or cause the connection between the glass and the ceramic to separate. Furthermore, it is known that stress applied to a semiconductor device through the package changes the resistance characteristics of the chip because of piezoelectric effects. In analog circuit design attention must be paid to the problem of package stress as well as to the dangers of vibration and shock as described above. 3-3 3 General Safety Precautions and Usage Considerations 3.2 3.2.1 Storage General storage • Avoid storage locations where devices will be exposed to moisture or direct sunlight. • Follow the instructions printed on the device cartons regarding transportation and storage. • The storage area temperature should be kept within a temperature range of 5°C to 35°C, and relative humidity should be maintained at between 45% and 75%. Humidity: Temperature: • Do not store devices in the presence of harmful (especially corrosive) gases, or in dusty conditions. • Use storage areas where there is minimal temperature fluctuation. Rapid temperature changes can cause moisture to form on stored devices, resulting in lead oxidation or corrosion. As a result, the solderability of the leads will be degraded. • When repacking devices, use anti-static containers. • Do not allow external forces or loads to be applied to devices while they are in storage. • If devices have been stored for more than two years, their electrical characteristics should be tested and their leads should be tested for ease of soldering before they are used. 3.2.2 Moisture-proof packing Moisture-proof packing should be handled with care. The handling procedure specified for each packing type should be followed scrupulously. If the proper procedures are not followed, the quality and reliability of devices may be degraded. This section describes general precautions for handling moisture-proof packing. Since the details may differ from device to device, refer also to the relevant individual datasheets or databook. (1) General precautions Follow the instructions printed on the device cartons regarding transportation and storage. • Do not drop or toss device packing. The laminated aluminum material in it can be rendered ineffective by rough handling. • The storage area temperature should be kept within a temperature range of 5°C to 30°C, and relative humidity should be maintained at 90% (max). Use devices within 12 months of the date marked on the package seal. 3-4 3 General Safety Precautions and Usage Considerations • If the 12-month storage period has expired, or if the 30% humidity indicator shown in Figure 1 is pink when the packing is opened, it may be advisable, depending on the device and packing type, to back the devices at high temperature to remove any moisture. Please refer to the table below. After the pack has been opened, use the devices in a 5°C to 30°C. 60% RH environment and within the effective usage period listed on the moisture-proof package. If the effective usage period has expired, or if the packing has been stored in a highhumidity environment, bake the devices at high temperature. Packing Tray Tube Tape Moisture removal If the packing bears the “Heatproof” marking or indicates the maximum temperature which it can withstand, bake at 125°C for 20 hours. (Some devices require a different procedure.) Transfer devices to trays bearing the “Heatproof” marking or indicating the temperature which they can withstand, or to aluminum tubes before baking at 125°C for 20 hours. Deviced packed on tape cannot be baked and must be used within the effective usage period after unpacking, as specified on the packing. • When baking devices, protect the devices from static electricity. • Moisture indicators can detect the approximate humidity level at a standard temperature of 25°C. 6-point indicators and 3-point indicators are currently in use, but eventually all indicators will be 3-point indicators. HUMIDITY INDICATOR 60% 50% 30% DANGER IF PINK CHANGE DESICCANT 40% HUMIDITY INDICATOR 40 DANGER IF PINK 20% 30 10% READ AT LAVENDER BETWEEN PINK & BLUE (a) 6-point indicator 20 READ AT LAVENDER BETWEEN PINK & BLUE (b) 3-point indicator Figure 1 Humidity indicator 3-5 3 General Safety Precautions and Usage Considerations 3.3 Design Care must be exercised in the design of electronic equipment to achieve the desired reliability. It is important not only to adhere to specifications concerning absolute maximum ratings and recommended operating conditions, it is also important to consider the overall environment in which equipment will be used, including factors such as the ambient temperature, transient noise and voltage and current surges, as well as mounting conditions which affect device reliability. This section describes some general precautions which you should observe when designing circuits and when mounting devices on printed circuit boards. For more detailed information about each product family, refer to the relevant individual technical datasheets available from Toshiba. 3.3.1 Absolute maximum ratings Do not use devices under conditions in which their absolute maximum ratings (e.g. current, voltage, power dissipation or temperature) will be exceeded. A device may break down or its performance may be degraded, causing it to catch fire or explode resulting in injury to the user. The absolute maximum ratings are rated values which must not be exceeded during operation, even for an instant. Although absolute maximum ratings differ from product to product, they essentially concern the voltage and current at each pin, the allowable power dissipation, and the junction and storage temperatures. If the voltage or current on any pin exceeds the absolute maximum rating, the device’s internal circuitry can become degraded. In the worst case, heat generated in internal circuitry can fuse wiring or cause the semiconductor chip to break down. If storage or operating temperatures exceed rated values, the package seal can deteriorate or the wires can become disconnected due to the differences between the thermal expansion coefficients of the materials from which the device is constructed. 3.3.2 Recommended operating conditions The recommended operating conditions for each device are those necessary to guarantee that the device will operate as specified in the datasheet. If greater reliability is required, derate the device’s absolute maximum ratings for voltage, current, power and temperature before using it. 3.3.3 Derating When incorporating a device into your design, reduce its rated absolute maximum voltage, current, power dissipation and operating temperature in order to ensure high reliability. Since derating differs from application to application, refer to the technical datasheets available for the various devices used in your design. 3.3.4 Unused pins If unused pins are left open, some devices can exhibit input instability problems, resulting in malfunctions such as abrupt increase in current flow. Similarly, if the unused output pins on a device are connected to the power supply pin, the ground pin or to other output pins, the IC may malfunction or break down. Since the details regarding the handling of unused pins differ from device to device and from pin to pin, please follow the instructions given in the relevant individual datasheets or databook. 3-6 3 General Safety Precautions and Usage Considerations CMOS logic IC inputs, for example, have extremely high impedance. If an input pin is left open, it can easily pick up extraneous noise and become unstable. In this case, if the input voltage level reaches an intermediate level, it is possible that both the P-channel and N-channel transistors will be turned on, allowing unwanted supply current to flow. Therefore, ensure that the unused input pins of a device are connected to the power supply (Vcc) pin or ground (GND) pin of the same device. For details of what to do with the pins of heat sinks, refer to the relevant technical datasheet and databook. 3.3.5 Latch-up Latch-up is an abnormal condition inherent in CMOS devices, in which Vcc gets shorted to ground. This happens when a parasitic PN-PN junction (thyristor structure) internal to the CMOS chip is turned on, causing a large current of the order of several hundred mA or more to flow between Vcc and GND, eventually causing the device to break down. Latch-up occurs when the input or output voltage exceeds the rated value, causing a large current to flow in the internal chip, or when the voltage on the Vcc (Vdd) pin exceeds its rated value, forcing the internal chip into a breakdown condition. Once the chip falls into the latch-up state, even though the excess voltage may have been applied only for an instant, the large current continues to flow between Vcc (Vdd) and GND (Vss). This causes the device to heat up and, in extreme cases, to emit gas fumes as well. To avoid this problem, observe the following precautions: (1) Do not allow voltage levels on the input and output pins either to rise above Vcc (Vdd) or to fall below GND (Vss). Also, follow any prescribed power-on sequence, so that power is applied gradually or in steps rather than abruptly. (2) Do not allow any abnormal noise signals to be applied to the device. (3) Set the voltage levels of unused input pins to Vcc (Vdd) or GND (Vss). (4) Do not connect output pins to one another. 3.3.6 Input/Output protection Wired-AND configurations, in which outputs are connected together, cannot be used, since this short-circuits the outputs. Outputs should, of course, never be connected to Vcc (Vdd) or GND (Vss). Furthermore, ICs with tri-state outputs can undergo performance degradation if a shorted output current is allowed to flow for an extended period of time. Therefore, when designing circuits, make sure that tri-state outputs will not be enabled simultaneously. 3.3.7 Load capacitance Some devices display increased delay times if the load capacitance is large. Also, large charging and discharging currents will flow in the device, causing noise. Furthermore, since outputs are shorted for a relatively long time, wiring can become fused. Consult the technical information for the device being used to determine the recommended load capacitance. 3-7 3 General Safety Precautions and Usage Considerations 3.3.8 Thermal design The failure rate of semiconductor devices is greatly increased as operating temperatures increase. As shown in Figure 2, the internal thermal stress on a device is the sum of the ambient temperature and the temperature rise due to power dissipation in the device. Therefore, to achieve optimum reliability, observe the following precautions concerning thermal design: (1) Keep the ambient temperature (Ta) as low as possible. (2) If the device’s dynamic power dissipation is relatively large, select the most appropriate circuit board material, and consider the use of heat sinks or of forced air cooling. Such measures will help lower the thermal resistance of the package. (3) Derate the device’s absolute maximum ratings to minimize thermal stress from power dissipation. θja = θjc + θca θja = (Tj–Ta) / P θjc = (Tj–Tc) / P θca = (Tc–Ta) / P in which θja = thermal resistance between junction and surrounding air (°C/W) θjc = thermal resistance between junction and package surface, or internal thermal resistance (°C/W) θca = thermal resistance between package surface and surrounding air, or external thermal resistance (°C/W) Tj = junction temperature or chip temperature (°C) Tc = package surface temperature or case temperature (°C) Ta = ambient temperature (°C) P = power dissipation (W) Ta θca Tc θjc Tj Figure 2 Thermal resistance of package 3.3.9 Interfacing When connecting inputs and outputs between devices, make sure input voltage (VIL/VIH) and output voltage (VOL/VOH) levels are matched. Otherwise, the devices may malfunction. When connecting devices operating at different supply voltages, such as in a dual-power-supply system, be aware that erroneous power-on and poweroff sequences can result in device breakdown. For details of how to interface particular devices, consult the relevant technical datasheets and databooks. If you have any questions or doubts about interfacing, contact your nearest Toshiba office or distributor. 3-8 3 General Safety Precautions and Usage Considerations 3.3.10 Decoupling Spike currents generated during switching can cause Vcc (Vdd) and GND (Vss) voltage levels to fluctuate, causing ringing in the output waveform or a delay in response speed. (The power supply and GND wiring impedance is normally 50 Ω to 100 Ω.) For this reason, the impedance of power supply lines with respect to high frequencies must be kept low. This can be accomplished by using thick and short wiring for the Vcc (Vdd) and GND (Vss) lines and by installing decoupling capacitors (of approximately 0.01 µF to 1 µF capacitance) as high-frequency filters between Vcc (Vdd) and GND (Vss) at strategic locations on the printed circuit board. For low-frequency filtering, it is a good idea to install a 10- to 100-µF capacitor on the printed circuit board (one capacitor will suffice). If the capacitance is excessively large, however, (e.g. several thousand µF) latch-up can be a problem. Be sure to choose an appropriate capacitance value. An important point about wiring is that, in the case of high-speed logic ICs, noise is caused mainly by reflection and crosstalk, or by the power supply impedance. Reflections cause increased signal delay, ringing, overshoot and undershoot, thereby reducing the device’s safety margins with respect to noise. To prevent reflections, reduce the wiring length by increasing the device mounting density so as to lower the inductance (L) and capacitance (C) in the wiring. Extreme care must be taken, however, when taking this corrective measure, since it tends to cause crosstalk between the wires. In practice, there must be a trade-off between these two factors. 3.3.11 External noise Printed circuit boards with long I/O or signal pattern lines are vulnerable to induced noise or surges from outside sources. Consequently, malfunctions or breakdowns can result from overcurrent or overvoltage, depending on the types of device used. To protect against noise, lower the impedance of the pattern line or insert a noisecanceling circuit. Protective measures must also be taken against surges. For details of the appropriate protective measures for a particular device, consult the relevant databook. Input/Output Signals 3.3.12 Electromagnetic interference Widespread use of electrical and electronic equipment in recent years has brought with it radio and TV reception problems due to electromagnetic interference. To use the radio spectrum effectively and to maintain radio communications quality, each country has formulated regulations limiting the amount of electromagnetic interference which can be generated by individual products. Electromagnetic interference includes conduction noise propagated through power supply and telephone lines, and noise from direct electromagnetic waves radiated by equipment. Different measurement methods and corrective measures are used to assess and counteract each specific type of noise. Difficulties in controlling electromagnetic interference derive from the fact that there is no method available which allows designers to calculate, at the design stage, the strength of the electromagnetic waves which will emanate from each component in a piece of equipment. For this reason, it is only after the prototype equipment has been completed that the designer can take measurements using a dedicated instrument to determine the strength of electromagnetic interference waves. Yet it is possible during system design to incorporate some measures for the prevention of electromagnetic interference, which can facilitate taking corrective measures once the design has been completed. These include installing shields and noise filters, and increasing the thickness of the power supply wiring patterns on the printed circuit board. One effective method, for example, is to devise several shielding options during design, and then select the most suitable shielding method based on the results of measurements taken after the prototype has been completed. 3-9 3 General Safety Precautions and Usage Considerations 3.3.13 Peripheral circuits In most cases semiconductor devices are used with peripheral circuits and components. The input and output signal voltages and currents in these circuits must be chosen to match the semiconductor device’s specifications. The following factors must be taken into account. (1) Inappropriate voltages or currents applied to a device’s input pins may cause it to operate erratically. Some devices contain pull-up or pull-down resistors. When designing your system, remember to take the effect of this on the voltage and current levels into account. (2) The output pins on a device have a predetermined external circuit drive capability. If this drive capability is greater than that required, either incorporate a compensating circuit into your design or carefully select suitable components for use in external circuits. 3.3.14 Safety standards Each country has safety standards which must be observed. These safety standards include requirements for quality assurance systems and design of device insulation. Such requirements must be fully taken into account to ensure that your design conforms to the applicable safety standards. 3.3.15 Other precautions (1) When designing a system, be sure to incorporate fail-safe and other appropriate measures according to the intended purpose of your system. Also, be sure to debug your system under actual board-mounted conditions. (2) If a plastic-package device is placed in a strong electric field, surface leakage may occur due to the chargeup phenomenon, resulting in device malfunction. In such cases take appropriate measures to prevent this problem, for example by protecting the package surface with a conductive shield. (3) With some microcomputers and MOS memory devices, caution is required when powering on or resetting the device. To ensure that your design does not violate device specifications, consult the relevant databook for each constituent device. (4) Ensure that no conductive material or object (such as a metal pin) can drop onto and short the leads of a device mounted on a printed circuit board. 3.4 3.4.1 Inspection, Testing and Evaluation Grounding Ground all measuring instruments, jigs, tools and soldering irons to earth. Electrical leakage may cause a device to break down or may result in electric shock. 3-10 3 General Safety Precautions and Usage Considerations 3.4.2 Inspection Sequence Do not insert devices in the wrong orientation. Make sure that the positive and negative electrodes of the power supply are correctly connected. Otherwise, the rated maximum current or maximum power dissipation may be exceeded and the device may break down or undergo performance degradation, causing it to catch fire or explode, resulting in injury to the user. When conducting any kind of evaluation, inspection or testing using AC power with a peak voltage of 42.4 V or DC power exceeding 60 V, be sure to connect the electrodes or probes of the testing equipment to the device under test before powering it on. Connecting the electrodes or probes of testing equipment to a device while it is powered on may result in electric shock, causing injury. (1) Apply voltage to the test jig only after inserting the device securely into it. When applying or removing power, observe the relevant precautions, if any. (2) Make sure that the voltage applied to the device is off before removing the device from the test jig. Otherwise, the device may undergo performance degradation or be destroyed. (3) Make sure that no surge voltages from the measuring equipment are applied to the device. (4) The chips housed in tape carrier packages (TCPs) are bare chips and are therefore exposed. During inspection take care not to crack the chip or cause any flaws in it. Electrical contact may also cause a chip to become faulty. Therefore make sure that nothing comes into electrical contact with the chip. 3.5 Mounting There are essentially two main types of semiconductor device package: lead insertion and surface mount. During mounting on printed circuit boards, devices can become contaminated by flux or damaged by thermal stress from the soldering process. With surface-mount devices in particular, the most significant problem is thermal stress from solder reflow, when the entire package is subjected to heat. This section describes a recommended temperature profile for each mounting method, as well as general precautions which you should take when mounting devices on printed circuit boards. Note, however, that even for devices with the same package type, the appropriate mounting method varies according to the size of the chip and the size and shape of the lead frame. Therefore, please consult the relevant technical datasheet and databook. 3.5.1 Lead forming Always wear protective glasses when cutting the leads of a device with clippers or a similar tool. If you do not, small bits of metal flying off the cut ends may damage your eyes. Do not touch the tips of device leads. Because some types of device have leads with pointed tips, you may prick your finger. Semiconductor devices must undergo a process in which the leads are cut and formed before the devices can be mounted on a printed circuit board. If undue stress is applied to the interior of a device during this process, mechanical breakdown or performance degradation can result. This is attributable primarily to differences between the stress on the device’s external leads and the stress on the internal leads. If the relative difference is great enough, the device’s internal leads, adhesive properties or sealant can be damaged. Observe these precautions during the lead-forming process (this does not apply to surface-mount devices): (1) Lead insertion hole intervals on the printed circuit board should match the lead pitch of the device precisely. 3-11 3 General Safety Precautions and Usage Considerations (2) If lead insertion hole intervals on the printed circuit board do not precisely match the lead pitch of the device, do not attempt to forcibly insert devices by pressing on them or by pulling on their leads. (3) For the minimum clearance specification between a device and a printed circuit board, refer to the relevant device’s datasheet and databook. If necessary, achieve the required clearance by forming the device’s leads appropriately. Do not use the spacers which are used to raise devices above the surface of the printed circuit board during soldering to achieve clearance. These spacers normally continue to expand due to heat, even after the solder has begun to solidify; this applies severe stress to the device. (4) Observe the following precautions when forming the leads of a device prior to mounting. • Use a tool or jig to secure the lead at its base (where the lead meets the device package) while bending so as to avoid mechanical stress to the device. Also avoid bending or stretching device leads repeatedly. • Be careful not to damage the lead during lead forming. • Follow any other precautions described in the individual datasheets and databooks for each device and package type. 3.5.2 Socket mounting (1) When socket mounting devices on a printed circuit board, use sockets which match the inserted device’s package. (2) Use sockets whose contacts have the appropriate contact pressure. If the contact pressure is insufficient, the socket may not make a perfect contact when the device is repeatedly inserted and removed; if the pressure is excessively high, the device leads may be bent or damaged when they are inserted into or removed from the socket. (3) When soldering sockets to the printed circuit board, use sockets whose construction prevents flux from penetrating into the contacts or which allows flux to be completely cleaned off. (4) Make sure the coating agent applied to the printed circuit board for moisture-proofing purposes does not stick to the socket contacts. (5) If the device leads are severely bent by a socket as it is inserted or removed and you wish to repair the leads so as to continue using the device, make sure that this lead correction is only performed once. Do not use devices whose leads have been corrected more than once. (6) If the printed circuit board with the devices mounted on it will be subjected to vibration from external sources, use sockets which have a strong contact pressure so as to prevent the sockets and devices from vibrating relative to one another. 3-12 3 General Safety Precautions and Usage Considerations 3.5.3 Soldering temperature profile The soldering temperature and heating time vary from device to device. Therefore, when specifying the mounting conditions, refer to the individual datasheets and databooks for the devices used. (1) Using medium infrared ray reflow • Heating top and bottom with long or medium infrared rays is recommended (see Figure 3). Medium infrared ray heater (reflow) Product flow Long infrared ray heater (preheating) Figure 3 Heating top and bottom with long or medium infrared rays • Complete the infrared ray reflow process for 30 to 50 seconds at a package surface temperature of between 230°C and 260°C. • Refer to Figure 4 for an example of a good temperature profile for infrared or hot air reflow. (°C) 260 Package surface temperature 230 190 180 60-120 s 30-50 s Time (s) Figure 4 Sample temperature profile (Pb free) for infrared or hot air reflow (2) Using hot air reflow • Complete hot air reflow for 30 to 50 seconds at a package surface temperature of between 230°C and 260°C. • For an example of a recommended temperature profile, refer to Figure 4 above. 3.5.4 Flux cleaning and ultrasonic cleaning (1) When cleaning circuit boards to remove flux, make sure that no residual reactive ions such as Na or Cl remain. Note that organic solvents react with water to generate hydrogen chloride and other corrosive gases which can degrade device performance. (2) Washing devices with water will not cause any problems. However, make sure that no reactive ions such as sodium and chlorine are left as a residue. Also, be sure to dry devices sufficiently after washing. 3-13 3 General Safety Precautions and Usage Considerations (3) Do not rub device markings with a brush or with your hand during cleaning or while the devices are still wet from the cleaning agent. Doing so can rub off the markings. (4) The dip cleaning, shower cleaning and steam cleaning processes all involve the chemical action of a solvent. Use only recommended solvents for these cleaning methods. When immersing devices in a solvent or steam bath, make sure that the temperature of the liquid is 50°C or below, and that the circuit board is removed from the bath within one minute. (5) Ultrasonic cleaning should not be used with hermetically-sealed ceramic packages such as a leadless chip carrier (LCC), pin grid array (PGA) or charge-coupled device (CCD), because the bonding wires can become disconnected due to resonance during the cleaning process. Even if a device package allows ultrasonic cleaning, limit the duration of ultrasonic cleaning to as short a time as possible, since long hours of ultrasonic cleaning degrade the adhesion between the mold resin and the frame material. The following ultrasonic cleaning conditions are recommended: Frequency: 27 kHz ∼ 29 kHz Ultrasonic output power: 300 W or less (0.25 W/cm2 or less) Cleaning time: 30 seconds or less Suspend the circuit board in the solvent bath during ultrasonic cleaning in such a way that the ultrasonic vibrator does not come into direct contact with the circuit board or the device. 3.5.5 No cleaning If analog devices or high-speed devices are used without being cleaned, flux residues may cause minute amounts of leakage between pins. Similarly, dew condensation, which occurs in environments containing residual chlorine when power to the device is on, may cause between-lead leakage or migration. Therefore, Toshiba recommends that these devices be cleaned. However, if the flux used contains only a small amount of halogen (0.05W% or less), the devices may be used without cleaning without any problems. No cleaning is recommended for TX4938. 3.5.6 Mounting tape carrier packages (TCPs) (1) When tape carrier packages (TCPs) are mounted, measures must be taken to prevent electrostatic breakdown of the devices. (2) If devices are being picked up from tape, or outer lead bonding (OLB) mounting is being carried out, consult the manufacturer of the insertion machine which is being used, in order to establish the optimum mounting conditions in advance and to avoid any possible hazards. (3) The base film, which is made of polyimide, is hard and thin. Be careful not to cut or scratch your hands or any objects while handling the tape. (4) When punching tape, try not to scatter broken pieces of tape too much. (5) Treat the extra film, reels and spacers left after punching as industrial waste, taking care not to destroy or pollute the environment. (6) Chips housed in tape carrier packages (TCPs) are bare chips and therefore have their reverse side exposed. To ensure that the chip will not be cracked during mounting, ensure that no mechanical shock is applied to the reverse side of the chip. Electrical contact may also cause a chip to fail. Therefore, when mounting devices, make sure that nothing comes into electrical contact with the reverse side of the chip. If your design requires connecting the reverse side of the chip to the circuit board, please consult Toshiba or a Toshiba distributor beforehand. 3-14 3 General Safety Precautions and Usage Considerations 3.5.7 Mounting chips Devices delivered in chip form tend to degrade or break under external forces much more easily than plasticpackaged devices. Therefore, caution is required when handling this type of device. (1) Mount devices in a properly prepared environment so that chip surfaces will not be exposed to polluted ambient air or other polluted substances. (2) When handling chips, be careful not to expose them to static electricity. In particular, measures must be taken to prevent static damage during the mounting of chips. With this in mind, Toshiba recommend mounting all peripheral parts first and then mounting chips last (after all other components have been mounted). (3) Make sure that PCBs (or any other kind of circuit board) on which chips are being mounted do not have any chemical residues on them (such as the chemicals which were used for etching the PCBs). (4) When mounting chips on a board, use the method of assembly that is most suitable for maintaining the appropriate electrical, thermal and mechanical properties of the semiconductor devices used. * For details of devices in chip form, refer to the relevant device’s individual datasheets. 3.5.8 Circuit board coating When devices are to be used in equipment requiring a high degree of reliability or in extreme environments (where moisture, corrosive gas or dust is present), circuit boards may be coated for protection. However, before doing so, you must carefully consider the possible stress and contamination effects that may result and then choose the coating resin which results in the minimum level of stress to the device. 3.5.9 Heat sinks (1) When attaching a heat sink to a device, be careful not to apply excessive force to the device in the process. (2) When attaching a device to a heat sink by fixing it at two or more locations, evenly tighten all the screws in stages (i.e. do not fully tighten one screw while the rest are still only loosely tightened). Finally, fully tighten all the screws up to the specified torque. (3) Drill holes for screws in the heat sink exactly as specified. Smooth the surface by removing burrs and protrusions or indentations which might interfere with the installation of any part of the device. (4) A coating of silicone compound can be applied between the heat sink and the device to improve heat conductivity. Be sure to apply the coating thinly and evenly; do not use too much. Also, be sure to use a non-volatile compound, as volatile compounds can crack after a time, causing the heat radiation properties of the heat sink to deteriorate. (5) If the device is housed in a plastic package, use caution when selecting the type of silicone compound to be applied between the heat sink and the device. With some types, the base oil separates and penetrates the plastic package, significantly reducing the useful life of the device. Two recommended silicone compounds in which base oil separation is not a problem are YG6260 from Toshiba Silicone. (6) Heat-sink-equipped devices can become very hot during operation. Do not touch them, or you may sustain a burn. 3-15 3 General Safety Precautions and Usage Considerations 3.5.10 Tightening torque (1) Make sure the screws are tightened with fastening torques not exceeding the torque values stipulated in individual datasheets and databooks for the devices used. (2) Do not allow a power screwdriver (electrical or air-driven) to touch devices. 3.5.11 Repeated device mounting and usage Do not remount or re-use devices which fall into the categories listed below; these devices may cause significant problems relating to performance and reliability. (1) Devices which have been removed from the board after soldering (2) Devices which have been inserted in the wrong orientation or which have had reverse current applied (3) Devices which have undergone lead forming more than once 3.6 3.6.1 Protecting Devices in the Field Temperature Semiconductor devices are generally more sensitive to temperature than are other electronic components. The various electrical characteristics of a semiconductor device are dependent on the ambient temperature at which the device is used. It is therefore necessary to understand the temperature characteristics of a device and to incorporate device derating into circuit design. Note also that if a device is used above its maximum temperature rating, device deterioration is more rapid and it will reach the end of its usable life sooner than expected. 3.6.2 Humidity Resin-molded devices are sometimes improperly sealed. When these devices are used for an extended period of time in a high-humidity environment, moisture can penetrate into the device and cause chip degradation or malfunction. Furthermore, when devices are mounted on a regular printed circuit board, the impedance between wiring components can decrease under high-humidity conditions. In systems which require a high signal-source impedance, circuit board leakage or leakage between device lead pins can cause malfunctions. The application of a moisture-proof treatment to the device surface should be considered in this case. On the other hand, operation under low-humidity conditions can damage a device due to the occurrence of electrostatic discharge. Unless damp-proofing measures have been specifically taken, use devices only in environments with appropriate ambient moisture levels (i.e. within a relative humidity range of 40% to 60%). 3.6.3 Corrosive gases Corrosive gases can cause chemical reactions in devices, degrading device characteristics. For example, sulphur-bearing corrosive gases emanating from rubber placed near a device (accompanied by condensation under high-humidity conditions) can corrode a device’s leads. The resulting chemical reaction between leads forms foreign particles which can cause electrical leakage. 3.6.4 Radioactive and cosmic rays Most industrial and consumer semiconductor devices are not designed with protection against radioactive and cosmic rays. Devices used in aerospace equipment or in radioactive environments must therefore be shielded. 3-16 3 General Safety Precautions and Usage Considerations 3.6.5 Strong electrical and magnetic fields Devices exposed to strong magnetic fields can undergo a polarization phenomenon in their plastic material, or within the chip, which gives rise to abnormal symptoms such as impedance changes or increased leakage current. Failures have been reported in LSIs mounted near malfunctioning deflection yokes in TV sets. In such cases the device’s installation location must be changed or the device must be shielded against the electrical or magnetic field. Shielding against magnetism is especially necessary for devices used in an alternating magnetic field because of the electromotive forces generated in this type of environment. 3.6.6 Interference from light (ultraviolet rays, sunlight, fluorescent lamps and incandescent lamps) Light striking a semiconductor device generates electromotive force due to photoelectric effects. In some cases the device can malfunction. This is especially true for devices in which the internal chip is exposed. When designing circuits, make sure that devices are protected against incident light from external sources. This problem is not limited to optical semiconductors and EPROMs. All types of device can be affected by light. 3.6.7 Dust and oil Just like corrosive gases, dust and oil can cause chemical reactions in devices, which will adversely affect a device’s electrical characteristics. To avoid this problem, do not use devices in dusty or oily environments. This is especially important for optical devices because dust and oil can affect a device’s optical characteristics as well as its physical integrity and the electrical performance factors mentioned above. 3.6.8 Fire Semiconductor devices are combustible; they can emit smoke and catch fire if heated sufficiently. When this happens, some devices may generate poisonous gases. Devices should therefore never be used in close proximity to an open flame or a heat-generating body, or near flammable or combustible materials. 3.7 Disposal of Devices and Packing Materials When discarding unused devices and packing materials, follow all procedures specified by local regulations in order to protect the environment against contamination. 3-17 3 General Safety Precautions and Usage Considerations 3-18 4 Precautions and Usage Considerations 4. Precautions and Usage Considerations This section describes matters specific to each product group which need to be taken into consideration when using devices. If the same item is described in Sections 3 and 4, the description in Section 4 takes precedence. 4.1 4.1.1 Microcontrollers Design (1) Using resonators which are not specifically recommended for use Resonators recommended for use with Toshiba products in microcontroller oscillator applications are listed in Toshiba databooks along with information about oscillation conditions. If you use a resonator not included in this list, please consult Toshiba or the resonator manufacturer concerning the suitability of the device for your application. (2) Undefined functions In some microcontrollers certain instruction code values do not constitute valid processor instructions. Also, it is possible that the values of bits in registers will become undefined. Take care in your applications not to use invalid instructions or to let register bit values become undefined. 4-1 4 Precautions and Usage Considerations 4-2 TMPR4938 2005-3 Rev 2.0 Conventions in this Manual Conventions in this Manual Value Conventions • • Hexadecimal values are expressed as in the following example. (This value is expressed as 42 in the decimal system.) KB (kilobyte) = 1,024 Bytes, MB (megabyte) = 1,024 × 1,024 = 1,048,576 Bytes, GB (gigabyte) = 1,024 × 1,024 × 1,024 = 1,073,741,824 Bytes Data Conventions • • • • Byte: 8 bits Half-word: 2 consecutive Bytes (16 bits) Word: 4 consecutive Bytes (32 bits) Double-word: 8 consecutive Bytes (64 bits) Signal Conventions • • An asterisk (“*”) is added to the end of signal names to indicate Low Active signals. (Example: RESET*) “Assert” means to move a signal to its Active level. “Deassert” means to move a signal to its Inactive level. Register Conventions • Bit operation is expressed as follows. Set: Put a bit in the “1” position. Clear: Put a bit in the “0” position. Properties of each bit in a register are expressed as follows. R: Read only. The software cannot change the bit value. W: Write only. The value that is read is undefined. R/W: Read/Write is possible. W1C Write 1 Clear. This corresponding bit is cleared when “1” is written to this bit. “0” is invalid if written. R/W1C: Read/Write 1 Clear. These bits can be read from and written to. The corresponding bit is cleared when “1” is written to this bit. “0” is invalid if written. R/W0C: Read/Write 0 Clear. These bits can be read from and written to. The corresponding bit is cleared when “0” is written to this bit. “1” is invalid if written. R/W1S Read/Write 1 Set. These bits can be read from and written to. The corresponding bit is set when “1” is written to this bit. “0” is invalid if written. RS/WC Read Set/Write Clear. These bits can be read from and written to. The bits is set when read, and a write of an arbitrary value to the bit clears it. R/L: Property unique to the PCI Controller. This bit can be read. The value of this bit can only be changed by the method described in “10.3.14: Set Configuration Space”. Registers and the register bit/field name are expressed as “.”. Example: CCFG.TOE The above example indicates Time Out Bus Error Enable (TOE), a bit field of bit 14 in the Chip Configuration Register (CCFG). • • i Conventions in this Manual Handling reserved regions Operation is undefined when a register defined in this document as a reserved region (Reserved) is accessed. If there is a bit or field that was defined as Reserved in a register, write the expressed default value or the specified value (“0” if no particular value is expressed) to these bits. Also, do not use any value read from this bit/field. Diagnostic function Any function described as a “diagnostic function” is used to facilitate operation evaluations. The operation of such functions is not guaranteed. References 64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture (http://www.semicon.toshiba.co.jp/eng/index.html) MIPS RISC Architecture, Gerry Kane and Joe Heinrich (ISBN 0-13-590472-2) See MIPS Run, Dominic Sweetman (ISBN 1-55860-410-3) MIPS Publications (http://www.mips.com/publications/) PCI Local Bus Specification Revision 2.2 (http://www.pcisig.com/) PCI Bus Power Management Interface Specification Revision 1.1 Audio CODEC ‘97 (AC ‘97) Revision 2.1 (http://developer.intel.com/ial/scalableplatforms/audio/) – SmartMedia™ Physical Format Specifications Web-Online Version 1.00 – SMIL (SmartMedia™ Interface Library) Software Edition Version 1.00 (http://www.ssfdc.or.jp/english/business/) ii Chapter 1 Overview and Features 1. 1.1 Overview and Features Overview The TMPR4938 (TX4938) is a standard microcontroller that belongs to the 64-bit TX System RISC TX49 family. The TX4938 uses the TX49/H3 core as its CPU. The TX49/H3 core is a 64-bit RISC core that Toshiba developed based on the MIPS III architecture of MIPS Technologies, Inc. (MIPS). For details of the TX49/H3 core such as instruction sets, see “64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture”. In addition to the TX49/H3 core, the TX4938 uses as microcontrollers for embedded applications an External Bus Controller, DMA Controllers, SDRAM Controller, PCI Controller, Ethernet Controller and NAND Flash Memory Controller (enables booting from NAND flash memory). The TX4938 also has peripheral circuits such as a synchronous serial interface, on-chip SRAM, a serial I/O port, a timer/counter, a parallel I/O port, an AC-link Controller and an Interrupt Controller. By having an on-chip a data bus with a maximum width of 64 bits and an SDRAM Controller with a memory clock frequency of 133 MHz, the TX4938 realizes low memory access latency and high memory bandwidth. This allows the TX4938 to show its capacity as a high-performance CPU core. 1.2 Features • TX49/H3 core Maximum Operating Frequency: 300 MHz (TMPR4938XBG-300), 333 MHz (TMPR4938XBG-333) On-chip IEEE754-compliant single/double precision floating point unit (FPU) function External Bus Controller (8 channels) Supports the ISA/ATA interface DMA (Direct Memory Access) Controllers (8 channels) SDRAM Controller (4 channels) 64-bit Data Bus Memory Clock Frequency: 133 MHz (For relationship between CPU clock and memory clock, see Section 6.1) Supports ECC/Parity PCI Controller Complies with PCI Local Bus Specification Revision 2.2 PCI Bus Clock Frequency: 66 MHz/33 MHz Ethernet Controller (2 channels) NAND Flash Memory Controller (bootable) Serial Peripheral Interface (SPI) On-chip SRAM (2 K-byte) Serial I/O Port (2 channels) Timer/Counter (3 channels) Parallel I/O Port (Maximum 16 bits) AC-link Controller Interrupt Controller Selectable Little Endian mode or Big Endian mode • • • • • • • • • • • • • • • 1-1 Chapter 1 Overview and Features • • • Low Power Consumption Supports internal 1.5 V, IO block 3.3 V operation, and low power consumption mode (Halt) Supports IEEE1149.1 (JTAG): Debugging Support Unit (EJTAG) Package: 484-pin PBGA (with 64pin thermal ball) 1.2.1 Features of the TX49/H3 core The TX49/H3 core is a high-performance, low power consumption 64-bit RISC CPU core that Toshiba developed. • • • • • 64-bit operation 32 64-bit integer general-purpose registers 64 GB physical address space Optimized 5-stage pipeline Instruction Set Upwards compatible MIPS III ISA Added 3-operand multiply instruction, MAC (multiply accumulate) instruction, and PREF (prefetch) instruction Supports 32 KB Instruction cache, 32 KB Data cache, 4-way set associative, and the lock function MMU (Memory Management Unit) 48 double entry (odd/even) joint TLB On-chip IEEE754-compatible single-precision and double-precision FPU 4-stage write buffer mounted Debugging Support Unit: EJTAG • • • • • 1.2.2 Features of TX4938 peripheral functions (1) External Bus Controller (EBUSC) The External Bus Controller generates the signals necessary to control external memory and external I/O devices. • • • • • • Has 8-channel Chip Select signal, can control up to 8 external devices Supports access of ROM (mask ROM, page mode ROM, EPROM, EEPROM), SRAM, Flash ROM, and I/O devices Can set data bus width to 32 bits, 16 bits, or 8 bits for each channel System clock for External Bus Controller (SYSCLK) frequency is up to 133 MHz (For relationship between CPU clock and this system clock, see Section 6.1) Can select full speed, 1/2 speed, 1/3 speed , or 1/4 speed for each channel Can set timing for each channel Can set up and set the Hold interval of the Address, Chip Enable, Write Enable, and Output Enable signals Supports access of devices with a 32-bit wide data bus in memory sizes from 1 MB to 1 GB. Supports access of devices with a 16-bit wide data bus in memory sizes from 1 MB to 512 MB. Supports access of devices with an 8-bit wide data bus in memory sizes from 1 MB to 256 MB. Supports the ISA/ATA interface • • 1-2 Chapter 1 Overview and Features (2) Direct Memory Access Controllers (DMAC) The TX4938 has two DMA Controllers for invoking DMA transfer with memory and I/O devices. Each DMA Controller has 4 built-in DMA Channels. • • • • • • • Can set internal/external DMA requests Supports as internal DMA requests DMA with the on-chip Serial I/O Controller or AC-link Controller Supports as external I/O DMA transfer modes using external DMA requests Single Address transfer (Fly-by DMA) and Dual Address transfer Supports transfer between external devices with a data bus width of 32 bits, 16 bits or 8 bits and memory Supports memory-memory copy mode that has no address boundary constraints Can perform Burst transfer of up to 8 double words in a single read or write operation Supports the Memory Fill mode that writes double-word data to the memory region Supports Chain DMA transfer (3) SDRAM Controller (SDRAMC) The SDRAM Controller generates the control signals required for the SDRAM interface. By having 4 on-chip channels and supporting a variety of memory configurations, the SDRAM Controller can support memory sizes of up to 4 GB (1 GB/channel). • • • • • • • • • Memory clock (SDCLK) frequencies from 50 MHz to 133 MHz (For relationship between CPU clock and memory clock, see Section 6.1) 4 sets of independent memory channels Supports 2-bank or 4-bank 16 MB, 64 MB, 128 MB, 256 MB, or 512 MB SDRAM Can used Registered DIMM Supports ECC or parity generation/check functions Can select either 32-bit or 64-bit data bus width for each channel Can set SDRAM timing for each channel Supports TX49/H3 core critical word first access Low power consumption mode: can select Self-refresh or Pre-charge power down (4) PCI Controller (PCIC) The TX4938 has an on-chip PCI Controller that is compliant with PCI Local Bus Specification Revision 2.2. • • • • • • • PCI Local Bus Specification Revision 2.2 compliant 32-bit PCI interface with maximum PCI Bus clock frequency of 66 MHz Supports both the Target and Initiator functions Can change the address mapping between the internal bus and PCI Bus Has an on-chip PCI Bus arbiter and can connect up to 4 External Bus Masters Has a function mounted for booting the TX4938 from memory on the PCI Bus Has an on-chip 1-channel PCI Controller-dedicated DMA Controller (PDMAC) 1-3 Chapter 1 Overview and Features (5) Serial I/O port (SIO) The TX4938 has an on-chip 2-channel asynchronous serial I/O interface (full duplex UART) • • • Full duplex UART × 2 channels On-chip baud rate generator FIFO Transmission: on-chip 8-bit × 8-stage FIFO Reception: on-chip 13-bit × 16-stage (data: 8 bits; status: 5 bits) FIFO Supports DMA transfer • (6) Timer/Counter control (TMR) The TX4938 has an on-chip 3-channel timer/counter • • • • • 32-bit setup counter × 3 channels Supports 3 modes: Interval Timer mode, Pulse Generator mode, Watchdog Timer mode Timer output pins: 2 pins Count clock input pin: 1 pin Watchdog external reset pin: 1 pin (7) Parallel I/O port (PIO) The TX4938 has a 16-bit parallel I/O port (8 bits of which are shared with CB[7:0]) • Can set I/O direction and port type (totem pole output/open drain output) during output for each bit (8) AC-link Controller (ACLC) The TX4938 on-chip AC-link Controller can connect and manipulate audio and/or modem CODECs described in “Audio CODEC ’97 Revision 2.1”. • • • • • • Supports up to 2 CODECs Supports 16-bit PCM stereo channel recording and playback Supports 16-bit surround, center, LFE channel playback Supports variable rate audio recording and playback Supports Line 1 for modem CODEC and GPIO slot Supports AC-link low-power mode, Wake Up, and Warm Reset Supports sample data input/output by DMA transfer (9) Interrupt Controller (IRC) The Interrupt Controller built into the TX4938 receives interrupt requests and external interrupts from the TX4938 on-chip peripheral circuits and issues interrupt requests to the TX49/H3 core. This controller has a 16-bit flag register that generates interrupt requests to an external device or the TX49/H3 core. • • Supports 19 types of internal interrupts from the on-chip peripheral circuits and 6 external interrupt signal inputs Sets 8 priority levels for each interrupt input 1-4 Chapter 1 Overview and Features • • Can select either the Edge or Level interrupt detection mode for each external interrupt Has a built-in 16-bit read/write register as a flag register for interrupt requests. Can request interrupts to an external device or to the TX49/H3 core (IRC interrupt) (10) Ethernet Controller • • • • 2-channel on-chip Ethernet interface Supports transfer rates of 100 Mbps or 10 Mbps Supports MAC layers, employs the standard interface MII between physical layers and MAC layers On-chip DMA (11) NAND Flash Memory Controller • • • Controls the NAND Flash Memory Interface by the register settings On-chip ECC (Error Correction Code) calculation circuit On-chip mask ROM, is bootable from NAND Flash Memory (12) Serial Peripheral Interface (SPI) • • • • Full duplex, synchronous serial data transfer (I/O data, clock signals) Can specify 8-bit or 16-bit data length Programmable SPI baud rate Supports only Masters (13) On-chip SRAM • On-chip 2 KB SRAM (14) Extended EJTAGInterface The TX4938's Extended EJTAG (Extended Enhanced Joint Test Action Group) interface provides two functions: IEEE1149.1-compliant JTAG boundary scan testing and real-time debugging using the Debugging Support Unit (DSU) built into the TX49/H3 core. • • IEEE 1149.1 JTAG Boundary Scan Can use execution control (invoke, break, step, register/memory access) or PC tracing as realtime debugging function that uses a dedicated emulation probe 1-5 Chapter 1 Overview and Features 1-6 Chapter 2 Configuration 2. 2.1 Configuration TX4938 block diagram Figure 2.1.1 is an internal block diagram of the TX4938. TX49/H3 Core I-Cache D-Cache FPU HALTDOZE TEST[4:0]* W BU G-Bus I/F DSU CPU core TDI TCK TDO TMS TRST* DCLK PCST[8:0] TPC[3:1] RESET* CB[7:0] SDCLK[3:0] SDCLKIN RAS* CAS* DQM[7:0] SDCS[3:0]* WE* CKE DATA[63:0] ADDR[19:0] ACK*/READY SYSCLK IOR*, IOW * CS*[1;0] ND_CLE, ND_ALE, ND_CE*, ND_RE*, ND_WE*, ND_RB* SWE* OE* CE[7:0] * ACE* BWE[3:0] * BUSSPRT* DMAREQ[3:0] DMAACK[3:0] DMADONE* E0TXD[3:0] (O) E0RXD[3:0] (I) E0RXER (I), E0RXCLK (I) E0MDC (O) E0RXDV (I) E0TXER (O) E0TXCLK (I) E0MDIO (I/O) E0TXEN (O) E0CRS (I) E0COL(I) E1TXD[3:0] (O) E1RXD[3:0] (I) E1RXER (I), E1RXCLK (I) E1MDC (O) E1RXDV (I) E1TXER (O) E1TXCLK (I) E1MDIO (I/O) E1TXEN (O) E1CRS (I) .E1COL(I) NMI* INT[5:0] INTOUT PIO[15:0] CTS[1:0]* RTS[1:0]* RXD[1:0] TXD[1:0] SCLK TEST ECC BYPASSPLL* CGRESET* MASTERCLK PCIAD[31:0] C_BE[3:0] PAR FRAME* IRDY* TRDY* STOP* ID_SEL DEVSEL* REQ[3:0]* GNT[3:0]* PERR* SERR* LOCK* M66EN PME* EEPROM_DO EEPROM_DI EEPROM_CS EEPROM_SK PCICLK[5:0] PCICLKIN ACRESET* SYNC SDOUT SDIN[1:0] BITCLK SPIIN SPIOUT SPICLK WDRST* TIMER[1] TCLK TIMER[0] PLL CG SDRAMC (4 channels) G-Bus SRAM (2kbx1) Mask ROM EBIF PCIC NDFMC EBUSC (8 channels) PDMAC DMAC0 (4 channels) DMAC1 (4 channels) PCIC1 ACLC IMB ETHER C0 Internal PCI bus ETHER C1 SPI TMR2 TMR1 TMR0 IM Bus IRC PIO SIO (2ch.) Figure 2.1.1 TX4938 Block Diagram 2-1 Chapter 2 Configuration The TX4938 has the following blocks. (1) TX49/H3 Core: Consists of a CPU, System Control Coprocessor (CP0), Instruction cache, Data cache, Floating-point Unit (FPU), write buffer (WBU), Debugging Support Unit (DSU), and a G-Bus I/F. • • • • FPU: An IEEE754-compliant single-precision or double-precision floating-point unit. Is allocated as one coprocessor unit (CP1). I-Cache: Instruction cache memory. 32 KB, 4-way set associative. D-Cache: Data cache memory. 32 KB, 4-way set associative. You can select as a write policy Write Back, Write Through No Write Allocate, or Write Through Write Allocate. DSU: Debugging Support Unit. This is an on-chip debugging module. External Bus Controller. Controls 8-channel ROM, SRAM, I/O. Direct Memory Access Controller. Has 4 channels. Can transfer internal I/O device, external I/O device, mutual memory data. Direct Memory Access Controller. Has 4 channels. Can transfer internal I/O device, mutual memory data. SDRAM Controller. Controls 4-channel SDRAM. Supports 64-bit data bus, 133 MHz operation, ECC/parity. PCI Controller. Complies with PCI Local Bus Specification Revision 2.2. Supports 66 MHz operation. Has an on-chip dedicated DMA Controller (PDMAC). Serial I/O. This is a 2-channel asynchronous serial I/F. Timer/counter. This is a 3-channel timer/counter. Parallel I/O. Has an 8-bit dedicated port and an 8-bit shared port. AC-link Controller. Is compliant to Audio CODEC '97 Revision 2.1 (AC'97). Interrupt Controller. External Bus Interface. Connects 20-bit External Address Bus or 64-bit External Data Bus to SDRAMC or EBUSC. Clock Generator. Has a built-in PLL and provides a clock to each TX4938 block. TX4938 internal bus. This is a 64-bit, high-speed internal bus that is directly connected to the TX49/H3 core. TX4938 internal bus. This is a 32-bit, slow-speed internal bus that is connected to the GBus via IMB. G-Bus - IM-Bus Bridge NAND Flash Memory Controller 2 KB on-chip SRAM Channel 0 of the Ethernet Controller. The system side is the PCI Bus Interface. Channel 1 of the Ethernet Controller. The system side is the PCI Bus Interface. PCI Bus/G-Bus bridge for connecting ETHERC0 and ETHERC1 to the G-Bus. Serial Peripheral Interface. Supports Master operation. This is the internal diagnostic module. (2) EBUSC: (3) DMAC0: (4) DMAC1: (5) SDRAMC: (6) PCIC: (7) SIO: (8) TMR: (9) PIO: (10) ACLC: (11) IRC: (12) EBIF: (13) CG: (14) G-Bus: (15) IM-Bus: (16) MB: (17) NDFMC: (19) SRAM: (20) ETHERC0: (21) ETHERC1: (22) PCIC1: (23) SPI: (24) TEST (18) Mask ROM: Mask ROM that boots from NAND Flash memory 2-2 Chapter 3 Signals 3. 3.1 Signals Pin Signal Description In the following tables, asterisks at the end of signal names indicate active-low signals. In the Type column, PU indicates that the pin is equipped with an internal pull-up resister and PD indicates that the pin is equipped with an internal pull-down resister. OD indicates an open-drain pin. The Initial State column shows the state of the signal when the RESET* signal is asserted and immediately after it is deasserted. Those signals which are selected by a configuration signal upon a reset have the state selected by the configuration signal even when the reset signal is asserted. 3.1.1 Signals Common to SDRAM and External Bus Interfaces Table 3.1.1 Signals Common to SDRAM and External Bus Interfaces Signal Name ADDR[19:0] Type Description Initial State Input Input/output Address PU Address signals. For SDRAM, ADDR[19:5] are used (refer to Sections “9.3.2.2” and “9.3.2.3 Address Signal Mapping”). When the external bus controller uses these pins, the meaning of each bit varies with the data bus width (refer to Section “7.3.5 Data Bus Size”). The ADDR signals are also used as boot configuration signals (input) during a reset. For details of configuration signals, refer to Section “3.2 Boot Configuration”. The ADDR signals are input signals only when the RESET* signal is asserted and become output signals after the RESET* signal is deasserted. Input/output PU Input Data 64-bit data bus. The DATA[15:0] signals are also used as boot configuration signals (input) during a reset. For details of configuration signals, refer to Section “3.2 Boot Configuration”. Bus Separate Controls the connection and separation of devices controlled by the external bus controller to or from a high-speed device, such as SDRAM (refer to Section “7.6 Flash ROM, SRAM Usage Example”). H: Separate devices other than SDRAM from the data bus. L: Connect devices other than SDRAM to the data bus. Separation and connection are performed using external bidirectional bus buffers (such as the 74xx245). High DATA[63:0] BUSSPRT* Output 3-1 Chapter 3 Signals 3.1.2 SDRAM Interface Signals Table 3.1.2 SDRAM Interface Signals Signal Name SDCLK[3:0] Type Output Description SDRAM Controller Clock Clock signals used by SDRAM. The clock frequency is the same as the G-Bus clock (GBUSCLK) frequency. When these clock signals are not used, the pins can be set to H using the SDCLK Enable field of the configuration register (CCFG.SDCLKEN[3:0]). Initial State All High SDCLKIN Input/output SDRAM Feedback Clock input Feedback clock signal for SDRAM controller input signals. Setting the SDCLKINEN bit of the pin configuration register causes the TX4938 to feed back signals internally, making SDCLKIN an output signal. Output Output Output Output Output Output Clock Enable CKE signal for SDRAM. Synchronous Memory Device Chip Select Chip select signals for SDRAM. Row Address Strobe RAS signal for SDRAM. Column Address Strobe CAS signal for SDRAM. Write Enable WR signal for SDRAM. Data Mask During a write cycle, the DQM signals function as a data mask. During a read cycle, they control the SDRAM output buffers. The bits correspond to the following data bus signals: DQM[7]:DATA[63:54], DQM[6]:DATA[53:48] DQM[5]:DATA[47:40], DQM[4]:DATA[39:32] DQM[3]:DATA[31:24], DQM[2]:DATA[23:16] DQM[1]:DATA[15:8], DQM[0]:DATA[7:0] Connect any one of the DQM[3:0] to SDRAM which connects CB. Input CKE SDCS[3:0]* RAS* CAS* W E* DQM[7:0] High All High High High High All High CB[7:0] Input/output ECC/Parity Check Bit PU ECC/parity check bit signals. The bits correspond to the following data bus signals: CB[7]:DATA[63:54], CB[6]:DATA[53:48] CB[5]:DATA[47:40], CB[4]:DATA[39:32] CB[3]:DATA[31:24], CB[2]:DATA[23:16] CB[1]:DATA[15:8], CB[0]:DATA[7:0] CB[7:0] share pins with other function signals (refer to Section “3.3 Pin multiplex”). Input 3-2 Chapter 3 Signals 3.1.3 External Interface Signals Table 3.1.3 External Interface Signals Signal Name SYSCLK Type Output Description Initial State High System Clock Clock for external I/O devices. Outputs a clock in full speed mode (at the same frequency as the G-Bus clock (GBUSCLK) frequency), half speed mode (at one half the GBUSCLK frequency), third speed mode (at one third the GBUSCLK frequency), or quarter speed mode (at one quarter the GBUSCLK frequency). The boot configuration signals on the ADDR[14:13] pins select which speed mode will be used. When this clock signal is not used, the pin can be set to H using the SYSCLK Enable bit of the configuration register (CCFG.SYSCLKEN). Address Clock Enable Latch enable signal for the high-order address bits of ADDR. Chip Enable Chip select signals for ROM, SRAM, and I/O devices (refer to Section “3.3 Pin multiplex”). Output Enable Output enable signal for ROM, SRAM, and I/O devices. Write Enable Write enable signal for SRAM and I/O devices. Byte Enable/Byte Write Enable BE[3:0]* indicate a valid data position on the data bus DATA[31:0] during read and write bus operation. In 16-bit bus mode, only BE[1:0]* are used. In 8-bit bus mode, only BE[0]* is used. BWE[3:0]* indicate a valid data position on the data bus DATA[31:0] during write bus operation. In 16-bit bus mode, only BWE[1:0]* are used. In 8-bit bus mode, only BWE[0]* is used. The following shows the correspondence between BE[3:0]*/BWE[3:0]* and the data bus signals. BE[3]*/BWE[3]*: DATA[31:24] BE[2]*/BWE[2]*: DATA[23:16] BE[1]*/BWE[1]*: DATA[15:8] BE[0]*/BWE[0]*: DATA[7:0] The boot configuration signal on the DATA[5] pin and the EBCCRn.BC bit of the external bus controller determine whether the signals are used as BE[3:0]* or BWE[3:0]*. Data Acknowledge/Ready Flow control signal (refer to Section “7.3.6 Access Modes”). High All High ACE* CE[7:0]* Output Output OE * SWE* BWE[3:0]* /BE[3:0]* Output Output Output High High All High ACK*/ READY Input/output PU High 3-3 Chapter 3 Signals 3.1.4 DMA Interface Signals Table 3.1.4 DMA Interface Signals Signal Name DMAREQ[3:0] Type Input PU Description Input DMA Request DMA transfer request signals from an external I/O device. The DMAREQ[3:1] signal shares the pin with the other function signal (refer to Section “3.3 Pin multiplex”). Initial State DMAACK[3:0] Output All High DMA Acknowledge DMA transfer acknowledge signals to an external I/O device. The DMAACK[3:1] signal shares the other function signal (refer to Section “3.3 Pin multiplex”). Input DMADONE* Input/output DMA Done DMADONE* is either used as an output signal that reports the termination of PU DMA transfer or as an input signal that causes DMA transfer to terminate. 3.1.5 PCI Interface Signals Table 3.1.5 PCI Interface Signals (1/2) Signal Name PCICLK[5:0] Type Output Description PCI Clock PCI bus clock signals. When these clock signals are not used, the pins can be set to H using the PCICLK Enable field of the pin configuration register (PCFG.PCICLKEN[5:0]). PCI Feedback Clock PCI feedback clock input. Initial State All High PCICLKIN PCIAD[31:0] C_BE[3:0] PAR FRAME* IRDY* TRDY* STOP* LOCK* Input Input Input Input Input Input Input Input Input Input Input/output PCI Address and Data Multiplexed address and data bus. Input/output Command and Byte Enable Command and byte enable signals. Input/output Parity Even parity signal for PCIAD[31:0] and C_BE[3:0]*. Input/output Cycle Frame Indicates that bus operation is in progress. Input/output Initiator Ready Indicates that the initiator is ready to complete data transfer. Input/output Target Ready Indicates that the target is ready to complete data transfer. Input/output Stop The target sends this signal to the initiator to request termination of data transfer. Input Lock Indicates that the PCI bus master is locking (exclusively accessing) a specified memory target on the PCI bus. Initialization Device Select Chip select signal used for configuration access. This pin is not used in host mode. When the PCI Controller is configured in host mode, this pin must be pulled down. ID_SEL Input Input DEVSEL* Input/output Device Select The target asserts this signal in response to access from the initiator. Input 3-4 Chapter 3 Signals Table 3.1.5 PCI Interface Signals (2/2) Signal Name REQ[3:2]* Type Input Description Initial State Input Request Signals used by the master to request bus mastership. The boot configuration signal on the DATA[2] pin determines whether the built-in PCI bus arbiter is used. In internal arbiter mode, REQ[3:2]* are PCI bus request input signals. In external arbiter mode, REQ[3:2]* are not used. Because the pins are still placed in the input state, they must be pulled up externally. Selected by DATA[2] H: Input L: Hi-Z REQ[1]* /INTOUT Input/output/ Request OD Signal used by the master to request bus mastership. The boot configuration signal on the DATA[2] pin determines whether the built-in PCI bus arbiter is used. In internal arbiter mode, this signal is a PCI bus request input signal. In external arbiter mode, this signal is an external interrupt output signal (INTOUT). Refer to Section “15.3.7 Interrupt Requests”. Input/output Request Signal used by the master to request bus mastership. The boot configuration signal on the DATA[2] pin determines whether the built-in PCI bus arbiter is used. In internal arbiter mode, this signal is a PCI bus request input signal. In external arbiter mode, this signal is a PCI bus request output signal. Input/output Grant Indicates that bus mastership has been granted to the PCI bus master. The boot configuration signal on the DATA[2] pin determines whether the built-in PCI bus arbiter is used. In internal arbiter mode, all of GNT[3:0]* are PCI bus grant output signals. In external arbiter mode, GNT[0]* is a PCI bus grant input signal. Because GNT[3:1]* also become input signals, they must be pulled up externally. Input/output Data Parity Error Indicates a data parity error in a bus cycle other than special cycles. Input/OD REQ[0]* Selected by DATA[2] H: Input L: High Selected by DATA[2] H: All High L: Input GNT[3:0]* PERR* SERR* Input Input System Error Indicates an address parity error, a data parity error in a special cycle, or a fatal error. In host mode, SERR* is an input signal. In satellite mode, SERR* is an open-drain output signal. The mode is determined by the boot configuration signal on the ADDR[19] pin. Selected by ADDR[19] H: Low L: Input M66EN Input/output PCI Bus 66 MHz Clock Enable 1: Enable 66 MHz operating mode. 0: Disable 66 MHz operating mode. This pin is configured as input in satellite mode and as output in host mode. The mode is selected through the logic level of the ADDR[19] pin at boot time. This pin must be pulled down when the PCI Controller is configured in satellite mode and when the 66-MHz operating mode is disabled. Input/OD Power Management Event PME* indicates the power management mode. In host mode, PME* is an input signal. In satellite mode, PME* is an open-drain output signal. The mode is determined by the boot configuration signal on the ADDR[19] pin. EEPROM Data In Data input from serial EEPROM for initially setting the PCI configuration. EEPROM Data Out Data output to serial EEPROM for initially setting the PCI configuration. EEPROM Chip Select Chip select for serial EEPROM for initially setting the PCI configuration. EEPROM Serial Clock Clock for serial EEPROM for initially setting the PCI configuration. PME* Selected by ADDR[19] H: Input L: Hi-Z Input Low Low Low EEPROM_DI EEPROM_DO EEPROM_CS EEPROM_SK Input PU Output Output Output Note: The PCI bus specification specifies that the following pins require pullups: FRAME*, IRDY*, TRDY*, STOP*, LOCK*, DEVSEL*, PERR*, SERR* and PME*. If these pins are unused, pullups must be provided externally to the TX4938. 3-5 Chapter 3 Signals 3.1.6 Serial I/O Interface Signals Table 3.1.6 Serial I/O Interface Signals Signal Name CTS [1:0]* Type Input PU Output Description SIO Clear to Send CTS* signals. CTS[1]* share pins with other function signals (refer to Section “3.3 Pin multiplex”). SIO Request to Send RTS* signals. RTS[1]* share pins with other function signals (refer to Section “3.3 Pin multiplex”). SIO Receive Data Serial data input signals. RXD[1] share pins with other function signals (refer to Section “3.3 Pin multiplex”). SIO Transmit Data Serial data output signals. TXD[1] share pins with other function signals (refer to Section “3.3 Pin multiplex”). External Serial Clock SIO clock input signal. SIO0 and SIO1 share this signal. Initial State Input RTS [1:0]* All Low RXD[1:0] Input PU 3-state Output Input PU Input TXD[1:0] All High SCLK Input 3.1.7 Timer Interface Signals Table 3.1.7 Timer Interface Signals Signal Name TIMER[1:0] TCLK W DRST* Type Output Input PU OD output Timer Output Timer output signals. Description Initial State All High Input Hi-Z External Timer Clock Timer input clock signal. TMR0, TMR1, and TMR2 share this signal. Watchdog Reset Watchdog reset output signal. 3.1.8 Parallel I/O Interface Signals Table 3.1.8 Parallel I/O Interface Signals Signal Name PIO[15:8] Type Description Initial State Input Input/output PIO Ports[15:8] PU Parallel I/O signals. PIO[15:8] share pins with other function signals (refer to Section “3.3 Pin multiplex”). Input/output PIO Ports[7:0] PU Parallel I/O signals. PIO[7:0] share pins with other function signals (refer to Section “3.3 Pin multiplex”). PIO[7:0] Input 3-6 Chapter 3 Signals 3.1.9 AC-link Interface Signals Table 3.1.9 AC-link Interface Signals Signal Name ACRESET* SYNC SDOUT Type Output Output Output PU Input Description AC '97 Master H/W Reset ACRESET* share pins with other function signals (refer to Section “3.3 Pin multiplex”). 48 kHz Fixed Rate Sample Sync SYNC share pins with other function signals (refer to Section “3.3 Pin multiplex”). Serial, Time Division Multiplexed, AC '97 Output Stream SDOUT shares share pins with other function signals (refer to Section “3.3 Pin multiplex”). Serial, Time Division Multiplexed, AC ‘97 Input Stream SDIN[1] share pins with other function signals (refer to Section “3.3 Pin multiplex”). When this pin is used as SDIN[1], pull down by the resister on the board. (Regarding the value of register, please ask the Engineering Department in Toshiba). Serial, Time Division Multiplexed, AC '97 Input Stream SDIN[0] share pins with other function signals (refer to Section “3.3 Pin multiplex”). When this pin is used as SDIN[0], pull down by the resister on the board. (Regarding the value of register, please ask the Engineering Department in Toshiba). 12.288 MHz Serial Data Clock BITCLK share pins with other function signals (refer to Section “3.3 Pin multiplex”). When this pin is used as BITCLK, pull down by the resister on the board. (Regarding the value of register, please ask the Engineering Department in Toshiba). Initial State Low Low Low SDIN[1] Input SDIN[0] Input PU Input BITCLK Input PU Input 3.1.10 Interrupt Signals Table 3.1.10 Interrupt Signals Signal Name NMI* INT[5:0] Type Input PU Input PU Non-Maskable Interrupt Non-maskable interrupt signal. Description Initial State Input Input External Interrupt Requests External interrupt request signals. INT[4:3] share pins with other function signals (refer to Section “3.3 Pin multiplex”). 3.1.11 SPI Interface Signals Table 3.1.11 SPI Interface Signals Signal Name SPICLK Type Input PU Description SPI Clock This pin is used for a data clock to or from an SPI slave device. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Initial State Input SPIOUT Output High SPI Data Output This signal contains data to be shifted to an SPI slave device. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. SPI Data Inputxternal Interrupt Requests This signal contains data to be shifted from an SPI slave device. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Input SPIIN Input PU 3-7 Chapter 3 Signals 3.1.12 ISA/ATA Interface Signals Table 3.1.12 SPI Interface Signals Signal Name IOR* Type Output PU Output Description IO read This is IO read signal. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. IO write This is IO write signal. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. ATA chip select This is ATA chip select signal. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Initial State Input IOW * High CS[1:0]* Output PU Input 3.1.13 ETHER Interface Signals (Channel 0) Table 3.1.13 ETHER Interface Signals (Channel 0) Signal Name E0COL Type Input Description Collision detection signal This is collision detection signal. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Transmit clock This is IO write signal. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Transmit data This is the transmitting data signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Initial State Input E0TXCLK Input PU Output PU Output PU Output PU Input PU Input PU Input PU Input PU Input E0TXD[3:0] Low E0TXEN Low Transmit Enable This is the transmitting enable signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Transmit Error indicator This is the transmitting error signal. These signals are common with the other funxtions (refer to Section “3.3 Pin multiplex”). Low E0TXER E0CRS Input Carrier sense signal This is the carrier sense signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Input Receive clock This is the receive clock signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Receive data This is the receive data signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Receive data valid signal This is the receive data valid signal. These signals are common with the other functions(refer to Section “3.3 Pin multiplex”). Use the configuration setting during bootup. Receive Error indicator input This is the receive error indicator signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during bootup. Management data clock output This is the management data clock signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during bootup. Input E0RXCLK E0RXD[3:0] E0RXDV Input E0RXER Input PU Input E0MDC Output Low E0MDIO Input/output Management data bi-directional signal This is the management data bi-directional signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Input 3-8 Chapter 3 Signals 3.1.14 ETHER Interface Signals (Channel 1) Table 3.1.14 ETHER Interface Signals (Channel 1) Signal Name E1COL Type Input Description Collision detection signal This is collision detection signal. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Transmit clock This is IO write signal. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Transmit data This is the transmitting data signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Initial State Input E1TXCLK Input Input E1TXD[3:0] Output Low E1TXEN Output Low Transmit Enable This is the transmitting enable signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Transmit Error indicator This is the transmitting error signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Low E1TXER Output E1CRS Input Input Carrier sense signal This is the carrier sense signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Input Receive clock This is the receive clock signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Receive data This is the receive data signal. These signals are common with the other functions(refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Receive data valid signal This is the receive data valid signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Receive Error indicator input This is the receive error indicator signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during bootup. Management data clock output This is the management data clock signal. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during bootup. Input E1RXCLK Input E1RXD[3:0] Input E1RXDV Input PU Input Input E1RXER Input E1MDC Output Low E1MDIO Input/output Management data bi-directional signal This is the management data bi-directional signal. These signals are common with the PU other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Input 3-9 Chapter 3 Signals 3.1.15 NAND Flash Memory Interface Signals Table 3.1.15 NAND Flash Memory Interface Signals Signal Name ND_ALE Type Output PU Output Description NAND Flash Address Latch Enable ALE signal for NAND flash memory. These signals are common with the other functions (refer to Section “3.3 Pin Multiplex”). Use the configuration setting during boot-up. NAND Flash Command Latch Enable CLE signal for NAND flash memory. These signals are common with the other functions (refer to Section “3.3 Pin Multiplex”). Use the configuration setting during boot-up. NAND Flash Chip Enable CE signal for NAND flash memory. Refer to Section “3.3 Pin multiplex” NAND Flash Read Enable RE signal for NAND flash memory. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. NADND Flash Write Enable WE signal for NAND flash memory. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. NAND Flash Ready/Busy Ready/Busy signal for NAND flash memory. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during bootup. Initial State Input ND_CLE High ND_CE* ND_RE* Output Output PU Output High Input ND_WE* High ND_RB* Input PU Input 3.1.16 Extended EJTAG Interface Signals Table 3.1.16 Extended EJTAG Interface Signals (1/2) Signal Name TCK Type Input PU Input PU Description JTAG Test Clock Input Clock input signal for JTAG. TCK is used to execute JTAG instructions and input/output data. Initial State Input TDI/DINT* Input JTAG Test Data Input/Debug Interrupt When PC trace mode is not selected, this signal is a JTAG data input signal. It is used to input serial data to JTAG data/instruction registers. When PC trace mode is selected, this signal is an interrupt input signal used to cancel PC trace mode for the debug unit. JTAG Test Data Output/PC Trace Output When PC trace mode is not selected, this signal is a JTAG data output signal. Data is output by means of serial scan. When PC trace mode is selected, this signal outputs the value of the non-continuous program counter in sync with the debug clock (DCLK). PC Trace Output TPC[3:1] output the value of the noncontiguous program counter in sync with DCLK. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. JTAG Test Mode Select Input TMS mainly controls state transition in the TAP controller state machine. Test Reset Input Asynchronous reset input for the TAP controller and debug support unit (DSU). TRST* pin must be pulled down (ex. 10 kΩ). When this signal is deasserted, G-Bus timeout detection is disabled (refer to Section “5.1.1 Detecting G-Bus Timeout”). High TDO/TPC[0] Output TPC[3:1] Output All High TMS TRST* Input PU Input Input Input 3-10 Chapter 3 Signals Table 3.1.16 Extended EJTAG Interface Signals (2/2) Signal Name DCLK Type Output Description Debug Clock Clock output signal for the real-time debugging system. When PC trace mode is selected, the TPC[3:1] and PCST signals are output synchronously. This clock is the TX49/H3 core operating clock (CPUCLK) divided by 3. This signal is common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. PC Trace Status Information Outputs PC trace status and other information. These signals are common with the other functions (refer to Section “3.3 Pin multiplex”). Use the configuration setting during boot-up. Initial State Low PCST[8:0] Output All Low 3.1.17 Clock Signals Table 3.1.17 Clock Signals Signal Name MASTERCLK Type Input Description Master Clock Input pin for the TX4938 operating clock. A crystal resonator cannot be connected to this pin because the pin does not contain an oscillator. Halt/Doze State Output This signal is asserted (High output) when the TX4938 enters Halt or Doze mode. Bypass PLL This pin must be fixed to High. CG Reset CGRESET* initializes the CG. Initial State Input HALTDOZE BYPASSPLL* CGRESET* Output Input Input Low Input Input 3.1.18 Initialization Signal Table 3.1.18 Initialization Signal Signal Name RESET* Type Input Reset Reset signal. Description Initial State Input 3.1.19 Test Signals Table 3.1.19 Test Signals Signal Name TEST[4:0]* Type Input PU Description Test Mode Setting Test pins. These pins must be left open or fixed to High. TEST[1]* may be used when debugging the system. Toshiba recommends that your board design enable the pin to be driven low after the TX4938 is mounted on the PC board. Contact Toshiba technical staff for more information on the TEST[1]* functions. Initial State Input 3-11 Chapter 3 Signals 3.1.20 Power Supply Pins Table 3.1.20 Power Supply Pins Signal Name PLL1VDD_A, PLL2VDD_A PLL1VSS_A, PLL2VSS_A VccInt VccIO Vss Type ⎯ Description PLL Power Pins PLL analog power supply pins. PLL1VDD_A = 1.5 V. PLL2VDD_A = 1.5 V. PLL Ground Pins PLL analog ground pins. PLL1VSS_A = 0 V. PLL2VSS_A = 0 V. Internal Power Pins Digital power supply pins for internal logic. VccInt = 1.5 V. I/O Power Pins Digital power supply pins for input/output pins. VccIO = 3.3 V. Ground Pins Digital ground pins. Vss = 0 V. Initial State ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ 3-12 Chapter 3 Signals 3.2 Boot Configuration The ADDR[19:0] and DATA[15:0] signals can also function as configuration signals for initially setting various functions upon booting the system. The states of the configuration signals immediately after the RESET* or CGRESET* signal is deasserted are read as initial values for the TX4938 internal registers. A High signal level sets a value of 1 and a Low signal level sets a value of 0. All configuration signals are provided with internal pull-up resistors. To drive a signal Low, pull down the corresponding pin on the board using an approx. 4.7 kΩ resistor. Driving a signal High does not require a pull-down resistor. Any signals defined as Reserved should not be pulled down. Table 3.2.1 lists the functions that can be set using configuration signals. Table 3.2.2 and Table 3.2.3 describe each configuration signal. Table 3.2.1 Functions that Can be Set Using Configuration Signals Peripheral Function PCI controller Functions that Can be Set PCI controller operating mode (satellite or host) Division ratio of PCICLK[5:0] to CPUCLK PCI bus arbiter selection (internal or external) Division ratio of SYSCLK to GBUSCLK Boot device selection Division ratio of the external bus controller clock upon booting BE[3:0]*/BWE[3:0]* function selection upon booting Handling of the ACK signal upon booting (internal or external) Data bus width for the boot device Configuration Signal ADDR[19] ADDR[11:10] DATA[2] ADDR[14:13] ADDR[8:6] DATA[5] DATA[4] DATA[1:0] ADDR[16] ADDR[3:0] ADDR[18], ADDR[9] DATA[6], DATA[3] ADDR[12] DATA[15:8] DATA[7] External bus controller Ethernet controller Clock Operation frequency for System interface signal (Internal PCI bus) Division ratio of CPUCLK to MASTERCLK Shared pin function setting Others Endian setting Board information setting Controlling built-in timer interrupts of the TX49/H3 core 3-13 Chapter 3 Signals Table 3.2.2 Boot Configuration Specified with the ADDR[19:0] Signals (1/2) Signal ADDR[19] Description PCI Controller Mode Select Specifies the operating mode of the TX4938 PCI controller. L = Satellite H = Host Select Shared I/O Pins Specifies the function of the PIO[15:8]/CB[7:0] shared pins. L = PIO[15:8] H = CB[7:0] Reserved Used for testing. This signal will not be set to 0 upon booting. Select internal PCI1 clock Frequency (PCIDMD) Specifies the operating mode of the TX4938 internal PCI controller for Ethernet Controller. L = PCI1CLK = GBUSCLK frequency/2 H = PCI1CLK = GBUSCLK frequency/4 Reserved Used for testing. This signal will not be set to 0 upon booting. Select SYSCLK Frequency Specifies the division ratio of the SYSCLK frequency to the G-Bus clock (GBUSCLK) frequency. LL = 4 (SYSCLK frequency = GBUSCLK frequency/4) LH = 3 (SYSCLK frequency = GBUSCLK frequency/3) HL = 2 (SYSCLK frequency = GBUSCLK frequency/2) HH = 1 (SYSCLK frequency = GBUSCLK frequency) TX4938 Endian Mode Specifies the TX4938 endian mode. L = Little endian H = Big endian Corresponding Register Bit CCFG. PCIMODE Configuration Determined at RESET* deassert edge ADDR[18] PCFG. SEL1 RESET* deassert edge ADDR[17] ADDR[16] ⎯ CCFG. PCI1DMD ⎯ CGRESET* deassert edge ADDR[15] ADDR[14:13] ⎯ CCFG. SYSSP ⎯ CGRESET* deassert edge ADDR[12] CCFG. ENDIAN RESET* deassert edge ADDR[11:10] Select PCI Clock Frequency CCFG. PCIDIVMODE CGRESET* deassert edge Specifies the division ratio of the PCI bus clock (PCICLK[5:0]) to the TX49/H3 core clock (CPUCLK). Initial value of CCFG[12] is 0. LL = 8 (PCICLK frequency = CPUCLK frequency/8) LH = 9 (PCICLK frequency = CPUCLK frequency/9) HL = 10 (PCICLK frequency = CPUCLK frequency/10) HH = 11 (PCICLK frequency = CPUCLK frequency/11) PIO[4:2]/ACLC/DMAREQ[2]/DMAACK[2] Select Specifies whether PIO[4:2]/DMAREQ[2]/DMAACK[2] signals are used as PIO or AC-link interface signals. L = PIO H = AC-link interface Select Boot Memory and Device Clock Frequency Specifies the clock division ratio for external bus controller channel 0 upon booting (refer to Section “7.3.8 Clock Options”). HHH = Device connected to channel 0 of the external bus controller (Clock division rate = 1/1) HHL = Device connected to channel 0 of the external bus controller (Clock division rate = 1/2) HLH = Device connected to channel 0 of the external bus controller (Clock division rate = 1/3) HLL = Device connected to channel 0 of the external bus controller (Clock division rate = 1/4) LHH =PCI boot LHL = NAND Flash memory boot (NAND IPL) LLH and LLL = Reserved PCFG.SEL2 RESET* deassert edge ADDR[9] ADDR[8:6] ADDR[8]: EBCCR0.ME ADDR[7:6] EBCCR0.SP RESET* deassert edge 3-14 Chapter 3 Signals Table 3.2.2 Boot Configuration Specified with the ADDR[19:0] Signals (2/2) Signal ADDR[5] Description Select SDRAM device Select initial setting derivability of SDRAM interface signals L = 8mA H = 16mA ADDR[19:0], CKE, RAS*, CAS*, WE*, SDCS[3:0], SDCLK[3:0], SDCLKIN Initial Setting of Boot Select initial setting derivability of SDRAM interface signals L = 8mA H = 16mA DATA[63:0], CB[7:0], DQM[7:0] CPUCLK Clock Speed Setting Specifies the value by which MASTERCLK input signal is multiplied to produce the TX49/H3 core clock (CPUCLK). The values of ADDR[1:0] are also reflected in the EC field of the TX49/H3 core Config register. ADDR[3:0] : DIVMODE[3:0] HHHH:0100 CPUCLK frequency = 2 x MASTERCLK frequency HHHL:1111 CPUCLK frequency = 2.5 x MASTERCLK frequency HHLH:0101 CPUCLK frequency = 3 x MASTERCLK frequency HHLL:0110 CPUCLK frequency = 4 x MASTERCLK frequency LHHH:1101 CPUCLK frequency = 4.5 x MASTERCLK frequency LHHL: reserved LHLH: reserved LHLL: reserved HLHH:0000 CPUCLK frequency = 8 x MASTERCLK frequency HLHL:1011 CPUCLK frequency = 10 x MASTERCLK frequency HLLH:0001 CPUCLK frequency = 12 x MASTERCLK frequency HLLL:0010 CPUCLK frequency = 16 x MASTERCLK frequency LLHH:1001 CPUCLK frequency = 18 x MASTERCLK frequency LLHL: reserved LLLH: reserved LLLL: reserved Corresponding Register Bit PCFG[53:40] Configuration Determined at RESET* deassert edge ADDR[4] PCFG[56:54] RESET* deassert edge ADDR[3:0] CCFG.DIVMODE CGRESET* deassert edge 3-15 Chapter 3 Signals Table 3.2.3 Boot Configuration Specified with the DATA[22:0] Signals Signal DATA[22:16] DATA[15:8] Reserved Description Corresponding Register Bit ⎯ Configuration Determined at ⎯ RESET* deassert edge CCFG.BCFG Boot Configuration Reads the board information and accordingly sets the boot configuration field (BCFG) of the chip configuration register (CCFG). TX49/H3 Internal Timer Interrupt Disable Specifies whether timer interrupts within the TX49/H2 core are enabled. H = Enable timer interrupts within the TX49/H3 core. L = Disable timer interrupts within the TX49/H3 core. L = ETHER1 usable H = ETHER1 unusable Specifies the function of the BE[3:0]*/BWE[3:0]* pins upon booting. L = BE[3:0]* (Byte Enable) H = BWE[3:0]* (Byte Write Enable) Boot ACK* Input Specifies the access mode for external bus controller channel 0. L = External ACK mode H = Normal mode L = ETHER0 usable H = ETHER0 unusable PCI Arbiter Select Selects a PCI bus arbiter. L = External PCI bus arbiter. H = Built-in PCI bus arbiter. Boot ROM Bus Width Specifies the data bus width when booting from a memory device connected to the external bus controller. LL = Reserved LH = 32 bits HL = 16 bits HH = 8 bits CCFG.TINTDIS DATA[7] RESET* deassert edge DATA[6] DATA[5] PCFG.ETH1_SEL EBCCR0.BC RESET* deassert edge RESET* deassert edge DATA[4] EBCCR0.WT[0] RESET* deassert edge DATA[3] DATA[2] PCFG.ETH0_SEL CCFG.PCIARB RESET* deassert edge RESET* deassert edge DATA[1:0] EBCCR0.BSZ RESET* deassert edge 3-16 Chapter 3 Signals 3.3 Pin multiplex The TX4938 has some multiplexed pins. Each pin is used for different functions depending on the settings of the PCFG[61:58] control register and ADDR[18]/[9], DATA[6]/[3] boot configuration signal. Table 3.3.1 shows how to set the function for each pin. Table 3.3.1 Pin multiplex (1/2) Signal, PCFG ADDR[18] ADDR[9] DATA[6] DATA[3] PCFG[61] PCFG[60] PCFG[59] PCFG[58] CE[7] CE[6] CE[5] CE[4] CE[3] CB[7] CB[6] CB[5] CB[4] CB[3] CB[2] CB[1] CB[0] CB[7] CB[6] CB[5] CB[4] CB[3] CB[2] CB[1] CB[0] PIO[15] PIO[14] PIO[13] PIO[12] PIO[11] PIO[10] PIO[9] PIO[8] E0TXD[3] E0TXD[2] E0RXD[3] E0RXD[2] E0TXD[1] E0TXD[0] E0RXD[1] E0RXD[0] IOR* IOW * ACRESET E0TXCLK * SYNC E0MDIO SPIN SPIOUT IOR* IOW * ND_RE* ND_WE* Function on pin-multiplex ECC H * * H * * * * PIO[15:8] L * * H * * * * ACLC * H * H * * * * ETHER0 ETHER1 ATA/ISA H L * L * * * * * * L * * * * * E1COL E1CRS E1TXER * * * * 1 * * 0 ISA * * * * 0 1 * 0 SPI * * * * * * 1 * NDFMC * * * * 0 0 * 1 Setting of Boot config. signal and PCFG (Note1) (Note2) ND_CE* ND_CLE Function of Each signal (Note3) (Note4) DMAREQ[3] DMAACK[3] DMAREQ[2] DMAACK[2] DMAREQ[1] DMAACK[1] DMAREQ[0] DMAACK[0] PIO[7] PIO[6] PIO[5] PIO[4] PIO[3] PIO[2] SDOUT SDIN[0] BITCLK E0TXEN E0CRS CS[1]* CS[0]* ND_RB * ND_AL E 3-17 Chapter 3 Signals Table 3.3.1 Pin multiplex (2/2) Signal, PCFG PIO[1] PIO[0] INT[5] INT[4] INT[3] INT[2] INT[1] INT[0] CTS[1]* RTS[1]* RXD[1] TXD[1] CTS[0]* E0RXCLK E0MDC E0RXDV E0TXER E0RXER E1RXDV Function on pin-multiplex ECC PIO[15:8] ACLC ETHER0 ETHER1 E1MDIO SPICLK ATA ISA SPI NDFMC Function of Each signal (Note3) (Note4) RTS[0]* RXD[0] TXD[0] SDIN[1] DCLK PCST[8] PCST[7] PCST[6] PCST[5] PCST[4] PCST[3] PCST[2] PCST[1] PCST[0] TPC[3] TPC[2] TPC[1] SDIN[1] E0COL E1TXD[3] E1TXD[2] E1TXD[1] E1TXD[0] E1RXD[3] E1RXD[2] E1RXD[1] E1RXD[0] E1RXCLK E1TXCLK E1RXER E1MDC E1TXEN Note 1: * shows that there is no relationship to the configuration of the corresponding function. Note 2: One of ECC, PIO[15:8] and ETHERC0 can be selected (can't use simultaneously). One of ACLC and ETHERC0 can be selected (can't use simultaneously). One of ATA and NDFMC can be selected (can't use simultaneously). One of ISA and NDFMC can be selected (can't use simultaneously). (Operation is not guaranteed when these functions that cannot be used simultaneously are set up) Note 3: It shows that these terminals are multiplexed under each function. Note 4: Blank shows that the terminal isn't multiplexed with the function. For example, when only two pieces, ATA and SPI are selected, functions other than DMAREQ[3], DMAREQ[1], DMAACK[3], DMAACK[1], PIO[0] can be used. 3-18 Chapter 4 Address Mapping 4. Address Mapping This chapter explains the physical address map of TX4938. Please refer to "64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture" about the details of mapping to a physical address from the virtual address of TX49/H3 core. 4.1 TX4938 Physical Address Map TX4938 supports up to 64G (236) bytes of physical address. Following resources are to be allocated in the physical address of the TX4938. • • • • TX4938 Internal registers (refer to “4.2 Register Map”) SDRAM (refer to “9.3.2 Address Mapping”) External Devices such as ROM, I/O Devices (refer to “7.3.3 Address Mapping”) PCI Bus (refer to “10.3.4 Initiator Access”) Each resource is to be allocated in any physical addresses by the register setup. Refer to the explanation of each controller for the details of the mapping. At initialization, only the internal registers and the memory space which stores the TX49/H3 core reset vectors are allocated shown as Figure 4.1.1. Usually ROM connected to the external bus controller channel 0 is used for the memory device that stores the reset vectors. TX4938 also supports using the memories on PCI bus as the memory device stores the reset vectors. Refer to “10.3.13 PCI Boot” for detail about this. 0xF_FFFF_FFFF 0xF_FF1F_FFFF TX4938 Internal Register 0xF_FF1F_0000 64 K Bytes 0x0_1FFF_FFFF External Bus Controller Channel 0 0x0_1FC0_0000 4 M Bytes 0x0_0000_0000 Figure 4.1.1 Physical Address Map at Initializing System It is possible to access a resource of TX4938 as a PCI target device through PCI bus. About how to allocate resources of TX4938 to the PCI bus address space, refer to “10.3.5 Target Access”. 4-1 Chapter 4 Address Mapping 4.2 Register Map Addressing TX4938 internal registers are to be accessed through 64 K bytes address space that is based on physical address 0xF_FF1F_0000 or pointed address by RAMP register (refer to 5.2.7). Figure 4.2.1 shows how to generate internal register address. Physical address 1 and physical address 2 shown Figure 4.2.1 access the same register. In TX49/H3 Core, the physical address form 0xF_FF00_0000 to 0xF_FF3F_FFFF are uncached mapped to the virtual address form 0xFF00_0000 to 0xFF3F_FFFF (32 bit mode) /form 0xFFFF_FFFF_FF00_0000 to 0xFFFF_FFFF_FF3F_FFFF (64 bit mode). This space includes the region form 0xF_FF1F_0000 allocated TX4938 internal registers at initialization. Base Address (0xF_FF1F_0000) + Offset Address = Physical Address 1 4.2.1 Base Address Register (RAMP) + Offset Address = Physical Address 2 Figure 4.2.1 Generating Physical Address for a Internal Register 4.2.2 Ways to Access to Internal Registers 3 ways to access to the internal registers of TX4938 are supported. First is 32-bit register access. Second is 64-bit register access. Last is PCI configuration register access in PCI satellite mode. 32-bit register supports 32-bit size access only. Another size access without 32-bit size is undefined. 64-bit register supports both 64-bit size access and two times 32-bit size access. In each Endian mode, 32-bit size access is performed shown as Table 4.2.1. When the build-in PCI controller works in the satellite mode (refer to “10.3.1 Terminology Explanation”), PCI configuration registers are to be accessed through PCI bus in configuration cycles. It is possible to access to the arbitrary size of PCI configuration register as always Little Endian space regardless the system setup. Table 4.2.1 32-bit Size Access to 64-bit Register Address 0x*_****_***0 0x*_****_***8 0x*_****_***4 0x*_****_***C Big Endian (Bit which are accessed) [63........32] [31........0] ######## Little Endian (Bit which are accessed) [63........32] [31........0] ######## [63........32] [31........0] ######## [63........32] [31........0] ######## (######## means 32 bits data (upper 32 bits or lower 32 bits) which are accessed.) 4-2 Chapter 4 Address Mapping 4.2.3 Register Map Please refer to “10.5 PCI Configuration Space Register” about PCI configuration register. Table 4.2.2 Register Map Offset Address 0x0000 to 0x4FFF 0x5000 to 0x5FFF 0x6000 to 0x67FF 0x6800 to 0x6FFF 0x7000 to 0x7FFF Peripheral Controller Reserved NDFMC SRAMC Reserved PCIC1 Detail ⎯ Refer to “20.4” Refer to “21.4” ⎯ Refer to “16” (For ETHERC0 and ETHERC1) Refer to “9.4” Refer to “7.4” Refer to “9.4” Refer to “8.4” Refer to “8.4” Refer to “10.4” Refer to “5.2” Refer to “12.4” Refer to “12.4” Refer to “12.4” Refer to “11.4” Refer to “11.4” Refer to “13.4” Refer to “15.4” Refer to “14.4” Refer to “17.4” 0x8000 to 0x8FFF 0x9000 to 0x9FFF 0xA000 to 0xAFFF 0xB000 to 0xB7FF 0xB800 to 0xBFFF 0xD000 to 0xDFFF 0xE000 to 0xEFFF 0xF000 to 0xF0FF 0xF100 to 0xF1FF 0xF200 to 0xF2FF 0xF300 to 0xF3FF 0xF400 to 0xF4FF 0xF500 to 0xF50F 0xF510 to 0xF6FF 0xF700 to 0xF7FF 0xF800 to 0xF8FF 0xF900 to 0xFFFF SDRAMC EBUSC ECC DMAC0 DMAC1 PCIC CONFIG TMR0 TMR1 TMR2 SIO0 SIO1 PIO IRC ACLC SPIC Reserved 4-3 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (1/12) Offset Address 0x5000 0x5008 0x5010 0x5018 0x5020 0x5028 0x5030 SRAM Controller (SRAMC) 0x6000 64 SRAMCR Internal SRAM Control Register Register Size (bit) Register Symbol 64 64 64 64 64 64 64 NDFDTR NDFMCR NDFSR NDFISR NDFIMR NDFSPR NDFRSTR Register Name NAND Flash Memory Data Transfer Register NAND Flash Memory Mode Control Register NAND Flash Memory Status Register NAND Flash Memory Interrupt Status Register NAND Flash Memory Interrupt Mask Register NAND Flash Memory Strobe Pulse Width Register NAND Flash Memory Reset Register NAND Flash Memory Controller (NDFMC) 4-4 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (2/12) Offset Address 0x7000 0x7004 0x7008 0x700C 0x7010 0x7014 0x7018 0x701C 0x7020 0x7024 0x702C 0x7034 0x703C 0x7040 0x7080 0x7084 0x7088 0x708C 0x7090 0x7094 0x7098 0x709C 0x7100 0x7104 0x7108 0x710C 0x7110 0x7114 0x7118 0x711C Register Size (bit) Register Symbol 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 PCIID PCISTATUS PCICCREV PCICFG1 P2GM0PLBASE P2GM0PUBASE P2GM1PLBASE P2GM1PUBASE P2GM2PBASE P2GIOPBASE PCISID PCICAPPTR PCICFG2 G2PTOCNT G2PSTATUS G2PMASK PCISSTATUS PCIMASK P2GCFG P2GSTATUS P2GMASK P2GCCMD PBAREQPORT PBACFG PBASTATUS PBAMASK PBABM PBACREQ PBACGNT PBACSTATE Register Name ID Register (Device ID, Vender ID) PCI Status Command Register (Status, Command) Class Code Revision ID Register (Class Code, Revision ID) PCI Configuration 1 Register (BIST, Header Type, Latency Timer, Cache Line Size) P2G Memory Space 0 PCI Lower Base Address Register (Base Address 0 Lower) P2G Memory Space 0 PCI Upper Base Address Register (Base Address 0 Upper) P2G Memory Space 1 PCI Lower Base Address Register (Base Address 1 Lower) P2G Memory Space 1 PCI Upper Base Address Register (Base Address 1 Upper) P2G Memory Space 2 PCI Base Address Register (Base Address 2) P2G I/O Space PCI Base Address Register (Base Address 3) Subsystem ID Register (Subsystem ID, Subsystem Vender ID) Capability Pointer Register (Capability Register) PCI Configuration 2 Register (Max_Lat, Min_Gnt, Interrupt Pin, Interrupt Line) G2P Timeout Count Register (Retry Timeout Value, TRDY Timeout Value) G2P Status Register G2P Interrupt Mask Register Satellite Mode PCI Status Register (Status, PMCSR) PCI Status Interrupt Mask Register P2G Configuration Register P2G Status Register P2G Interrupt Mask Register P2G Current Command Register PCI Bus Arbiter Request port Register PCI Bus Arbiter Configuration Register PCI Bus Arbiter Status Register PCI Bus Arbiter Interrupt Mask Register PCI Bus Arbiter Broken Master Register PCI Bus Arbiter Current Request Register PCI Bus Arbiter Current Grant Register PCI Bus Arbiter Current State Register PCI Controller for ETHERC (PCIC1) 4-5 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (3/12) Offset Address 0x7120 0x7128 0x7130 0x7138 0x7140 0x7144 0x7148 0x714C 0x7150 0x7158 0x7160 0x7168 0x7170 0x7174 0x7178 0x7180 0x7188 0x7190 0x7198 0x71A0 0x71A4 0x71C8 0x71CC Register Size (bit) Register Symbol 64 64 64 64 32 32 32 32 64 64 64 64 32 32 32 64 64 64 64 32 32 32 32 G2PM0GBASE G2PM1GBASE G2PM2GBASE G2PIOGBASE G2PM0MASK G2PM1MASK G2PM2MASK G2PIOMASK G2PM0PBASE G2PM1PBASE G2PM2PBASE G2PIOPBASE PCICCFG PCICSTATUS PCICMASK P2GM0GBASE P2GM1GBASE P2GM2GBASE P2GIOGBASE G2PCFGADRS G2PCFGDATA G2PINTACK G2PSPC Register Name G2P Memory Space 0 G-bus Base Address Register G2P Memory Space 1 G-bus Base Address Register G2P Memory Space 2 G-bus Base Address Register G2P I/O Space G-bus Base Address Register G2P Memory Space 0 Address Mask Register G2P Memory Space 1 Address Mask Register G2P Memory Space 2 Address Mask Register G2P I/O Space Address Mask Register G2P Memory Space 0 PCI Base Address Register G2P Memory Space 1 PCI Base Address Register G2P Memory Space 2 PCI Base Address Register G2P I/O Space PCI Base Address Register PCI Controller Configuration Register PCI Controller Status Register PCI Controller Interrupt Mask Register P2G Memory Space 0 G-bus Base Address Register P2G Memory Space 1 G-bus Base Address Register P2G Memory Space 2 G-bus Base Address Register P2G I/O Space G-bus Base Address Register G2P Configuration Address Register G2P Interrupt Acknowledge Data Register G2P Interrupt Acknowledge Data Register G2P Special Cycle Data Register PCI Controller for ETHERC (PCIC1) 4-6 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (4/12) Offset Address 0x8000 0x8008 0x8010 0x8018 0x8040 0x8058 0x9000 0x9008 0x9010 0x9018 0x9020 0x9028 0x9030 0x9038 0xA000 0xA008 External Bus Controller (EBUSC) 64 64 64 64 64 64 64 64 64 64 EBCCR0 EBCCR1 EBCCR2 EBCCR3 EBCCR4 EBCCR5 EBCCR6 EBCCR7 ECCCR ECCSR EBUS Channel Control Register 0 EBUS Channel Control Register 1 EBUS Channel Control Register 2 EBUS Channel Control Register 3 EBUS Channel Control Register 4 EBUS Channel Control Register 5 EBUS Channel Control Register 6 EBUS Channel Control Register 7 ECC Control Register ECC Status Register Register Size (bit) Register Symbol 64 64 64 64 64 64 SDCCR0 SDCCR1 SDCCR2 SDCCR3 SDCTR SDCCMD Register Name SDRAM Channel Control Register 0 SDRAM Channel Control Register 1 SDRAM Channel Control Register 2 SDRAM Channel Control Register 3 SDRAM Timing Register SDRAM Command Register SDRAM Controller (SDRAMC) SDRAM Error Check Correction (ECC) 4-7 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (5/12) Offset Address 0xB000 0xB008 0xB010 0xB018 0xB020 0xB028 0xB030 0xB038 0xB040 0xB048 0xB050 0xB058 0xB060 0xB068 0xB070 0xB078 0xB080 0xB088 0xB090 0xB098 0xB0A0 0xB0A8 0xB0B0 0xB0B8 0xB0C0 0xB0C8 0xB0D0 0xB0D8 0xB0E0 0xB0E8 0xB0F0 0xB0F8 0xB148 0xB150 Register Size (bit) Register Symbol 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 DM0CHAR0 DM0SAR0 DM0DAR0 DM0CNTR0 DM0SAIR0 DM0DAIR0 DM0CCR0 DM0CSR0 DM0CHAR1 DM0SAR1 DM0DAR1 DM0CNTR1 DM0SAIR1 DM0DAIR1 DM0CCR1 DM0CSR1 DM0CHAR2 DM0SAR2 DM0DAR2 DM0CNTR2 DM0SAIR2 DM0DAIR2 DM0CCR2 DM0CSR2 DM0CHAR3 DM0SAR3 DM0DAR3 DM0CNTR3 DM0SAIR3 DM0DAIR3 DM0CCR3 DM0CSR3 DM0MFDR DM0MCR Register Name DMAC0 Chain Address Register 0 DMAC0 Source Address Register 0 DMAC0 Destination Address Register 0 DMAC0 Count Register 0 DMAC0 Source Address Increment Register 0 DMAC0 Destination Address Increment Register 0 DMAC0 Channel Control Register 0 DMAC0 Channel Status Register 0 DMAC0 Chain Address Register 1 DMAC0 Source Address Register 1 DMAC0 Destination Address Register 1 DMAC0 Count Register 1 DMAC0 Source Address Increment Register 1 DMAC0 Destination Address Increment Register 1 DMAC0 Channel Control Register 1 DMAC0 Channel Status Register 1 DMAC0 Chain Address Register 2 DMAC0 Source Address Register 2 DMAC0 Destination Address Register 2 DMAC0 Count Register 2 DMAC0 Source Address Increment Register 2 DMAC0 Destination Address Increment Register 2 DMAC0 Channel Control Register 2 DMAC0 Channel Status Register 2 DMAC0 Chain Address Register 3 DMAC0 Source Address Register 3 DMAC0 Destination Address Register 3 DMAC0 Count Register 3 DMAC0 Source Address Increment Register 3 DMAC0 Destination Address Increment Register 3 DMAC0 Channel Control Register 3 DMAC0 Channel Status Register 3 DMAC0 Memory Fill Data Register DMAC0 Master Control Register DMA Controller (DMAC0) 4-8 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (6/12) Offset Address 0xB800 0xB808 0xB810 0xB818 0xB820 0xB828 0xB830 0xB838 0xB840 0xB848 0xB850 0xB858 0xB860 0xB868 0xB870 0xB878 0xB880 0xB888 0xB890 0xB898 0xB8A0 0xB8A8 0xB8B0 0xB8B8 0xB8C0 0xB8C8 0xB8D0 0xB8D8 0xB8E0 0xB8E8 0xB8F0 0xB8F8 0xB948 0xB950 Register Size (bit) Register Symbol 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 DM1CHAR0 DM1SAR0 DM1DAR0 DM1CNTR0 DM1SAIR0 DM1DAIR0 DM1CCR0 DM1CSR0 DM1CHAR1 DM1SAR1 DM1DAR1 DM1CNTR1 DM1SAIR1 DM1DAIR1 DM1CCR1 DM1CSR1 DM1CHAR2 DM1SAR2 DM1DAR2 DM1CNTR2 DM1SAIR2 DM1DAIR2 DM1CCR2 DM1CSR2 DM1CHAR3 DM1SAR3 DM1DAR3 DM1CNTR3 DM1SAIR3 DM1DAIR3 DM1CCR3 DM1CSR3 DM1MFDR DM1MCR Register Name DMAC1 Chain Address Register 0 DMAC1 Source Address Register 0 DMAC1 Destination Address Register 0 DMAC1 Count Register 0 DMAC1 Source Address Increment Register 0 DMAC1 Destination Address Increment Register 0 DMAC1 Channel Control Register 0 DMAC1 Channel Status Register 0 DMAC1 Chain Address Register 1 DMAC1 Source Address Register 1 DMAC1 Destination Address Register 1 DMAC1 Count Register 1 DMAC1 Source Address Increment Register 1 DMAC1 Destination Address Increment Register 1 DMAC1 Channel Control Register 1 DMAC1 Channel Status Register 1 DMAC1 Chain Address Register 2 DMAC1 Source Address Register 2 DMAC1 Destination Address Register 2 DMAC1 Count Register 2 DMAC1 Source Address Increment Register 2 DMAC1 Destination Address Increment Register 2 DMAC1 Channel Control Register 2 DMAC1 Channel Status Register 2 DMAC1 Chain Address Register 3 DMAC1 Source Address Register 3 DMAC1 Destination Address Register 3 DMAC1 Count Register 3 DMAC1 Source Address Increment Register 3 DMAC1 Destination Address Increment Register 3 DMAC1 Channel Control Register 3 DMAC1 Channel Status Register 3 DMAC1 Memory Fill Data Register DMAC1 Master Control Register DMA Controller (DMAC1) 4-9 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (7/12) Offset Address PCI Controller (PCIC) 0xD000 0xD004 0xD008 0xD00C 0xD010 0xD014 0xD018 0xD01C 0xD020 0xD024 0xD02C 0xD034 0xD03C 0xD040 0xD080 0xD084 0xD088 0xD08c 0xD090 0xD094 0xD098 0xD09C 0xD100 0xD104 0xD108 0xD10C 0xD110 0xD114 0xD118 0xD11C 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 PCIID PCISTATUS PCICCREV PCICFG1 P2GM0PLBASE P2GM0PUBASE P2GM1PLBASE P2GM1PUBASE P2GM2PBASE P2GIOPBASE PCISID PCICAPPTR PCICFG2 G2PTOCNT G2PSTATUS G2PMASK PCISSTATUS PCIMASK P2GCFG P2GSTATUS P2GMASK P2GCCMD PBAREQPORT PBACFG PBASTATUS PBAMASK PBABM PBACREQ PBACGNT PBACSTATE ID Register (Device ID, Vendor ID) PCI Status, Command Register (Status, Command) Class Code, Revision ID Register (Class Code, Revision ID) PCI Configuration 1 Register (BIST, Header Type, Latency Timer, Cache Line Size) P2G Memory Space 0 PCI Lower Base Address Register (Base Address 0 Lower) P2G Memory Space 0 PCI Upper Base Address Register (Base Address 0 Upper) P2G Memory Space 1 PCI Lower Base Address Register (Base Address 1 Lower) P2G Memory Space 1 PCI Upper Base Address Register (Base Address 1 Upper) P2G Memory Space 2 PCI Base Address Register (Base Address 2) P2G I/O Space PCI Base Address Register (Base Address 3) Subsystem ID Register (Subsystem ID, Subsystem Vendor ID) Capabilities Pointer Register (Capabilities Pointer) PCI Configuration 2 Register (Max_Lat, Min_Gnt, Interrupt Pin, Interrupt Line) G2P Timeout Count register (Retry Timeout Value, TRDY Timeout Value) G2P Status Register G2P Interrupt Mask Register Satellite Mode PCI Status Register (Status, PMCSR) PCI Status Interrupt Mask Register P2G Configuration Register P2G Status Register P2G Interrupt Mask Register P2G Current Command Register PCI Bus Arbiter Request Port Register PCI Bus Arbiter Configuration Register PCI Bus Arbiter Status Register PCI Bus Arbiter Interrupt Mask Register PCI Bus Arbiter Broken Master Register PCI Bus Arbiter Current Request Register (for a diagnosis) PCI Bus Arbiter Current Grant Register (for a diagnosis) PCI Bus Arbiter Current Status Register (for a diagnosis) Register Size (bit) Register Symbol Register Name 4-10 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (8/12) Offset Address 0xD120 0xD128 0xD130 0xD138 0xD140 0xD144 0xD148 0xD14C 0xD150 0xD158 0xD160 0xD168 0xD170 0xD174 0xD178 0xD180 0xD188 0xD190 0xD198 0xD1A0 0xD1A4 0xD1C8 0xD1CC 0xD1D0 0xD1D4 0xD1D8 0xD1DC 0xD200 0xD208 0xD210 0xD218 0xD220 0xD228 Register Size (bit) Register Symbol 64 64 64 64 32 32 32 32 64 64 64 64 32 32 32 64 64 64 64 32 32 32 32 32 32 32 32 64 64 64 64 64 64 G2PM0GBASE G2PM1GBASE G2PM2GBASE G2PIOGBASE G2PM0MASK G2PM1MASK G2PM2MASK G2PIOMASK G2PM0PBASE G2PM1PBASE G2PM2PBASE G2PIOPBASE PCICCFG PCICSTATUS PCICMASK P2GM0GBASE P2GM1GBASE P2GM2GBASE P2GIOGBASE G2PCFGADRS G2PCFGDATA G2PINTACK G2PSPC PCICDATA0 PCICDATA1 PCICDATA2 PCICDATA3 PDMCA PDMGA PDMPA PDMCTR PDMCFG PDMSTATUS Register Name G2P Memory Space 0 G-Bus Base Address Register G2P Memory Space 1 G-Bus Base Address Register G2P Memory Space 2 G-Bus Base Address Register G2P I/O Space G-Bus Base Address Register G2P Memory Space 0 Address Mask Register G2P Memory Space 1 Address Mask Register G2P Memory Space 2 Address Mask Register G2P I/O Space Address Mask Register G2P Memory Space 0 PCI Base Address Register G2P Memory Space 1 PCI Base Address Register G2P Memory Space 2 PCI Base Address Register G2P I/O Space PCI Base Address Register PCI Controller Configuration Register PCI Controller Status Register PCI Controller Interrupt Mask register P2G Memory Space 0 G-Bus Base Address Register P2G Memory Space 1 G-Bus Base Address Register P2G Memory Space 2 G-Bus Base Address Register P2G I/O Space 0 G-Bus Base Address Register G2P Configuration Address Register G2P Configuration Data Register G2P Interrupt Acknowledge Register G2P Special Cycle Data Register PCI Configuration Data 0 Register PCI Configuration Data 1 Register PCI Configuration Data 2 Register PCI Configuration Data 3 Register PDMAC Chain Address Register PDMAC G-Bus Address Register PDMAC PCI Bus Address Register PDMAC Count Register PDMAC Configuration Register PDMAC Status Register 4-11 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (9/12) Offset Address Configuration 0xE000 0xE008 0xE010 0xE018 0xE020 0xE030 0xE048 0xE050 Timer (Channel 0) 0xF000 0xF004 0xF008 0xF00C 0xF010 0xF020 0xF030 0xF0F0 Timer (Channel 1) 0xF100 0xF104 0xF108 0xF10C 0xF110 0xF120 0xF130 0xF1F0 Timer (Channel 2) 0xF200 0xF204 0xF208 0xF210 0xF220 0xF240 0xF2F0 32 32 32 32 32 32 32 TMTCR2 TMTISR2 TMCPRA2 TMITMR2 TMCCDR2 TMWTMR2 TMTRR2 Timer Control Register 2 Timer Interrupt Status Register 2 Compare Register A 2 Interval Timer Mode Register 2 Divider Register 2 Watch Dog Timer Register 2 Timer Read Register 2 32 32 32 32 32 32 32 32 TMTCR1 TMTISR1 TMCPRA1 TMCPRB1 TMITMR1 TMCCDR1 TMPGMR1 TMTRR1 Timer Control Register 1 Timer Interrupt Status Register 1 Compare Address Register A 1 Compare Address Register B 1 Interval Timer Mode Register 1 Divider Register 1 Plus Generator Mode Register 1 Timer Read Register 1 32 32 32 32 32 32 32 32 TMTCR0 TMTISR0 TMCPRA0 TMCPRB0 TMITMR0 TMCCDR0 TMPGMR0 TMTRR0 Timer Control Register 0 Timer Interrupt Status Register 0 Compare Address Register A 0 Compare Address Register B 0 Interval Timer Mode Register 0 Divider Register 0 Plus Generator Mode Register 0 Timer Read Register 0 64 64 64 64 64 64 64 64 CCFG REVID PCFG TOEA CLKCTR GARBC RAMP Chip Configuration Register Chip Revision ID Register Pin Configuration Register Timeout Error Access Address Register Clock Control Register G-Bus Arbiter Control Register Register Address Mapping Register Reserved Register Size (bit) Register Symbol Register Name 4-12 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (10/12) Offset Address Serial I/O (Channel 0) 0xF300 0xF304 0xF308 0xF30C 0xF310 0xF314 0xF318 0xF31C 0xF320 Serial I/O (Channel 1) 0xF400 0xF404 0xF408 0xF40C 0xF410 0xF414 0xF418 0xF41C 0xF420 Parallel I/O (PIO) 0xF500 0xF504 0xF508 0xF50C 32 32 32 32 PIODO PIODI PIODIR PIOOD Output Data Register Input Data Register Direction Control Register Open Drain Control Register 32 32 32 32 32 32 32 32 32 SILCR1 SIDICR1 SIDISR1 SISCISR1 SIFCR1 SIFLCR1 SIBGR1 SITFIFO1 SIRFIFO1 Line Control Register 1 DMA/Interrupt Control Register 1 DMA/ Interrupt Status Register 1 Status Change Interrupt Status Register 1 FIFO Control Register 1 Flow Control Register 1 Baud Rate Control Register 1 Transmitter FIFO Register 1 Receiver FIFO Register 1 32 32 32 32 32 32 32 32 32 SILCR0 SIDICR0 SIDISR0 SISCISR0 SIFCR0 SIFLCR0 SIBGR0 SITFIFO0 SIRFIFO0 Line Control Register 0 DMA/Interrupt Control Register 0 DMA/ Interrupt Status Register 0 Status Change Interrupt Status Register 0 FIFO Control Register 0 Flow Control Register 0 Baud Rate Control Register 0 Transmitter FIFO Register 0 Receiver FIFO Register 0 Register Size (bit) Register Symbol Register Name 4-13 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (11/12) Offset Address 0xF510 0xF514 0xF518 0xF51C 0xF520 0xF524 0xF600 0xF604 0xF608 0xF610 0xF614 0xF618 0xF61C 0xF620 0xF624 0xF628 0xF62C 0xF640 0xF660 0xF680 0xF6A0 Register Size (bit) Register Symbol 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 IRFLAG0 IRFLAG1 IRPOL IRRCNT IRMASKINT IRMASKEXT IRDEN IRDM0 IRDM1 IRLVL0 IRLVL1 IRLVL2 IRLVL3 IRLVL4 IRLVL5 IRLVL6 IRLVL7 IRMSK IREDC IRPND IRCS Register Name Interrupt Request Flag 0 Register Interrupt Request Flag 1 Register Interrupt Request Polarity Control Register Interrupt Request Control Register Internal Interrupt Mask Register External Interrupt Mask Register Interrupt Detection Enable Register Interrupt Detection Mode Register 0 Interrupt Detection Mode Register 1 Interrupt Level Register 0 Interrupt Level Register 1 Interrupt Level Register 2 Interrupt Level Register 3 Interrupt Level Register 4 Interrupt Level Register 5 Interrupt Level Register 6 Interrupt Level Register 7 Interrupt Mask Level Register Interrupt Edge Detection Clear Register Interrupt Pending Register Interrupt Current Status Register Interrupt Controller (IRC) 4-14 Chapter 4 Address Mapping Table 4.2.3 Internal Registers (12/12) Offset Address 0xF700 0xF704 0xF708 0xF710 0xF714 0xF718 0xF71C 0xF720 0xF740 0xF744 0xF748 0xF74C 0xF750 0xF780 0xF784 0xF7A0 0xF7A4 0xF7A8 0xF7AC 0xF7B0 0xF7B8 0xF7BC 0xF7FC Serial Peripheral Interface (SPI) 0xF800 0xF804 0xF808 0xF80C 0xF810 0xF814 0xF818 0xF81C 32 32 32 32 32 32 32 32 SPMCR SPCR0 SPCR1 SPFS SPSR SPDR SPI Master Control Register SPI Control Register 0 SPI Control Register 1 SPI Inter Frame Space Register Reserved SPI Status Register SPI Data Register Reserved Register Size (bit) Register Symbol 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 ACCTLEN ACCTLDIS ACREGACC ACINTSTS ACINTMSTS ACINTEN ACINTDIS ACSEMAPH ACGPIDAT ACGPODAT ACSLTEN ACSLTDIS ACFIFOSTS ACDMASTS ACDMASEL ACAUDODAT ACSURRDAT ACCENTDAT ACLFEDAT ACAUDIDAT ACMODODAT ACMODIDAT ACREVID Register Name ACLC Control Enable Register ACLC Control Disable Register ACLC CODEC Register Access Register ACLC Interrupt Status Register ACLC Interrupt Masked Status Register ACLC Interrupt Enable Register ACLC Interrupt Disable Register ACLC Semaphore Register ACLC GPI Data Register ACLC GPO Data Register ACLC Slot Enable Register ACLC Slot Disable Register ACLC FIFO Status Register ACLC DMA Request Status Register ACLC DMA Channel Selection Register ACLC Audio PCM Output Data Register ACLC Surround Data Register ACLC Center Data register ACLC LFE Data Register ACLC Audio PCM Input Data Register ACLC Modem Output Data Register ACLC Modem Input Data Register ACLC Revision ID Register AC-link Controller (ACLC) 4-15 Chapter 4 Address Mapping 4-16 Chapter 5 Configuration Registers 5. 5.1 Configuration Registers Detailed Description The configuration registers set up and control the basic functionality of the entire TX4938. Refer to Section 5.2 for details of each configuration register. Also refer to sections mentioned in the description about each bit field. 5.1.1 Detecting G-Bus Timeout The G-bus is an internal bus of the TX4938. Access to each address on the G-Bus is completed upon a bus response from the accessed address. If an attempt is made to access an undefined physical address or if a hardware failure occurs, no bus response is made. If a bus response does not occur, the bus access will not be completed, leading to a system halt. To solve this problem, the TX4938 is provided with a G-Bus timeout detection function. This function forcibly stops bus access if no bus response occurs within the specified time. Setting the G-Bus Timeout Error Detection bit (CCFG.TOE) of the chip configuration register enables the G-Bus timeout detection function. If a bus response does not occur within the G-Bus clock (GBUSCLK) cycle specified in the G-Bus Timeout Time field (CCFG.GTOT), the G-Bus timeout detection function makes an error response to force the bus access to end. The accessed address is stored to the timeout error access address register (TOEA). If a timeout error is detected while the TX49/H3 core, as the bus master, is gaining write access to the G-Bus, the Write-Access Bus Error bit (CCFG.BEOW) is set. Enabling interrupt No. 1 in the interrupt controller makes it possible to post an interrupt to the TX49/H3 core. If a timeout error is detected while the TX49/H3 core is gaining read access to the bus, a bus error exception occurs in the TX49/H3 core. If a timeout error is detected while another G-Bus master (the PCI controller or DMA controller) is accessing the G-Bus, an error bit in that controller is set, which can be used to post an interrupt. Refer to the descriptions of each controller for details. If the TRST* signal is deasserted, it is assumed that an EJTAG probe is connected, so the G-Bus timeout detection feature is disabled. 5-1 Chapter 5 Configuration Registers 5.2 Registers Table 5.2.1 lists the configuration registers. Table 5.2.1 Configuration Register Mapping Offset Address 0xE000 0xE008 0xE010 0xE018 0xE020 0xE030 0xE048 0xE058 Size in Bits 64 64 64 64 64 64 64 64 Register Symbol CCFG REVID PCFG TOEA CLKCTR GARBC RAMP JMPADR Register Name Chip Configuration Register Chip Revision ID Register Pin Configuration Register Timeout Error Access Address Register Clock Control Register G-Bus Arbiter Control Register Register Address Mapping Register Jump Address Register Any address not defined in this table is reserved for future use. 5-2 Chapter 5 Configuration Registers 5.2.1 Chip Configuration Register (CCFG) 0xE000 For the bit fields whose initial values are set by boot configuration (refer to Section 3.2), the initial input signal level and the corresponding register value are indicated. 63 Reserved : Type : Initial value 47 Reserved 42 41 W DRST 48 40 WDREXEN 39 BCFG R DATA[15:8] 23 22 PCIMODE 32 R/W1C R/W 0 0 31 Reserved 27 26 25 24 21 PCI1-66 : Type : Initial value 17 16 BEOW R/W1C : Type 0 : Initial value 1 0 ACEHOLD 20 DIVMODE R ADDR[3:0] 3 Reserved 2 GTOT R/W 11 TINTDIS PCI66 R ~DATA[7] R/W 0 7 R ADDR[19] R/W 0 5 15 WR R/W 0 14 13 12 10 9 8 6 TOE PCIARB PCIDIVMODE R/W 0 Reserved PCI1DMD SYSSP R ADDR[14:13] ENDIAN ARMODE R/W R R/W 0 DATA[2] ADDR[11:10] R/W ADDR[16] R ADDR[12] R/W 0 R/W : Type 1 : Initial value Bit 63:42 41 Mnemonic ⎯ WDRST Field Name Reserved Watchdog Reset Status Description ⎯ Initial Value Read/Write ⎯ ⎯ R/W1C 0 Watch Dog Reset Status (Initial Value 0, RW1C) Indicates that a watchdog reset has occurred (refer to Section 12.3.6). Initialized when CGRESET* is asserted. 0 = No watchdog reset has occurred. 1 = A watchdog reset has occurred 0 Watch Dog Reset External Enable (Initial Value 0, R/W) Specifies whether to assert the WDRST* signal at a watchdog reset (refer to Section 12.3.6). Initialized when CGRESET* is asserted. 0 = Do not assert the WDRST* signal. 1 = Assert the WDRST* signal. 40 WDREXEN Watchdog Reset External Output R/W 39:32 BCFG Boot Configuration Set to 1 at a reset if the corresponding DATA[15:8] signal is high. Set to 0 at a reset if the corresponding DATA[15:8] signal is low. ⎯ DATA[15:8] R 31:27 26:25 ⎯ GTOT Reserved G-Bus Timeout Time ⎯ R/W ⎯ Specifies the number of G-Bus clock (GBUSCLK) cycles after 11 which a bus timeout error will occur on the internal bus (GBus) of the TX4938. 11 = 4096 GBUSCLK 10 = 2048 GBUSCLK 01 = 1024 GBUSCLK 00 = 512 GBUSCLK Indicates a value for indicating whether to enable the TX49/H3 internal timer interrupt (refer to Section 15.3.5). H: 0: The TX49/H3 internal timer interrupt is enabled. L: 1: The TX49/H3 internal timer interrupt is disabled. ~DATA[7] 24 TINTDIS Disable TX49/H3 Core Timer Interrupt R Figure 5.2.1 Chip Configuration Register (1/3) 5-3 Chapter 5 Configuration Registers Bit 23 Mnemonic Field Name PCI66 PCI 66MHz Mode Description Initial Value Read/Write R/W Used to inform the device connected to the PCI bus that a 66 0 MHz operation is to be performed. This bit is valid only when the PCI controller of the TX4938 is in host mode. (Refer to Section 10.3.8.) 0 = Do not perform a 66 MHz operation. 1 = Perform a 66 MHz operation. Indicates information about the operation mode of the TX4938 PCI controller. (Refer to Section 10.3.1.) L: 0: Satellite mode H: 1: Host mode Used to inform the ETHERC0 and ETHERC1 connected to the PCI1 bus that a 66 MHz operation is to be performed. 0 = Do not perform a 66 MHz operation (1/4 GBUSCLK). 1 = Perform a 66 MHz operation (1/2 GBUSCLK). ADDR[19] 22 PCIMODE PCI Operation Mode PCI1 66MHz Mode R 21 PCI1-66 0 R/W 20:17 DIVMODE CPUCLK Frequency Multiplication Factor Indicates information about the frequency multiplication factor of ADDR[3:0] the TX49/H3 core clock (CPUCLK) to the MASTERCLK. This field is set with a result of encoding an initial input value at ADDR[3:0]. The PLL incorporated in the TX4938 multiplies the MASTERCLK and supplies the resulting frequency to the TX49/H3 core. The value set in DIVMODE[3:0] is reflected in the EC field of the TX49/H3 core Config register. ADDR[3:0]:DIVMODE[3:0] HHHH: 0100: CPUCLK freq. = 2 × MASTERCLK freq. HHHL: 1111: CPUCLK freq. = 2.5 × MASTERCLK freq. HHLH: 0101: CPUCLK freq. = 3 × MASTERCLK freq. HHLL: 0110: CPUCLK freq. = 4 × MASTERCLK freq. LHHH: 1101: CPUCLK freq. = 4.5 x MASTERCLK freq. LHHL: ---- : Reserved LHLH: ---- : Reserved LHLL: ---- : Reserved HLHH: 0000: CPUCLK freq. = 8 × MASTERCLK freq. HLHL: 1011: CPUCLK freq. = 10 × MASTERCLK freq. HLLH: 0001: CPUCLK freq. = 12 × MASTERCLK freq. HLLL: 0010: CPUCLK freq. = 16 × MASTERCLK freq. LLHH: 1001: CPUCLK freq. = 18 × MASTERCLK freq. LLHL: ---- : Reserved LLLH: ---- : Reserved LLLL: ---- : Reserved R 16 BEOW Write-Access Indicates that a timeout error has occurred in the internal bus (G- 0 Bus Error Bus) during a write bus transaction of the TX49/H3 core. This bit corresponds to interrupt No. 1 in the interrupt controller. 0 = No error has occurred. 1 = An error has occurred. Watchdog Timer Mode Specifies how information will be reported in watchdog timer mode (refer to Section 12.3.6). 0 = Generate an NMI exception. 1 = Generate a watchdog reset. 0 R/W1C 15 WR R/W 14 TOE G-Bus Timeout Error Detection PCI Arbiter Selection Specifies whether to detect and report a bus timeout error in the 0 internal bus (G-Bus) of the TX4938. 0 = Do not detect or report a bus timeout error. 1 = Detect and report a bus timeout error. Indicates the PCI bus arbiter selection setting (refer to Section 10.3.12). L: 0 = External PCI bus arbiter H: 1 = Built-in PCI bus arbiter DATA[2] R/W 13 PCIARB R Figure 5.2.1 Chip Configuration Register (2/3) 5-4 Chapter 5 Configuration Registers Bit 12:10 Mnemonic Field Name Description Specifies the frequency division ratio of the PCI bus clock output (PCICLK[5:0]) frequency to the clock frequency (CPUCLK) of the TX49/H3 core. 001: PCICLK frequency = CPUCLK frequency ÷ 4 011: PCICLK frequency = CPUCLK frequency ÷ 4.5 101: PCICLK frequency = CPUCLK frequency ÷ 5 111: PCICLK frequency = CPUCLK frequency ÷ 5.5 000: PCICLK frequency = CPUCLK frequency ÷ 8 010: PCICLK frequency = CPUCLK frequency ÷ 9 100: PCICLK frequency = CPUCLK frequency ÷ 10 110: PCICLK frequency = CPUCLK frequency ÷ 11 ⎯ Internal PCI1CLK Frequency Division Ration L 0: PCI1CLK frequency = GBUSCLK frequency ÷ 2 H 1: PCI1CLK frequency = GBUSCLK frequency ÷ 4 Indicates the frequency division ratio of the SYSCLK frequency to the G-Bus clock frequency (GBUSCLK). LL: 00: SYSCLK frequency = GBUSCLK frequency ÷ 4 LH: 01: SYSCLK frequency = GBUSCLK frequency ÷ 3 HL: 10: SYSCLK frequency = GBUSCLK frequency ÷ 2 HH: 11: SYSCLK frequency = GBUSCLK frequency ⎯ Indicates the TX4938 endian mode setting. L: 0 = Little endian mode H: 1 = Big endian mode Selects an ACK*/READY signal operation mode for the external bus controller (refer to Section 7.3.6). 0 = ACK*/READY dynamic mode 1 = ACK*/READY static mode Specifies the hold time of an address relative to the external bus controller ACE* signal (refer to Section 7.3.4). 0 = Switch the address at the same time when the ACE* signal is deasserted. 1 = Switch the address one clock cycle after the ACE* signal is deasserted. Initial Value Read/Write ADDR[11:10] R/W ,0 PCIDIVMODE PCICLK Frequency Division Ratio 9 8 ⎯ PCI1DMD Reserved PCI1CLK Frequency Division Ratio SYSCLK frequency division ratio ⎯ ADDR[16] R ⎯ 7:6 SYSSP ADDR[14:13] R 5:3 2 ⎯ ENDIAN Reserved Endian ⎯ ADDR[12] R ⎯ 1 ARMODE ACK*/READY Mode 0 R/W 0 ACEHOLD ACE Hold 1 R/W Figure 5.2.1 Chip Configuration Register (3/3) 5-5 Chapter 5 Configuration Registers 5.2.2 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 PCODE R 0x4938 15 MJERREV R 0x0 12 11 MINEREV R 0x0 8 7 MJREV R 0x1 4 3 MINREV R 0x0 : Type : Initial value 0 : Type : Initial value 16 32 Chip Revision ID Register (REVID) 0xE008 48 Bit 63:32 31:16 15:12 11:8 7:4 3:0 Mnemonic ⎯ PCODE MJERREV MINEREV MJREV MINREV Field Name Reserved Product Code Major Extra Code Major Extra Code Major Revision Code Minor Revision Code Description ⎯ Indicates the product number. It is a fixed value. Indicates the major extra code. Indicates the minor extra code. Indicates the major revision of the product. Contact Toshiba technical staff for the latest information. Indicates the minor revision of the product. Contact Toshiba technical staff for the latest information. Initial Value Read/Write ⎯ 0x4938 0x0 0x0 0x1 0x0 R R R R R ⎯ Figure 5.2.2 Chip Revision ID Register 5-6 Chapter 5 Configuration Registers 5.2.3 Pin Configuration Register (PCFG) 0xE010 For the bit fields whose initial values are set by boot configuration (refer to Section 3.2), the initial input signal level and the corresponding register value are indicated. 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 ETH0_SEL ETH1_SEL ATA_SEL ISA_SEL SPI_SEL NDF_SEL Reserved DRVDATA DRVCB DRVDQM DRVADDR DRVCKE DRVRAS DRVCAS DRVWE DRVCS[3] ~ ~ DATA[3] DATA[6] R R R/W 0 45 R/W 0 44 R/W 0 R/W 0 41 R/W R/W R/W R/W R/W R/W R/W R/W ADDR[4] ADDR[4] ADDR[4] ADDR[5] ADDR[5] ADDR[5] ADDR[5] ADDR[5] ADDR[5] R/W : Type : Initial value 32 47 DRVCS[2:0] R/W ADDR[5] 31 30 40 DRVCKIN 39 Reserved 33 DRVCK[3:0] R/W ADDR[5] 29 28 27 SYSCLKEN BYPASSPLL R/W ADDR[5] R BYPASSPLL* : Type : Initial value 26 SDCLKEN[3:0] R/W 1111 10 9 SEL2 R 8 SEL1 R 23 22 SDCLKINEN 21 PCICLKEN[5:0] R/W 111111 16 Reserved SDCLKDLY R/W 00 R/W 1 R/W 0 7 DMASEL3 R/W 00 DMASEL2 R/W 00 : Type : Initial value 0 15 Reserved DMASEL1 R/W 00 DMASEL0 R/W 00 : Type : Initial value ADDR[9] ADDR[18] Bit 63 Mnemonic ETH0_SEL Field Name Description Initial Value Read/Write ~DATA[3] R Status of shared ETHERC0 Shared-pin status pin Indicates the status of shared pin. L : 1 : ETHERC0 selected H : 0 : ETHERC0 not selected Status of shared ETHERC1 Shared-pin status pin Indicates the status of shared pin. L : 1 : ETHERC1 selected H : 0 : ETHERC1 not selected Setting of shared pin ATA/ISA Shared-pin setting Specifies the status of shared pin. 1 : ATA/ISA selected 0 : ATA/ISA not selected ISA Shared-pin setting Specifies the status of shared pin. 1 : ISA selected 0 : ISA not selected SPI Shared-pin setting Specifies the status of shared pin. 1 : SPI selected 0 : SPI not selected 62 ETH1_SEL ~DATA[6] R 61 ATA_SEL 0 R/W 60 ISA_SEL Setting of shared pin 0 R/W 59 SPI_SEL Setting of shared pin 0 R/W 58 NDF_SEL Setting of shared pin 0 NDFMC Shared-pin setting Specifies the status of shared pin. When use NAND Flash IPL function, the initial value of this bit indicates 1 after booting. 1 : NDFMC selected 0 : NDFMC not selected ⎯ ⎯ R/W 57 ⎯ Reserved ⎯ Figure 5.2.3 Pin Configuration Register (1/3) 5-7 Chapter 5 Configuration Registers Bit 56 Mnemonic DRVDATA Field Name DATA Signal Control CB Signal Control Description Specifies the driving capability of the DATA[63:0] signals. L : 0 = 8 mA H : 1 = 16 mA Specifies the driving capability of the CB[7:0]* signals. L : 0 = 8 mA H : 1 = 16 mA Note: CB[7:0]* share pins with PIO[15:8], E0TXD[3:0], E0RXD[3:0]. The driving capability of these pins are below. CB[7:0], E0TXD[3:0], E0RXD[3:0]: 8 mA or 16 mA PIO[15:8]: 8 mA only Initial Value Read/Write ADDR[4] R/W 55 DRVCB ADDR[4] R/W 54 DRVDQM DQM Signal Control ADDR Signal Control CKE Signal Control RAS Signal Control CAS Signal Control WE Signal Control SDRAM CS Signal Control Specifies the driving capability of the DQM[7:0]* signals. L : 0 = 8 mA H : 1 = 16 mA Specifies the driving capability of the ADDR[19:0] signals. L : 0 = 8 mA H : 1 = 16 mA Specifies the driving capability of the CKE signal. L : 0 = 8 mA H : 1 = 16 mA Specifies the driving capability of the RAS* signal. L : 0 = 8 mA H : 1 = 16 mA Specifies the driving capability of the CAS* signal. L : 0 = 8 mA H : 1 = 16 mA Specifies the driving capability of the WE* signal. L : 0 = 8 mA H : 1 = 16 mA Specifies the driving capability of the SDCS[3:0]* signals. L : 0 = 8 mA H : 1 = 16 mA ADDR[4] R/W 53 DRVADDR ADDR[5] R/W 52 DRVCKE ADDR[5] R/W 51 DRVRAS ADDR[5] R/W 50 DRVCAS ADDR[5] R/W 49 DRVWE ADDR[5] R/W 48:45 DRVCS[3:0] ADDR[5] R/W 44:41 DRVCK[3:0] SDRAM SDCLK Specifies the driving capability of the SDCLK[3:0] signals. Signal Control L : 0 = 8 mA H : 1 = 16 mA SDRAM SDCLKIN Signal Control Reserved Bypass PLL Specifies the driving capability of the SDCLKIN signal. L : 0 = 8 mA H : 1 = 16 mA ⎯ Indicates information about whether a PLL for a circuit other than the PCI controller is on or off. L: 0 = The PLL is off. H: 1 = The PLL is on. ⎯ ADDR[5] R/W 40 DRVCKIN ADDR[5] R/W 39:33 32 ⎯ BYPASS PLL ⎯ BYPASSPLL* R ⎯ 31:30 29:28 ⎯ SDCLKDLY Reserved ⎯ 00 R/W ⎯ SDCLK Specifies the feedback delay for the SDCLK. This function is Feedback Delay for diagnosis purposes. Usually, set the bits to 00. 00 = Delay 1 (minimum delay) 10 = Delay 2 01 = Delay 3 11 = Delay 4 (maximum delay) SYSCLK Enable Specifies whether to output the SYSCLK. 1 = Clock output 0=H 27 SYSCLKEN 1 R/W Figure 5.2.3 Pin Configuration Register (2/3) 5-8 Chapter 5 Configuration Registers Bit Mnemonic Field Name Description Individually specifies whether to output each of SDCLK[3:0]. 1 = Clock output 0=H Bit 26 = SDCLK[3] Bit 25 = SDCLK[2] Bit 24 = SDCLK[1] Bit 23 = SDCLK[0] Specifies how SDCLK[3:0] should be fed back. This function is for diagnosis purposes. Usually, set this bit to 0. 0 = Use the SDCLKIN signal as a feedback clock. 1 = Perform feedback within the TX4938 (the SDCLKIN becomes an output signal). Initial Value Read/Write 1111 R/W 26:23 SDCLKEN [3:0] SDCLK Enable 22 SDCLKINEN SDCLKIN Enable 0 R/W 21:16 PCICLKEN [5:0] PCICLK Enable Individually specifies whether to output each of PCICLK[5:0]. 1 = Clock output 0=H Bit 21 = PCICLK[5] Bit 20 = PCICLK[4] Bit 19 = PCICLK[3] Bit 18 = PCICLK[2] Bit 17 = PCICLK[1] Bit 16 = PCICLK[0] 15:10 9 ⎯ SEL2 Reserved Shared-Pin Status 2 ⎯ 111111 R/W ⎯ R ⎯ DMAREQ[2], DMAACK[2], and PIO[4:2] share pins with the ADDR[9] AC-link interface signals. Indicates which function the shared pins are set to. L: 0 = The shared pins are set to DMAREQ[2], DMAACK[2], and PIO[4:2]. H: 1 = The shared pins are set to the AC-link interface signals. Indicates which function, PIO[15:8] or CB[7:0], the shared pins ADDR[18] are set to. L: 0 = The shared pins are set to PIO[15:8]. H: 1 = The shared pins are set to CB[7:0]. ⎯ Selects a DMA request used by DMA controller 0 channel 3. 0: DMAREQ[3] (external) 1: SIO channel 0 transmission (internal) Selects a DMA request used by DMA controller 0 channel 2. 0: DMAREQ[2] (external) 1: SIO channel 0 reception (internal) Selects a DMA request used by DMA controller 0 channel 1. 00: DMAREQ[1] (external) 01: SIO channel 1 transmission (internal) Selects a DMA request used by DMA controller 0 channel 0. 00: DMAREQ[0] (external) 01: SIO channel 1 reception (internal) 0 ⎯ 8 SEL1 Shared-Pin Status 1 R 7:4 3 ⎯ DMASEL3 Reserved DMA Request Select 3 DMA Request Select 2 DMA Request Select 1 DMA Request Select 0 ⎯ R/W 2 DMASEL2 0 R/W 1 DMASEL1 0 R/W 1:0 DMASEL0 0 R/W Figure 5.2.3 Pin Configuration Register (3/3) 5-9 Chapter 5 Configuration Registers 5.2.4 63 Reserved : Type : Initial value 47 Reserved 36 35 TOEA[35:32] R 0 31 TOEA[31:16] R 0 15 TOEA[15:0] R 0 : Type : Initial value 0 : Type : Initial value 16 : Type : Initial value 32 Timeout Error Access Address Register (TOEA) 0xE018 48 Bit 63:36 35:0 Mnemonic ⎯ TOEA Field Name Reserved Timeout Error Access Address Description ⎯ Holds the G-Bus address for the G-Bus cycle in which the latest G-Bus timeout error was detected. Initial Value Read/Write ⎯ 0x0_0000_00 R 00 ⎯ Figure 5.2.4 Timeout Error Access Address Register 5-10 Chapter 5 Configuration Registers 5.2.5 Clock Control Register (CLKCTR) 0xE020 Bit 32 and bits 15-0 are reset bits for the on-chip peripheral modules. To bring on-chip peripheral modules out of the reset state, the corresponding bits must be cleared by software. Before clearing them, wait at least 128 CPU clock cycles after they are set. 63 Reserved 50 49 0 48 NDFCKD R/W R/W : Type : Initial value 32 NDFRST 47 Reserved 34 33 0 R/W 0 R/W : Type 0 : Initial value 16 31 ETH1CKD ETH0CKD 26 25 24 23 22 21 1 20 19 18 17 SPICKD SRAMCKD PCI1CKD DMA1CKD ACLCKD PIOCKD DMACKD PCICCKD TM0CKD TM1CKD TM2CKD SIO0CKD SIO1CKD R/W 0 15 ETH1RST R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 10 R/W 0 9 R/W 0 8 R/W 0 7 R/W 0 6 R/W 1 5 1 R/W 0 4 R/W 0 3 R/W 0 2 R/W 0 1 R/W : Type 0 : Initial value 0 ETH0RST SPIRST SRAMRST PCI1RST DMA1RST ACLRST PIORST DMA0RST PCICRST TM0RST TM1RST TM2RST SIO0RST SIO1RST R/W 0 R/W 0 R/W 0 R/W 0 R/W 1 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 1 R/W 0 R/W 0 R/W 0 R/W 0 R/W : Type 0 : Initial value Bit 63:50 49 48 Mnemonic ⎯ ⎯ NDFCKD Field Name Reserved ⎯ NDFMC Clock Disable Reserved ⎯ NDFMC Reset Always set this bit to 0. Always set this bit to 0. Description ⎯ Initial Value Read/Write ⎯ 0 0 R/W R/W ⎯ Controls clock pulses for the NAND Flash Memory controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. ⎯ 47:34 33 32 ⎯ ⎯ NDFRST ⎯ 0 0 R/W R/W ⎯ Resets the NAND Flash Memory controller. 0 = Normal state 1 = Reset Controls clock pulses for the ETHERC1 controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the ETHERC0 controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the SPI controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the internal SRAM controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for PCI controller 1. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the DMA controller 1. 0 = Supply clock pulses. 1 = Do not supply clock pulses. 31 ETH1CKD ETHERC1 Clock Disable ETHERC0 Clock Disable SPIC Clock Disable SRAMC Clock Disable PCIC1 Clock Disable DMAC1 Clock Disable 0 R/W 30 ETH0CKD 0 R/W 29 SPICKD 0 R/W 28 SRAMCKD 0 R/W 27 PCIC1CKD 0 R/W 26 DMA1CKD 0 R/W Figure 5.2.5 Clock Control Register (1/3) 5-11 Chapter 5 Configuration Registers Bit 25 Mnemonic ACLCKD Field Name ACLC Clock Disable PIO Clock Disable DMAC0 Clock Disable PCIC Clock Disable ⎯ Timer 0 Clock Disable Timer 1 Clock Disable Timer 2 Clock Disable SIO0 Clock Disable SIO1 Clock Disable ETHERC1 Reset ETHERC0 Reset SPI Reset Description Controls clock pulses for the AC-link controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the parallel IO controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the DMA controller 0. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the PCI controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Always set this bit to 1. Controls clock pulses for the TMR0 controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the TMR1 controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the TMR2 controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the SIO0 controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Controls clock pulses for the SIO1 controller. 0 = Supply clock pulses. 1 = Do not supply clock pulses. Resets the ETHER controller 1. 0 = Normal state 1 = Reset Resets the ETHER controller 0. 0 = Normal state 1 = Reset Resets the SPI controller. 0 = Normal state 1 = Reset Resets the internal SRAM controller. 0 = Normal state 1 = Reset Resets the PCI controller 1. 0 = Normal state 1 = Reset Resets the DMAC controller 1. 0 = Normal state 1 = Reset Resets the AC-link controller. 0 = Normal state 1 = Reset Note: Reset the AC-link controller when it is not asserting the interrupt and DMA request. Resets the parallel IO controller. 0 = Normal state 1 = Reset Initial Value Read/Write 0 R/W 24 PIOCKD 0 R/W 23 DMA0CKD 0 R/W 22 PCICKD 0 R/W 21 20 ⎯ TM0CKD 1 0 R/W R/W 19 TM1CKD 0 R/W 18 TM2CKD 0 R/W 17 SIO0CKD 0 R/W 16 SIO1CKD 0 R/W 15 ETHC1RST 0 R/W 14 ETHC0RST 0 R/W 13 SPIRST 0 R/W 12 SRAMRST SRAMC Reset 0 R/W 11 PCIC1RST PCIC1 Reset 1 R/W 10 DMA1RST DMAC1 Reset 0 R/W 9 ACLRST ACLC Reset 0 R/W 8 PIORST PIO Reset 0 R/W Figure 5.2.5 Clock Control Register (2/3) 5-12 Chapter 5 Configuration Registers Bit 7 Mnemonic DMARST Field Name DMAC Reset Description Resets the DMA controller. 0 = Normal state 1 = Reset Resets the PCI controller. 0 = Normal state 1 = Reset Always set this bit to 1. Resets the TMR0 controller. 0 = Normal state 1 = Reset Resets the TMR1 controller. 0 = Normal state 1 = Reset Resets the TMR2 controller. 0 = Normal state 1 = Reset Resets the SIO0 controller. 0 = Normal state 1 = Reset Resets the SIO1 controller. 0 = Normal state 1 = Reset Initial Value Read/Write 0 R/W 6 PCICRST PCIC Reset 0 R/W 5 4 ⎯ TM0RST ⎯ TMR0 Reset 1 0 R/W R/W 3 TM1RST TMR1 Reset 0 R/W 2 TM2RST TMR2 Reset 0 R/W 1 SIO0RST SIO0 Reset 0 R/W 0 SIO1RST SIO1 Reset 0 R/W Figure 5.2.5 Clock Control Register (3/3) 5-13 Chapter 5 Configuration Registers 5.2.6 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 ARBMD G-Bus Arbiter Control Register (GARBC) 0xE030 48 32 30 Reserved 16 R/W 1 15 Reserved : Type : Initial value 14 PRIORITY R/W 000_001_010_011_100 : Type : Initial value 0 Bit 63:32 31 Mnemonic ⎯ ARBMD Field Name Reserved Arbitration Mode Description ⎯ Initial Value Read/Write ⎯ R/W ⎯ 1 Specifies how to prioritize G-Bus arbitration. 0 = Fixed priority. The G-Bus arbitration priority conforms to the content of the PRIORITY field (bits [14:0]). 1 = Round-robin (in a round-robin fashion, PCIC0 > PDMAC > DMAC0 > DMAC1 > PCIC1) Note: Before accessing the PCI by DMAC, specify round-robin as the priority mode. If fixed-priority mode is selected, a dead lock is likely to occur in PCI bus access. ⎯ Specifies the priority when ARBMD (bit [16]) specifies fixedpriority mode. [14:12] = Bus master with the highest priority [11:9] = Bus master with the second highest priority [8:6] = Bus master with the third highest priority [5:3] = Bus master with the fourth highest priority [2:0] = Bus master with the fifth highest priority 000 = PCI controller 001 = PDMAC 010 = DMAC0 011 = DMAC1 100 = PCI controller 1 A priority of PCIC > PDMAC > DMAC0 > DMAC1 > PCIC1 is initially set up. ⎯ 000_001_01 0_011_100 30:15 14:0 ⎯ PRIORITY Reserved Arbitration Priority ⎯ R/W Figure 5.2.6 G-Bus Arbiter Control Register 5-14 Chapter 5 Configuration Registers 5.2.7 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 Reserved 20 19 RAMP[35:32] R/W 0xF 15 RAMP[31:16] R/W 0xFF1F : Type : Initial value 0 : Type : Initial value 16 32 Register Address Mapping Register (RAMP) 0xE048 48 Bit 63:20 19:0 Mnemonic ⎯ RAMP[35:16] Field Name Reserved Register Address Mapping Description ⎯ Initial Value Read/Write ⎯ R/W ⎯ This is a base address register for the TX4938 built-in 0xF_FF1F registers. It holds the high-order 20 bits of a register address. The default built-in register base address is 0xF_FF1F_0000. Even after the content of the base address register is changed, the default value can be used to reference the built-in registers. (Refer to "4.2 Register Mapp".) Figure 5.2.7 Register Address Mapping Register 5-15 Chapter 5 Configuration Registers 5.2.8 63 JMPADR[63:48] R/W 0xFFFF 47 JMPADR[47:32] R/W 0xFFFF 31 JMPADR[31:16] R/W 0xBFC0 15 JMPADR[15:0] R/W 0x0000 : Type : Initial value 20 19 RAMP[35:32] R/W 0xF 0 : Type : Initial value 16 : Type : Initial value 32 : Type : Initial value Jump Address Register (JMPADR) 0xE058 48 Bit 63:0 Mnemonic Field Name Description Initial Value Read/Write R/W JMPADR[63:0] Jump Address Register When NAND-IPL loads a user boot program to RAM from a 0xFFFF_FFFF NAND flash memory, the address of the loading place is set _BFC0_0000 as this register. It is used in case NAND-IPL controls an interrupt vector table henceforth. This register is a register used on a program of NAND-IPL, and a user must not operate it directly. At the time of operating it cannot be guaranteed of operation. Please Refer to “Chapter 18 NAND Flash Memory IPL” for Details. Figure 5.2.8 Jump Address Register 5-16 Chapter 6 Clocks 6. 6.1 Clocks TX4938 Clock Signals Figure 6.1.1 shows the configuration of TX4938 blocks and clock signals. Table 6.1.1 describes each clock signal. Table 6.1.2 shows the relationship among different clock signals when the CPU clock frequency is 266 MHz. Table 6.1.3 shows the relationship among different clock signals when the CPU clock frequency is 300 MHz. Table 6.1.4 shows the relationship among different clock signals when the CPU clock frequency is 333 MHz. PCICLKIN PLL2 ×1 PCICLKO SYSCLK 1/4 1/4.5 1/5 1/5.5 1/8 1/9 1/10 1/11 ADDR[11:10] (CCFG. PCIDIVMODE CPUCLK PCICLK[5:0] PCI device External device TCK DCLK CG EJTAG/DSU TX49/H3 core SDCLK[3:0] Data input latch SDRAMC EBUSC DMAC NDFMC ADDR[16] 1/2 SRAMC PCIC 1/1 1/2 1/3 1/4 ADDR[14:13] SDRAM SDCLKIN PLL1 ×2 ×2.5 ×3 ×4 x4.5 CLKGATE ADDR[3][1:0] MASTERCLK Oscillato ×4 ×1 ADDR[2] DMACKD NDFCKD SRAMCKD PCICKD PCIC1CKD ETH1CKD ETH0CKD PIOCKD TM2CKD TM1CKD TM0CKD SIO1CKD SIO0CKD ACLCKD SPICKD CLKCTR 1/2 GBUSCLK 1/4 IMBUSCLK PCIC1 ETHERC1 ETHERC0 IRC PIO TMR2 TMR1 TMR0 SIO1 SIO0 ACLC SPI E1TXCL E1RXCL E0TXCL E0RXCL CLKGATE TCLK SCLK BITCLK SPICLK TX4938 Figure 6.1.1 TX4938 Block and Clock Configuration 6-1 Chapter 6 Clocks Table 6.1.1 TX4938 Clock Signals (1/2) Clock Input/Output Description Master input clock for the TX4938. The TX4938 internal clock generator multiplies or divides MASTERCLK to generate internal clock pulses. ADDR[3:0] Related Related Registers Configuration Signals (Refer to Chapters 5 and 10.) (Refer to Section 3.2.) ⎯ ⎯ MASTERCLK Input CPUCLK Internal signal Clock supplied to the TX49/H3 core. PLL1 in the TX4938 generates CPUCLK by multiplying MASTERCLK. Boot configuration signals ADDR[3:0] can set the frequency ratio of CPUCLK to MASTERCLK. ADDR[3:0] HHHH = 2 times MASTERCLK HHHL = 2.5 times MASTERCLK HHLH = 3 times MASTERCLK HHLL = 4 times MASTERCLK LHHH = 4.5 times MASTERCLK HLHH = 8 times MASTERCLK HLHL = 10 times MASTERCLK HLLH = 12 times MASTERCLK HLLL = 16 times MASTERCLK LLHH = 18 times MASTERCLK Internal signal Clock supplied to peripheral blocks on the G-Bus. PLL1 in the TX4938 generates GBUSCLK by multiplying MASTERCLK. Boot configuration signal ADDR[2] can set the multiplier value. ADDR[2] L = 4 times MASTERCLK H = 1 times MASTERCLK Internal signal Clock supplied to peripheral modules on the IMBus. The frequency of IMBUSCLK is half that of GBUSCLK. Output CCFG.DIVMODE[3:0] GBUSCLK ADDR[2] CCFG.DIVMODE[2] IMBUSCLK ⎯ ⎯ SYSCLK System clock output from the TX4938. Used by ADDR[14:13] the devices connected to the external bus controller (EBUSC). Boot configuration signals ADDR[14:13] can set the frequency ratio of SYSCLK to GBUSCLK. ADDR[14:13] LL: GBUSCLK divided by 4 LH: GBUSCLK divided by 3 HL: GBUSCLK divided by 2 HH: GBUSCLK divided by 1 The SYSCLKEN bit of the PCFG register can disable the output of SYSCLK. Note: To use SYSCLK to access external devices, the SYSCLK rate must match the EBUSC channel operating rate. For details, refer to Section 7.3.8. Clock supplied to SDRAM. The frequency of SDCLK[3:0] is the same as that of GBUSCLK. The SDCLKEN[3:0] field of the PCFG register can disable the output of SDCLK[3:0] on a per bit basis. Reference clock used to latch input data signals from SDRAM. The clock output from SDCLK should be connected to SDCLKIN via a feedback line outside the TX4938. ⎯ CCFG.SYSSP PCFG.SYSCLKEN SDCLK[3:0] Output PCFG.DRVCK[3:0] PCFG.SDCLKEN[3:0] SDCLKIN Input/output ⎯ PCFG.DRVCKIN (PCFG.SDCLKDLY) (PCFG.SDCLKINEN) 6-2 Chapter 6 Clocks Table 6.1.1 TX4938 Clock Signals (2/2) Clock PCICLK[5:0] Input/Output Output Description Related Related Registers Configuration Signals (Refer to Chapters 5 (Refer to Section and 10.) 3.2.) CCFG.PCIDIVMODE PCFG.PCICLKEN[5:0] ADDR[11:10] Clock supplied to devices on the PCI bus. The PCICLKEN bit of the PCFG register can disable the output of PCICLK. The frequency depends on boot configuration signals ADDR[11:10] or the PCIDIVMODE field of the CCFG register. Initial Value of PCIDIVMODE[0] is 0. CCFG_PCIDIVMODE[2:0] =001: CPUCLK divided by 4 =011: CPUCLK divided by 4.5 =101: CPUCLK divided by 5 =111: CPUCLK divided by 5.5 =000: CPUCLK divided by 8 =010: CPUCLK divided by 9 =100: CPUCLK divided by 10 =110: CPUCLK divided by 11 Note: PCICLK[5:0] can supply clock pulses at 66 or 33 MHz when the CPUCLK frequency is set to 300. The setting is: 011, 010 PCICLKIN Input PCI bus clock. The built-in PCI controller of the TX4938 operates with this clock. Note: To achieve an accurate phase match with the external clock, PCICLK[5:0] or the PCI clock output from another PCI device must be supplied to PCICLKIN. ⎯ ⎯ PCICLKO Internal signal Clock supplied to the PCI controller. PCICLKO is generated by PLL2 based on PCICLKIN. PCICLKO has the same frequency and phase as those of PCICLKIN (input pin). Clock for serial EEPROM used to initially set the PIC configuration. Input clock for SIO. SCLK is shared by SIO0 and SIO1. Input clock for timers. TCLK is shared by TMR0, TMR1, and TMR2. Input clock for the AC-link controller. The pin is shared with the PIO[2] signal. Input clock for JTAG. Clock output for the real-time debugging system. Transmit clock Receive clock This clock is used for a data clock to or from an SPI slave device. ADDR[9] ⎯ ⎯ EEPROM_SK Output SCLK TCLK BITCLK TCK DCLK E0TXCLK, E1TXCLK E0RXCLK, E1RXCLK SPICLK PCI1CLK Input Input Input Input Output Input Input Output ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ADDR[16] Internal signal Clock supplied to the PCI controller connected ETHER0 and ETHER1. This clock is generated by dividing GBUSCLK. Divide mode is specified by ADDR[16] and CCFG. CCFG.PCI1DMD 6-3 Chapter 6 Clocks Table 6.1.2 Relationship Among Different Clock Frequencies (for TMPR4938XBG-300, CPUCLK = 266 MHz) Master Clock (Input) and Boot Configured Settings Boot MASTERCLK (MHz) Internal Clock External Clock (Output) SYSCLK (MHz) PCICLK[5:0] (MHz) † CCFG Settings PCIDIVMODE[2:0] LLH (1/4) LHH (1/4.5) HLH (1/5) HHH (1/5.5) LLL (1/8) LHL (1/9) HLL (1/10) HHL (1/11) Configured Setting ADDR[3:0] CPUCLK (MHz) GBUSCLK (MHz) IMBUSCLK (MHz) SDCLK [3:0] (MHz) Boot Configured Settings PCIDIVMODE[2:0] HH (1/1) HL (1/2) LH (1/3) LL (1/4) 133 33.3 106.4 26.6 88.7 22.2 66.5 16.6 59.1 14.8 HHHH (×2.0) HLHH (×8.0) HHHL (×2.5) HLHL (×10.0) HHLH (×3.0) HLLH (×12.0) HHLL (×4.0) HLLL (×16.0) LHHH (×4.5) LLHH (×18.0) 133 106.4 266 88.7 66.5 59.1 66 53 44 33.2 29.6 133 106.4 88.7 66.5 59.1 133 106.4 88.7 66.5 59.1 66 53 44.3 33.3 35.5 26.6 59.1 53.2 48.4 33.3 29.6 26.6 24.2 44.3 29.6 22.2 66.5 33.3 22.2 16.6 29.6 19.7 14.8 † The CCFG.PCIDIVMODE[2:1] field is setting by the boot configuration ADDR[11:10]. Table 6.1.3 Relationship Among Different Clock Frequencies (for TMPR4938XBG-300, CPUCLK = 300 MHz) Master Clock (Input) and Boot Configured Settings Boot MASTERCLK (MHz) Internal Clock External Clock (Output) SYSCLK (MHz) PCICLK[5:0] (MHz) † CCFG Settings PCIDIVMODE[2:0] LLH (1/4) LHH (1/4.5) HLH (1/5) HHH (1/5.5) LLL (1/8) LHL (1/9) HLL (1/10) HHL (1/11) Configured Setting ADDR[3:0] CPUCLK (MHz) GBUSCLK (MHz) IMBUSCLK (MHz) SDCLK [3:0] (MHz) Boot Configured Settings PCIDIVMODE[2:0] HH (1/1) HL (1/2) LH (1/3) LL (1/4) 120 30 100 25 75 18 66 16 HHHH(x2.0) HLHH(x8.0) HHHL (x2.5) HLHL (x10.0) HHLH (x3.0) HLLH (x12.0) HHLL (x4.0) HLLL (x16.0) LHHH(x4.5) LLHH (x18.0) 120 300 100 75 66 60 50 37 33 120 100 75 66 120 100 75 66 60 50 37 33 40 33 25 22 30 25 - - - - - - - - 75 18 16 66 60 54 37 33 30 27 † The CCFG.PCIDIVMODE[2:1] field is setting by the boot configuration ADDR[11:10]. 6-4 Chapter 6 Clocks Table 6.1.4 Relationship Among Different Clock Frequencies (for TMPR4938XBG-333, CPUCLK = 333 MHz) Master Clock (Input) and Boot Configured Settings Boot MASTERCLK (MHz) Internal Clock External Clock (Output) SYSCLK (MHz) PCICLK[5:0] (MHz) † CCFG Settings PCIDIVMODE[2:0] LLH (1/4) LHH (1/4.5) HLH (1/5) HHH (1/5.5) LLL (1/8) LHL (1/9) HLL (1/10) HHL (1/11) Configured Setting ADDR[3:0] CPUCLK (MHz) GBUSCLK (MHz) IMBUSCLK (MHz) SDCLK [3:0] (MHz) Boot Configured Settings PCIDIVMODE[2:0] HH (1/1) HL (1/2) LH (1/3) LL (1/4) 133 33 111 27 83 20 74 18 HHHH(x2.0) HLHH(x8.0) HHHL (x2.5) HLHL (x10.0) HHLH (x3.0) HLLH (x12.0) HHLL (x4.0) HLLL (x16.0) LHHH(x4.5) LLHH (x18.0) 133 333 111 83 74 66 55 41 37 133 111 83 74 133 111 83 74 66 55 41 37 44 37 27 24 33 27 - - - - - - - - 83 20 18 74 66 60 41 38 33 30 † The CCFG.PCIDIVMODE[2:1] field is setting by the boot configuration ADDR[11:10]. 6.2 Power-Down Mode Halt Mode and Doze Mode The WAIT instruction causes the TX49/H3 core to enter either of the two low-power modes: Halt and Doze. The TX49/H3 can exit from Halt or Doze mode upon an interrupt exception. Ensure, therefore, that the TX49/H3 does not enter Halt or Doze mode when all interrupts are masked in the interrupt controller. The HALT bit of the TX49/H3 core Config register is used to select Halt or Doze mode. As the TX4938 does not use the snoop function of the TX49/H3 core, the bit should be set to select Halt mode, which achieves greater power reduction than Doze mode. 6.2.1 6.2.2 Power Reduction for Peripheral Modules When the system does not use the DMA controller, PCI controller, serial I/O controller, timers/counters, parallel I/O controller, or AC-link controller, it can stop the input clock for that module to reduce power dissipation. The clock control register (CLKCTR) is used to control whether to turn each clock on or off. The module should be reset before its clock can be turned on or off. This reset is performed using the reset bit for the specific module, provided in the clock control register. The reset also initializes the registers of the module, thus requiring subsequent setup of necessary register values and other configurations. Refer to Section 5.2.5, "Clock Control Register" for detail of the clock control register (CLKCTR). 6-5 Chapter 6 Clocks 6.3 Power-On Sequence Vdd MASTERCLK RESET* CGRESET* PLL settling time PLL1 output CPUCLK GBUSCLK PCICLK PCICLKIN (when PCICLK is fed back) PLL settling time PLL2 output PCICLKO (clock for TX4938 PCI controller) Figure 6.3.1 Power-On Sequence 6-6 Chapter 7 External Bus Controller 7. 7.1 External Bus Controller Features The External Bus Controller is used for accessing ROM, SRAM memory, and I/O peripherals. The features of this bus are described below. (1) 8 independent channels (2) Supports access to ROM (mask ROM, page mode ROM, EPROM, EEPROM), SRAM, flash memory, and I/O peripherals. (3) Selectable data bus width of 8-bit, 16-bit, 32-bit for each channel (4) Selectable full-speed, 1/2 speed, 1/3 speed, 1/4 speed for each channel (5) Programmable timing for each channel. Programmable setup and hold time of address, chip enable, write enable, and output enable signals. (6) Supports memory sizes from 1 MB to 1 GB for devices with a 32-bit data bus. Supports memory sizes from 1 MB to 512 MB for devices with a 16-bit data bus. Supports memory sizes from 1 MB to 256 MB for devices with an 8-bit data bus. (7) Supports special DMAC Burst access (address decrement/fixed). (8) Supports critical word first access of the TX49/H3 core. (9) Supports page mode memory. Supports 4-, 8-, and 16-page size. (10) Supports the External Acknowledge Signal (ACK*) and External Ready Signal modes. (11) Channel 0 can be used as Boot memory. Boot settings can be made from the following selections: • • • • Data bus width: 8-bit, 16-bit, 32-bit ACK* output or ACK* input BWE pin (byte enable or byte Write enable) Boot channel clock frequency (12) Supports the ISA I/O area access. (13) Supports ATA PIO mode. 7-1 Chapter 7 External Bus Controller 7.2 Block Diagram G-Bus External Bus Controller (EBUSC) G-Bus I/F Channel Control Register CH0 Address Decoder CE*[7:0] Timing Control OE* SWE* BWE*[3:0]/BE*[3:0] ACK*/READY ACE* Channel Control Register CH7 Address Decoder EBIF CONTROL ADDR[19:0] EBIF DATA[31:0] BUSSPRT* IOR* IOW * CS[1:0]* ACEHOLD Boot Options Register Address Decoder Host I/F Timing Control CCFG.SYSSP CG SYSCLK Figure 7.2.1 Block Diagram of External Bus Controller 7-2 Chapter 7 External Bus Controller 7.3 Detailed Explanation External Bus Control Register The External Bus Controller (EBUSC) has eight channels. This register contains one Channel Control Register (EBCCRn) for each channel, and all settings can be made independently for each channel. Either Word or Double-word access is possible for a Control Register. However, be sure to make any Enable settings to EBCCRn.ME last when using Word access and dividing register settings into two accesses. If EBCCRn.ME is enabled before setting the base address, then unintended memory access may result. 7.3.1 7-3 Chapter 7 External Bus Controller 7.3.2 Global/Boot-up Options In addition to the settings made separately for each channel, the Channel Control Registers can also use global options that make settings common to all channels. External Bus Controller Channel 0 can be used as a Boot memory channel. Channel 0 is set by the external pins (Boot pins) during reset. These settings are summarized below in Table 7.3.1. (Please refer to “3.2 Boot Configuration” and “5.2.1 Chip Configuration Register” for more information.) Table 7.3.1 Global/Boot-up Options Pin Name ⎯ Set Register CCFG.ARMODE Explanation Selects the operation mode of the ACK*/READY signal. 0 = ACK*/READY Dynamic mode (Default) 1 = ACK*/READY Static mode Sets the address hold time relative to the ACE* signal. 0: Address changes simultaneous to deassertion of the ACE* signal. 1: Address changes 1 clock cycle after deassertion of the ACE* signal. (Default) Specifies the division ratio of the SYSCLK output relative to the internal bus clock (GBUSCLK). 00: 1/4 speed (1/4 the GBUSCLK frequency) 01: 1/3 speed (1/3 the GBUSCLK frequency) 10: 1/2 speed (1/2 the GBUSCLK frequency) 11: Full speed (same frequency as the GBUSCLK frequency) Specifies whether to enable or disable Channel 0. 0: Disable this channel as a Boot channel. 1: Enable this channel as a Boot channel. Specifies the operation speed of Channel 0. 00: 1/4 Speed mode 01: 1/3 Speed mode 10: 1/2 Speed mode 11: Full Speed mode When accessing Channel 0, specifies whether to use the BWE[3:0] signal as a Byte Enable signal (BE[3:0]) or to use it as a Byte Write Enable signal (BWE[3:0]). 0: Byte Enable mode 1: Byte Write Enable mode Specifies the Channel 0 access mode. 0: Normal mode (DATA[4] = H) 1: External ACK mode (DATA[4] = L) Specifies the memory bus width of Channel 0. 00: Reserved 01: 32-bit width 10: 16-bit width 11: 8-bit width ⎯ CCFG.ACEHOLD ADDR[14:13] CCFG.SYSSP ADDR[8] EBCCR0.ME ADDR[7:6] EBCCR0.SP DATA[5] EBCCR0.BC DATA[4] EBCCR0.WT[0] DATA[1:0] EBCCR0.BSZ 7-4 Chapter 7 External Bus Controller 7.3.3 Address Mapping Each of the eight channels can use the Base Address field (EBCCRn.BA[35:20]) and the Channel Size field (EBCCRn.CS[3:0]) of the External Bus Channel Control Register to map to any physical address. A channel is selected when the following equation becomes True. paddr[35:20] & !Mask[35:20] == BA[35:20] & !Mask[35:20] In the above equation, paddr represents the accessed physical address, Mask[35:20] represents the address mask value selected from Table 7.3.2 from the Channel Size field value, the ampersand (&) represents the AND operation, and the exclamation mark (!) represents the Logical NOT for each bit. Operation is indeterminate when either multiple channels are selected simultaneously, or a channel is selected simultaneously with the SDRAM Controller or PCI Controller. Table 7.3.2 Address Mask CS[3:0] 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Channel Size 1 MB 2 MB 4 MB 8 MB 16 MB 32 MB 64 MB 128 MB 256 MB 512 MB 1 GB Reserved Reserved Reserved Reserved Reserved Address Mask[35:20] 0000_0000_0000_0000 0000_0000_0000_0001 0000_0000_0000_0011 0000_0000_0000_0111 0000_0000_0000_1111 0000_0000_0001_1111 0000_0000_0011_1111 0000_0000_0111_1111 0000_0000_1111_1111 0000_0001_1111_1111 0000_0011_1111_1111 Reserved Reserved Reserved Reserved Reserved 7-5 Chapter 7 External Bus Controller 7.3.4 External Address Output The maximum memory space size for each channel is 1 GB (230B). Addresses are output by dividing the 20-bit ADDR[19:0] signal into two parts: the upper address and the lower address. The address bit output to each bit of the ADDR[19:0] signal changes according to the setting of the channel data bus width. (See “7.3.5 Data Bus Size” for more information.) It is possible for an external device to latch the upper eight address bits using the ACE* signal. Either the ACE* signal itself can be used as a Latch Enable signal or the upper address can be latched at the rise of SYSCLK when the ACE* signal is being asserted. The ADDR signal output is held for one clock cycle after the ACE* signal rise when the CCFG.ACEHOLD bit is set (default). (See Figure 7.5.1.) The ADDR signal output is not held when the CCFG.ACEHOLD bit is cleared. This hold time setting is applied globally to all channels. The ACE* signal of the upper address is always asserted at the first external bus access cycle after Reset. In all subsequent external bus access cycles, the bit mapping of the upper address output to ADDR[19:12] is compared to the bit mapping of the upper address output to ADDR[19:12] previously. The upper address is output and the ACE* signal is asserted only if the compared results do not match. As indicated below in Table 7.3.3, in the case of channel sizes that do not use the upper address latched by the ACE* signal, with the exception of the first cycle after reset, the upper address is not output and the ACE* signal is not asserted. Table 7.3.3 Relationship Between the Upper Address Output and the Channel Size (CS) CS Bus Width 32 bits 16 bits 8 bits ⎯ ⎯ ⎯ 1 MB ⎯ ⎯ √ 2 MB ⎯ √ √ 4 MB 8 MB or more √ √ √ √: The upper address output changes when the upper address changes. ⎯: The upper address output does not change (with the exception of the first cycle after reset.) 7-6 Chapter 7 External Bus Controller 7.3.5 Data Bus Size The External Bus Controller supports devices with a data bus width of 8 bits, 16 bits, and 32 bits. The data bus width is selected using the BSZ field of the Channel Control Register (EBCCRn). The address bits output to each bit of the ADDR[19:0] signal change according to the mode. When access of a size larger than the data bus width is performed, the dynamic bus sizing function is used to execute multiple bus access cycles in order from the lower address. 7.3.5.1 32-bit Bus Width Mode DATA[31:0] becomes valid. Bits [21:2] of the physical address are output to ADDR[19:0]. The internal address bits [29:22], which are the upper address, are multiplexed to external ADDR[19:12]. The maximum memory size is 1 GB. Table 7.3.4 Address Output Bit Correspondence in the 32-bit Mode ADDR Bit Upper Address Lower Address 19 18 17 16 15 14 13 12 11 10 9 29 28 21 20 27 19 26 18 25 24 17 16 23 22 15 14 13 12 8 7 9 6 8 5 7 4 6 3 5 2 4 1 3 0 2 11 10 When a Single cycle that accesses 1-Byte/1 half-word/1-word data is executed, 32-bit access is executed only once on the external bus. 32-bit access is executed twice when performing 1double-word access. When a Burst cycle is executed, two 32-bit cycles are executed for each Burst access when the Bus cycle tries to request a byte combination other than double-word data. 7.3.5.2 16-bit Bus Width Mode DATA[15:0] becomes valid. Bits [20:1] of the physical address are output to ADDR[19:0]. The internal address bits [28:21], which are the upper address, are multiplexed to external ADDR[19:12]. In other words, the address is shifted up one bit relative to the 32-bit bus mode when output. As a result, the maximum memory size of the 16-bit bus mode is 512 MB. Table 7.3.5 Address Output Bit Correspondence in the 16-bit Mode ADDR Bit Upper Address Lower Address 19 18 17 16 15 14 13 12 11 10 9 28 27 26 20 19 18 25 17 24 16 23 15 22 14 21 13 12 11 10 8 9 7 8 6 7 5 6 4 5 3 4 2 3 1 2 0 1 When a Single cycle that accesses 1-Byte or 1 half-word data is executed, 16-bit access is executed only once on the external bus. 16-bit access is executed twice when performing 1-word access. 16-bit access is executed four times when performing 1-double-word access. When a Burst cycle is executed, four 16-bit cycles are executed for each Burst access when the Bus cycle tries to request a byte combination other than double-word data. 7-7 Chapter 7 External Bus Controller 7.3.5.3 8-bit Bus Width Mode DATA[7:0] becomes valid. Bits [19:0] of the physical address are output to ADDR[19:0]. The internal address bits [27:20], which are the upper address, are multiplexed to external ADDR[19:12]. In other words, the address is shifted up two bits or more relative to the 32-bit bus mode when output. As a result, the maximum memory size of the 8-bit bus mode is 256 MB. Table 7.3.6 Address Output Bit Correspondence in the 8-bit Mode ADDR Bit Upper Address Lower Address 19 18 17 16 15 14 13 12 11 10 9 27 26 19 18 25 17 24 16 23 22 15 14 21 20 13 12 11 10 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 When a Single cycle that accesses 1-Byte data is executed, 8-bit access is executed only once on the external bus. 8-bit access is executed twice when performing 1-half-word access. 8-bit access is executed four times when performing 1-word access. 8-bit access is executed eight times when performing 1-double-word access. When a Burst cycle is executed, eight 8-bit cycles are executed for each Burst access when the Bus cycle tries to request a byte combination other than doubleword data. 7-8 Chapter 7 External Bus Controller 7.3.6 Access Mode The following four modes are available as controller access modes. These modes can be set separately for each channel. • • • • Normal mode Page mode External ACK mode Ready mode Depending on the combination of modes in each channel, either of two modes in which the ACK*/Ready signal operates differently (ACK*/Ready Dynamic mode, ACK*/Ready Static mode) is selected by the ACK*/Ready Mode bit (CCFG.ARMODE) of the Chip Configuration Register. The mode selected is applied globally to all channels. (1) ACK*/READY Dynamic mode (CCFG.ARMODE = 0) This mode is selected in the initial state. The ACK*/Ready signal automatically switches to either input or output according to the setting of each channel. When in the Normal mode or the Page mode, the ACK*/Ready signal is an output signal, and the internally generated ACK* signal is output. When in the External ACK* or Ready mode, the ACK*/Ready signal becomes an input signal. The ACK*/Ready signal outputs High if there is no access to the External Bus Controller. However, this signal may output Low during access to SDRAM. Please refer to the timing diagrams (Figure 7.5.23 and Figure 7.5.24) and be careful to avoid conflicts when switching from output to input. (2) ACK*/Ready Static mode (CCFG.ARMODE = 0) The internally generated ACK* signal is not output when in either the Normal mode or Page mode. Therefore, the ACK*/Ready signal will not become an output in any channel. Access using Burst transfer by the internal bus (G-Bus) is supported when in a mode other than the Ready mode. However, the Ready mode is not supported. Table 7.3.7 Operation Mode PM RDY 0 1 !0 0 1 0 ACK*/Ready Static Mode !0 0 1 0 1 PWT:WT ! 3f 3f ⎯ ⎯ ⎯ ! 3f 3f ⎯ ⎯ ⎯ Mode Normal External ACK* READY Page Reserved Normal External ACK* READY Page Reserved ACK*/READY Pin State Output Input Input Output ⎯ Hi-Z Input Input Hi-Z ⎯ Access End Timing State Internally Generated ACK* ACK* Input Ready Input Internally Generated ACK* ⎯ Internally Generated ACK* ACK* Input Ready Input Internally Generated ACK* ⎯ G-Bus Burst Access √ √ ⎯ √ ⎯ √ √ ⎯ √ ⎯ 0 ACK*/Ready Dynamic Mode 7-9 Chapter 7 External Bus Controller 7.3.6.1 Normal Mode When in this mode, the ACK*/Ready signal becomes an ACK* output when it is in the ACK*/Ready Dynamic mode. The ACK*/Ready signal becomes High-Z when it is in the ACK*/Ready Static mode. Wait cycles are inserted according to the EBCCRn.PWT and EBCCRn.WT value at the access cycle. The Wait cycle count is 0 – 0x3e (becomes the external ACK mode when set to EBCCRn.PWT: WT = 0x3f). SYSCLK CE* ADDR [19:0] OE* DATA [31:0] ACK*/READY (Output) EBCCRn.PWT:WT=3 expresses indeterminate values EBCCRn.SHWT=0 Figure 7.3.1 Normal Mode 7.3.6.2 External ACK Mode When in this mode, the ACK*/READY pin becomes ACK* input, and the cycle is ended by the ACK* signal from an external device. ACK* input is internally synchronized. Refer to Section “7.3.7.4 ACK* Input Timing” for more information regarding timing. SYSCLK CE* ADDR [19:0] OE* DATA [31:0] ACK*/READY(Input) represents indeterminate values. EBCCRn.SHWT=0 Figure 7.3.2 External ACK Mode 7-10 Chapter 7 External Bus Controller 7.3.6.3 Ready Mode When in this mode, the ACK*/Ready pin becomes Ready input, and the cycle is ended by Ready input from an external device. Ready input is internally synchronized. See Section “7.3.7.5 Ready Input Timing” for more information regarding the operation timing. When the Wait cycle count specified by EBCCREBCCRn.PWT:WT elapses, a check is performed to see whether the Ready signal was asserted. Since EBCCRn.WT[0] is used to indicate the ACK*/ Ready Static/Dynamic mode, it is not used for setting the Wait cycle count. Therefore, the Wait cycle count that can be set by the Ready mode is 0, 2, 4, 6, …, 62. When the number of wait cycles is 0, READY check is started in 1 cycle after asserting the CE* signal. When the number of wait cycles is other than zero, after waiting only for the specified number of cycles, READY check is started. The Ready mode does not support Burst access by the internal bus. SYSCLK CE* ADDR [19:0] OE* DATA [31:0] ACK*/READY (Input) EBCCRn.PWT:WT=2 EBCCRn.SHWT=0 Start Ready Check Figure 7.3.3 Ready Mode 7-11 Chapter 7 External Bus Controller 7.3.6.4 Page Mode When in this mode, the ACK*/Ready pin becomes ACK* output when it is in the Dynamic mode. When it is in the ACK*/Ready Static mode, the ACK*/Ready signal becomes HiZ. Wait cycles are inserted into the access cycle according to the values of EBCCRn.PWT and EBCCRn.WT. The Single access protocol in Page mode is identical to that of Normal mode, except the number of wait cycles inserted. The Wait cycle count in the first access cycle of Single access or Burst access is determined by the EBCCRn.WT value. The Wait cycle count can be set from 0 to 15. The Wait cycle count of subsequent Burst cycles is determined by the EBCCRn.PWT value. The Wait cycle count can be set from 0 to 3. SYSCLK CE* ADDR [19:0] OE* DATA [31:0] ACK*/READY (Output) EBCCRn.WT=2 EBCCRn.PWT=1 EBCCRn.PWT=1 EBCCRn.PWT=1 Figure 7.3.4 Page Mode (Burst Access) 7-12 Chapter 7 External Bus Controller 7.3.7 Access Timing SHWT Option The SHWT option is selected when the SHWT (Setup/Hold Wait Time) field of the Channel Control Register is a value other than “0.” This option inserts Setup cycles and Hold cycles between signals as follows. Setup cycle: CE* from ADDR, OE* from CE*, BWE* from CE*, SWE* from CE*. Hold cycle: ADDR from CE*, CE* from OE*, CE* from BWE*, CE* from SWE* This option is used for I/O devices that are generally slow. All Setup cycles and Hold cycles will be identical, so each cycle cannot be set individually. The SHWT mode cannot be used by the Page mode. The SHWT mode can be used by all other modes, but there is one restriction: the internal bus cannot use Burst access. The hold cycles of DATA relative to SWE* and BWE* are fixed at one clock cycle, regardless of the settings of the SHWT option. When the SHWT option is disabled, the setup cycles of SEW* and BWE* relative to CE*, and the hold cycles of OE*, SEW* and BWE* relative to CE* are one clock cycle. 7.3.7.1 SYSCLK CE*/BE* ADDR [19:0] OE* SWE*/BWE* DATA [31:0] ACK*/READY (Output) EBCCRn.PWT:WT=0 EBCCRn.SHWT=0 Figure 7.3.5 SWHT Disable (Normal Mode, Single Read/Write Cycle) 7-13 Chapter 7 External Bus Controller SYSCLK CE*/BE* ADDR [19:0] OE* SWE*/BWE* DATA [31:0] ACK*/READY (Output) EBCCRn.PWT:WT=0 EBCCRn.SHWT=1 Figure 7.3.6 SHWT 1 Wait (Normal Mode, Single Read/Write Cycle) 7.3.7.2 ACK*/READY Input/Output Switching Timing When in the ACK*/Ready Static mode, the ACK*/Ready signal is always an input signal. When in the ACK*/Ready Dynamic mode, the ACK*/Ready signal is an input signal when in the External ACK mode or the Ready mode, but is an output signal in all other modes. During External ACK mode or Ready mode access, the ACK* signal becomes High-Z at the cycle where the CE* signal is asserted. At the end of the access cycle, the ACK* signal is output (driven) again one clock cycle after the CE* signal is deasserted (see Figure 7.3.3 and Figure 7.5.23). 7-14 Chapter 7 External Bus Controller 7.3.7.3 ACK* Output Timing (Normal Mode, Page Mode) When in the Normal mode and Page mode of the ACK*/Ready Dynamic mode, the ACK* signal becomes an output signal and is asserted for one clock cycle to send notification to the external device of the data Read and data Write timing. During the Read cycle, the data is latched at the rise of the next clock cycle after when the ACK* signal is asserted. (See Figure 7.3.7 ACK* Output Timing (Single Read Cycle)). During the Write cycle, SWE*/BWE* is deasserted at the next clock cycle after when the ACK* signal is deasserted, and the data is held for one more clock cycle after that. (See Figure 7.3.8 ACK* Output Timing (Single Write Cycle)). SYSCLK CE* ADDR [19:0] OE* DATA [31:0] ACK*/READY (Output) 1 clock Data is latched EBCCRn.PWT:WT=2 EBCCRn.SHWT=0 Figure 7.3.7 ACK* Output Timing (Single Read Cycle) SYSCLK CE* ADDR [19:0] SWE*/BWE* DATA [31:0] ACK*/READY (Output) 2 clocks EBCCRn.PWT:WT=2 EBCCRn.SHWT=0 Figure 7.3.8 ACK* Output Timing (Single Write Cycle) 7-15 Chapter 7 External Bus Controller 7.3.7.4 ACK* Input Timing (External ACK Mode) The ACK* signal becomes an input signal when in the external ACK mode. During a Read cycle, data is latched two clock cycles after assertion of the ACK* signal is acknowledged (Figure 7.3.9 ACK* Input Timing (Single Read Cycle)). During a Write cycle, assertion of the ACK* signal is acknowledged, SWE*/BWE* is deasserted three clock cycles later, then data is held for one clock cycle after that (Figure 7.3.10 ACK* Input Timing (Single Write Cycle). The ACK* input signal is internally synchronized. Due to internal State Machine restrictions, ACK* cannot be acknowledged consecutively on consecutive clock cycles. External devices can assert ACK* across multiple clock cycles under the following conditions. • • During Single access, the ACK* signal can be asserted before the end of the cycle during which CE* is dasserted. During Burst access, it is possible to assert the ACK* signal for up to three clock cycles during Reads and for up to five clock cycles during Writes. If the ACK* signal is asserted for a period longer than this, it will be acknowledged as the next valid ACK* signal. SYSCLK CE* ADDR [19:0] OE* DATA [31:0] ACK*/READY (Input) 2 clocks Acknowledge ACK* Latch Data EBCCRn.SHWT=0 Figure 7.3.9 ACK* Input Timing (Single Read Cycle) SYSCLK CE* ADDR [19:0] SWE*/BWE* DATA [31:0] ACK*/READY (Input) 4 clocks 3 clocks Acknowledge ACK* EBCCRn.SHWT=0 Figure 7.3.10 ACK* Input Timing (Single Write Cycle) 7-16 Chapter 7 External Bus Controller SYSCLK CE* ADDR [19:0] OE* DATA [31:0] ACK*/READY (Input) 2 clocks Acknowledge ACK* Latch Data 2 clocks Acknowledge ACK* Latch Data EBCCRn.SHWT=0 Figure 7.3.11 ACK* Input Timing (Burst Read Cycle) SYSCLK CE* ADDR [19:0] 3 clocks SWE*/BWE* DATA [31:0] ACK*/READY (Input) 4 clocks 4 clocks 3 clocks Acknowledge ACK* Acknowledge ACK* EBCCRn.SHWT=0 Figure 7.3.12 ACK* Input Timing (Burst Write Cycle) 7-17 Chapter 7 External Bus Controller 7.3.7.5 Ready Input Timing The ACK*/Ready pin is used as a Ready input when in the Ready mode. The Ready input timing is the same as the ACK* input timing explained in 7.3.7.4 ACK* Input Timing (External ACK Mode) with the two following exceptions. • • Ready must be a High Active signal. When in the Ready mode, the Wait cycle count specified by EBCCRn.PWT:WT must be inserted in order to delay the Ready signal check (see 7.3.6.3 Ready Mode). SYSCLK CE* ADDR [19:0] OE* DATA [31:0] ACK*/READY (Input) 2 clocks Acknowledge Ready Latch Data EBCCRn.PWT:WT=2 EBCCRn.SHWT=0 SYSCLK CE* ADDR [19:0] OE* DATA [31:0] ACK*/READY (Input) 2 clocks Start Ready Check Acknowledge Ready Latch Data EBCCRn.PWT:WT=2 EBCCRn.SHWT=0 Figure 7.3.13 Ready Input Timing (Read Cycle) 7-18 Chapter 7 External Bus Controller SYSCLK CE* ADDR [19:0] 3 clocks SWE*/BWE* DATA [31:0] ACK*/READY (Input) 4 clocks Acknowledge Ready EBCCRn.PWT:WT=2 EBCCRn.SHWT=0 SYSCLK CE* ADDR [19:0] SWE*/BWE* DATA [31:0] ACK*/READY (Input) 4 clocks 3 clocks Start Ready Check Acknowledge Ready EBCCRn.PWT:WT=2 EBCCRn.SHWT=0 Figure 7.3.14 Ready Input Timing (Write Cycle) 7.3.8 Clock Options External devices connected to the external bus can use the SYSCLK signal as the clock. The SYSCLK signal clock frequency can be set to one of the following divisions of the internal bus clock (GBUSCLK): 1/1, 1/2, 1/3, 1/4. The ADDR[14:13] signal is used to set this frequency during reset, and the setting is reflected in the SYSCLK Division Ratio field (CCFG.SYSSP) of the Chip Configuration Register. The operation reference clock frequency can be set to one of the following divisions of the internal bus clock (GBUSCLK) for each channel independent of the SYSCLK signal clock frequency: 1/1, 1/2, 1/3, 1/4. The external signal of the External Bus Controller operates synchronous to this operation clock. The Bus Speed field (EBCCRn.SP) of the External Bus Channel Control Register sets this frequency. Please set the same value as CCFG.SYSSP to EBCCRn.SP when the external device uses the SYSCLK signal. If these two values do not match, then the channel, the operation reference clock, and the SYSCLK signal will no longer be synchronous and will not operate properly. 7-19 Chapter 7 External Bus Controller 7.3.9 ISA /ATA Mode TMPR4938 supports ISA I/O space access and ATA PIO transfer mode. Since the pins used in ISA/ATA mode are multiplexed pins, select ISA/ATA before use of these pins. Since the signal of CE* is not used in this mode, when ETHER1 is chosen, this mode can be used by channels 5, 6 and 7. (Refer to “5.2.3 Pin Configuration Register”.) 7.3.9.1 Address space In the channel set to EBCCRn.ISA=01, 64 kbyte from the start address of the channel is used for the ISA I/O space. (Refer to Figure 7.3.15). When access to the ISA I/O space is performed, IOR* and IOW* control signals are valid, and OE*, SWE* and CE* are invalid. Other control signals are usable, that is the same as the case other than the ISA/ATA mode. In the channel set to EBCCRn.ISA=11, 64 kbyte from the start address of the channel is used for ISA I/O space, and successive 128 kbyte is used for ATA space (64 kbyte each for CS[0]* and CS[1]*). (Refer to Figure 7.3.15). When access to the ATA space is performed, the IOR*, IOW* and CS* control signals are valid, and OE*, SWE* and CE* are invalid. Other control signals are usable, that is the same as the case other than the ISA/ATA mode. In general, the space from address off set 0x30000 (0x10000 in the ISA mode) to the channel end address becomes the channel space. Access to this space is the same as the case other than the ISA/ATA mode. (OE*, SWE* and CE* control signals are valid, and IOR*, IOW* and CS* are invalid). Channel End Address Normal Channel Space 0x30000 ATA CS[1]* Space (64Kbyte) 0x20000 CS[1]* Register Area ATA CS[0]* Space (64Kbyte) CS[0]* Register Area 0x10000 ISA Space (64Kbyte) 0x00000 Offset Address W hen EBCCRn.ISA is set to 01, the ATA CS[0]* and CS[1]* spaces become the normal channel space. See Table 7.3.8 for the mapping of the ATA CS[1]* and CS[0]* register areas. Channel Start Address Figure 7.3.15 Physical Address Mapping of the ISA/ATA Spaces 7-20 Chapter 7 External Bus Controller 7.3.9.2 Usage Considerations To use ISA and ATA modules in READY, their ICCHRDY or IORDY pin should be connected to the ACK*/READY pin of the TX4938. The SHWT option allows users to adjust the setup and hold timing of IOR* and IOW* relative to ADDR. When the READY mode and SHWT option are used, the internal bus burst accesses are prohibited. Although the ISA and ATA signals are 5-volt signals, the TX4938 is not 5-volt-tolerant. For voltage-level conversion, bus switches such as BUSSW and LCX245 must be inserted between ISA busses according to the modules used. 7.3.9.3 Usage Examples (1) 8-bit ISA module Following is a programming example to use an 8-bit ISA module: • • • • • ISA mode (EBCCRn.ISA=01) 8-bit bus (EBCCRn.BSZ=11) READY mode (EBCCRn.RDY=1, EBCCRn.PM=00) Channel enable (EBCCRn.ME=1) ISA select (PCFG.ISA_SEL=1) Program the number of wait cycles, the SHWT option and the bus speed according to the ISA module used. Figure 7.3.16 shows an example of connecting an 8-bit ISA module to the TX4938. TX4938 ADDR[15:0] DATA[7:0] IOR* IOW * ACK*/READY 16 8 ISA-Module SA[15:0] SD[7:0] IOR* IOW * IOCHRDY AEN Figure 7.3.16 An Example of Connecting an 8-Bit ISA Module 7-21 Chapter 7 External Bus Controller (2) 16-bit ISA module Following is a programming example to use a 16-bit ISA module: • • • • • ISA mode (EBCCRn.ISA=01) 16-bit bus (EBCCRn.BSZ=10) READY mode (EBCCRn.RDY=1, EBCCRn.PM=00) Channel enable (EBCCRn.ME=1) ISA select (PCFG.ISA_SEL=1) Program the number of wait cycles, the SHWT option and the bus speed according to the ISA module used. Figure 7.3.17 shows an example of connecting a 16-bit ISA module to the TX4938. TX4938 ADDR[15:0] DATA[15:0] IOR* IOW * ACK*/READY 16 16 ISA-Module SA[15:0] SD[15:0] IOR* IOW * IOCHRDY AEN Figure 7.3.17 An Example of Connecting an 16-Bit ISA Module With the EBUSC configured for a 16-bit bus, bits [16:1] of physical addresses are driven out from ADDR[15:0]. Thus, the address pins must be connected, as shown in Figure 7.3.17. To access halfwords in the ISA module with even addresses (*0, *2, *4, *6, …), the TX4938 must provide physical addresses with two low-order bits cleared (*0, *4, *8, *C, …). Therefore, the accessible ISA address space is limited to a maximum of 32 kbytes between 0x0000 and 0x7fff. For byte accesses, the valid byte lane in the data bus differs, depending on whether the TX4938 is configured for big-endian or little-endian byte ordering. Software is responsible for address conversion for a specific endianness, as shown in Table 7.3.8. 7-22 Chapter 7 External Bus Controller (3) ATA Following is a programming example to use an ATA module: • • • • • ISA/ATA mode (EBCCRn=11) 16-bit bus (EBCCRn=10) READY mode (EBCCRnRDY=1, EBCCRN.PM=00) Channel enable (EBCCRn.ME=1) ISA/ATA pin select mode (PCFG.ISA_SEL=1, PCFG.ATA_SEL=1) Program the number of wait cycles, the SHWT option and the bus speed according to the ISA module used. Figure 7.3.18 shows an example of connecting a 16-bit ISA module to the TX4938. TX4938 ADDR[15:0] DATA[15:0] IOR* IOW * ACK*/READY 16 16 ISA-Module SA[15:0] SD[15:0] IOR* IOW * IOCHRDY AEN Figure 7.3.18 An Example of Connecting an ATA Module Since the ATA has a 16-bit data bus, the same considerations apply to the ATA module as for the 16-bit ISA module. With the EBUSC configured for a 16-bit bus, bits [3:1] of physical addresses are driven out from ADDR[2:0]. Table 7.3.8 shows the relationships in offset addresses between the ATA and the TX4938. For byte accesses, the valid byte lane in the data bus differs, depending on whether the TX4938 is configured for big-endian or little-endian byte ordering. To access 8-bit registers in the ATA address space, address conversion is required, as shown in Table 7.3.8. Table 7.3.8 Relationships Between the ATA Addresses and Physical Addresses ATA Address Offset CS[0]* Space 0x1F0 0x1F1 0x1F2 0x1F3 0x1F4 0x1F5 0x1F6 0x1F7 CS[1]* Space 0x3F6 ATA Register Mnemonic DTR (16bit) ERR/FTR (8bit) SCR (8bit) SNR (8bit) CLR (8bit) CHR (8bit) DHR (8bit) STR/CMR (8bit) ASR/DCR (8bit) TX4938 Physical Address Offset 16-Bit Access 0x103E0 - 8-Bit Access Little-Endian 0x103E2 0x103E4 0x103E6 0x103E8 0x103EA 0x103EC 0x103EE 0x207EC Big-Endian 0x103E3 0x103E5 0x103E7 0x103E9 0x103EB 0x103ED 0x103EF 0x207ED 7-23 Chapter 7 External Bus Controller 7.4 Register Table 7.4.1 External Bus Controller (EBUSC) Registers Offset Address 0x9000 0x9008 0x9010 0x9018 0x9020 0x9028 0x9030 0x9038 Bit Width Register Symbol 64 64 64 64 64 64 64 64 EBCCR0 EBCCR1 EBCCR2 EBCCR3 EBCCR4 EBCCR5 EBCCR6 EBCCR7 Register Name E-Bus Channel Control Register 0 E-Bus Channel Control Register 1 E-Bus Channel Control Register 2 E-Bus Channel Control Register 3 E-Bus Channel Control Register 4 E-Bus Channel Control Register 5 E-Bus Channel Control Register 6 E-Bus Channel Control Register 7 7-24 Chapter 7 External Bus Controller 7.4.1 External Bus Channel Control Register (EBCCRn) 0x9000 (ch. 0), 0x9008 (ch. 1) 0x9010 (ch. 2), 0x9018 (ch. 3) 0x9020 (ch. 4), 0x9028 (ch. 5) 0x9030 (ch. 6), 0x9038 (ch. 7) Channel 0 can be used as Boot memory. Therefore, the default is set by the Boot signal (see 7.3.2 Global/Boot-up Options). Channels 1 - 7 have the same register configuration as Channel 0, but they have different defaults than Channel 0. When the EBCCRn is programmed using a sequence of 32-bit store instructions, the base address in the high-order 32-bit portion of the register must be written first, followed by the Master Enable bit in the low-order 32-bit portion. 63 BA[35:20] R/W 0x01FC/0x0000 47 Reserved : Type : Initial value 31 Reserved 0 15 WT R/W 111(~D[4])/0000 0 0 12 11 CS R/W 1/0 0 8 7 BC R/W D[5]/0 23 ISA R/W 0 6 RDY R/W 0 22 21 BSZ R/W D[1:0]/00 5 SP R/W A[7:6]/00 4 0 3 ME R/W A[8]/0 0 20 19 PM R/W 0 2 SHWT R/W 0 0 : Type : Initial value 18 17 PWT R/W 11/00 0 : Type : Initial value 16 32 :Type : Initial value 48 Only in the case of Channel 0 are fields with different defaults in the “Channel 0/Other channel” state. D[ ] represents the corresponding Data[ ] signal value when the RESET* signal is deasserted. A[ ] represents the corresponding ADDR[ ] signal value when the RESET* signal is deasserted. Bit 63:48 Mnemonic BA[35:20] Field Name Base Address Description External Bus Control Base Address (Default: 0x01FC/0x0000) A physical address is used to specify the base address. The upper 16 bits [35:20] of the physical address are compared to the value of this field. ISA/ATA Mode (Default: 00) Specifies the ISA I/O mode and ATA PIO mode. 00: ISA/ATA Mode disable 10: Reserved 01: ISA Mode enable 11: ATA Mode enable External Bus Control Bus Size (Default: DATA[1:0]/00) Specifies the memory bus width. 00: Reserved 10: 16-bit width 01: 32-bit width 11: 8-bit width Note: DATA[1:0] is set to Channel 0 as the default. Read/Write R/W 47:24 23:22 ISA Reserved ISA/ATA Mode R/W ⎯ 21:20 BSZ Bus Width R/W Figure 7.4.1 External Bus Channel Control Register (1/3) 7-25 Chapter 7 External Bus Controller Bit 19:18 Mnemonic PM Field Name Page Mode Page Size Description External Bus Control Page Mode Page Size (Default: 00) Specifies the Page mode (Page mode memory support) use and page size. 00: Normal mode 01: 4-page mode 10: 8-page mode 11: 16-page mode External Bus Control Page Mode Wait Time (Default: 11 / 00) Specifies the wait cycle count during Burst access when in the Page mode. 00: 0 wait cycles 10: 2 wait cycles 01: 1 wait cycle 11: 3 wait cycles Specifies a wait cycle count from 0 to 62 that matches WT when in the Normal mode or Ready mode. (See the WT item.) External Bus Control Normal Mode Wait Time (Default: 111 (~DATA[4])/0000) Specifies the wait cycle count in the first cycle of a Single Cycle or Burst access. Specifies the following wait cycle count when in the Page mode. 0000: 0 wait cycles 0100: 4 wait cycles 1000: 8 wait cycles 1100: 12 wait cycles 0001: 1 wait cycle 0101: 5 wait cycles 1001: 9 wait cycles 1101: 13 wait cycles 0010: 2 wait cycles 0110: 6 wait cycles 1010: 10 wait cycles 1110: 14 wait cycles 0011: 3 wait cycles 0111: 7 wait cycles 1011: 11 wait cycles 1111: 15 wait cycles Specifies a wait cycle count from 0 to 62 that matches PWT when in a mode other than the Page mode. PWT[1:0]: WT[3:0] 000000: 0 wait cycles 010000: 16 wait cycles 110000: 48 wait cycles 000001: 1 wait cycle 010001: 17 wait cycles 110001: 49 wait cycles : : : 001110: 14 wait cycles 011110: 30 wait cycles 111110: 62 wait cycles 001111: 15 wait cycles 011111: 31 wait cycles 111111: External ACK mode Note 1: Value that is the reverse of DATA[4] is set to the LSB of Channel 0 as the default. Note 2: If PWT:WT is set to 0x3f when PM = 00 and RDY = 0, the external bus enters the ACK* Input mode (External ACK mode) without the wait cycle count for the ACK* output being the maximum value. Note 3: WT[0] is used to select Dynamic/Static ACK*/Ready mode when in the Ready mode. Therefore, the Wait cycle count is an even number. Note 4: The WT wait cycle count should be equal to or greater than the PWT Wait cycle count when in the Page mode. Read/Write R/W 17:16 PWT Page Mode Wait time R/W 15:12 WT Normal Mode Wait Time R/W 11:8 CS Channel Size External Bus Control Channel Size (Default: 0010/0000) Specifies the channel memory size. 0000: 1 MB 0101: 32 MB *1010: 1 GB 0001: 2 MB 0110: 64 MB 1011-1111: Reserved 0010: 4 MB 0111: 128 MB 0011: 8 MB 1000: 256 MB 0100: 16 MB 1001: 512 MB * The channel memory size can be set up to 512 MB when the memory bus width is 16 bits, or up to 256 MB when the memory bus width is 8 bits. No size larger than this can be set. R/W Figure 7.4.1 External Bus Channel Control Register (2/3) 7-26 Chapter 7 External Bus Controller Bit 7 Mnemonic BC Field Name Byte Control Description External Bus Byte Control (Default: DATA[5]/0) Specifies whether to use the BWE*[3:0] signal as an asserted Byte Write Enable signal (BWE*[3:0]) only during a Write cycle, or to use it as an asserted Byte Enable signal (BE*[3:0]) that is asserted during both Read and Write cycles. 0: Byte Enable (BE *[3:0]) 1: Byte Write Enable (BWE*[3:0]) Note: DATA[5] is set to Channel 0 as the default. External Bus Control Ready Input Mode (Default: 0) Specifies whether to use the Ready mode. 0: Disable the Ready mode. 1: Enable the Ready mode. Note: The Ready mode cannot be used when the Page mode is selected. External Bus Control Bus Speed (Default: ADDR[7:6] / 00) Specifies the External Bus speed. 00: 1/4 speed (1/4 of the GBUSCLK frequency) 01: 1/3 speed (1/3 of the GBUSCLK frequency) 10: 1/2 speed (1/2 of the GBUSCLK frequency) 11: Full speed (same frequency as GBUSCLK) Note: ADDR[7:6] is set to Channel 0 as the default. External Bus Control Master Enable (Default: ADDR[8] / 0) Enables a channel. 0: Disable channel 1: Enable channel Note: ADDR[8] is set to Channel 0 as the default. External Bus Control Setup/Hold Wait Time (Default: 000) Specifies the wait count when switching between the Address and Chip Enable signal, or the Chip Enable Signal and Write Enable/Output Enable signal. * 000: Disable 100: 4 wait cycles 001: 1wait cycle 101: 5 wait cycles 010: 2 wait cycles 110: 6 wait cycles 011: 3 wait cycles 111: 7 wait cycles * Set this bit field to “0” when using it in the Page mode or when performing Burst access. Read/Write R/W 6 RDY Ready Input Mode R/W 5:4 SP Bus Speed R/W 3 ME Master Enable R/W 2:0 SHWT Set Up/Hold Wait Time R/W Figure 7.4.1 External Bus Channel Control Register (3/3) 7-27 Chapter 7 External Bus Controller 7.5 Timing Diagrams Please take the following points into account when referring to the timing diagrams. (1) The clock frequency of the SYSCLK signal can be set to one of the following divisions of the internal bus clock (GBUSCLK): 1/1, 1/2, 1/3, or 1/4. Also, the operating reference clock frequency can be set to one of the following divisions of the internal bus clock (GBUSCLK) for each channel: 1/1, 1/2, 1/3, or 1/4. (See 7.3.8.) The timing diagrams indicate the SYSCLK signal clock frequency and channel operating reference clock frequency as being equivalent. (2) Both the BWE* signal and BE* signal are indicated in all timing diagrams. The setting of the Channel Control Register (EBCCRn) determines whether the BWE* pin will function as BWE* or BE*. (3) All Burst cycles in the timing diagrams illustrate examples in which the address increases by increments of 1 starting from 0. However, cases where the CWF (Critical Word First) function of the TX49 core was used or the decrement burst function performed by the DMA Controller was used are exceptions. (4) The timing diagrams display each clock cycle currently being accessed using the symbols described in the following table. SWn PWn ASn CSn AHn CHn ESn ACEn Sn Normal Wait Cycles Page Wait Cycles Set-up Time from SHWT Address Validation to CE Fall Set-up Time from SHWT CE Fall to OE/SWE Fall Hold Time from SHWT CE Rise to Address Change Hold Time from SHWT OE/SWE Rise to CE Rise Synch Cycles of the External Input Signal Address Clock Enable Cycles Other Cycles (5) Shaded areas ( ) in the diagrams are undefined values. 7-28 Chapter 7 External Bus Controller 7.5.1 ACE* Signal S3 0 ACE2 S1 S2 ACE1 f S2 S3 ACE1 ACE2 S1 f f f OE*/BUSSPRT* DATA[31:0] CE* ACE* SWE* BWE* BE* 0 f f 0 f Figure 7.5.1 ACE* Signal (CCFG.ACEHOLD=1, PWT: WT=0, SHWT=0, Normal) ADDR[19:0] SYSCLK 7-29 ACK* Chapter 7 External Bus Controller S3 0 ACE1 S1 S2 f S2 S3 ACE1 S1 f SYSCLK f f OE*/BUSSPRT* DATA[31:0] CE* ACE* SWE* BWE* BE* 0 f f 0 f Figure 7.5.2 ACE* Signal (CCFG.ACEHOLD=0, PWT: WT=0, SHWT=0, Normal) ADDR[19:0] 7-30 ACK* Chapter 7 External Bus Controller 7.5.2 Normal mode access (Single, 32-bit Bus) S3 f S2 S1 1 0 f S3 0 S1 S2 f SYSCLK f OE*/BUSSPRT* DATA[31:0] CE* ACE* SWE* BWE* BE* 0 0 f 0 f Figure 7.5.3 Double-word Single Write (PWT: WT=0, SHWT=0, Normal, 32-bit Bus) ADDR[19:0] 7-31 ACK* Chapter 7 External Bus Controller S1 SYSCLK CE* ADDR[19:0] ACE* OE*/BUSSPRT* SWE* BWE* BE* DATA[31:0] ACK* f 0 0 S2 S1 S2 S3 1 f f 0 f Figure 7.5.4 Double-word Single Read (PWT: WT=0, SHWT=0, Normal, 32-bit Bus) 7-32 Chapter 7 External Bus Controller S2 S3 0 S1 SW1 f f BE* f 0 f ACE* OE*/BUSSPRT* ADDR[19:0] SYSCLK Figure 7.5.5 1-word Single Write (PWT: WT=0, SHWT=0, Normal, 32-bit Bus) 7-33 DATA[31:0] SWE* BWE* ACK* CE* Chapter 7 External Bus Controller S2 S3 S1 SW1 f f OE*/BUSSPRT* DATA[31:0] CE* ACE* SWE* BWE* BE* 0 f Figure 7.5.6 1-word Single Read (PWT: WT=0, SHWT=0, Normal, 32-bit Bus) ADDR[19:0] SYSCLK 7-34 ACK* Chapter 7 External Bus Controller 7.5.3 Normal mode access (Burst, 32-bit Bus) S2 S3 3 S1 SW1 S2 S3 2 S1 SW1 0 f 0 BE f f 0 0 DATA[31:0] ACE* OE*/BUSSPRT* SWE* BWE* f S2 S3 S2 S3 S1 SW1 S1 SW1 SYSCLK CE* ADDR[19:0] 0 1 f 0 f f Figure 7.5.7 4-word Burst Write (PWT: WT=1, SHWT=0, Normal, 32-bit Bus) 7-35 ACK* Chapter 7 External Bus Controller S1 SYSCLK CE* ADDR[19:0] ACE* OE*/BUSSPRT* SWE* BWE* BE DATA[31:0] ACK* f SW1 S2 S1 SW1 S2 S1 SW1 S2 S1 SW1 S2 S3 0 1 2 3 f 0 f Figure 7.5.8 4-word Burst Write (PWT: WT=1, SHWT=0, Normal, 32-bit Bus) 7-36 Chapter 7 External Bus Controller 7.5.4 Normal Mode Access (Single, 16-bit bus) f S2 S3 c 3 f S2 S3 2 c f S2 S3 c 1 f S2 S3 0 c f S1 S1 S1 f S1 CE* ACE* OE*/BUSSPRT* SWE* BWE* BE* f c f c f c f c Figure 7.5.9 Double-word Single Write (PWT: WT=0, SHWT=0, Normal, 16-bit Bus) ADDR [19:0] 7-37 DATA [15:0] SYSCLK ACK* Chapter 7 External Bus Controller S2 S3 S1 3 S2 S1 2 f S2 S1 1 f S2 0 S1 ACE* OE*/BUSSPRT* BE* f c f c f c f c f SWE* SYSCLK ADDR [19:0] BWE* Figure 7.5.10 Double-word Single Read (PWT: WT=0, SHWT=0, Normal, 16-bit Bus) 7-38 DATA [15:0] ACK* CE* Chapter 7 External Bus Controller S3 f S1 S2 f f DATA[15:0] ACE* c c f OE*/BUSSPRT* SWE* BWE* Figure 7.5.11 Half-word Single Write (PWT: WT=0, SHWT=0, Normal, 16-bit Bus) ADDR[19:0] SYSCLK 7-39 ACK* CE* BE* Chapter 7 External Bus Controller S3 S2 S1 f BE* f c f ACE* OE*/BUSSPRT* ADDR[19:0] SYSCLK Figure 7.5.12 Half-word Single Read (PWT: WT=0, SHWT=0, Normal, 16-bit Bus) 7-40 DATA[15:0] SWE* BWE* ACK* CE* Chapter 7 External Bus Controller 7.5.5 Normal Mode Access (Burst, 16-bit Bus) S2 S3 S2 S1 S2 S1 S2 S1 S1 4 5 6 7 S2 S2 S1 S2 S1 S2 S1 S1 0 1 2 3 f f OE*/BUSSPRT* DATA[15:0] ACE* SWE* BWE* c f ADDR[19:0] Figure 7.5.13 4-word Burst Read (PWT: WT=0, SHWT=0, Normal, 16-bit Bus) SYSCLK 7-41 ACK* CE* BE S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 SYSCLK CE* 0 1 2 3 4 5 6 7 ADDR [19:0] ACE* OE*/BUSSPRT* Figure 7.5.14 4-word Burst Write (PWT: WT=0, SHWT=0, Normal, 16-bit Bus) c c f c f c f c f c f c f c f 7-42 SWE* c f f BWE* f BE* f DATA [15:0] Chapter 7 External Bus Controller ACK* Chapter 7 External Bus Controller 7.5.6 Normal Mode Access (Single, 8-bit Bus) f S2 S3 e 7 f S2 S3 e 6 e 5 4 e e 3 f S2 S3 e 2 e 1 0 e f f S2 S3 S1 f S2 S3 S1 S1 f S2 S3 S1 f S2 S3 S1 f S2 S3 S1 S1 S1 f CE* ACE* OE*/BUSSPRT* SWE* BWE* BE* f e f e f e f e f e f e f e f e SYSCLK Figure 7.5.15 Double-word Single Write (PWT: WT=0, SHWT=0, Normal, 8-bit Bus) ADDR [19:0] 7-43 DATA [7:0] ACK* S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S3 SYSCLK CE* 0 1 4 2 3 5 6 7 ADDR [19:0] ACE* Figure 7.5.16 Double-word Single Read (PWT: WT=0, SHWT=0, Normal, 8-bit Bus) f e f f e f e e f e f e f f e f 7-44 OE*/BUSSPRT* SWE* BWE* BE* f e f DATA [7:0] Chapter 7 External Bus Controller ACK* Chapter 7 External Bus Controller S1 SYSCLK CE* ADDR [19:0] ACE* OE*/BUSSPRT* SWE* BWE* BE* DATA [7:0] ACK* f f SW1 S2 S3 e e f f Figure 7.5.17 1-byte Single Write (PWT: WT=1, SHWT=0, Normal, 8-bit Bus) S1 SYSCLK CE* ADDR [19:0] ACE* OE*/BUSSPRT* SWE* BWE* BE* DATA [7:0] ACK* f SW1 S2 S3 f e f Figure 7.5.18 1-byte Single Read (PWT: WT=1, SHWT=0, Normal, 8-bit Bus) 7-45 7.5.7 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 S1 S2 S3 SYSCLK CE* 0 1 2 3 4 5 6 7 8 9 a b c d e f ADDR [19:0] ACE* Normal Mode Access (Burst, 8-bit Bus) OE*/BUSSPRT* Figure 7.5.19 4-word Burst Write (PWT: WT=0, SHWT=0, Normal, 8-bit Bus) e e f e f e f e f e f e f e f e f e f e f e f e f e e f e f e 7-46 SWE* f e f f BWE* f BE* f DATA [7:0] Chapter 7 External Bus Controller ACK* S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S1 S2 S3 SYSCLK CE* ADDR[19:0] 0 8 9 1 2 3 4 5 6 7 ACE* OE*/BUSSPRT* SWE* BWE* f e BE DATA[8:0] ACK* f e f a b c d e f Figure 7.5.20 4-word Burst Read (PWT: WT=0, SHWT=0, Normal, 8-bit Bus) 7-47 Chapter 7 External Bus Controller Chapter 7 External Bus Controller 7.5.8 Page Mode Access (Burst, 32-bit Bus) f S3 7 S1 S2 S3 S2 6 S1 S3 S2 5 S1 S2 S3 4 S1 SW1 S3 f S2 3 S1 S3 S2 2 S1 S3 S2 1 S1 S2 S3 0 S1 SW1 f 0 f 0 f 0 f 0 0 f 0 f 0 f 0 f ACE* CE* SWE* BWE* BE* f c OE*/BUSSPRT* Figure 7.5.21 8-word Burst Write (WT=1, PWT=0, SHWT=0, 4-page, 32-bit Bus) ADDR [19:0] 7-48 DATA [31:0] SYSCLK ACK* Chapter 7 External Bus Controller S3 S2 S2 S1 PW1 3 PW1 PW1 S2 S1 SW1 SW2 S2 S1 S1 0 1 2 SYSCLK f OE*/BUSSPRT* DATA[31:0] CE* ACE* SWE* BWE* BE* 0 f f Figure 7.5.22 4-word Burst Read (WT=2, PWT=1, SHWT=0, 4-page, 32-bit Bus) ADDR[19:0] 7-49 ACK* Chapter 7 External Bus Controller 7.5.9 External ACK Mode Access (32-bit Bus) S1 SYSCLK CE* ADDR[19:0] ACE* OE*/BUSSPRT* SWE* BWE* BE* DATA[31:0] ACK* f f 0 0 f f ES1 ES2 ES3 S2 S3 Note 1: The TX4938 sets the ACK* signal to High Impedance in the S1 State. Note 2: External devices drive the ACK* signal to Low (assert the signal) by the ES1 State. Note 3: External devices drive the ACK* signal to High (deassert the signal) in the ES2 State. If an external device is late in asserting ACK*, then the Wait State is inserted for the amount of time the external device is late. If a certain condition is met, it is okay for the ACK* signal to be driven to Low for 1 clock cycle or more. See 7.3.7.4 ACK* Input Timing (External ACK Mode) for more information. Figure 7.5.23 1-word Single Write (0 Wait, SHWT=0, External ACK*, 32-bit Bus) S1 SYSCLK CE* ADDR[19:0] ACE* OE*/BUSSPRT* SWE* BWE* BE* DATA[31:0] ACK* f ES1 ES2 S2 S3 f 0 f Figure 7.5.24 1-word Single Read (0 Wait, SHWT=0, External ACK*, 32-bit Bus) 7-50 S1 ES1 ES2 ES3 S2 S3 S1 ES1 ES2 ES3 S2 S3 S1 ES1 ES2 ES3 S2 S3 S1 ES1 ES2 ES3 S2 S3 SYSCLK CE* 0 1 2 3 ADDR [19:0] ACE* OE*/BUSSPRT* Figure 7.5.25 4-word Burst Write (0 Wait, SHWT=0, External ACK*, 32-bit Bus) 0 f 0 f 0 0 f 0 7-51 SWE* f f BWE* f BE* f DATA [31:0] Chapter 7 External Bus Controller ACK* Chapter 7 External Bus Controller ES2 S2 S3 ES2 S2 S1 ES1 S1 ES1 2 3 ES2 S2 ES2 S2 S1 ES1 S1 ES1 0 1 BE f OE*/BUSSPRT* DATA[31:0] CE* ACE* SWE* BWE* 0 f f Figure 7.5.26 4-word Burst Read (0 Wait, SHWT=0, External ACK*, 32-bit Bus) ADDR[19:0] SYSCLK 7-52 ACK* AS1 AS2 CS1 CS2 SW1 ES1 ES2 ES3 S2 CH1 AH1 AH2 AS1 AS2 CS1 CS2 SW1 ES1 ES2 ES3 CH2 S2 CH1 CH AH1 AH2 SYSCLK CE* 0 1 ADDR [19:0] ACE* OE*/BUSSPRT* Figure 7.5.27 Double-word Single Write (1 Wait, SHWT=2, External ACK*, 32-bit Bus) f 0 f 0 f 0 0 f 7-53 SWE* BWE* BE* f f DATA [31:0] ACK* Chapter 7 External Bus Controller Note: The TX4938 drives the ACK* signal when in the AH2, AS1, or AS2 State. AS1 AS2 CS1 CS2 S1 ES1 ES2 S2 CH2 CH2 AH1 AH2 AS1 AS2 CS1 CS2 S1 ES1 ES2 S2 CH1 CH2 AH1 AH2 SYSCLK CE* 0 1 ADDR [19:0] ACE* OE*/BUSSPRT* Figure 7.5.28 Double-word Single Read (0 Wait, SHWT=2, External ACK*, 32-bit Bus) f f 0 f 0 7-54 SWE* BWE* BE* f DATA [31:0] ACK* Chapter 7 External Bus Controller Note: The TX4938 drives the ACK* signal when in the AH2, AS1, or AS2 State. Chapter 7 External Bus Controller AS1 SYSCLK CE* ADDR[19:0] ACE* OE*/BUSSPRT* SWE* BWE* BE DATA[31:0] ACK* f AS2 CS1 CS2 SW1 ES1 ES2 ES3 S2 CH1 CH2 AH1 AH2 f 0 0 f f Figure 7.5.29 1-word Single Write (1 Wait, SHWT=2, External ACK*, 32-bit Bus) AS1 SYSCLK CE* ADDR[19:0] ACE* OE*/BUSSPRT* SWE* BWE* BE DATA[31:0] ACK* f AS2 CS1 CS2 S1 ES1 ES2 S2 CH1 CH2 AH1 AH2 f 0 f Figure 7.5.30 1-word Single Read (0 Wait, SHWT=2, External ACK*, 32-bit Bus) 7-55 Chapter 7 External Bus Controller 7.5.10 READY Mode Access (32-bit Bus) AH1 ES2 ES3 S2 CH1 0 f f BE* f 0 AS1 CS1 SW1 ES1 f ACE* OE*/BUSSPRT* ADDR[19:0] SYSCLK Figure 7.5.31 1-word Single Write (PWT: WT=2, SHWT=1, READY, 32-bit Bus) 7-56 DATA[31:0] SWE* BWE* ACK* CE* Chapter 7 External Bus Controller ES2 S2 CH1 AH1 AS1 CS1 S1 ES1 f SYSCLK ADDR[19:0] ACE* OE*/BUSSPRT* BE* f 0 f Figure 7.5.32 1-word Single Read (PWT: WT=2, SHWT=1, READY, 32-bit Bus) 7-57 DATA[31:0] SWE* BWE* ACK* CE* Chapter 7 External Bus Controller 7.5.11 ISA IO Space Access AH2 ES2 ES3 S2 CH1 CH2 AH1 0 AS1 AS CS1 CS SW1 ES1 f f OE*/BUSSPRT* DATA[31:0] SWE* BWE[3:0]* BE* e f ADDR[19:0] ACE* ACK* CE* CS[0]* Figure 7.5.33 1-byte Write Access for the ISA IO Space (READY, SHWT=2, 8-bit Bus) SYSCLK 7-58 CS[1]* IOR* IOW * AS1 SYSCLK CE* ADDR[19:0] ACE* BUSSPRT* OE* SWE* BWE[3:0]* BE* DATA[31:0] ACK* f e f f 0 AS CS1 CS S1 ES1 ES2 S2 CH1 AH1 ES3 CH2 AH2 Figure 7.5.34 1-byte Read Access for the ISA IO Space (READY, SHWT=2, 8-bit Bus) 7-59 IOR* IOW * CS[0]* CS[1]* Chapter 7 External Bus Controller Chapter 7 External Bus Controller 7.5.12 ATA/PIO Transfer Mode Access AH2 ES2 ES3 S2 CH1 CH2 AH1 8000 f AS1 AS‚ CS1 CS‚ SW1 ES1 f OE*/BUSSPRT* DATA[31:0] SWE* BWE[3:0]* BE* c f ADDR[19:0] ACE* ACK* CE* CS[0]* Figure 7.5.35 1-half-word Write Access for the ATA/PIO Space (CS0) (READY, SHWT=2, 16-bit Bus) SYSCLK 7-60 CS[1]* IOR* IOW * AS1 SYSCLK CE* ADDR[19:0] 10000 ACE* BUSSPRT* OE* SWE* BWE[3:0]* BE[3:0]* DATA[31:0] ACK* f c f f AS CS1 CS S1 ES1 ES2 S2 CH1 AH1 ES3 CH2 AH2 Figure 7.5.36 1-half-word Read Access for the ATA/PIO Space (CS1) (READY, SHWT=2, 16-bit Bus) 7-61 IOR* IOW * CS[0]* CS[1]* Chapter 7 External Bus Controller Chapter 7 External Bus Controller 7.6 Flash ROM, SRAM Usage Example Figure 7.6.1 illustrates example Flash ROM connections, and Figure 7.6.2 illustrates example SRAM connections. Also, Figure 7.6.3 illustrates example connections with the SDRAM and the bus separated. Since connecting multiple memory devices such as SDRAM and ROM onto a single bus increases the load, 100 MHz class high-speed SDRAM access may not be performed normally. As a corrective measure, there is a way of reducing the bus load by connecting a device other than SDRAM via a buffer. If such a method is employed, directional control becomes necessary since the data becomes bidirectional. The TX4938 prepares the BUSSPRT* signal for performing data directional control (see Figure 7.6.3). BUSSPRT* is asserted when the External Bus Controller channel is active and a Read operation is being performed. TX4938 Flash ROM (x16 bits) ADDR[19:0] ADDR[12] ACE* ADDR[19:0] (ADDR[20]) A[19:0] A20 A[19:0] A20 CE*[0] SWE* OE* CE* W E* OE* CE* W E* OE* D[15:0] DATA[31:0] D[31:16] D[15:0] D[15:0] Figure 7.6.1 Flash ROM (x16 Bits) Connection Example (32-bit Data Bus) TX4938 BWE*[3:0] SRAM (x16 Bits) BWE*[3] UB ADDR[19:0] BWE*[2] LB BWE*[1] UB BWE*[0] LB ADDR[19:0] A[19:0] A[19:0] CE*[1] SWE* OE* CS* W E* OE * CS* W E* OE * D[15:0] DATA[31:0] D[31:16] D[15:0] D[15:0] Figure 7.6.2 SRAM (x16 Bits) Connection Example (32-bit Data Bus) 7-62 Chapter 7 External Bus Controller TX4938 DQM[7:0] SDRAM (x16 Bits) DQM[7] DQM[6] DQM[5] DQM[4] DQM[3] DQM[2] DQM[1] DQM[0] UDQM LDQM ADDR[19:0] ADDR[17:5] A[12:0] ADDR[19] BS0 ADDR[18] BS1 CS* RAS* CAS* W E* CLK CKE DQ[15:0] UDQM LDQM A[12:0] BS0 BS1 CS* RAS* CAS* W E* CLK CKE DQ[15:0] UDQM LDQM A[12:0] BS0 BS1 CS* RAS* CAS* W E* CLK CKE DQ[15:0] UDQM LDQM A[12:0] BS0 BS1 CS* RAS* CAS* W E* CLK CKE DQ[15:0] D[15:0] SDCS*[0] RAS* CAS* WE* SDCLKIN SDCLK[0] CKE DATA[63:0] D[63:48] D[47:32] D[31:16] Flash ROM (x16 Bits) CE*[0] SWE* OE* BUSSPRT* ADDR[19:0] ADDR[12] ACE* (ADDR[20]) A[19:0] A20 A[19:0] A20 CE* W E* OE * CE* W E* OE * D[15:0] D[31:16] D[15:0] D[15:0] Figure 7.6.3 Connection Example with SDRAM and the Bus Separated 7-63 Chapter 7 External Bus Controller 7-64 Chapter 8 DMA Controller 8. 8.1 DMA Controller Features The TX4938 contains two four-channel DMA Controller (DMAC0, DMAC1) that executes DMA (Direct Memory Access) with memory and I/O devices. The DMA Controller has the following characteristics. • Has four on-chip DMA channels • • • • • • • Supports Memory-Memory Copy modes that do not have address boundary limitations. Burst transfer of up to eight double words is possible for each Read or Write operation. Supports Memory Fill mode that writes double-word data to the specified memory region Supports Chained DMA Transfer On-chip signed 24-bit address count up registers for both the source address and destination address On-chip 26-bit Byte Count Register for each channel One of two methods can be selected for determining access priority among multiple channels: Round Robin or Fixed Priority Big Endian or Little Endian mode can be set separately for each channel • Supports external I/O devices with 8-, 16-, and 32-bit Data Bus widths and transfer between memory devices. • • Supports single address transfer (Fly-by DMA) and dual address transfer when in the external I/O DMA Transfer Mode that is operated by external request signals Supports DMA on-chip Serial I/O Controllers • Supports DMA on-chip AC-Link Controllers 8-1 Chapter 8 DMA Controller 8.2 Block Diagram DMAC0 DMA Control 0 Block G-Bus DM0MCR DM0MFDR DMA0 DM0CHAR0 Channel 0 DM0SAR0 DM0DAR0 DM0CNTR0 DM0SAIR0 DM0DAIR0 DM0CCR0 DM0CSR0 DMA0 DM0CHAR1 Channel 1 DM0SAR1 DM0DAR1 DM0CNTR1 DM0SAIR1 DM0DAIR1 DM0CCR1 DM0CSR1 DMA0 DM0CHAR2 Channel 2 DM0SAR2 DM0DAR2 DM0CNTR2 DM0SAIR2 DM0DAIR2 DM0CCR2 DM0CSR2 DMA0 DM0CHAR3 Channel 3 DM0SAR3 DM0DAR3 DM0CNTR3 DM0SAIR3 DM0DAIR3 DM0CCR3 DM0CSR3 Multiplexer DREQ0 DACK0 DMAREQ[0] DMAACK[0] External Pins Internal I/O (Receive SIO ch1) PCFG.DMASEL0 DMAREQ[1] External Pins Internal I/O (Transfer SIO ch1) Multiplexer G-Bus I/F DREQ1 DMCK1 DMAACK[1] FIFO (8 Double Words) PCFG.DMASEL1 DMAREQ[2] Multiplexer DMAACK[2] External Pins Internal I/O (Receiver SIO ch0) PCFG.DMASEL2 DREQ3 DMCK3 DMAREQ[3] Multiplexer DMAACK[3] External Pins Internal I/O (Transfer SIO ch0) DREQ2 DACK2 DMA Channel Arbiter PCFG.DMASEL3 DMADONE* External Pins Figure 8.2.1 DMA0 Controller Block Diagram 8-2 Chapter 8 DMA Controller DMAC0 DMA Control 1 Block G-Bus DM1MCR DM1MFDR DMA1 DM1CHAR0 Channel 0 DM1SAR0 DM1DAR0 DM1CNTR0 DM1SAIR0 DM1DAIR0 DM1CCR0 DM1CSR0 DMA1 DM1CHAR1 Channel 1 DM1SAR1 DM1DAR1 DM1CNTR1 DM1SAIR1 DM1DAIR1 DM1CCR1 DM1CSR1 DMA1 DM1CHAR2 Channel 2 DM1SAR2 DM1DAR2 DM1CNTR2 DM1SAIR2 DM1DAIR2 DM1CCR2 DM1CSR2 DMA1 DM1CHAR3 Channel 3 DM1SAR3 DM1DAR3 DM1CNTR3 DM1SAIR3 DM1DAIR3 DM1CCR3 DM1CSR3 DREQ0 DACK0 Internal I/O (ACLC ch0) G-Bus I/F DREQ1 DMCK1 Internal I/O (ACLC ch1) FIFO (8 Double Words) DREQ2 DACK2 Internal I/O (ACLC ch2) DMA Channel Arbiter DREQ3 DMCK3 Internal I/O (ACLC ch3) Figure 8.2.2 DMA1 Controller Block Diagram 8-3 Chapter 8 DMA Controller 8.3 Detailed Explanation Transfer Mode The DMA Controller (DMAC0, DMAC1) supports five transfer mode types (refer to Table 8.3.1 below). The setting of the External Request bit (DMCCRn.EXTRQ) of the DMA Channel Control Register selects whether transfer with an I/O device is a DMA transfer. • I/O DMA Transfer Mode (DMCCRn.EXTRQ = “1”) Perform DMA transfer with either an external device connected to the External Bus Controller or an on-chip I/O device (ACLC or SIO). Memory Transfer Mode (DMCCRn.EXTRQ = “0”) Either copies data between memory devices or fills data in memory. Table 8.3.1 DMA Controller Transfer Modes 8.3.1 • DMA Controller DMAC0 Transfer Mode External I/O (Single Address) External I/O (Dual Address) Internal I/O (SIO) Memory-Memory Copy Fill Memory DMCCRn EXTREQ 1 1 1 0 0 1 0 0 PCFG DMASEL 0 0 1 ⎯ ⎯ ⎯ ⎯ ⎯ DMCCRn SNGAD 1 0 0 0 1 0 0 1 DMSAR √ √ √ √ √ √ √ √ DMDAR ⎯ √ √ √ ⎯ √ √ ⎯ Ref. 8.3.3 8.3.7 8.3.3 8.3.8 8.3.4 8.3.8 8.3.4 8.3.8 8.3.6 8.3.7 8.3.4 8.3.8 8.3.4 8.3.8 8.3.6 8.3.7 DMAC1 Internal I/O (ACLC) Memory-Memory Copy Fill Memory 8-4 Chapter 8 DMA Controller 8.3.2 On-chip Registers The DMA Controller has two shared registers that are shared by four channels. Section 8.4 explains each register in detail. • Shared Registers DMMCR: DMA Master Control Register DMMFDR: DMA Memory Fill Data Register DMA Channel Register DMCHARn: DMA Chained Address Register DMSARn: DMA Source Address Register DMDARn: DMA Destination Address Register DMCNTRn: DMA Count Register DMSAIRn: DMA Source Address Increment Register DMDAIRn: DMA Destination Address Increment Register DMCCRn: DMA Channel Control Register DMCSRn: DMA Channel Status Register • 8.3.3 External I/O DMA Transfer Mode The External I/O DMA Transfer Mode performs DMA transfer with external I/O devices that are connected to the External Bus Controller. 8.3.3.1 External Interface External I/O devices signal DMA requests to the DMA Controller by asserting the DMA Transfer Request Signal (DMAREQ[n]). On the other hand, the DMA Controller accesses external I/O devices by asserting the DMA Transfer Acknowledge Signal (DMAACK[n]). The DMA Transfer Request signal (DMAREQ[n]) can use the Request Polarity bit (REQPOL) of the DMA Channel Control Register (DMCCRn) to select the signal polarity for each channel, and can use the Edge Request bit (EGREQ) to select either edge detection or level detection for each channel. The DMA Transfer Acknowledge signal (DMAACK[n]) can also use the Acknowledge Polarity bit (ACKPOL) to select the polarity. Please assert/deassert the DMAREQ[n] signal as follows below. • When level detection is set (DMCCRn.EGREQ = 0) The DMAREQ[n] signal must be continuously asserted until one SYSCLK cycle after the DMAACK[n] signal is asserted. Also, the DMAREQ[n] signal must be deasserted before the CE*/CS* signal is deasserted. If this signal is asserted too soon, DMA transfer will not be performed. If this signal is asserted or deasserted too late, unexpected DMA transfer may result. During Dual Address transfer, we recommend detecting assertion of the CE* signal for the external I/O device that is currently asserting DMAACK[n], then deasserting DMAREQ[n]. 8-5 Chapter 8 DMA Controller • When edge detection is set (DMCCRn.EGREQ = 1) Please set up assertion of the DMAREQ[n] signal so the DMAREQ[n] signal is asserted after the DMAACK[n] signal corresponding to a previously asserted DMAREQ[n] signal is deasserted. The DMAREQ[n] signal will not be detected even if it is asserted before DMAACK[n] is deasserted. Figure 8.3.1 is a timing diagram that shows the timing of external DMA access. In this timing diagram, both the DMAREQ[n] signal and the DMAACK[n] signal are set to Low active (DMCCRn.REQPL = 0, DMCCRn.ACKPOL = 0). The DMAACK[n] and DMADONE[n] signals, which are DMA control signals, are synchronized to SDCLK. When these signals are used by an external I/O device that is synchronous to SYSCLK, it is necessary to take clock skew into account. The DMAACK[n] signal is asserted either at the SYSCLK cycle, the same as with assertion of the CE*/CS* signal, or before that. In addition, it is deasserted after the last ACK*/READY signal is deasserted. When the DMADONE* signal (refer to 8.3.3.4) is used as an output signal, it is asserted for at least one SYSCLK cycle while the DMAACK[n] signal is asserted either during the same SYSCLK cycle that the CE*/CS* signal is deasserted or during a subsequent SYSCLK cycle. When the DMADONE* signal is used as an input signal, it must be asserted for one SYSCLK cycle while the DMAACK[n] signal is being asserted. SYSCLK CE* ADDR [19:0] ACE* OE*/BUSSPRT* SWE* BWE* DATA [31:0] ACK* 1 cycle DMAREQ[n] DMAACK[n] DMADONE* f 00000100 1c040 00040 Figure 8.3.1 External I/O DMA Transfer (Single Address, Level Request) 8-6 Chapter 8 DMA Controller 8.3.3.2 Dual Address Transfer If the Single Address bit (DMCCRn.SNGAD) has been cleared, access to external I/O devices and to external memory is each performed continuously. Each access is the same as normal access except when the DMAACK[n] signal is asserted. Please refer to “8.3.8 Dual Address Transfer” for information regarding setting the register. 8.3.3.3 Single Address Transfer (Fly-by DMA) If the Single Address bit (DMCCRn.SNGAD) is set, either data reading from an external I/O device and data writing to external memory or data reading from external memory and data writing to an external I/O device is performed simultaneously. The following conditions must be met in order to perform Single Address transfer. • • The data bus widths of the external I/O device and external memory match Data can be input/output to/from the external I/O device and external memory during the same clock cycle The Transfer Direction bit (MEMIO) of the DMA Channel Control Register (DMCCRn) specifies the transfer direction. • From memory to an external I/O device (DMCCRn.MEMIO = “1”) External memory Read operation to an address specified by the DMA Source Address Register (DMSARn) is performed simultaneously to assertion of the DMAACK[n] signal. • Single Address transfer from memory to an external I/O device (DMCCRn.MEMIO = “0”) External memory Write operation to an address specified by the DMA Source Address Register (DMSARn) is performed simultaneously to assertion of the DMAACK[n] signal. At this time, the external I/O device drives the DATA signal instead of the TX4938. Special attention must be paid to the timing design when the bus clock frequency is high or when performing Burst transfer. Single Address transfer using Burst transfer with SDRAM is not recommended. 8.3.3.4 DMADONE* Signal The DMADONE* signal operates as either the DMA stop request input signal or the DMA done signalling output signal, or may operate as both of these signals depending on the setting of the DONE Control Field (DNCTRL) of the DMA Channel Control Register (DMCCRn). The DMADONE* signal is shared by four channels. The DMADONE* channel is valid for a channel when the DMAACK[n] signal for that channel is asserted. If the DMADONE* channel is set to be used as an output signal (DMCCRn.DNCTRL = 10/11), it will operate as follows depending on the setting of the Chain End bit (CHDN) of the DMA Channel Control Register (DMCCRn). When the Chain End bit (CHDN) is set, the DMADONE* signal is only asserted when the DMAACK[n] signal for the last DMA transfer in the Link List Command Chain is asserted. 8-7 Chapter 8 DMA Controller When the Chain End bit (CHDN) is cleared, the DMADONE* signal is asserted when the DMAACK[n] signal for the last data transfer in a DMA transfer specified by the current DMA Channel Register is asserted. Namely, if the Link List Command chain is used, there is one assertion at the end of each data transfer specified by each Descriptor. If the DMADONE* signal is set to be used as an input signal (DMCCRn.DNCTRL = 01/11), DMA transfer can be set to end normally when the external device asserts the DMADONE* signal when the DMAACK[n] signal of channel n is asserted. DMADONE* is asserted during DMAACK[n] is not asserted, then unexpected operation occurs. When DMA transfer is terminated by the DMADONE* assertion of the external device, the External DONE Assert bit (DMCSRn.EXTDN) of the DMA Channel Status Register is set regardless of the setting of the Chain End bit (CHDN) of the DMA Channel Control Register (DMCCRn). Operation is as follows depending on the setting of the Chain End bit (CHDN). When the Chain End bit (CHDN) is set, all DMA transfer for that chain is terminated. At this time, the Normal Chain End bit (NCHNC) and the Normal Transfer End bit (NTRNFC) of the DMA Channel Status Register are both set and the Transfer Active bit (DMCCRn.XFACT) of the DMA Channel Control Register is cleared. When the Chain End bit (CHDN) is cleared, only DMA transfer specified by the current DMA Channel Register ends normally, and only the Normal Transfer End bit (NTRNFC) is set. When the Chain Enable bit (CHNEN) of the DMA Channel Control Register (DMCCRn) is set, chain transfer is executed and DMA transfer continues. When the Chain Enable bit (CHNEN) is cleared, the Transfer Active bit (DMCCRn.XFACT) is cleared and the Normal Chain End bit (NCHNC) is set. Three clock cycles are required from external assertion of the DMADONE* signal to disabling of new DMA access. Operation will not stop even if the bus operation in progress is a Single transfer or a Burst transfer. For example, if the DMADONE* signal is asserted during Read operation of Dual Address transfer, the corresponding Write bus operation will also be executed. If the DMADONE* pin is set to become both input and output for channel n (DMCCRn.DNCTRL = “11”), the DMADONE* signal becomes an open drain signal when the channel becomes active. When used by this mode, the DMADONE* signal must be pulled up by an external source. When in this mode, the External DONE Assert bit (DMCSRn.EXTDN) is not only set when asserted by an external device, but is also set when asserted by the TX4938. 8.3.4 Internal I/O DMA Transfer Mode Performs DMA with the on-chip Serial I/O Controller and the AC-link Controller. Set the DMA Channel Control Register (DMCCRn) as follows. • • DMCCRn.EXTRQ = 1: I/O DMA Transfer mode DMCCRn.SNGAD = 0: Dual Address Transfer Refer to “8.3.8 Dual Address Transfer” and “11.3.6 DMA transfer (Serial I/O Controller)” or “14.3.6.4 DMA operation (AC-link Controller) for more information. 8-8 Chapter 8 DMA Controller 8.3.5 Memory-Memory Copy Mode It is possible to copy memory from any particular address to any other particular address when in the Memory-Memory Copy mode. Set the DMA Channel Control Register (DMCCRn) as follows. • • DMCCRn.EXTRQ = 0: Memory Transfer mode DMCCRn.SNGAD = 0: Dual Address mode Furthermore, when in the Memory-Memory Copy mode it is possible to set the interval for requesting ownership of each bus using the Internal Request Delay field (INTRQD) of the DMA Channel Control Register (DMCCRn). Refer to “8.3.8 Dual Address Transfer” for information regarding the setting of other registers. 8.3.6 Memory Fill Transfer Mode When in the Memory Fill Transfer mode, double word data set in the DMA Memory Fill Data Register (DMMFDR) is written to the data region specified by the DMA Source Address Register (DMSARn). This data can be used for initializing the memory, etc. Set the DMA Channel Control Register (DMCCRn) as follows. • • • DMCCRn.EXTRQ = 0: Memory transfer mode DMCCRn.SNGAD = 1: Single Address Transfer DMCCRn.MEMIO = 0: Transfer from I/O to memory In addition, when in the Memory Fill Transfer mode, it is possible to set the interval for requesting ownership of each bus using the Internal Request Delay field (INTRQD) of the DMA Channel Control Register (DMCCRn). Refer to “8.3.7 Single Address Transfer” for information regarding the setting of other registers. By using this function together with the memory Write function that writes to multiple SDRAM Controller memory channels simultaneously (refer to Section 9.3.4), it is possible to initialize memory even more efficiently. 8.3.7 Single Address Transfer This section explains register settings during Single Address transfer (DMCCRn.SNGAD = 1). This applies to the following DMA Transfer modes. • • External I/O (Single Address) Transfer Memory Fill Transfer 8-9 Chapter 8 DMA Controller 8.3.7.1 Channel Register Settings During Single Address Transfer Table 8.3.2 shows restrictions of the Channel Register settings during Single Address transfer. If these restrictions are not met, then a Configuration Error is detected, the Configuration Error bit (CFERR) of the DMA Channel Status Register (DMCSRn) is set and DMA transfer is not performed. For Burst transfer, +8, 0, or –8 can be set to the DMA Source Address Increment Register (DMSAIRn). Setting 0 is only possible during transfer from memory to external I/O. A Configuration Error will result if the value “0” is set during transfer from external I/O to memory or during Memory Fill transfer. If the setting of the DMA Source Address Increment Register (DMSAIRn) is negative and the transfer setting size is 2 bytes or larger, then set the DMA Source Address Register (DMSARn) with 1 to 3 low-order bits complemented. • • • If the transfer size is 2 bytes, set the DMSARn with the low-order 1 bit complemented. If the transfer size is 4 bytes, set the DMSARn with the low-order 2 bits complemented. If the transfer size is 8 bytes or larger, set the DMSARn with the low-order 3 bits complemented. Example: When the transfer address is 0x0_0001_0000, the DMA Source Address Register (DMSARn) is as follows below. • • DMSAIRn setting is “0” or greater: 0x0_0001_0000 DMSAIRn setting is a negative value: 0x0_0001_0007 During Single Address transfer, the DMA Destination Address Register (DMDARn) and DMA Destination Address Increment Register (DMDAIRn) settings are ignored. Table 8.3.2 Channel Register Setting Restrictions During Single Address Transfer Transfer Setting Size (DMCCRn.XFSZ) 1 Byte 2 Bytes 4 Bytes 8 Bytes 4 Double Words 8 Double Words 16 Double Words 32 Double Words 000 111 8/0/-8 000 DMSARn[2:0] DMSAIRn is “0” or greater *** **0 *00 000 DMSAIRn setting is a negative value *** **0 *00 111 DMSAIRn[2:0] *** **0 *00 000 DMCNTRn[2:0] *** **0 *00 000 8-10 Chapter 8 DMA Controller 8.3.7.2 Burst Transfer During Single Address Transfer According to the SDRAM Controller and External Bus Controller specifications, the DMA Controller cannot perform Burst transfer that spans across 32-double word boundaries. Consequently, if the address that starts DMA transfer is not a multiple of the transfer setting size (DMCCRn.XFSZ) (is not aligned), transfer cannot be performed by any of the transfer sizes that were specified by a Burst transfer. Therefore, the DMA Controller executes multiple Burst transactions of a transfer size smaller than the specified transfer size. This division method changes according to the seting of the Transfer Size Mode bit (DMCCRn.USEXFSZ) of the DMA Channel Control Register. Figure 8.3.2 shows the Single Address Burst transfer status when the lower 8 bits of the Transfer Start address are 0xA8 and the transfer setting size (DMCCRn.XFSZ) is set to 4 double words. Panel (a) of this figure shows the situation when the Transfer Size Mode bit (DMCCRn.USEXFSZ) is “0”. In this case, first a three-double word transfer is performed up to the address aligned to the transfer setting size. Then, four-double word transfer specified by the transfer setting size is repeated. This setting is normally used. On the other hand, panel (b) shows when the Transfer Size Mode bit (DMCCRn.USEXFSWZ) is “1”. In this case, transfer is repeated according to the transfer setting size. Three-double word transfer and one-double word transfer is only performed consecutively without releasing bus ownership when transfer spans across a 32-double word boundary. 63 a0 a8 b0 b8 c0 c8 d0 d8 e0 e8 f0 f8 00 08 10 18 20 28 30 38 40 48 50 58 60 0 a0 a8 b0 b8 c0 c8 d0 d8 e0 e8 f0 f8 00 08 10 18 20 28 30 38 40 48 50 58 60 63 0 3 Double Words 4 Double Words 4 Double Words 4 Double Words 4 Double Words 32 Double Word Boundary (3 + 1) Double Words 4 Double Words 4 Double Words 4 Double Words 4 Double Words 4 Double Words 4 Double Words DMCCRn.XFER = 4 DMCCRn.XFER = 4 (a) DMCCRn.USEXFSZ = “0” (b) DMCCRn.USEXFSZ = “1” Figure 8.3.2 Non-aligned Single Address Burst Transfer 8-11 Chapter 8 DMA Controller 8.3.8 Dual Address Transfer This section explains the register settings for Dual Address transfer (DMCCRn.SNGAD = 0). This applies to the following DMA transfer modes. • • • 8.3.8.1 External I/O (Dual Address) transfer Internal I/O DMA transfer Memory-Memory Copy transfer Channel Register Settings During Dual Address Transfer Table 8.3.3 shows restrictions of the Channel Register settings during Dual Address transfer. If these restrictions are not met, then a Configuration Error is detected, the Configuration Error bit (CFERR) of the DMA Channel Status Register (DMCSRn) is set, and DMA transfer is not performed. If the setting of the DMA Source Address Increment Register (DMSAIRn) is negative and the transfer setting size is 8 bytes or larger, then a value will be set in the DMA Source Address Register (DMSARn) that reflects as follows. If the setting of the DMA Source Address Increment Register (DMSAIRn) is negative and the transfer size is 2 bytes or larger, set the DMA Source Address Register (DMSARn) as follows: • • • If the transfer size is 2 bytes, set the DMSARn with the low-order 1 bit complemented. If the transfer size is 4 bytes, set the DMSARn with the low-order 2 bits complemented. If the transfer size is 8 bytes or larger, set the DMSARn with the low-order 3 bits complemented. Likewise, if the setting of the DMA Destination Address Increment Register (DMDAIRn) is negative and the transfer size is 2 bytes or larger, set the DMA Destination Address Register (DMDARn) as follows: • • • If the transfer size is 2 bytes, set the DMDARn with the low-order 1 bit complemented. If the transfer size is 4 bytes, set the DMDARn with the low-order 2 bits complemented. If the transfer size is 8 bytes or larger, set the DMDARn with the low-order 3 bits complemented. Example: When the transfer address is 0x0_0001_0000, the DMA Source Address Register (DMSARn) is as follows below. • • DMSAIRn setting is “0” or greater: 0x0_0001_0000 DMSAIRn setting is a negative value: 0x0_0001_0007 8-12 Chapter 8 DMA Controller Table 8.3.3 Channel Register Setting Restrictions During Dual Address Transfer DMSARn[2:0] DMDARn[2:0] Transfer Setting DMDAIRn DMSAIRn DMCCRn DMDAIRn DMSAIRn Size setting is a DMSAIRn DMDAIRn DMCNTRn REVBYTE setting is a (DMCCRn.XFSZ) setting is 0 negative setting is 0 negative or greater or greater value value 1 Byte 2 Bytes 4 Bytes 8 Bytes, 4 / 8 Double Wods (DMMCR.FIFUM[n]=0) 4 / 8 Double Words (DMMCR.FIFUM[n]=1) 16 Double Words 32 Double Words *** **0 *00 000 000 *** ⎯ *** **0 *00 111 111 ⎯ *** *** **0 *00 000 000 *** ⎯ *** **1 *11 111 111 ⎯ *** *** **0 *00 000 8/0/-8 8 -8 *** **0 *00 000 8/-8 ‡ 8 -8 *** **0 *00 000 000 *** 0 0 0 0/1 0/1 0 0 Cannot be set (Configuration Error) Cannot be set (Configuration Error) : ‡: W hen DMSAIRn is set to 0, read access from source device is performed only one time per transmission specified by DMCCRn.XFSZ. For this reason, transfer can not be performed burst transfer to the I/O device which performs FIFO operation. 8, 0, or -8 can be specified when the Destination Burst Inhibit bit (DMCCRn.DBINH) is set. 8.3.8.2 Burst Transfer During Dual Address Transfer The DMA Controller has a 64-bit 8-stage FIFO on-chip that is connected to the internal bus (GBus) for Burst transfer during Dual Address transfer. Since this FIFO employs a shifter, it is possible to perform transfer of any address or data size. Burst transfer is only performed when 4 Double Words or 8 Double Words is set by the Transfer Setting Size field (DMCCRn.XFSZ) and the FIFO Use Enable bit (DMMCRn.FIFUM[n]) of the DMA Master Control Register is set. According to the SDRAM Controller and External Bus Controller specifications, the DMA Controller cannot perform Burst transfer that spans across 32-double word boundaries. Consequently, if the address that starts DMA transfer is not a multiple of the transfer setting size (DMCCRn.XFSZ) (is not aligned), transfer cannot be performed by any of the transfer sizes that were specified by a Burst transfer. Therefore, it is necessary to divide the transfer into multiple Burst transactions of a transfer size smaller than the specified transfer size. This division method changes according to the seting of the Transfer Size Mode bit (DMCCRn.USEXFSZ) of the DMA Channel Control Register and whether or not the address offset relative to the Transfer Setting size (DMCCRn.XFSZ) is equivalent to the source address and destination address combined. Figure 8.3.3 shows Dual Address Burst transfer when the Transfer Size Mode bit (DMCCRn.USEXFSZ) is set to “1”, the lower 8 bits of the Transfer Start address for the transfer source are set to 0xA8, the lower 8 bits of the Transfer Start address for the transfer destination are set to 0x38, and the Transfer Setting Size (DMCCRn.XFSZ) is set to 8 Double Words. Transfer repeats according to the transfer setting size, regardless of the different address offsets. However, transfers that span across 32-double word boundaries are divided. Since data remains in the on-chip FIFO when in this mode, it becomes possible to share the on-chip FIFO among multiple DMA channels. 8-13 Chapter 8 DMA Controller Source Address 63 a0 a8 b0 b8 c0 c8 d0 d8 e0 e8 f0 f8 00 08 10 18 20 28 30 38 0 FIFO (8 Double Words) Destination Address 63 20 28 30 38 40 48 50 58 60 68 70 78 80 88 90 98 a0 a8 b0 b8 0 Figure 8.3.3 Dual Address Burst Transfer (DMCCRn.USEXFSZ = 1) Figure 8.3.4 shows Dual Address Burst transfer when the Transfer Size Mode bit (DMCCRn.USEXFSZ) is set to “0”, the lower 8 bits of the Transfer Start address for the transfer source are set to 0xA8, the lower 8 bits of the Transfer Start address for the transfer destination are set to (a) 0x28/(b) 0x30, and the Transfer Setting Size (DMCCRn.XFSZ) is set to 8 double words. Panel (a) of this figure shows when the address offset is equivalent. In this case, first transfer of three double words is performed up to the address that is aligned with the transfer setting size. Then, transfer of eight double words that is specified by the transfer setting size is repeated. On the other hand, panel (b) show when the address offset is not equivalent. In this case, first only data up to the address that is aligned with the transfer setting size is read to the on-chip FIFO. Then, data is written up to the address that is aligned with the transfer setting size as long as data remains in the on-chip FIFO. Efficiency decreases since the transfer size is divided. Also, since data may remain in the on-chip FIFO, Burst transfer of a Dual Address that uses the on-chip FIFO simultaneously with another channel cannot be performed. Using the Burst Inhibit bit makes it possible to mix Burst transfer with 8-Double-Word Single transfer. This in turn makes it possible to perform Burst access only for memory access during DMA transfer with external I/O devices that cannot perform Burst transfer. When the Source Burst Inhibit bit (DMCCRn.SBINH) is set, data read from the Source Address to the on-chip FIFO is divided into multiple 8-byte Single Read transfers, then transfer is executed. 8-14 Chapter 8 DMA Controller When the Destination Burst Inhibit bit (DMCCRn.DBINH) is set, data written from the FIFO to the Destination Address is divided into multiple 8-byte Single Write transfers, then transfer is executed. When the Burst Inhibit bit is set, the TX4938 always performs an 8-byte Single transfer. For accesses to an external I/O device, a Single transfer is divided into multiple accesses, depending on its bus width. Thus, the address changes during a Single transfer. For more on this, see Section 7.3.5, "Data Bus Size." To continually access a fixed address in an external I/O device, program the trasnfer size (DMCCRn.XFSZ) to the bus width of the I/O device and perform Single transfers with the Burst Inhibit bit cleared. 8.3.8.3 Double Word Byte Swapping When the Reverse Byte bit (REVBYTE) of the DMA Channel Configuration Register (DMCCRn) is set, read double word data is written after byte swapping is performed. For example, if the read data is “0x01234567_90ABCDEF”, then the data “0xEFCDAB89_67452301” is written. The Reverse Byte bit can only be set when the REVBYTE column of Table 8.3.3 is set so “0/1” is indicated. 8-15 Chapter 8 DMA Controller Source Address 63 0 a0 a8 b0 b8 c0 c8 d0 d8 e0 e8 f0 f8 00 08 10 18 20 28 30 38 FIFO (8 Double Words) Destination Address 63 0 20 28 30 38 40 48 50 58 60 68 70 78 80 88 90 98 a0 a8 b0 b8 (a) Address offset is equivalent 63 a0 a8 b0 b8 c0 c8 d0 d8 e0 e8 f0 f8 00 08 10 18 20 28 30 38 40 48 50 58 60 0 20 28 30 38 40 48 50 58 60 68 70 78 80 88 90 98 a0 a8 b0 b8 c0 c8 d0 d8 e0 (b) Address offset differs 63 0 Figure 8.3.4 Dual Address Burst Transfer (DMCCRn.USEXFSZ = 0) 8-16 Chapter 8 DMA Controller 8.3.9 DMA Transfer The sequence of DMA transfer that uses only the DMA Channel Register is as follows below. 1. Select DMA request signal When performing external I/O or internal I/O DMA, set the DMA Request Select field (PCFG.DMASEL) of the Pin Configuration Register. Set the Master Enable bit Set the Master Enable bit (DMMCR.MSTEN) of the DMA Master Control Register. Set the Address Register and Count Register Set the five following register values. • • • • • 4. DMA Source Address Register (DMSARn) DMA Destination Address Register (DMDARn) DMA Count Register (DMCNTRn) DMA Source Address Increment Register (DMSAIRn) DMA Destination Address Increment Register (DMDAIRn) 2. 3. Set Chain Address Register Set “0” to the DMA Chain Address Register (DMCHARn). Clear the DMA Channel Status Register (DMCSRn) Clear when status from the previous DMA transfer remains. Set the DMA Channel Control Register (DMCCRn) Initiate DMA transfer DMA transfer is started by setting the Transfer Active bit (XFACT) of the DMA Channel Control Register. Signal completion When DMA data transfer ends normally, set the Normal Transfer Complete bit (NTRNFC) of the DMA Channel Status Register (DMCSRn). An interrupt is signalled if the Transfer Complete Interrupt Enable bit (INTENT) of the DMA Channel Control Register (DMCCRn) is set. If an error is detected during DMA transfer, the error cause is recorded in the lower four bits of the DMA Channel Status Register and the transfer is interrupted. If the Error Interrupt Enable bit (INTENE) of the DMA Channel Control Register is set, then the interrupt is signaled. 5. 6. 7. 8. 8-17 Chapter 8 DMA Controller 8.3.10 Chain DMA Transfer Table 8.3.4 shows the data structure in memory that the DMA Command Descriptor has. When the Simple Chain bit (SMPCHN) of the DMA Channel Control Register (DMCCRn) is set, only the initial four double words are used. DMSAIRn, DMDAIR, DMCCRn, and DMCSRn use the settings from when DMA started. In addition, all eight double words are used when the Simple Chain bit (SMPCHN) is cleared. Saving the start memory address of another DMA Command Descriptor in the Offset 0 Chain Address field makes it possible to construct a chain list of DMA Command Descriptors (Figure 8.3.5). Set “0” in the Chain Address field of the DMA Command Descriptor at the end of the chain list. When DMA transfer that is specified by one DMA Command Descriptor ends, the DMA Controller automatically reads the next DMA Command Descriptor indicated by the Chain Address Register (Chain transfer), then continues DMA transfer. Continuous DMA transfer that uses multiple Descriptors connected into such a chain-like structure is called Chain DMA transfer. Since the DMA Channel Status Register is also overwritten during Chain transfer when the DMA Simple Chain bit (SMPCHN) is cleared, be sure not to unnecessarily clear necessary bits. Placing DMA Command Descriptors at addresses that do not span across 32-double-word boundaries in memory is efficient since they are read by one G-Bus Burst Read operation. Table 8.3.4 DMA Command Descriptors Offset Address 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 Field Name Chain Address Source Address Destination Address Count Source Address Increment Destination Address Increment Channel Control Channel Status Transfer Destination Register DMA Chain Address Register (DMCHARn) DMA Source Address Register (DMSARn) DMA Destination Address Register (DMDARn) DMA Count Register (DMCNTRn) DMA Source Address Increment Register (DMSAIRn) DMA Destination Address Increment Register (DMDAIRn) DMA Channel Control Register (DMCCRn) DMA Channel Status Register (DMCSRn) 8-18 Chapter 8 DMA Controller “A” +08 +10 +18 +20 +28 +30 +38 “B” +08 +10 +18 +20 +28 +30 +38 “C” +08 +10 +18 +20 +28 +30 +38 “D” +08 +10 +18 +20 +28 +30 +38 “E” +08 +10 +18 +20 +28 +30 +38 Figure 8.3.5 DMA Command Descriptor Chain The sequence of Chain DMA transfer is as follows below. 1. Select DMA request signal When performing external I/O or internal I/O DMA, set the DMA Request Select field (PCFG.DMASEL) of the Pin Configuration Register. Set the Master Enable bit Set the Master Enable bit (DMMCR.MSTEN) of the DMA Master Control Register. Structure of the DMA command Descriptor chain Construct the DMA Command Descriptor Chain in memory. Set the Count Register Set “0” to the DMA Count Register (DMCNTRn) . Sets the DMA Source Address Increment Register (DMSAIRn) and DMA destination Address Increment Register (MMDAIRn). Clear the DMA Channel Status Register (DMCSRn) Clear the status of the previous DMA transfer. Set the DMA Channel Control Register (DMCCRn). 2. 3. 4. 5. 6. 8-19 Chapter 8 DMA Controller 7. Initiate DMA transfer Setting the address of the DMA Command Descriptor at the beginning of the chain list in the DMA Chain Address Register (DMCHARn) automatically initiates DMA transfer. First, the value stored in each field of the DMA Command descriptor at the beginning of the Chain List is read to each corresponding DMA Channel register (Chain transfer), then DMA transfer is performed according to the read value. When a value other than “0” is stored in the DMA Chain Address Register (DMCHARn), data of the size stored in the DMA Count Register (DMCNTRn) is completely transferred, then the DMA Command Descriptor value of the memory address specified by the DMA Chain Address Register is read. In addition, if the Chain Address field value read the Descriptor 0, the DMA Chain Address Register value is not updated. All previous values (Data Command Descriptor Addresses with the value “0” in the Chain Address field when the values were read) are held. 0 Value judgement is performed when the lower 32 bits of the DMA Chain Address Register are rewritten. If the value is not “0” at this time, DMA transfer is automatically initiated. Therefore, please write to the upper 32 bits first when writing to the DMA Chain Address Register using 32bit Store instructions. 8. Signal completion Set the Normal Chain End bit (NCHNC) of the DMA Channel Status Register (DMCSRn) when DMA data transfer of all Descriptor Chains is complete. An interrupt is signalled if the Chain End Interrupt Enable bit (INTENC) of the DMA Channel Control Register (DMCCRn) is set at this time. In addition, the Normal Transfer End bit (NTRNFC) of the DMA Channel Status Register (DMCSRn) is set each time DMA data transfer specified by each DMA Command Descriptor ends normally. An interrupt is signalled if the Transfer End Interrupt Enable bit (INTENT) of the DMA Channel Control Register (DMCCRn) is set at this time. If an error is detected during DMA transfer, the error cause is recorded in the lower four bits of the DMA Channel Status register and transfer is interrupted. An interrupt is signalled if the Error Interrupt Enable bit (INTENE) of the DMA Channel Control Register is set. 8.3.11 Dynamic Chain Operation It is possible to add DMA Command Descriptor chains to the DMA Command Descriptor chain while Chain DMA transfer is in progress. This is performed according to the following procedure. 1. Construct the DMA Command Descriptor chain Construct the DMA Command Descriptor chain to be added to memory. Add a DMA Command Descriptor chain Substitute the address of the Command Descriptor at the beginning of the Descriptor Chain to be added into the Chain Address field of the Descriptor at the end of the DMA Command Descriptor chain that is currently performing DMA transfer. Check the Chain Enable bit Read the value of the Chain Enable bit (CHNEN) of the DMA Channel Control Register (DMCCRn). If that value is “0”, then write the Chain Address field value of the DMA Command Descriptor that is indicated by the address stored in the DMA Chain Address Register (DMCHARn). 2. 3. 8-20 Chapter 8 DMA Controller 8.3.12 Interrupts An interrupt number (10 – 13) of the Interrupt Controller is mapped to each channel. In addition, there are completion interrupts for when transfer ends normally and error interrupts for when transfer ends abnormally for each channel. When an interrupt occurs, then the bit that corresponds to either the Normal Interrupt Status field (DIS[3:0]) or the Error Interrupt Status field (EIS[3:0]) of the DMA Master Control Register (DMMCR) is set. Figure 8.3.6 shows the relationship between the Status bit and Interrupt Enable bit for each interrupt cause. Refer to the explanation for each Status bit for more information regarding each information cause. DMCCRn.INTENC DMCSRn.NCHNC DMCCRn.INTENT DMCSRn.NTRNFC DMMCR.DIS[n] Interrupt Controller (Interrupt No. 10 – 13) DMCSRn.STLXFER DMCCRn.INTENE DMMCR.EIS[n] DMCSRn.CFERR DMCSRn.CHERR DMCSRn.DESERR DMCSRn.SORERR DMCSRn.ABCHC Figure 8.3.6 DMA Controller Interrupt Signal 8.3.13 Transfer Stall Detection Function If the period from when a certain channel last performs internal bus access to when the next internal bus access is performed exceeds the Transfer Stall Detection Interval field (STLTIME) of the DMA Channel Control Register (DMCCRn), the Transfer Stall Detection bit (STLXFER) of the DMA Channel Status Register (DMCSRn) is set. An error interrupt is signalled if the Error Interrupt Enable bit (DMCCRn.INTENE) is set. In contrast to other error interrupts, DMA transfer is not stopped. Normal DMA transfer is executed if bus ownership can be obtained. Furthermore, clearing the Transfer Stall Detection field (STLXFER) resumes transfer stall detection as well. Setting the Transfer Stall Detection Interval field (STLTIME) to “000” disables the Transfer Stall Detection function. 8-21 Chapter 8 DMA Controller 8.3.14 Arbitration Among DMA Channels The DMA Controller has an on-chip DMA Channel Arbiter that arbitrates bus ownership among four DMA channels that use the internal bus (G-Bus). There are two methods for determining priority: the round robin method and the fixed priority method. (See Figure 8.3.7.) The Round Robin Priority bit (RRPT) of the DMA Master Control Register (DMMCR) selects the priority method. • Fixed priority (DMMCR.RRPT = 0) As shown below, Channel 0 has the highest priority and Channel 3 has the lowest priority. CH0 > CH1 > CH2 > CH3 • Round Robin method (DMMCR.RRPT = 1) The last channel to perform DMA transfer has the lowest priority. • • • • After CH0 DMA transfer execution: CH1 > CH2 > CH3 > CH0 After CH1 DMA transfer execution: CH2 > CH3 > CH0 > CH1 After CH2 DMA transfer execution: CH3 > CH0 > CH1 > CH2 After CH3 DMA transfer execution: CH0 > CH1 > CH2 > CH3 Channel 0 Channel 1 Channel 2 Channel 3 a) Fixed Priority is selected Channel 0 Channel 3 Channel 2 b) Round Robin Priority is selected Channel 1 Figure 8.3.7 DMA Channel Arbitration 8.3.15 Restrictions in Access to PCI Bus The PCI Controller detects a bus error if the DMA Controller performs one of the following accesses to the PCI Bus. • • • • Burst transfer exceeding 8 double words (PCICSTATUS.TLB) Address Increment value –8 Burst transfer (PCICSTATUS.NIB) Address Increment Value 0 Burst transfer (PCICSTATUS.ZIB) Dual Address Burst transfer when the setting for DMSARn, DMDARn, or DMCNTRn is not a double word boundary (PCICSTATUS.IAA) In addition, Single Address transfers between an external I/O device and the PCI Bus are not supported. Data transfer is not performed, but no error is detected. 8-22 Chapter 8 DMA Controller 8.4 DMA Controller Registers Table 8.4.1 DMA Controller 0 Registers Offset Address 0xB000 0xB008 0xB010 0xB018 0xB020 0xB028 0xB030 0xB038 0xB040 0xB048 0xB050 0xB058 0xB060 0xB068 0xB070 0xB078 0xB080 0xB088 0xB090 0xB098 0xB0A0 0xB0A8 0xB0B0 0xB0B8 0xB0C0 0xB0C8 0xB0D0 0xB0D8 0xB0E0 0xB0E8 0xB0F0 0xB0F8 0xB148 0xB150 Bit Width 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 Mnemonic DM0CHAR0 DM0SAR0 DM0DAR0 DM0CNTR0 DM0SAIR0 DM0DAIR0 DM0CCR0 DM0CSR0 DM0CHAR1 DM0SAR1 DM0DAR1 DM0CNTR1 DM0SAIR1 DM0DAIR1 DM0CCR1 DM0CSR1 DM0CHAR2 DM0SAR2 DM0DAR2 DM0CNTR2 DM0SAIR2 DM0DAIR2 DM0CCR2 DM0CSR2 DM0CHAR3 DM0SAR3 DM0DAR3 DM0CNTR3 DM0SAIR3 DM0DAIR3 DM0CCR3 DM0CSR3 DM0MFDR DM0MCR Register Name DMA Chain Address Register 0 DMA Source Address Register 0 DMA Destination Address Register 0 DMA Count Register 0 DMA Source Address Increment Register 0 DMA Destination Address Increment Register 0 DMA Channel Control Register 0 DMA Channel Status Register 0 DMA Chain Address Register 1 DMA Source Address Register 1 DMA Destination Address Register 1 DMA Count Register 1 DMA Source Address Increment Register 1 DMA Destination Address Increment Register 1 DMA Channel Control Register 1 DMA Channel Status Register 1 DMA Chain Address Register 2 DMA Source Address Register 2 DMA Destination Address Register 2 DMA Count Register 2 DMA Source Address Increment Register 2 DMA Destination Address Increment Register 2 DMA Channel Control Register 2 DMA Channel Status Register 2 DMA Chain Address Register 3 DMA Source Address Register 3 DMA Destination Address Register 3 DMA Count Register 3 DMA Source Address Increment Register 3 DMA Destination Address Increment Register 3 DMA Channel Control Register 3 DMA Channel Status Register 3 DMA Memory Fill Data Register DMA Master Control Register 8-23 Chapter 8 DMA Controller Table 8.4.2 DMA Controller 1 Registers Offset Address 0xB800 0xB808 0xB810 0xB818 0xB820 0xB828 0xB830 0xB838 0xB840 0xB848 0xB850 0xB858 0xB860 0xB868 0xB870 0xB878 0xB880 0xB888 0xB890 0xB898 0xB8A0 0xB8A8 0xB8B0 0xB8B8 0xB8C0 0xB8C8 0xB8D0 0xB8D8 0xB8E0 0xB8E8 0xB8F0 0xB8F8 0xB948 0xB950 Bit Width 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 Mnemonic DM1CHAR0 DM1SAR0 DM1DAR0 DM1CNTR0 DM1SAIR0 DM1DAIR0 DM1CCR0 DM1CSR0 DM1CHAR1 DM1SAR1 DM1DAR1 DM1CNTR1 DM1SAIR1 DM1DAIR1 DM1CCR1 DM1CSR1 DM1CHAR2 DM1SAR2 DM1DAR2 DM1CNTR2 DM1SAIR2 DM1DAIR2 DM1CCR2 DM1CSR2 DM1CHAR3 DM1SAR3 DM1DAR3 DM1CNTR3 DM1SAIR3 DM1DAIR3 DM1CCR3 DM1CSR3 DM1MFDR DM1MCR Register Name DMA Chain Address Register 0 DMA Source Address Register 0 DMA Destination Address Register 0 DMA Count Register 0 DMA Source Address Increment Register 0 DMA Destination Address Increment Register 0 DMA Channel Control Register 0 DMA Channel Status Register 0 DMA Chain Address Register 1 DMA Source Address Register 1 DMA Destination Address Register 1 DMA Count Register 1 DMA Source Address Increment Register 1 DMA Destination Address Increment Register 1 DMA Channel Control Register 1 DMA Channel Status Register 1 DMA Chain Address Register 2 DMA Source Address Register 2 DMA Destination Address Register 2 DMA Count Register 2 DMA Source Address Increment Register 2 DMA Destination Address Increment Register 2 DMA Channel Control Register 2 DMA Channel Status Register 2 DMA Chain Address Register 3 DMA Source Address Register 3 DMA Destination Address Register 3 DMA Count Register 3 DMA Source Address Increment Register 3 DMA Destination Address Increment Register 3 DMA Channel Control Register 3 DMA Channel Status Register 3 DMA Memory Fill Data Register DMA Master Control Register 8-24 Chapter 8 DMA Controller 8.4.1 DMA Master Control Register (DM0MCR, DM1MCR) Offset address: DMAC0 0xB150, DMAC1 0xB950 This register controls the entire DMA Controller. 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 EIS[3:0] R 0000 15 14 FIFVC 13 FIFWP R 000 11 10 FIFRP R 000 28 27 DIS[3:0] R 0000 8 7 RSFIF R/W 0 6 FIFUM[3:0] R/W 0000 3 24 23 Reserved 21 20 FIFVC R 0000000 2 1 0 : Type : Initial value 16 32 48 Reserved RRPT MSTEN R/W 0 R/W 0 : Type : Initial value Bit 63:32 31:28 Mnemonic EIS[3:0] Field Name Reserved Error Interrupt Status Description Error Interrupt Status [3:0] (Default: 0x0) These four bits indicate the error interrupt status of each channel. EIS[n] corresponds to channel n. 1: There is an error interrupt in the corresponding channel. 0: There is no error interrupt in the corresponding channel. Done Interrupt Status [3:0] (Default: 0x0) These four bits indicate the transfer completion (transfer complete or chain ended) interrupt status of each channel. DIS[n] corresponds to channel n. 1: There is a transfer completion interrupt in the corresponding channel. 0: There is no transfer completion interrupt in the corresponding channel. FIFO Valid Entry Count (Default: 0000000) These read only bits indicate the byte count of data that were written to FIFO but not read out from the FIFO. FIFO Write Pointer (Default: 000) These read only bits indicate the next write position in FIFO. This is a diagnostic function. FIFO Read Pointer (Default: 000) These read only bits indicate the next read position in FIFO. This is a diagnostic function. Reset FIFO (Default: 0) This bit is used for resetting FIFO. When this bit is set to “1”, the FIFO read pointer, FIFO write pointer and FIFO valid entry count are initialized to “0”. If an error occurs during DMA transfer, use this bit when data remains in the FIFO (when the FIFO Valid entry Count Field is not “0”) to initialize the FIFO. Read/Write ⎯ R 27:24 DIS[3:0] Normal Completion Interrupt Status R 23:21 20:14 FIFVC Reserved FIFO Valid Entry Count FIFO Write Pointer FIFO Read Pointer Reset FIFO R ⎯ 13:11 FIFWP R 10:8 FIFRP R 7 RSFIF R/W Figure 8.4.1 DMA Master Control Register (1/2) 8-25 Chapter 8 DMA Controller Bit 6:3 Mnemonic FIFUM[3:0] Field Name FIFO Use Enable [3:0] Description FIFO Use Enable [3:0] (Default: 0x0) Each channel specifies whether to use 8-double word FIFO in Dual Address transfer. FIFUM[n] corresponds to channel n. Refer to “8.3.8.2 Burst Transfer During Dual Address Transfer” for more information. Round Robin Priority (Default: 0) Specifies the method for determining priority among channels. 1: Round Robin method. Priority of the last channel used is the lowest, and the next previous channel has the next lowest priority. Round robin is in the order Channel 0 > Channel 1 > Channel > Channel 3. 0: Fixed Priority. Priority is fixed in the order Channel 0 > Channel 1 > Channel 2 > Channel 3. Master Enable (Default: 0) This bit enables the DMA Controller. 1: Enable 0: Disable Note: If the entire DMA Controller is disabled, then all internal logic including the Bus Interface Logic and State Machine are reset. Read/Write R/W 2 1 RRPT Reserved Round Robin Priority R/W ⎯ 0 MSTEN Master Enable R/W Figure 8.4.1 DMA Master Control Register (2/2) 8-26 Chapter 8 DMA Controller 8.4.2 DMA Channel Control Register (DM0CCRn, DM1CCRn) Offset address: DMAC0 0xB030 (ch. 0) / 0xB070 (ch. 1) / 0xB0B0 (ch. 2) / 0xB0F0 (ch. 3) DMAC1 0xB830 (ch. 0) / 0xB870 (ch.1 ) / 0xB8B0 (ch. 2) / 0xB8F0 (ch. 3) 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 30 29 28 27 LE R/W ⎯ 11 26 25 24 23 22 21 20 19 18 17 16 EXTRQ 48 32 Reserved IMMCHN USEXFSZ DBINH SBINH CHRST RVBYTE ACKPOL REQPL EGREQ CHDN DNCTL R/W 00 2 1 R/W 0 15 13 R/W 0 12 R/W 0 10 R/W 0 9 R/W 1 8 R/W 0 7 R/W 0 6 R/W 0 5 SMPCHN R/W 0 4 R/W 0 R/W 0 0 : Type : Initial value STLTIME/INTRQD R/W 000 INTENE INTENC INTENT CHNEN XFACT Reserved XFSZ R/W 000 MEMIO SNGAD R/W 0 R/W 0 R/W 0 R 0 R/W 0 R/W 0 R/W 0 R/W 0 : Type : Initial value Bit 63:32 29 28 Mnemonic IMMCHN USEXFSZ Field Name Reserved Immediate Chain Transfer Set Size Mode Immediate Chain (Default: 0) Always set this bit to “1”. Description Read/Write ⎯ R/W R/W Use Transfer Set Size (Default: 0) Selects the DMA channel operation mode during Burst DMA transfer. Refer to “8.3.7.2 Burst Transfer During Single Address Transfer” and “8.3.8.2 Burst Transfer During Dual Address Transfer” for more information. 1: The DMA Controller always transfers the amount of data set in DMCCRn.XFSZ for each bus operation. Since alignment to the boundary of the DMCCRn.XFSZ in the address is not forced when in this mode, transfers that exceed 32-double-word boundaries are divided into two operations. 0: The DMA Controller calculates the transfer size so the address set in DMSARn and DMDARn (only during Dual Address transfer) can be aligned to the boundary of the size set in DMCCRn.XFSZ, then transfers data according to that size. Note: In Dual Address Transfer mode, programming this bit to 1 is valid only when both the contents of the DMSARn and the DMDARn are on doubleword boundaries and the contents of the DMCNTRn is a multiple of eight bytes. Little Endian (Default: value that is the opposite of the G-Bus Endian (CCFG.ENDIAN) This bit sets the Endian of the channel. Please use the default value as is. 1: Channel operates in the Little Endian mode 0: Channel operates in the Big Endian mode 27 LE Little Endian R/W Figure 8.4.2 DMA Channel Control Register (1/4) 8-27 Chapter 8 DMA Controller Bit 26 Mnemonic DBINH Field Name Destination Burst Inhibit Description Destination Burst Inhibit (Default: 0) During Dual Address transfer, this bit sets whether to perform Burst transfer or Single transfer on a Write cycle to the address set from FIFO to DMDARn when Burst transfer is set by DMCCRn.XFSZ. Refer to “8.3.8.2 Burst Transfer During Dual Address Transfer” for more information. The settings of this bit have no effect during Single Address transfers. 1: Multiple Single transfers are executed. 0: Burst transfer is executed. Source Burst Inhibit (Default: 0) During Dual Address transfer, this bit sets whether to perform Burst transfer or Single transfer on a Read cycle to the FIFO from the address set to DMSARn when Burst transfer is set by DMCCRn.XFSZ. Refer to “8.3.8.2 Burst Transfer During Dual Address Transfer” for more information. The settings of this bit have no effect during Single Address transfers. 1: Multiple Single transfers are executed. 0: Burst transfer is executed. Channel Reset (Default: 1) This bit is used fo initializing channels. The DMCCRn.XFACT, DMCCRn.CHNEN, and DMCSRn bits are all cleared. In addition, all channel logic and interrupts from channels are cleared and bus ownership requests to the DMA Channel Arbiter are also reset. The software must clear this bit before operating a channel. 1: Reset channel 0: Enable channel Reverse Bytes (Default: 0) This bit specifies whether to reverse the byte order during a Dual Address transfer when the Transfer Setting Size field (DMCCRn.XFSZ) setting is 8 bytes or more. Refer to “8.3.8.3 Double Word Byte Swapping” for more information. 1: Reverses the byte order. 0: Does not reverse the byte order. Acknowledge Polarity (Default: 0) Specifies the polarity of the DMAACK[n] signal. 1: Asserts when the DMAACK[n] signal is High 0: Asserts when the DMAACK[n] signal is Low Request Polarity (Default: 0) Specifies the polarity of the DMAREQ[n] signal. 1: Asserts when the DMAREQ[n] signal is High. 0: Asserts when the DMAREQ[n] signal is Low. Edge Request (Default: 0) Specifies the method for detecting DMA requests by the DMAREQ[n] signal. 1: DMAREQ[n] signal is Edge Detect. 0: DMAREQ[n] signal is Level Detect. Chain Done (Default: 0) Selects control by the DMADONE* signal. See “8.3.3.4 DMA Controller” for more information. 1: Assertion of the DMADONE* signal controls the overall Chain DMA transfer. 0: Assertion of the DMADONE* signal controls DMA transfer according to the DMA Channel Register setting at that time. Done Control (Default: 00) Specifies the input/output mode of the DMADONE* signal. Refer to “8.3.3.4 DMADONE* Signal” for more information. 00: DMADONE* signal becomes the input signal, but input is ignored. 01: DMADONE* signal becomes the input signal. 10: DMADONE* signal becomes the output signal. 11: DMADONE* signal becomes the open drain input/output signal. Read/Write R/W 25 SBINH Source Burst Inhibit R/W 24 CHRST Channel Reset R/W 23 REVBYTE Reverse Byte R/W 22 ACKPOL Acknowledge Polarity R/W 21 REQPL Request Polarity R/W 20 EGREQ Edge Request R/W 19 CHDN Chain Complete R/W 18:17 DNCTL DONE Control R/W Figure 8.4.2 DMA Channel Control Register (2/4) 8-28 Chapter 8 DMA Controller Bit 16 Mnemonic EXTRQ Field Name External Request Description External Request (Default: 0) Sets the Request Transfer mode. 1: I/O DMA transfer mode This bit is used by the External I/O DMA Transfer mode and the Internal I/O DMA Transfer mode. A channel requests internal bus ownership when the I/O device asserts the DMA request signal. 0: Memory Transfer mode This bit is used by the Memory-Memory Copy Transfer mode and the Memory Fill Transfer mode. A channel requests internal bus ownership when the value of DMCSRn.WAITC becomes “0”. • W hen in the I/O DMA Transfer mode (DMCCRn.EXTRQ is “1”) Stalled Transfer Detect Time (Default: 000) Sets the detection interval for a lack of bus ownership. If this channel n releases bus ownership then the interval it does not have ownership exceeds the clock count set by this field, then DMCSRn.STLXFER is set to “1”. Refer to “8.3.13 Transfer Stall Detection Function” for more information. 000: Does not detect stalled transfers. 001: Sets 960 (15 × 64) clocks as the detection interval 010: Sets 4032 (63 × 64) clocks as the detection interval 011: Sets 16320 (255 × 64) clocks as the detection interval 100: Sets 65472 (1023 × 64) clocks as the detection interval 101: Sets 262080 (4095 × 64) clocks as the detection interval 110: Sets 1048512 (16383 × 64) clocks as the detection interval 111: Sets 4194240 (65535 × 64) clocks as the detection interval • W hen in the Memory Transfer mode (DMCCRn.EXTRQ is “0”) Internal Request Delay (Default: 000) Sets the delay time from when bus ownership is released to the next bus ownership request. Bus ownership is released, the set delay time elapses, then a bus ownership request is generated from the channel. 000: Always requests bus ownership when this channel is active. (Bus ownership is released after bus operation ends) 001: Set 16 clocks as the delay time 010: Set 32 clocks as the delay time 011: Set 64 clocks as the delay time 100: Set 128 clocks as the delay time 101: Set 256 clocks as the delay time 110: Set 512 clocks as the delay time 111: Set 1024 clocks as the delay time Read/Write R/W 15:13 STLTIME / INTRQD Transfer Stall Detection Interval/Internal Request Delay R/W 12 INTENE Error Interrupt Enable Interrupt Enable on Error (Default: 0) Enables interrupts when the Error End bit (DMCSRn.ABCHC) or the Transfer Stall Detection bit (DMCSRn.STLXFER) is set. 1: Generates interrupts. 0: Does not generate interrupts. Interrupt Enable on Chain Done (Default: 0) This bit enables interrupts when the Chain End bit (DMCSRn.NCHNC) is set. 1: Generate interrupts. 0: Do not generate interrupts. Interrupt Enable on Transfer Done (Default: 0) This bit enables interrupts when the Transfer End bit (DMCSRn.NTRNFC) is set. 1: Generate interrupts. 0: Do not generate interrupts. R/W 11 INTENC Chain End Interrupt Enable R/W 10 INTENT Transfer End Interrupt Enable R/W Figure 8.4.2 DMA Channel Control Register (3/4) 8-29 Chapter 8 DMA Controller Bit 9 Mnemonic CHNEN Field Name Chain Enable Description Chain Enable (Default: 0) This bit indicates whether Chain operation is being performed. Read Only. This bit is cleared when either the Master Enable bit (DMMCR.MSTEN) is cleared or the Channel Reset bit (DMCCRn.CHRST) is set. This bit is set if a value other than “0” is set when the CPU writes to the DMA Chain Address Register (DMCHARn) or when a Chain transfer writes DMA Command Descriptor. This bit is then cleared when “0” is set to the DMA Chain Address Register (DMCHARn). 1: If transfer completes due to the current DMA Channel Register setting, a DMA Command Descriptor is loaded in the DMA Channel Register from the specified DMA Chain Address Register (DMCHARn) address, then DMA transfer continues. 0: Further transfer does not start even if transfer completes due to the current DMA Channel Register setting. Transfer Active (Default: 0) DMA transfer is performed according to the DMA Channel Register setting when this bit is set. This bit is automatically set when a value other than “0” is set in the DMA Chain Address Register (DMCHARn). DMA transfer is then initiated. This bit is automatically cleared either when DMA transfer ends normally it is stopped due to an error. 1: Perform DMA transfer. 0: Do not perform DMA transfer. Simple Chain (Default: 0) This bit selects the DMA Channel Register that loads data from DMA Command Descriptors during Chain DMA transfer. 1: Data is only loaded to the four following DMA Channel Registers: the Chain Address Register (DMCHARn), the Source Address Register (DMSARn), the Destination Address Register (DMDARn), and the Count Register (DMCNTRn). 0: Data is loaded to all eight DMA Channel Registers. Transfer Set Size (Default: 000) These bits set the transfer data size of each bus operation in the internal bus. When the transfer set size is set to four double words or greater, the data size actually transferred during a single bus operation does not always match the transfer set size. Refer to “8.3.7.2 Burst Transfer During Single Address Transfer” and “8.3.8.2 Burst Transfer During Dual Address Transfer” for more information. 000: 1 byte 001: 2 byte 010: 4 byte 011: 8 bytes (1double word) 100: 4 double words 101: 8 double words 110: 16 double words (Single Address transfer only) 111: 32 double words (Single Address transfer only) Memory to I/O (Default: 0) This bit specifies the transfer direction during Single Address transfer (DMCCRn.SNGAD = 1). Clear this bit when in the Memory Fill Transfer mode. The setting of this bit is ignored when Dual Address transfer is set (DMCCRn.SNGAD = 0). 1: From memory to I/O 0: From I/O to memory Single Address (Default: 0) This bit specifies whether the transfer method is Single Address transfer or Dual Address transfer. 1: Single Address transfer 0: Dual Address transfer Read/Write R 8 XFACT Transfer Active R/W 7:6 5 SMPCHN Reserved Simple Chain R/W ⎯ 4:2 XFSZ Transfer Set Size R/W 1 MEMIO Memory to I/O R/W 0 SNGAD Single Address R/W Figure 8.4.2 DMA Channel Control Register (4/4) 8-30 Chapter 8 DMA Controller 8.4.3 DMA Channel Status Register (DM0CSRn, DM1CSRn)) Offset Address: DMAC0 0xB038 (ch. 0) / 0xB078 (ch. 1) / 0xB0B8 (ch. 2) / 0xB0F8 (ch. 3) DMAC1 0xB838 (ch. 0) / 0xB878 (ch. 1) / 0xB8B8 (ch. 2) / 0xB8F8 (ch. 3) 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 WAITC R 0x0000 15 Reserved 11 10 CHNEN 48 32 16 : Type : Initial value 6 5 4 3 2 1 0 9 STLXFER 8 7 XFACT ABCHC NCHNC NTRNFC EXTDN CFERR CHERR DESERR SORERR R 0 R/W1C 0 R 0 R 0 R/W1C R/W1C R/W1C R/W1C R/W1C R/W1C R/W1C : Type : Initial value 0 0 0 0 0 0 0 Bit 63:32 31:16 Mnemonic WAITC Field Name Reserved Wait Counter Description Wait Counter (Default: 0x0000) This is a diagnostic function. • I/O DMA transfer mode (DMCCRn.EXTRQ = “1”) This counter is decremented by 1 at each 64 G-Bus cycles. After channel n releases bus ownership, this counter sets the default (the value that is the detection interval clock cycle count set by the Transfer Stall Detection Interval field (DMCCRn.STLTIME) divided by 64). The Transfer Stall Detect bit (DMCSRn.STLXFER) is set when the interval during which bus ownership is not held reaches the set clock cycle. The counter is reset to the default and stops counting. Clearing the Transfer Stall Detect bit (DMCSRn.STLXFER) resumes the count and starts stall detection. • Memory transfer mode (DMCCRn.EXTRQ = “0”) This counter is decremented by 1 at each G-Bus cycle. After bus ownership is released, the counter is set to the delay clock cycle count set by the Internal Request Delay field (DMCCRn.INTRQD). When the counter reaches “0” the count stops and channel n requests bus ownership. Chain Enable (Default: 0) This value is a copy of the Chain Enable bit (CHNEN) of the DMA Channel Control Register (DMCCRn). Stalled Transfer Detect (Default: 0) This bit indicates whether the interval during which bus ownership is not held exceeds the value set by the Transfer Stall Detect Interval field (DMCCRn.STLTIME) after bus ownership is released when in the I/O DMA transfer mode. 1: Indicates that the interval during which bus ownership was not held exceeds the DMCCRn.STLTIME setting. 0: The interval during which bus ownership was not held did not exceed the setting since this bit was last cleared. Read/Write ⎯ R 15:11 10 CHNEN Reserved Chain Enable R ⎯ 9 STLXFER Transfer Stall Detect R/W1C Figure 8.4.3 DMA Channel Status Register (1/2) 8-31 Chapter 8 DMA Controller Bit 8 Mnemonic XFACT Field Name Transfer Active Description Transfer Active (Default: 0) This value is a copy of the Transfer Active bit (XFACT) of the DMA Channel Control Register (DMCCRn). Error Completion (Default: 0) This bit indicates whether an error occurred during DMA transfer. This bit indicates the logical sum of the four error bits (CFERR, CHERR, DESERR, SORERR) in DMCSRn[3:0]. 1: DMA transfer ends due to an error. 0: No error occurred since this bit was last cleared. Normal Chain Completion (Default: 0) When performing chain DMA transfer, This bit indicates whether all DMA data transfers in the DMA Descriptor chain are complete. 1: All DMA data transfers in the DMA Descriptor chain ended normally. Or, DMA transfer that did not use a DMA Descriptor chain ended normally. 0: DMA transfer has not ended normally since this bit was last cleared. Normal Transfer Completion (Default: 0) This bit indicates whether DMA transfer ended according to the current DMA Channel Register setting. 1: DMA transfer ended normally. 0: DMA transfer has not ended since this bit was last cleared. External Done Asserted (Default: 0) This bit indicates whether an external I/O device asserted the DMADONE* signal. When the DMADONE* signal is set to bidirectional, this bit is also set when the TX4938 asserts the DMADONE* signal. 1: DMADONE* signal was asserted. 0: DMADONE* signal was not asserted. Configuration Error (Default: 0) Indicates whether an illegal register setting was made. 1: There was a configuration error. 0: There was no configuration error. Chain Bus Error (Default: 0) This bit indicates whether a bus error occurred while reading a DMA Command Descriptor. 1: Bus error occurred. 0: No bus error occurred. Destination Bus Error (Default: 0) This bit indicates whether a bus error occurred during a destination bus Write operation (a Write to a set DMDARn address). 1: Bus error occurred. 0: No bus error occurred. Source Bus Error (Default: 0) This bit indicates whether a bus error occurred during either a source bus Read or Write operation (A Read or Write to a set DMSARn address). 1: Bus error occurred. 0: No bus error occurred. Read/Write R 7 ABCHC Error Complete R 6 NCHNC Chain Complete R/W1C 5 NTRNFC Transfer Complete R/W1C 4 EXTDN External DONE Asserted R/W1C 3 CFERR Configuration Error R/W1C 2 CHERR Chain Bus Error R/W1C 1 DESERR Destination Error R/W1C 0 SORERR Source Bus Error R/W1C Figure 8.4.3 DMA Channel Status Register (2/2) 8-32 Chapter 8 DMA Controller 8.4.4 DMA Source Address Register (DM0SARn, DM1SARn) Offset Address: DMAC0 0xB008 (ch. 0) / 0xB048 (ch. 1) / 0xB088 (ch. 2) / 0xB0C8 (ch. 3) DMAC1 0xB808 (ch. 0) / 0xB848 (ch. 1) / 0xB888 (ch. 2) / 0xB8C8 (ch. 3) 63 Reserved : Type : Initial value 47 Reserved 36 35 SADDR[35:32] R/W ⎯ 31 SADDR[31:16] R/W ⎯ 15 SADDR[15:0] R/W ⎯ : Type : Initial value 0 : Type : Initial value 16 : Type : Initial value 32 48 Bits 63:36 35:0 Mnemonic ⎯ SADDR Field Name Reserved Source Address Description Source Address (Default: Undefined) This field sets the physical address of the transfer source during Dual Address transfer. This field sets the physical address of memory access during Single Address transfer. This field is used for either Memory-to-I/O or I/O-to-Memory transfers. Refer to “8.3.7.1 Channel Register Settings During Single Address Transfer” and “8.3.8.1 Channel Register Settings During Dual Address Transfer” for more information. During Burst transfer, the value changes once for each bus operation only by the size that was transferred. During Single transfer, the value only changes by the value specified by the DMA Source Address Increment Register (DMSAIRn). Read/Write ⎯ R/W Figure 8.4.4 DMA Source Address Register 8-33 Chapter 8 DMA Controller 8.4.5 DMA Destination Address Register (DM0DARn, DM1DARn) Offset Address: DMAC0 0xB010 (ch. 0) / 0xB050 (ch. 1) / 0xB090 (ch. 2) / 0xB0D0 (ch. 3) DMAC1 0xB810 (ch. 0) / 0xB850 (ch. 1) / 0xB890 (ch. 2) / 0xB8D0 (ch. 3) 63 Reserved : Type : Initial value 47 Reserved 36 35 DADDR[35:32] R/W ⎯ 31 DADDR[31:16] R/W ⎯ 15 DADDR[15:0] R/W ⎯ : Type : Initial value 0 : Type : Initial value 16 : Type : Initial value 32 48 Bit 63:36 35:0 Mnemonic DADDR Field Name Reserved Destination Address Description Destination Address (Default: undefined) This register sets the physical address of the transfer destination during Dual Address transfer. This register is ignored during Single Address transfer. Refer to “8.3.8.1 Channel Register Settings During Dual Address Transfer” for more information. During Burst transfer, the value changes only by the size of data transferred during each single bus operation. During Single transfer, the value only changes by the value specified by the DMA Destination Address Increment Register (DMDAIRn). Read/Write ⎯ R/W Figure 8.4.5 DMA Destination Address Register 8-34 Chapter 8 DMA Controller 8.4.6 DMA Chain Address Register (DM0CHARn, DM1CHARn) Offset Address: DMAC0 0xB000 (ch. 0) / 0xB040 (ch. 1) / 0xB080 (ch. 2) / 0xB0C0 (ch. 3) DMAC1 0xB800 (ch. 0) / 0xB840 (ch. 1) / 0xB880 (ch. 2) / 0xB8C0 (ch. 3) 63 Reserved : Type : Initial value 47 Reserved 36 35 CHADDR[35:32] R/W ⎯ 31 CHADDR[31:16] R/W ⎯ 15 CHADDR[15:3] R/W ⎯ 3 2 Reserved R/W : Type : Initial value 0 : Type : Initial value 16 : Type : Initial value 32 48 Bit 63:36 35:3 Mnemonic CHADDR Field Name Reserved Chain Address Description Chain Address (Default: undefined) When Chain DMA transfer is executed, this register sets the physical address of the next DMA Command Descriptor to be read. If DMA transfer according to the current Channel Register setting ends and the Chain Enable bit (DMCCRn.CHNEN) is set, then the DMA Command Descriptor is loaded in the Channel Register starting from the address indicated by this register. When a value other than “0” is set in this register, the Chain Enable bit (DMCCRn.CHNEN) and the Transfer Active bit (DMCCRn.XFACT) are set. When “0” is set in this register, only the Chain Enable bit (DMCCRn.CHNEN) is cleared. When the Chain Address field value reads a DMA Command Descriptor of 0, the value of this register is not updated and the value before that one (address of the Data Command Descriptor when the value of the Chain Address field being read was “0”) is held. Read/Write ⎯ R/W 2:0 Reserved R/W Figure 8.4.6 DMA Chain Address Register 8-35 Chapter 8 DMA Controller 8.4.7 DMA Source Address Increment Register (DM0SAIRn, DM1SAIRn) Offset Address: DMAC0 0xB020 (ch. 0) / 0xB060 (ch. 1) / 0xB0A0 (ch. 2) / 0xB0E0 (ch. 3) DMAC1 0xB820 (ch. 0) / 0xB860 (ch. 1) / 0xB8A0 (ch. 2) / 0xB8E0 (ch. 3) 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 Reserved 24 23 SADINC[23:16] R/W ⎯ 15 SADINC[15:0] R/W ⎯ : Type : Initial value 0 : Type : Initial value 16 32 48 Bit 63:24 23:0 Mnemonic SADINC Field Name Reserved Source Address Increment Description Source Address Increment (Default: undefined) This field sets the increase/decrease value of the DMA Source Address Register (DMSARn). This value is a 24-bit two’s complement and indicates a byte count. Refer to “8.3.7.1 Channel Register Settings During Single Address Transfer” and “8.3.8.1 Channel Register Settings During Dual Address Transfer” for more information. Read/Write ⎯ R/W Figure 8.4.7 DMA Source Address Increment Register 8-36 Chapter 8 DMA Controller 8.4.8 DMA Destination Address Increment Register (DM0DAIRn, DM1DAIRn) Offset Address: DMAC0 0xB028 (ch. 0) / 0xB068 (ch. 1) / 0xB0A8 (ch. 2) / 0xB0E8 (ch. 3) DMAC1 0xB828 (ch. 0) / 0xB868 (ch. 1) / 0xB8A8 (ch. 2) / 0xB8E8 (ch. 3) 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 Reserved 24 23 DADINC[23:16] R/W ⎯ 15 DADINC[15:0] R/W ⎯ : Type : Initial value 0 : Type : Initial value 16 32 48 Bit 63:24 23:0 Mnemonic DADINC Field Name Reserved Destination Address Increment Description Destination Address Increment (Default: undefined) This field sets the increase/decrease value of the DMA Destination Address Register (DMDARn). This value is a 24-bit two’s complement and indicates a byte count. Refer to “8.3.8.1 Channel Register Settings During Dual Address Transfer” for more information. Read/Write ⎯ R/W Figure 8.4.8 DMA Destination Address Increment Register 8-37 Chapter 8 DMA Controller 8.4.9 DMA Count Register (DM0CNTRn, DM1CNTRn) Offset Address: DMAC0 0xB018 (ch. 0) / 0xB058 (ch. 1) / 0xB098 (ch. 2) / 0xB0D8 (ch. 3) DMAC1 0xB818 (ch. 0) / 0xB858 (ch. 1) / 0xB898 (ch. 2) / 0xB8D8 (ch. 3) 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 Reserved 26 25 DMCNTR[25:0] R/W ⎯ 15 DMCNTR[15:0] R/W ⎯ : Type : Initial value 0 : Type : Initial value 16 32 48 Bit 63:26 25:0 Mnemonic DMCNTR Field Name Reserved Count Description Count Register (Default: undefined) This register sets the byte count that is transferred by the DMA Channel Register setting. The value is a 26-bit unsigned data that is decremented only by the size of the data transferred during a single bus operation. Refer to “8.3.7.1 Channel Register Settings During Single Address Transfer” and “8.3.8.1 Channel Register Settings During Dual Address Transfer” for more information. Read/Write ⎯ R/W Figure 8.4.9 DMA Count Register 8-38 Chapter 8 DMA Controller 8.4.10 63 MFD R/W ⎯ 47 MFD R/W ⎯ 31 MFD R/W ⎯ 15 MFD R/W ⎯ : Type : Initial value 0 : Type : Initial value 16 : Type : Initial value 32 : Type : Initial value DMA Memory Fiill Data Register (DM0MFDR, DM1MFDR) Offset Address: DMAC0 0xB148, DMAC1 0xB948 48 Bit 63:0 Mnemonic MFD Field Name Memory Fill Data Description Memory Fill Data (Default: undefined) This register, which stores double-word data written to memory when in the Memory Fill Transfer mode, is shared between all channels. Read/Write R/W Figure 8.4.10 DMA Memory Fill Data Register 8-39 Chapter 8 DMA Controller 8.5 Timing Diagrams This section contains timing diagrams for the external I/O DMA transfer mode. The DMAREQ[n] signals and DMAACK[n] signals in the timing diagrams are set to Low Active. 8.5.1 Single Address Single Transfer from Memory to I/O (32-bit ROM) SYSCLK CE* ADDR [19:0] ACE* OE*/BUSSPRT* SWE* BWE* DATA [31:0] ACK* DMAREQ[n] DMAACK[n] DMADONE* 1c040 00040 f 00000100 Figure 8.5.1 Single Address Single Transfer from Memory to I/O (Single Read of 32-bit Data from 32-bit ROM) 8-40 Chapter 8 DMA Controller 8.5.2 Single Address Single Transfer from Memory to I/O (16-bit ROM) 00081 f 38080 00080 OE*/BUSSPRT* DATA [15:0] 0000 0100 DMAREQ[n] ADDR [19:0] DMAACK[n] CE* ACE* BWE* ACK* Figure 8.5.2 Single Address Single Transfer from Memory to I/O (Single Read of 32-bit Data from 16-bit ROM) 8-41 DMADONE* SYSCLK SWE Chapter 8 DMA Controller 8.5.3 Single Address Single Transfer from I/O to Memory (32-bit SRAM) SYSCLK CE* ADDR [19:0] ACE* OE*/BUSSPRT* SWE* BWE* DATA [31:0] ACK* DMAREQ[n] DMAACK[n] DMADONE* f 00000100 0 f 1c040 00140 Figure 8.5.3 Single Address Single Transfer from I/O to Memory (Single Write of 32-bit Data to 32-bit SRAM) 8-42 Chapter 8 DMA Controller 8.5.4 Single Address Burst Transfer from Memory to I/O (32-bit ROM) 00043 00042 f 00041 CE* 1c040 00040 ACE* OE*/BUSSPRT* 00000100 fffffeff 00000108 fffffef7 ADDR [19:0] Figure 8.5.4 Single Address Burst Transfer from Memory to I/O (Burst Read of 4-word Data from 32-bit ROM) 8-43 DMADONE* DATA [31:0] SYSCLK SWE* BWE* ACK* DMAREQ[n] DMAACK[n] Chapter 8 DMA Controller 8.5.5 Single Address Burst Transfer from I/O to Memory (32-bit SRAM) 00143 f f f f 00141 00140 0 OE*/BUSSPRT* SWE* BWE* f 00000100 ACE* ACK* CE* f fffffeff 0 00000108 00142 0 fffffef7 0 ADDR [19:0] Figure 8.5.5 Single Address Burst Transfer from I/O to Memory (Burst Write of 4-word Data from 32-bit SRAM) 8-44 DMADONE* DMAREQ[n] DMAACK[n] DATA [31:0] SYSCLK SYSCLK CE* 00680 00681 00682 00683 00684 00685 00686 00687 ADDR [19:0] 38080 ACE* OE*/BUSSPRT* SWE* f 00000900 fffff6ff 00000908 fffff6f7 0 f 0 f 0 f 0 f 0 00000910 f 0 fffff6ef f 0 00000918 f 0 fffff6e7 f Figure 8.5.6 Single Address Burst Transfer from I/O to Memory (Burst Write of 8-word Data to 32-bit SRAM) 8-45 BWE* DATA [31:0] ACK* DMAREQ[n] DMAACK[n] Chapter 8 DMA Controller DMADONE* Chapter 8 DMA Controller 8.5.6 Single Address Single Transfer from Memory to I/O (16-bit ROM) SYSCLK CE* ADDR [19:0] ACE* OE*/BUSSPRT* SWE* BWE* DATA [15:0] ACK* DMAREQ[n] DMAACK[n] DMADONE* f 0000 38080 00080 Figure 8.5.7 Single Address Single Transfer from Memory to I/O (Single Read from 16-bit ROM to 16-bit Data) 8-46 Chapter 8 DMA Controller 8.5.7 Single Address Single Transfer from I/O to Memory (16-bit SRAM) 00280 c f OE*/BUSSPRT* DATA [15:0] ACE* 0000 ADDR [19:0] f SYSCLK ACK* DMAREQ[n] SWE* BWE* CE* Figure 8.5.8 Single Address Single Transfer from I/O to Memory (Single Write of 16-bit Data to 16-bit SRAM) 8-47 DMADONE* DMAACK[n] Chapter 8 DMA Controller 8.5.8 Single Address Single Transfer from Memory to I/O (32-bit Half Speed ROM) 00041 SYSCLK 1c041 f OE*/BUSSPRT* ADDR [19:0] DATA [31:0] ACE* fffffeff ACK* SDCLK DMAREQ[n] CE* SWE* BWE* DMAACK[n] Figure 8.5.9 Single Address Single Transfer from Memory to I/O (Single Read of 32-bit Data from 32-bit Half Speed ROM) 8-48 DMADONE* Chapter 8 DMA Controller 8.5.9 Single Address Single Transfer from I/O to Memory (32-bit Half Speed SRAM) 00140 0 f DATA [31:0] 00000100 SYSCLK 1c041 f OE*/BUSSPRT* DMAREQ[n] CE* ACE* SWE* BWE* ACK* DMAACK[n] Figure 8.5.10 Single Address Single Transfer from I/O to Memory (Single Write of 32-bit Data to 32-bit Half Speed SRAM) ADDR [19:0] 8-49 DMADONE* SDCLK Chapter 8 DMA Controller 8.5.10 Single Address Single Transfer from Memory to I/O (64-bit SRAM) SDCLK CS* ADDR [19:5] RAS* CAS* WE* CKE* OE* DQM [7:0] DATA [63:0] ACK* DMAREQ[n] DMAACK[n] DMADONE* ff 00 ff 0000 0040 Figure 8.5.11 Single Address Single Transfer from Memory to I/O (Single Read of 64-bit Data from 64-bit SDRAM) 8-50 Chapter 8 DMA Controller 8.5.11 Single Address Single Transfer from I/O to Memory (64-bit SDRAM) SDCLK CS* ADDR [19:5] RAS* CAS* WE* CKE* OE* DQM [7:0] DATA [63:0] ACK* DMAREQ[n] DMAACK[n] DMADONE* ff 00 ff 0001 0040 Figure 8.5.12 Single Address Single Transfer from I/O to Memory (Single Write of 64-bit Data to 64-bit SDRAM) 8-51 Chapter 8 DMA Controller 8.5.12 Single Address Single Transfer from Memory to I/O of Last Cycle when DMADONE* Signal is Set to Output SDCLK CS* ADDR [19:5] RAS* CAS* WE* CKE* OE*/BUSSPRT* DQM [7:0] DATA [63:0] ACK* DMAREQ[n] DMAACK[n] DMADONE* ff 00 ff 0000 0041 Figure 8.5.13 Single Address Single Transfer from Memory to I/O (Single Read of 64-bit Data from 64-bit SDRAM) 8-52 Chapter 8 DMA Controller 8.5.13 Single Address Single Transfer from Memory to I/O (32-bit SDRAM) ff 0000 0080 ff DATA [31:0] DQM [7:0] f0 00000100 0081 fffffeef DMAREQ[n] DMAACK[n] SDCLK OE*/BUSSPRT* Figure 8.5.14 Single Address Single Transfer from Memory to I/O (Single Read of 32-bit Data from 32-bit SDRAM) ADDR [19:5] 8-53 DMADONE* WE* RAS* CAS* CKE* ACK* CS* Chapter 8 DMA Controller 8.5.14 Single Address Single Transfer from I/O to Memory (32-bit SDRAM) SDCLK CS* ADDR [19:5] RAS* CAS* WE* CKE* OE* DQM [7:0] DATA [31:0] ACK* DMAREQ[n] DMAACK[n] DMADONE* ff f0 00000100 ff ff 0002 0080 0081 Figure 8.5.15 Single Address Single Transfer from I/O to Memory (Single Write of 32-bit Data to 32-bit SDRAM) 8-54 Chapter 8 DMA Controller 8.5.15 External I/O Device – SRAM Dual Address Transfer SYSCLK CE* (SRAM) CE* (I/O device) ADDR [19:0] ACE* OE*/BUSSPRT* SWE* BWE* DATA [31 : 0] ACK* DMAREQ[n] DMAACK[n] DMADONE* f VXVXVXVXVXVXVXV f f f f f f f f Valid Valid Valid Valid Valid Valid Valid Valid Figure 8.5.16 Dual Address Transfer from External I/O Device to SRAM (8-word Burst Transfer to 32-bit Bus SRAM) 8-55 Chapter 8 DMA Controller SYSCLK CE* (SRAM) CE* (I/O device) ADDR [19:0] ACE* OE*/BUSSPRT* SWE* BWE* DATA [31:0] ACK* DMAREQ[n] DMAACK[n] DMADONE* V V f V V 0 Valid f 0 Valid f 0 Valid f 0 Valid f Figure 8.5.17 Dual Address Transfer from SRAM to External I/O Device (4-word Burst Transfer from 32-bit Bus SRAM) 8-56 Chapter 8 DMA Controller 8.5.16 External I/O Device – SDRAM Dual Address Transfer SDCLK/SYSCLK CS* CE* ADDR [19:0] RAS* CAS* WE* CKE OE*/BUSSPRT* DQM[7:0] DATA [31:0] ACK* ACE* SWE* BWE* DMAREQ[n] DMAACK[n] DMADONE* f V X V X ff V X V Valid f0 V V V ff Figure 8.5.18 Dual Address Transfer from External I/O Device to SDRAM (4-word Burst Transfer to 32-bit SDRAM) 8-57 Chapter 8 DMA Controller SDCLK/SYSCLK CS* CE* ADDR [19:0] RAS* CAS* WE* CKE OE*/BUSSPRT* DQM[7:0] DATA [31:0] ACK* ACE* SWE* BWE* DMAREQ[n] DMAACK[n] DMADONE* f f f f f f f f f ff f0 ff Valid Valid Valid Valid Valid Valid Valid Valid V Figure 8.5.19 Dual Address Transfer from SDRAM to External I/O Device (8-word Burst Transfer from 32-bit SDRAM) 8-58 Chapter 8 DMA Controller 8.5.17 External I/O Device (Non-burst) – SDRAM Dual Address Transfer SDCLK/SYSCLK CS* CE* ADDR[19:0] RAS* CAS* WE* CKE OE*/ BUSSPRT* DQM[7:0] DATA[31:0] ACK* ACE* SWE* BWE* DMAREQ[n] DMAACK[n] DMADONE* f V V ff V V f0 Valid V V V ff Figure 8.5.20 Dual Address Transfer from External I/O Device (Non-Burst) to SDRAM (4-word Burst Transfer to 32-bit SDRAM: Set DMCCRn.SBINH to “1”) 8-59 Chapter 8 DMA Controller SDCLK/SYSCLK CS* CE* ADDR[19:0] RAS* CAS* WE* CKE OE*/BUSSPRT* DQM[7:0] DATA[31:0] ACK* ACE* SWE* BWE* DMAREQ[n] DMAACK[n] DMADONE* f 0 f 0 f 0 f 0 f ff f0 VVVV Valid ff Valid Valid Valid Figure 8.5.21 Dual Address Transfer from SDRAM to External I/O Device (4-word Burst Transfer from 32-bit SDRAM: Set DMCCRn.DBINH to “1”) 8-60 Chapter 9 SDRAM Controller 9. 9.1 SDRAM Controller Characteristics The SDRAM Controller (SDRAMC) generates the control signals required to interface with the SDRAM. There are a total of four channels, which can each be operated independently. The SDRAM Controller supports various bus configurations and a memory size of up to 2 GB. The SDRAM has the following characteristics. • • • • • • • Memory clock (SDCLK) frequency: 50 − 133 MHz (For relationship between CPU clock and memory clock, see Section 6.1) Four independent memory channels Can use registered DIMM Selectable data bus width for each channel: 64-bit/32-bit Supports critical word first access of the TX49/H3 core Supports DMAC special Burst access (address decrement/fix) Programmable SDRAM timing latency Can set timing to match the clock frequency used and the memory speed. Can realize a system with optimized memory performance. Can write to any byte during Single or Burst Write operation. This feature is controlled by the DQM signal. Can set the refresh cycle to be programmable. SDRAM refresh mode: both auto refresh and self refresh are possible. Low power consumption mode: can select between self refresh or pre-charge power down SDRAM Burst length: fixed to "2" SDRAM addressing mode: Fixed to the Sequential mode Supports systems with high fan-out Supports two selectable data read-back buses and supports the Slow Write Burst Mode in order to handle data buses with large load. In order to maintain timing consistency during Read operation, it is possible to select whether to use the feedback clock to latch data or to by-pass this latch path. Two clock cycles are used for each Write operation when in the Slow Write Burst Mode. Can use the ECC or parity generation/check functions. Can select EC (Error Check only), ECC (Error Check and Correct), or ECC + Scrub (write correction data back to memory) when using the ECC function. Can select Odd parity/Even parity when using the Parity function. • • • • • • • • • • 9-1 Chapter 9 SDRAM Controller 9.2 Block Diagram SDRAMC SDCS [3 : 0] * Channel 0 – 7 Control Register G-Bus I/F Signal Timing Register G-Bus Interface Control Control Circuit CKE WE* RAS* CAS* DQM [7 : 0] Command/Load Register Refresh Counter ECC Control Signal G-Bus I/FSignal ECC ECC Control Signal EBIF Control Signal ADDR [19 : 5] EBIF DATA [63 : 0] CB [7 : 0] G-Bus CG SDCLK[3:0] Figure 9.2.1 Block Diagram of SDRAMC 9-2 Chapter 9 SDRAM Controller 9.3 Detailed Explanation Supported SDRAM configurations This controller supports the SDRAM configurations listed below in Table 9.3.1. The MW field of the SDRAM Channel Control Register (SDCCRn) can be used to separately set the data bus width for each channel to either 64 bits or 32 bits. DATA[31:0] and DQM[3:0] are used when using a 32-bit data bus. DQM[7:4] output High. DATA[63:32] output an undefined value when DATA[31:0] become the output, but enter the High-Z state when DATA[31:0] are the input. When in the Big Endian Mode, first external access of the upper word (bits 63:32) of the internal data bus is performed, then external access of the lower word (bits 31:0) is performed. When in the Little Endian Mode, first external access of the lower word (bits 31:0) is performed, then external access of the upper word (bits 63:32) is performed. When using a 32-bit data bus, two external access will always be performed even when accessing less than 32 bits of data. The maximum memory capacity per channel when a 64-bit data bus is configured is 1 GBytes when using 16 512-Mbit SDRAMs with a 4-bit data bus. The total maximum memory capacity is 4 GBytes when totaling up the four channels. Table 9.3.1 Supported SDRAM Configurations SDRAM Configuration 1 M × 16 16 Mbit 2-bank 2M×8 4M×4 2 M × 32 2 M × 32 2-bank 64 Mbit 4 M × 16 4 M × 16 8M×8 16 M × 4 2 M × 32 4-bank 4 M × 16 8M×8 16 M × 4 4 M × 32 128 Mbit 4-bank 8 M × 16 16 M × 8 32 M × 4 16 M × 16 256 Mbit 4-bank 32 M × 8 64 M × 4 32 M × 16 512 Mbit 4-bank 64 M × 8 128 M × 4 9.3.1 Row Address (bit) 11 11 11 11 12 11 13 13 13 11 12 12 12 12 12 12 12 13 13 13 13 13 13 Column Address (bit) 8 9 10 9 8 10 8 9 10 8 8 9 10 8 9 10 11 9 10 11 10 11 12 Remarks See Note 1 See Note 1 See Note 1 See Note 1 See Note 1,2 See Note 2 See Note 1,2 Note1: The SDRAM Controller logic-wise does support these configurations, but please design carefully since the memory bus load will be large. Note2: This SDRAM configuration has 512 Mbytes of memory on a channel. If it is mapped to physical address space beginning with address 0, it overlaps the address space for the ROM wherein the bootstrap vectors reside. 9-3 Chapter 9 SDRAM Controller 9.3.2 Address Mapping Physical Address Mapping It is possible to map each of the four channels to an arbitrary physical address using the Base Address field (SDCCRn.BA[35:21]) of the SDRAM Channel Control Register and the Address Mask Field (SDCCRn.AM[35:21]). The channel that becomes True in the following equation is selected. paddr[35:21] & !AM[35:21] = BA[35:21] & !AM[35:21] In the above equation, "paddr" represents the accessed physical address, "&" represents the AND of each bit, and "!" represents the logical NOT of each bit. Operation is undefined when multiple channels are simultaneously selected, or when external bus controllers or PCI controllers are simultaneously selected. 9.3.2.1 9-4 Chapter 9 SDRAM Controller 9.3.2.2 Address Signal Mapping (64-bit Data Bus) Table 9.3.2 shows the address signal mapping when using a 64-bit data bus. B0 is used in the bank selection in memory with a two-bank configuration. [B1:B0] are used in the bank selection in memory with a four-bank configuration. Bits with the description "L/H" output High when performing auto-precharging, or output Low when not performing auto-precharging. Table 9.3.2 Address Signal Mapping (64-bit Data Bus) (1/2) Row address width = 11 Column address width = 8 Address bit ADDR [19:5] Column Address Row Address 19 (B0) 22 22 18 (B1) 23 23 17 21 21 16 20 20 15 (AP) L/H 21 14 L/H 20 13 L/H 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 Row Address Width = 11 Column Address Width = 9 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 23 23 18 (B1) 23 23 17 23 23 16 23 23 15 (AP) L/H 21 14 23 20 13 22 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 Row Address Width = 11 Column Address Width = 10 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 24 24 18 (B1) 23 23 17 23 23 16 24 24 15 (AP) L/H 21 14 23 20 13 22 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 Row Address Width = 12 Column Address Width = 8 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 23 23 18 (B1) 24 24 17 23 23 16 22 22 15 (AP) L/H 21 14 24 20 13 23 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 Row Address Width = 12 Column Address Width = 9 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 24 24 18 (B1) 25 25 17 24 24 16 22 22 15 (AP) L/H 21 14 24 20 13 23 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 Row Address Width = 12 Column Address Width = 10 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 25 25 18 (B1) 26 26 17 25 25 16 22 22 15 (AP) L/H 21 14 24 20 13 23 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 9-5 Chapter 9 SDRAM Controller Table 9.3.2 Address Signal Mapping (64-bit Data Bus) (2/2) Row Address Width = 12 Column Address Width = 11 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 26 26 18 (B1) 27 27 17 26 26 16 25 22 15 (AP) L/H 21 14 24 20 13 23 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 Row Address Width = 13 Column Address Width = 8 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 24 24 18 (B1) 25 25 17 23 23 16 22 22 15 (AP) L/H 21 14 25 20 13 24 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 Row Address = 13 Column Address Width = 9 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 25 25 18 (B1) 26 26 17 23 23 16 22 22 15 (AP) L/H 21 14 25 20 13 24 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 Row Address Width = 13 Column Address Width = 10 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 26 26 18 (B1) 27 27 17 23 23 16 22 22 15 (AP) L/H 21 14 25 20 13 24 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 Row Address Width = 13 Column Address Width = 11 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 27 27 18 (B1) 28 28 17 23 23 16 26 22 15 (AP) L/H 21 14 25 20 13 24 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 Row Address Width = 13 Column Address Width = 12 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 28 28 18 (B1) 29 29 17 27 23 16 26 22 15 (AP) L/H 21 14 25 20 13 24 19 12 10 18 11 9 17 10 8 16 9 7 15 8 6 14 7 5 13 6 4 12 5 3 11 9-6 Chapter 9 SDRAM Controller 9.3.2.3 Address Signal Mapping (32-bit Data Bus) Table 9.3.3 shows the address signal mapping when using a 32-bit data bus. B0 is used in the bank selection in memory with a two-bank configuration. [B1:B0] are used in the bank selection in memory with a four-bank configuration. Bits with the description "L/H" output High when performing auto-precharging, or output Low when not performing auto-precharging. Table 9.3.3 Address Signal Mapping (32-bit Data Bus) (1/2) Row Address Width = 11 Column Address Width = 8 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 21 21 18 (B1) 22 22 17 20 20 16 19 19 15 (AP) L/H 20 14 L/H 19 13 L/H 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 Row Address Width = 11 Column Address Width = 9 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 22 22 18 (B1) 22 22 17 22 22 16 22 22 15 (AP) L/H 20 14 22 19 13 21 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 Row Address Width = 11 Column Address Width = 10 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 23 23 18 (B1) 22 22 17 22 22 16 23 23 15 (AP) L/H 20 14 22 19 13 21 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 Row Address Width = 12 Column Address Width = 8 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 22 22 18 (B1) 23 23 17 22 22 16 21 21 15 (AP) L/H 20 14 23 19 13 22 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 Row Address Width = 12 Column Address Width = 9 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 23 23 18 (B1) 24 24 17 23 23 16 21 21 15 (AP) L/H 20 14 23 19 13 22 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 Row Address Width = 12 Column Address Width = 10 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 24 24 18 (B1) 25 25 17 24 24 16 21 21 15 (AP) L/H 20 14 23 19 13 22 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 9-7 Chapter 9 SDRAM Controller Table 9.3.3 Address Signal Mapping (32-bit Data Bus) (2/2) Row Address Width = 12 Column Address Width = 11 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 25 25 18 (B1) 26 26 17 25 25 16 24 21 15 (AP) L/H 20 14 23 19 13 22 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 Row Address Width = 13 Column Address Width = 8 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 23 23 18 (B1) 24 24 17 22 22 16 21 21 15 (AP) L/H 20 14 24 19 13 23 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 Row Address Width = 13 Column Address Width = 9 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 24 24 18 (B1) 25 25 17 22 22 16 21 21 15 (AP) L/H 20 14 24 19 13 23 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 Row Address Width = 13 Column Address Width = 10 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 25 25 18 (B1) 26 26 17 22 22 16 21 21 15 (AP) L/H 20 14 24 19 13 23 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 Row Address Width = 13 Column Address Width = 11 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 26 26 18 (B1) 27 27 17 22 22 16 25 21 15 (AP) L/H 20 14 24 19 13 23 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 Row Address Width = 13 Column Address Width = 12 Address Bit ADDR [19:5] Column Address Row Address 19 (B0) 29 29 18 (B1) 28 28 17 26 22 16 25 21 15 (AP) L/H 20 14 24 19 13 23 18 12 9 17 11 8 16 10 7 15 9 6 14 8 5 13 7 4 12 6 3 11 5 2 10 9-8 Chapter 9 SDRAM Controller 9.3.3 Initialization of SDRAM The TX4938 Command Register has functions for generating the cycles required for initializing SDRAM. Using software to set each register makes it possible to execute initial settings at a particular timing. 1 2 Set the SDRAM Channel Control Register (SDCCRn). Set the SDRAM Timing Register (SDCTR). This timing setting is applied to all channels, so please set it to the slowest memory device. Use the SDRAM Command Register (SDCCMD) to issue the Pre-charge All command. Issue the Set Mode Register command in the same manner. Set the refresh count required to initialize SDRAM to the refresh counter (SDCTR.RC)1 and set the refresh cycle (SDCTR.RP).2 3 Wait until the refresh counter returns to “0.” Set the refresh cycle (SDCTR.RP) to the proper value. 3 4 5 6 7 1 2 3 The number of refresh operations can be counted using the refresh counter. With this function, it is no longer necessary to assemble special timing groups in the software when counting refresh operations. Setting the refresh cycle to a small value makes it possible to expedite completion of the refresh cycle required for SDRAM initialization. As described above, please set normal values after the required number of refresh cycles have been generated. Refresh requests have priority over all other SDRAM Controller access requests. Please do not set the memory refresh cycle to an unnecessarily short value. 9-9 Chapter 9 SDRAM Controller 9.3.4 Initialization of Memory Data, ECC/Parity The SDRAMC has functions for simultaneously performing Memory Writes to multiple memory channels. These functions are effective when quickly initializing data memory or ECC/parity memory. Channels for which both the Channel Enable bit (SDCCRn.CE) and the Master Enable bit (SDCCRn.ME) of the SDRAM Channel Control Register are set become the Master channel. Also, channels for which both the Channel Enable bit (SDCCRn.CE) and the Slave Enable bit (SDCCRn.SE) are set become the Slave channel. See Table 9.3.4 Master/Slave Channel Settings for information regarding the Master/Slave channel settings. The slave channel is simultaneously written to when the Master channel is written to. Settings of the Master channel are used when in the ECC/Parity mode. Please set to the same value the SDRAM settings of all channels that are simultaneously written to. Using the DMA Controller and performing 32 double word Burst access is the most efficient way to access the Master channel. The DMAC has registers for setting memory initialization data. When the DMAC is launched by an internal request when in the Single address IO→Memory Transfer mode, the data set in this register are written to memory. See Chapter 8 "DMA Controller" for more information. Table 9.3.4 Master/Slave Channel Settings SDCCRn.CE SDCCRn.ME (Channel Enable) (Master Enable) 0 1 X 0 SDCCRn.SE (Slave Enable) X 0 Description Channel is disabled. Normal operation is performed. W hen a Write operation is executed by a channel where SDCCRn.ME=1, the Write operation is also executed by this channel. Normal operation is performed when this channel is Active. W hen a Write operation is executed by this channel, the Write operation is simultaneously executed by all channels where SDCCRn.SE=1. W hen a Write operation is executed by this channel, the Write operation is simultaneously executed by all channels where SDCCRn.SE=1. A Write operation is also simultaneously executed by this channel when the Write operation is executed by another channel where SDCCRn.ME=1. 1 0 1 1 1 0 1 1 1 9-10 Chapter 9 SDRAM Controller 9.3.5 Low Power Consumption Function Power Down Mode, Self-Refresh Mode SDRAM has two low power consumption modes called the Power Down mode and the SelfRefresh mode. Memory data is lost in the case of the Power Down mode since Memory Refresh is not performed, but the amount of power consumed is reduced the most. Memory data is not lost in the case of the Self-Refresh mode. SDRAM is set to the Power Down mode by using the SDRAM Command Register (SDCCMD) to issue the Power Down Mode command. Similarly, SDRAM is set to the Self-Refresh mode by issuing the Self-Refresh Mode command. The SDRAMC terminates internal refresh circuit operation after one of these commands has been issued. Issuing the Normal Mode command returns operation to normal. When the Power Down Auto Entry bit (SDCTR.PDAE) of the SDRAM Timing Register is set, SDRAM is automatically set to the Power Down mode when memory access is not being performed. The SDRAMC internal refresh circuit will continue operating, so there will be no loss of memory data. If either the Memory Access, Memory Refresh, or Memory command is executed while SDRAM is set to the Power Down mode or the Self-Refresh mode, then the Power Down mode and Self-Refresh mode will automatically terminate, and memory access will be performed. After returning from a low power consumption mode that was set by either the Power Down Mode command or the Self-Refresh Mode command, the next memory access starts after 10 SDCLK cycles pass. This latency sufficiently follows the stipulated time from Power Down to first access of the SDRAM. If setting the Power Down Auto Entry bit automatically causes memory access to be requested when set in the Power Down mode, then add 1 SDCLK cycle more of access latency than when not in the Power Down mode. 9.3.5.2 Advanced CKE Advanced CKE is a function that speeds up the CKE assertion and deassertion timing by 1 clock cycle. This function is set using the Address CKE bit (SDCTR.ACE) of the SDRAM Timing Register. Advanced CKE assumes that it will be used in a system where SDRAM data is saved even when the power to the TX4938 itself is cut. Since CKE On/Off becomes 1 cycle faster, it is possible to delay CKE by 1 clock cycle using external power consumption control logic. Please set the SDRAM to the Self-Refresh mode before using this function. When combining advanced CKE functionality with Power Down Auto Entry functionality and memory access is requested while in the Power Down mode, two more SDCLK cycles of latency are added than would be the case when not in the Power Down mode. 9.3.5.1 9-11 Chapter 9 SDRAM Controller 9.3.6 Bus Errors The SDRAMC detects bus errors in the following situations: • • Bus time-out occurs during Read or Write operation to the SDRAMC ECC 2-bit fault error or Parity error occurs during SDRAM Read operation If a bus error occurs when accessing the SDRAMC, then the SDRAMC will immediately assert the current operation. Then, the current SDRAM cycle will end, remaining SDRAMC operations will be aborted, a Pre-charge All command will be issued to SDRAM, then the SDRAMC will return to the Idle state. 9.3.7 Memory Read and Memory Write The RAS* signal, CAS* signal, WE*, signal, and ADDR[19:5] signal are set up 1 cycle before the SDCS* signal is asserted in the case of the Read command, Write command, Pre-charge command, or Mode Register Set command. The same set up time is observed even for active commands if the Active Command Ready bit (SDCTR.DA) of the SDRAM Timing Register is set. Figure 9.5.1 is a timing diagram of Single Read operation when the SDCTR.DA bit is cleared. Figure 9.5.2 is a timing diagram of Single Read operation when the SDCTR.DA bit is set. Burst or Single Read operation is terminated by the Pre-charge Active Bank command. Burst or Single Write operation is terminated by the Auto Pre-charge Command. 9.3.8 Slow Write Burst When the Slow Write Burst bit (SDCTR.SWB) of the SDRAM Timing Register is cleared, the data changes at each cycle during Burst Write operation (Figure 9.5.6). When the Slow Write Burst bit is set, the data will change every other cycle (Figure 9.5.7). When the Slow Write Burst bit is set, all Write accesses will operate as tRCD = 3tCK regardless of the setting of the RAS-CAS Delay bit (SDCTR.RCD) of the SDRAM Timing Register. The RAS-CAS Delay bit setting becomes valid when Slow Write Burst access is invalid. The setting of the Slow Burst bit does not have any effect on Read access. 9.3.9 Clock Feedback When performing Read access at fast rates like 100 MHz, there may be insufficient set up time if an attempt to directly latch Read data with the internal clock is made. With the TX4938, it is possible to latch data using SDRAM clock SDCLKIN that is input from outside the chip. Please connect SDCLKIN to one of the SDCLK[3:0] pins and the external source. 9-12 Chapter 9 SDRAM Controller 9.3.10 ECC Table 9.3.5 shows the supported ECC/Parity functions. The ECC/Parity mode can be set separately for each channel using the ECC/Parity Mode field (SDCCRn.ECC) of the SDRAM Channel Control Register. The ECC enable bit (ECCCR.ECCE) of the ECC Control Register must be set in order to use the ECC function. No error detection, logging, or notification will be performed if this bit is not set. Table 9.3.5 ECC/Parity Mode ECC Field 0x0 0x1 9.3.10.1 ECC/Parity Mode Mode Name NOP Mode EC Mode Description Disables the ECC/Parity function. EC (Error Check) enable Read: Performs only error checking. Correction is not performed. Write: Generates check code. ECC (Error Check and Correct) enable Read: Performs error checking and correction. Write: Generates check code. ECC + scrub enable Read: Performs error checking and correction. Corrected data is written back to memory if an error occurs. Write: Generates check code. Even parity enable Read: Performs error checking. Write: Generates even parity. Odd parity enable Read: Performs error checking. Write: Generates odd parity. Reserved Reserved 0x2 ECC Mode 0x3 ECC + Scrub Mode 0x4 Even Parity Mode 0x5 0x6 0x7 Odd Parity Mode — — • • • The ECC/Parity Mode changes dynamically according to each channel setting. Error checking is performed when writing data smaller than 64 bits when Memory Read access is being performed while in the EC Mode, ECC Mode, or ECC + scrub mode. Data correction is performed if the read data cause a single-bit error when in the ECC Mode or the ECC + scrub mode. Data is read unchanged when in any other mode regardless of whether or not an error occurs. 9-13 Chapter 9 SDRAM Controller 9.3.10.2 ECC Error Notification When either an ECC error or a parity error occurs, error data is written into one of the following fields, then error notification is performed as described below: • • • • Error Address Field (ERRAD) in the ECC Status Register (ECCSR) Error ECC/Parity Mode Field (ERRMODE) Error Memory Width Field (ERRMW) Error Syndrome Field (ERRS) The Multi-bit Error bit (ECCSR.MBERR) of the ECC Status Register is set and an interrupt is generated if either an ECC multi-bit error or parity error is detected during any Read/Write access while the Multi-bit Error Interrupt Enable bit (ECCCR.MEI) is set. The Single-bit Error bit (ECCSR.SBERR) of the ECC Status Register is set and an interrupt is generated if an ECC single-bit error is detected during any Read/Write access while the Single-bit Error Interrupt Enable bit (ECCCR.SEI) is set. Multi-bit errors are assigned a higher priority than single-bit errors. If a multi-bit error is detected while the Single-bit Error bit (ECCSR.SBERR) is set, then the Single-bit Error bit (ECCSR.SBERR) is cleared, error data is written for the multi-bit error, then error notification is performed. If a single-bit error is detected while the Multi-bit Error bit (ECCSR.MBERR) is set, the Single-bit Error bit (ECCSR.SBERR) is not set and not error data is written. However, the single-bit error is corrected according to the usual procedure. The following error notification will also be performed if either an ECC multi-bit error or parity error is detected while the Multi-bit Error Bus Error Enable Bit (ECCCR.MEB) of the ECC Control Register is set. During read access by the TX49 core, bus error notification is sent to the TX49 core and an exception is generated. A nonmaskable interrupt is generated during Read-Modify-Write memory Read access that is performed when writing from the TX49 core data that is smaller than 64 bits. Bus error notification is sent to the appropriate bus master during Read/Write access from another bus master. 9-14 Chapter 9 SDRAM Controller 9.3.10.3 Adding Read Latency for Each ECC/Parity Mode When using the ECC/parity function, memory access latency is added according to which ECC/parity mode is selected, whether errors will be generated or not, the error type to be generated, and whether or not to generate bus errors. Table 9.3.6 shows in cycles the memory Read access latency that will be added based on NOP mode operation under each condition. Table 9.3.6 Read Latency Added for Each ECC/Parity Mode ECC/Parity Mode NOP Mode Bus Error Notification (ECCCR.MEB) ⎯ Error Type/Operation ⎯ No error SBErr: Do not correct MBErr: Correct No error SBErr: Do not correct MBErr: Do not correct No error SBErr: Correct MBErr: Do not correct No error SBErr: Correct MBErr: Do not correct No error SBErr: Correct & scrub MBErr: Do not correct No error Added Read Latency (in cycles) 0 0 0 1 2 1 2 1 2 1 Max. 22 3 1 Max. 22 2 0 0 1 1 Disable EC Mode Enable Disable ECC Mode Enable Disable ECC + scrub Mode Enable SBErr: Correct & scrub MBErr: Do not correct No error MBErr: Do not correct No error MBErr: Do not correct Even Parity Mode Odd Parity Mode SBErr = Single-bit error MBErr = Multi-bit error Disable Enable 9-15 Chapter 9 SDRAM Controller 9.3.10.4 ECC Memory Access 8-bit check code is used whether the data bus width is 64 bits or 32 bits. For 32-bit data bus width, check code is generated for and the error check is performed on 64-bit data that consists of two 32-bit data at the double word boundary. CB[7:0] are used for check code reading and writing when in the 64-bit mode. CB[3:0] are used for check code reading and writing when in the 32-bit mode. An 8-bit check code is used for 64bit data. Similar to the data however, accesses to the memory are divided into half with 4 bits being accessed at a time. The upper 4 bits of the check code are accessed simultaneous to when the upper 32 bits of the data are written or read. Similarly, the lower 4 bits of the check code are accessed simultaneous to when the lower 32 bits of the data are written or read. All 64-bit data are always read and checked when set in the EC mode, ECC mode, or ECC + Scrub mode. Consequently, data at the double word boundary, including this data, is read and checked even when accessing data smaller than a double word (word access, byte access, etc.). Read-Modify-Write (RMW) is performed during a Write operation of less than a double word. First, 64 bits of data that include the address where the writing is performed is read. Then, check code is generated for new 64-bit data that has replaced the written data. Single-bit errors are corrected, but multi-bit errors are not. Therefore, if multi-bit errors are detected, no data are written back to memory. If data is being transferred between external I/O and memory during a DMAC single address transfer, check code will not be generated even if the ECC function has been enabled. 9.3.10.5 Diagnostic Mode Setting the Diagnostic Mode bit (ECCCR.DM) of the ECC Control Register makes it possible to use the Diagnostic Mode. When in this mode and writing to a channel for which the ECC function is enabled, the code that is set in the Diagnostic ECC field (ECCCR.DECC) is written in place of the code that was calculated from the Write data. 9-16 Chapter 9 SDRAM Controller 9.4 Registers Table 9.4.1 SDRAM Control Register Offset Address 0x8000 0x8008 0x8010 0x8018 0x8040 0x8058 Bit Width Register Symbol 64 64 64 64 64 64 SDCCR0 SDCCR1 SDCCR2 SDCCR3 SDCTR SDCCMD Register Name SDRAM Channel Control Register 0 SDRAM Channel Control Register 1 SDRAM Channel Control Register 2 SDRAM Channel Control Register 3 SDRAM Timing Register SDRAM Command Register Table 9.4.2 ECC Control Register Offset Address 0xA000 0xA008 Bit Width Register Symbol 64 64 ECCCR ECCSR Register Name ECC Control Register ECC Status Register 9-17 Chapter 9 SDRAM Controller 9.4.1 SDRAM Channel Control Register (SDCCRn) 0x8000 (ch. 0) 0x8008 (ch. 1) 0x8010 (ch. 2) 0x8018 (ch. 3) When the SDCCRn is programmed using a sequence of 32-bit store instructions, the base address and the address mask in the high-order 32-bit portion of the register must be written first, followed by the Channel Enable bit in the low-order 32-bit portion. 63 BA R/W 0x01FC/0x0000 47 AM R/W 0x0000 31 ECC 0 15 RD R/W 0 R/W 0 14 MT R/W 01) 0 13 Reserved 49 48 Reserved :Type :Initial value 33 32 Reserved :Type :Initial value 16 Reserved :Type :Initial value 29 28 12 ME R/W 0 11 SE R/W 0 10 CE R/W 01) 9 Reserved 8 BS R/W 0 7 Reserved 6 RS R/W 0001) 5 4 3 CS R/W 0001) 2 1 Reserved 0 MW R/W 1 :Type :Initial value Bit 63:49 Mnemonic BA[35:21] Field Name Base Address Description Base Address (Default: 0x01FC/0x0000) Specifies the base address. The upper 15 bits [35:21] of the physical address are compared to the value of this field. (Note) Only the default for Channel 0 differs. Channel 0: 0x01FC, Others: 0x0000 Reserved Address Mask (Default: 0x0000) Sets the valid bits for address comparison according to the base address. 0: Bits of the corresponding BA field are compared. 1: Bits of the corresponding BA field are not compared. Reserved ECC/Parity mode (Default: 000) Specifies the channel ECC/Parity type (refer to 9.3.10.1). 000: NOP Mode 001: EC Mode 010: ECC Mode 011: ECC + scrub Mode 100: Even Parity Mode 101: Odd Parity Mode 110: Reserved 110: Reserved Reserved Read/Write R/W 48 47:33 — AM[35:21] — Address Mask ⎯ R/W 32 31:29 — ECC — ECC/Parity Mode ⎯ R/W 28:16 — — ⎯ Figure 9.4.1 SDRAM Channel Control Register (1/2) 9-18 Chapter 9 SDRAM Controller Bit 15 Mnemonic RD Field Name Registered DIMM Description Registered DIMM (Default: 0) Specifies whether the SDRAM connected to the channel is Registered memory. 0: Disable Registered memory 1: Enable Registered memory Reserved Master Enable (Default: 0) Specifies during ECC initialization whether a channel will be made the Master channel. 0: Disable 1: Enable Slave Enable (Default: 0) Specifies during ECC initialization whether a channel will be made the Slave channel. 0: Disable 1: Enable Enable (Default: 0) Specifies whether to enable a channel. 0: Disable 1: Enable Reserved Number of Banks (Default: 0) Specifies the bank count. 0: 2 banks 1: 4 banks Reserved Row Size (Default: 00) Specifies the row size. 00: 2048 Rows (11 bits) 01: 4096 Rows (12 bits) 10: 8192 Rows (13 bits) 11: Reserved Column Size (Default: 000) Specifies the column size. 000: 256 words (8 bits) 001: 512 words (9 bits) 010: 1024 words (10 bits) 011: 2048 words (11 bits) 100: 4096 words (12 bits) 101-111: Reserved Reserved Memory Width (Default: 0) Specifies the bus width. 0: 64 bits 1: 32 bits Read/Write R/W 14:13 12 — ME — Master Enable ⎯ R/W 11 SE Slave Enable R/W 10 CE Channel Enable R/W 9 8 — BS — Bank Count ⎯ R/W 7 6:5 — RS — Row Size ⎯ R/W 4:2 CS Column Size R/W 1 0 — MW — Memory Width ⎯ R/W Figure 9.4.1 SDRAM Channel Control Register (2/2) 9-19 Chapter 9 SDRAM Controller 9.4.2 63 Reserved :Type :Initial value 47 Reserved 1 31 BC 1 15 DA R/W 1 R/W 0 14 SWB R/W 1 1 13 1 12 29 28 ACP R/W 1 11 RP R/W 0x30C :Type :Initial value 27 26 PT R/W 1 25 RCD R/W 1 24 ACE R/W 0 23 PDAE R/W 0 0 0 22 RC R/W 0 0 0 18 17 CASL R/W 1 34 33 DIA R/W 1 16 DRB R/W :Type 0 :Initial value 0 :Type :Initial value 32 SDRAM Timing Register (SDCTR) 0x8040 48 Reserved Bit 63:34 33:32 Mnemonic — DIA Field Name — Write Active Period Reserved Description Data In to Active(tDAL) (Default: 11) Specifies the period from the last Write data to the Active command. 00: Reserved 1 01: 4 tCK 10: 5 tCK 11: 6 tCK Bank Cycle Time (tRC) (Default: 101) 2 Specifies the bank cycle time. 000: 5 tCK 100: 9 tCK 001: 6 tCK 101: 10 tCK 010: 7 tCK 110: Reserved 011: 8 tCK 111: Reserved Active Command Period (tRAS) (Default: 11) Specifies the active command time. 00: 3 tCK 01: 4 tCK 10: 5 tCK 11: 6 tCK Precharge Time (tRP) (Default: 1) Specifies the precharge time. 0: 2 tCK 1: 3 tCK RAS to CAS Delay (tRCD) (Default: 1) Specifies the RAS - CAS delay. 0: 2 tCK 1: 3 tCK Read/Write ⎯ R/W 31:29 BC Bank Cycle Time R/W 28:27 ACP Active Command Time R/W 26 PT Precharge Time R/W 25 RCD RAS-CAS Delay R/W Figure 9.4.2 SDRAM Timing Register (1/2) 1 2 tCK = Clock cycle tRC is used during (i) refresh cycle time, (ii) single Read, (iii) two transfer burst Reads. The bank cycle time is tRAS + tRP + 1tCK if tRAS + tRP < tRC in the case of (ii) (iii). 9-20 Chapter 9 SDRAM Controller Bit 24 Mnemonic ACE Field Name Advanced CKE Description Advanced CKE enable (Default: 0) Enabling this function makes the timing at which CKE changes one cycle earlier. 0: Disable 1: Enable Power Down Auto Entry Enable (Default: 0) Enabling this function makes CKE become “L” while the SDRAMC is in the Idle state. When refresh, memory access, or command execution is performed, CKE automatically becomes “H”, the requested operation is performed, then CKE returns to “L” when the operation is complete. 0: Disable 1: Enable Refresh Counter (Default: 000000) This counter is decremented at each refresh. If the refresh circuit is activated and a value other than “0” is loaded, this field becomes a down counter that stops at “0”. A value other than “0” must be reloaded to start the countdown again. This is used during memory initialization. CAS Latency (tCASL) (Default: 1) Specifies the CAS latency. 0: 2 tCK 1: 3 tCK Data Read Bypass (Default: 0) Selects the Data Read path used. 0: Data Read latches to the register using the feedback clock. 1: Data Read bypasses the feedback clock latch. Delay Activate (tDA) (Default: 1) Specifies the delay from the row address to the bank active command. Setting this bit to “1” sets up the row address two cycles before the active command is executed. 0: 0 tCK 1: 1 tCK Slow Write Burst (tSWB) (Default: 1) Specifies whether to perform Slow Write Burst. 0: Burst Write occurs at each 1 tCK 1: Burst Write occurs at each 2 tCK Reserved Refresh Period (Default: 0x30c) Specifies the clock cycle count that generates the refresh cycle. Refresh is only enabled when at least one SDRAM channel is enabled. Please program the Timing Register before an arbitrary channel is enabled. Default is 0x30C. A refresh cycle occurs for each 7.8 µs@100 MHz in this situation. Read/Write R/W 23 PDAE Power Down Auto Entry R/W 22:18 RC Refresh Counter R/W 17 CASL CAS Latency R/W 16 DRB Data Read Bypass R/W 15 DA Active Command Delay R/W 14 SWB Slow Write Burst R/W 13:12 11:0 — RP — Refresh Period ⎯ R/W Figure 9.4.2 SDRAM Timing Register (2/2) 1 2 tCK = Clock cycle tRC is used during (i) refresh cycle time, (ii) single Read, (iii) two transfer burst Reads. The bank cycle time is tRAS + tRP + 1tCK if tRAS + tRP < tRC in the case of (ii) (iii). 9-21 Chapter 9 SDRAM Controller 9.4.3 63 Reserved :Type :Initial value 47 Reserved :Type :Initial value 31 MDLNO R 0x30 15 14 13 12 11 8 7 CCE R/W 0x0 4 24 23 VERNO R 0x10 3 CMD R/W 0x0 :Type :Initial value 0 :Type :Initial value 16 32 SDRAM Command Register (SDCCMD) 0x8058 48 Reserved Bit 63:32 31:24 Mnemonic — MDLNO Field Name — Model Number Reserved Description Model Number (Default: 0x30) Indicates the model number. The default value is 0x30 for the TX4938. This field is Read Only. Version Number (Default: 0x10) Indicates the version number. The default value is 0x10 for the TX4938. This field is Read Only. Reserved Command Channel Enable Setting one of these bits to “1” enables the command of the corresponding channel. This command is simultaneously executed on all channels that are enabled. bit 7: Channel 3 bit 6: Channel 2 bit 5: Channel 1 bit 4: Channel 0 Command Specifies a command that is performed on memory. 0x0: NOP command 0x1: Set Mode Register command Set SDRAM Mode Register from SDCTR value 0x2: Reserved 0x3: Precharge All command Precharge All SDRAM Banks 0x4: Self-Refresh Mode command Sets SDRAM to the Self-Refresh Mode 0x5: Power Down Mode Command Set SDRAM to the Power Down Mode 0x6: Normal Mode Command Cancel Self-Refresh/Power Down Mode 0x7-0xf: Reserved Read/Write ⎯ R 23:16 VERNO Version Number R 15:8 7:4 — CCE — Command Channel Enable ⎯ R/W 3:0 CMD Command R/W Figure 9.4.3 SDRAM Command Register 9-22 Chapter 9 SDRAM Controller 9.4.4 63 MDLNO 0x10 ECC Control Register (ECCCR) 56 55 0xA000 48 VERNO 0x10 :Type :Initial value 32 47 Reserved :Type :Initial value 31 DECC R/W 0 15 Reserved 0 0 0 0 11 0 10 MEB R/W 0 0 9 MEI R/W 0 0 8 SEI R/W 0 7 Reserved 1 24 23 Reserved 17 16 DM R/W :Type 0 :Initial value 0 ECCE R/W :Type 0 :Initial value Bit 63:56 Mnemonic MDLNO Field Name Model Number Description Model Number (Default: 0x10) Indicates the model number. The default value for the TX4938 is 0x10. This field is Read Only. Address Mask (Default: 0x10) Indicates the version number. The default value for the TX4938 is 0x10. This field is Read Only. Reserved Diagnostic ECC (Default: 0x00) The value set by this field is output from CB[7:0] as the check code when the DM bit is set to “Enable.” Reserved ECC Diagnostic Mode (Default: 0) Specifies whether to use the Diagnostic Mode. 0: Disable 1: Enable Reserved Multi-Bit Error Bus Error Enable (Default: 0) Specifies whether to generate a bus error when a multi-bit error occurs. When this function is enabled, an NMI is generated for RMW * errors occurring during a Write operation to the TX49/H3 core. Bus errors are generated for all other operations. 0: Disable 1: Enable Multi-Bit Error Interrupt Enable (Default: 0) Specifies whether to generate an interrupt during a multi-bit error. 0: Disable 1: Enable Read/Write R 55:48 VERNO Version Number R 47:32 31:24 — DECC — Diagnostic ECC ⎯ R/W 23:17 16 — DM — Diagnostic Mode ⎯ R/W 15:11 10 — MEB — Multi-Bit Error Bus Error Enable ⎯ R/W 9 MEI Multi-Bit Error Interrupt Enable R/W Figure 9.4.4 ECC Control Register (1/2) 9-23 Chapter 9 SDRAM Controller Bit 8 Mnemonic SEI Field Name Single-Bit Error Interrupt Enable Description Single-Bit Error Interrupt Enable (Default: 0) Specifies whether to generate an interrupt during a single-bit error. 0: Disable 1: Enable Reserved ECC Enable (Default: 0) Specifies whether to enable the ECC/Parity function. When disabled, the ECC function will not operate even if the ECC Parity Mode field (SDCCRn.ECC) selects the ECC/Parity Mode. 0: Disable 1: Enable Read/Write R/W 7:1 0 — ECCE — ECC Enable ⎯ R/W Figure 9.4.4 ECC Control Register (2/2) 9-24 Chapter 9 SDRAM Controller 9.4.5 63 ERRAD R — 47 ERRAD R — 31 ERRAD R — 15 ERRS R — — — — — — — — — — — — — — — 28 — 27 Reserved ECC Status Register (ECCSR) 0xA008 48 — — — — — — — — — — — — — — — 32 :Type :Initial value — 26 — — 24 — 23 — 22 — 21 ERRMW — 20 — — — — 16 :Type :Initial value ERRMODE R — — 8 Reserved — 7 — Reserved :Type :Initial value 2 1 0 R — Reserved MBERR SBERR R/W 0 R/W :Type 0 :Initial value Bit 63:28 Mnemonic ERRAD Field Name Error Address Description Error Address (Default: Unknown) A 36-bit physical address is set when an error occurs. This address is retained until either SBERR or MBERR is cleared. This field is Read Only. Reserved Error ECC Mode (Default: Unknown) The ECC/Parity Mode is set when an error occurs. This address is retained until either SBERR or MBERR is cleared. This field is Read Only. Reserved Error Memory Width (Default: Unknown) The memory data width is set when an error occurs. This address is retained until either SBERR or MBERR is cleared. This field is Read Only. 0: 64 bits 1: 32 bits Reserved Error Syndrome (Default: Unknown) The error syndrome for when errors occur is set. The syndrome is retained until either SBERR or MBERR is cleared. This field is Read Only. Reserved Multi-Bit Error (Default: 0) This bit is set to “1” when a multi-bit error occurs, or when a parity error occurs while in the Parity Mode. Once a multi-bit error occurs, until this bit is cleared, no status in the Status Register is updated even if new multi/single-bit errors occur. 0: No error 1: Generate error Single-Bit Error (Default: 0) This bit is set to “1” when a single-bit error occurs. Once a single-bit error occurs, until this bit is cleared, no status in the Status Register is updated even if new single-bit error occurs. If a multi-bit error occurs, status is updated regardless of whether a single-bit error has occurred or not. 0: No error 1: Generate error Read/Write R 27 26:24 — ERRMODE — Error ECC/Parity Mode — Error Memory Width ⎯ R 23:22 21 — ERRMW ⎯ R 20:16 15:8 — ERRS — Error Syndrome ⎯ R 7:2 1 — MBERR — Multi-Bit Error ⎯ R/W 0 SBERR Single-Bit Error R/W Figure 9.4.5 ECC Status Register 9-25 Chapter 9 SDRAM Controller 9.5 Timing Diagrams Please note the following when referring to the timing diagrams in this section: the shaded area each diagram expresses values that have yet to be determined. in 9.5.1 Single Read (64-bit Bus) SDCLK SDCS* ADDR [19:5] RAS* 7fff 0000 CAS* WE* CKE DQM [7:0] DATA [63:0] CB [7:0] ff 00 ff ACK*/READY* Figure 9.5.1 Single Read (tRCD = 2, tCASL = 2, tDA = 0, 64-bit Bus) 9-26 Chapter 9 SDRAM Controller SDCLK SDCS* ADDR [19:5] 7fff 0000 RAS* CAS* WE* CKE DQM [7:0] DATA [63:0] CB [7:0] ACK*/READY* ff 00 ff Figure 9.5.2 Single Read (tRCD = 3, tCASL = 3, tDA = 1, 64-bit Bus) 9-27 Chapter 9 SDRAM Controller 9.5.2 Single Write (64-bit Bus) SDCLK SDCS* ADDR [19:5] 0000 0400 RAS* CAS* WE* CKE DQM [7:0] DATA [63:0] CB [7:0] ACK*/READY* ff 00 ff Figure 9.5.3 Double-Word Single Write (tRCD = 2, tDA = 0, 64-bit Bus) 9-28 Chapter 9 SDRAM Controller SDCLK SDCS* ADDR [19:5] 0000 0400 RAS* CAS* WE* CKE DQM [7:0] DATA [63:0] CB [7:0] ff f0 ff ACK*/READY* Figure 9.5.4 One-Word Single Write (tRCD = 3, tDA = 1, 64-bit Bus) 9-29 Chapter 9 SDRAM Controller 9.5.3 Burst Read (64-bit Bus) 0002 0004 0001 0000 RAS* SDCS* CAS* SDCLK WE* ff 00 ff Figure 9.5.5 Eight-Word Burst Read (tRCD = 2, tCASL = 2, tDA = 0, 64-bit Bus) 9-30 ACK*/READY CKE ADDR [19:5] DATA [63:0] CB [7:0] DQM [7:0] Chapter 9 SDRAM Controller 9.5.4 Burst Write (64-bit Bus) 0402 0000 0000 DQM [7:0] ff DATA [63:0] CB [7:0] WE* CKE 00 ff Figure 9.5.6 Eight-Word Burst Write (tRCD = 2, tDA = 0, 64-bit Bus) 9-31 ACK*/READY SDCLK SDCS* ADDR [19:5] RAS* CAS* Chapter 9 SDRAM Controller 9.5.5 Burst Write (64-bit Bus, Slow Write Burst) 04C3 00 ff 00C2 00C1 00C0 0000 SDCS* ff 00 ff 00 ff 00 ff 0 Figure 9.5.7 Eight-Word Burst Write (tRCD = 2, tDA = 0, 64-bit Bus, Slow Write Burst) 9-32 ACK*/READY* ADDR [19:5] DATA [63:0] CB [7:0] RAS* CAS* WE* DQM [7:0] SDCLK CKE Chapter 9 SDRAM Controller 9.5.6 Single Read (32-bit Bus) SDCLK SDCS* ADDR [19:5] RAS* 7fff 0000 CAS* WE* CKE DQM [7:0] DATA [31:0] CB [7:0] ff ff f0 ACK*/READY* Figure 9.5.8 Double-Word Single Read (tRCD = 2, tCASL = 2, tDA = 0, 32-bit Bus) 9-33 Chapter 9 SDRAM Controller SDCLK SDCS* ADDR [19:5] 7fff 0000 RAS* CAS* WE* CKE DQM [7:0] DATA [31:0] CB [7:0] ff ff f0 ACK*/READY* Figure 9.5.9 One-Word Single Read (tRCD = 2, tCASL = 3, tDA = 0, 32-bit Bus) 9-34 Chapter 9 SDRAM Controller 9.5.7 Single Write (32-bit Bus) SDCLK SDCS* ADDR [19:5] 0000 0400 RAS* CAS* WE* CKE DQM [7:0] DATA [63:0] CB [7:0] ff f0 ff ACK*/READY* Figure 9.5.10 Double-Word Single Write (tRCD = 2, tDA = 0, 32-bit Bus) 9-35 Chapter 9 SDRAM Controller SDCLK SDCS* ADDR [19:5] 0000 0400 RAS* CAS* WE* CKE DQM [7:0] DATA [63:0] CB [7:0] ff f0 ff ACK*/READY* Figure 9.5.11 One-Word Single Write (tRCD = 3, tDA = 0, 32-bit Bus) 9-36 Chapter 9 SDRAM Controller 9.5.8 Low Power Consumption and Power Down Mode SDCLK SDCS* ADDR [19:5] RAS* CAS* WE* CKE DQM [7:0] DATA [63:0] CB [7:0] ACK*/READY* ff Figure 9.5.12 Transition to Low Power Consumption Mode (SDCTR.ACE = 0) 9-37 Chapter 9 SDRAM Controller SDCLK SDCS* ADDR [19:5] RAS* CAS* WE* CKE DQM [7:0] DATA [63:0] CB [7:0] ACK*/READY* ff Figure 9.5.13 Transition to Power Down Mode 9-38 Chapter 9 SDRAM Controller 0000 0006 ADDR [19:5] CKE DQM [7:0] ff DATA [63:0] CB [7:0] SDCS* RAS* CAS* WE* 00 ff Figure 9.5.14 Return From Low Power Consumption/Power Down Mode (SDCTR.PDAE = 0, SDCTR.ACE = 0) 9-39 ACK*/READY* SDCLK Chapter 9 SDRAM Controller SDCLK SDCS* ADDR [19:5] RAS* 0000 0400 CAS* WE* CKE DQM [7:0] DATA [63:0] CB [7:0] ff 00 ff ACK*/READY* Figure 9.5.15 Power Down Auto Entry (SDCTR.PDAE = 1, SDCTR.ACE = 0) 9-40 Chapter 9 SDRAM Controller SDCLK SDCS* ADDR [19:18] SDCSFCMD.BK ADDR [17:12] ADDR [12:5] SDCSFCMD.CMD RAS* CAS* WE* CKE DQM [7:0] DATA [63:0] CB [7:0] ff ACK*/READY Figure 9.5.16 LCR Command 9-41 Chapter 9 SDRAM Controller 9.6 SDRAM Usage Example Figure 9.6.1 illustrates an example SDRAM connection. Figure 9.6.2 illustrates an example SDRAM DIMM (168-pin) connection. TX4938 DQM [7:0] SDRAM (×16 bits) DQM [7] DQM [6] DQM [5] DQM [4] DQM [3] DQM [2] DQM [1] DQM [0] UDQM LDQM UDQM LDQM A [12:0] BS0 BS1 CS* RAS* CAS* W E* UDQM LDQM A [12:0] BS0 BS1 CS* RAS* CAS* W E* UDQM LDQM A [12:0] BS0 BS1 CS* RAS* CAS* W E* ADDR [19:5] ADDR [17:5] A [12:0] ADDR [19] BS0 ADDR [18] BS1 CS* RAS* CAS* W E* SDCS*[0] RAS* CAS* WE* SDCLKIN SDCLK [0] CKE CLK CKE DQ [15:0] D [63:48] CLK CKE DQ [15:0] D [47:32] CLK CKE DQ [15:0] D [31:16] CLK CKE DQ [15:0] D [15:0] DATA [63:0] Figure 9.6.1 SDRAM (×16 bits) Connection Example TX4938 ADDR[19:5] ADDR[16:5] A[11:0] ADDR[19] BA0 ADDR[18] BA1 DQMB[7:0] S0 S1 128MB unbuffer DIMM × 2 A[11:0] BA0 BA1 DQMB[7:0] S0 S1 DQM[7:0] SDCS[0]* SDCS[1]* RAS* CAS* WE* CKE SDCLKIN SDCLK[0] SDCLK[1] SDCLK[2] SDCLK[3] DATA[63:0] RAS* CAS* W E* CKE0 CKE1 CK0 CK1 RAS* CAS* W E* CKE0 CKE1 CK0 CK1 DQ[63:0] DQ[63:0] Figure 9.6.2 168-pin DIMM Connection Example 9-42 Chapter 10 PCI Controller 10. PCI Controller 10.1 Features The TX4938 PCI Controller functions as a bus bridge between the TX4938 External PCI and the internal bus (G-Bus). 10.1.1 Overall • • • • • • • • • • • • • Compliant to “PCI Local Bus Specification Revision 2.2” PCI Bus: 32-bit data bus; Internal Bus: 64-bit data bus Maximum PCI bus clock operating frequency: 66 MHz Dual address cycle support (40-bit PCI address space) Supports both the Initiator and Target functions Supports power management functions that are compliant to PCI Bus Power Management Interface Specifications Version 1.1. On-chip PCI Bus Arbiter, can connect to a maximum of four external bus masters 1-channel on-chip DMA Controller (PDMAC) dedicated to the PCI Controller Supports six PCI clock outputs The Internal Bus clock and PCI Bus clock are asynchronous and can be set independently Includes function for booting the TX4938 from memory on the PCI Bus Can set configuration data from serial ROM Mounted a retry function on the Internal Bus side also in order to avoid deadlock on the PCI Bus. 10.1.2 Initiator Function • • • • • • Single and Burst transfer from the Internal Bus to the PCI Bus Supports memory, I/O, configuration, special cycle, and interrupt acknowledge transactions. Address mapping between the Internal Bus and the PCI Bus can be modified Mounted 8-stage 64-bit data one FIFO each for Read and Write Post Write function enables quick termination of a maximum of four Write transactions by the GBus without waiting for completion on the PCI Bus. Endian switching function 10-1 Chapter 10 PCI Controller 10.1.3 Target Function • • • • • • • • • Single and Burst transfer from the PCI Bus to the Internal Bus Supports memory, I/O, and configuration cycles Supports high-speed back-to-back transactions on the PCI Bus Address mapping between the PCI Bus and the Internal bus can be modified Mounted 8-stage 64-bit data FIFO for Read Mounted 12-stage 64-bit data FIFO for Write Post Write function enables quick termination of a maximum of nine Write transactions by the PCI Bus without waiting for completion on the G-Bus. Read Burst length (pre-fetch data size) on the Internal Bus when reading a pre-fetchable space can be made programmable Endian switching function 10.1.4 PCI Arbiter • • • • • • Supports four external PCI bus masters Uses the Programmable Fairness algorithm (two levels with different priorities for four roundrobin request/grant pairs) Supports bus parking Bus master uses the Most Recently Used algorithm Unused slots and broken masters can be automatically disabled after Power On reset On-chip arbitration function can be disabled and external arbiter can be used 10.1.5 PDMAC (PCI DMA Controller) • • • • • • Direct Memory Access (DMA) Controller dedicated to 1-channel PCI Is possible to transfer data using minimal G-Bus bandwidth Data can be transferred bidirectionally between the G-Bus and the PCI Bus Specifying a physical address on the PCI Bus and an address on the G-Bus makes it possible to automatically transfer data between the PCI Bus and the G-Bus Supports the Chain DMA mode, in which a Descriptor containing chain-shaped addresses and a transfer size is automatically read from memory while DMA transfer continuous On-chip 4-stage 64-bit data buffer 10-2 Chapter 10 PCI Controller 10.2 Block Diagram TX49/H3 Core Memory Controller DMA Controller Arbiter G-Bus PCI Controller Retry G-Bus I/F Targ. cont. (PCI→G-Bus) 64-bit × 4 Mast. cont. (G-Bus→PCI) PDMAC (64-bit × 4) Config EBUSC Arb. Target Write 64-bit × 8 Target Read 64-bit × 8 Master Write 64-bit × 8 Master Read 64-bit × 8 Req. × 4 PCI Arbiter PCI Core TX4938 PCI Bus PCI Device PCI Device Figure 10.2.1 PCI Controller Block Diagram 10-3 Chapter 10 PCI Controller 10.3 Detailed Explanation 10.3.1 Terminology Explanation The following terms are used in this chapter. • Initiator Means the bus Master of the PCI Bus. The TX4938 operates as the initiator when it obtains the PCI Bus and issues PCI access. Target Means the bus Slave of the PCI Bus. The TX4938 operates as the target when an external PCI device on the PCI Bus executes PCI access to the TX4938. Host mode One PCI Host device exists for one PCI Bus. The PCI Host device uses a PCI configuration space to perform PCI configuration on other PCI devices on the PCI Bus. The TX4938 is set to the Host mode if the ADDR[19] signal is High when the RESET* signal is being deasserted. • Satellite mode A PCI device other than the PCI Host device accepts configuration from the PCI Host device. This state is referred to as the Satellite mode. The TX4938 is set to the Satellite mode if the ADDR[19] signal is Low when the RESET signal is being deasserted. • DWORD, QWORD DWORD expresses 32-bit words, and QWORD expresses 64-bit words. According to conventions observed regarding MIPS architecture, this manual uses the following expressions: Byte: 8-bit Half-word: 16-bit Word: 32-bit Double-word: 64-bit • • 10.3.2 On-chip Register The PCI Controller on-chip register contains the PCI Configuration Space Register and the PCI Controller Control Register. The registers that can be accessed vary according to whether the current mode is the Host mode or the Satellite mode. An external PCI Host device only accesses the PCI Configuration Space Register when in the Satellite mode. This register is defined in the PCI Bus Specifications. A PCI configuration cycle is used to access this register. This register cannot be accessed when in the Host mode. Section “10.5 PCI Configuration Space Register” explains each register in detail. The PCI Controller Control Register is only accessed by the TX49 core and cannot be accessed from the PCI Bus. 10-4 Chapter 10 PCI Controller Registers in the PCI Controller Control Register that include an offset address in the range from 0xD000 to 0xD07F can only be accessed when in the Host mode and cannot be accessed when in the Satellite mode. These registers correspond to PCI Configuration Space Registers that an external PCI Host device accesses when in the Satellite mode. Section “10.4 PCI Controller Control Register” explains each register in detail. Figure 10.3.1 illustrates the register map when in the Host mode. Figure 10.3.2 illustrates the register map when in the Satellite mode. 0xDFFF Reserved 0xD270 PCI Controller Control Register 0xFF 0x80 0xD000 G-Bus Address Space 0x00 PCI Bus Configuration Space Reserved Figure 10.3.1 Register Map in the Host Mode 0xDFFF Reserved 0xD270 PCI Controller Control Register 0xFF 0xD080 Reserved 0xD000 G-Bus Address Space 0x80 0x00 PCI Bus Configuration Space PCI Configuration Space Register Figure 10.3.2 Register Map in the Satellite Mode 10-5 Chapter 10 PCI Controller 10.3.3 Supported PCI Bus Commands Table 10.3.1 shows the PCI Bus commands that the PCI Controller supports. Table 10.3.1 Supported PCI Bus Commands C/BE Value 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 PCI Command Interrupt Acknowledge Special Cycle I/O Read I/O Write (Reserved) (Reserved) Memory Read Memory Write (Reserved) (Reserved) Configuration Read Configuration Write Memory Read Multiple Dual Address Cycle Memory Read Line Memory Write and Invalidate As Initiator † † √ √ ⎯ ⎯ √ √ ⎯ ⎯ † † √ √ √ √ As Target ⎯ ⎯ √ √ ⎯ ⎯ √ √ ⎯ ⎯ ‡ ‡ √ √ √ √ Note: Key: The byte enable signals are asserted as necessary during memory read and memory write cycles using I/O Read, I/O Write and Single Access commands. During burst memory reads, four byte enable signals are asserted. √ : Supported when in both the Host mode and the Satellite mode † : Supported only when in the Host mode ‡ : Supported only when in the Satellite mode — : Not supported • I/O Read, I/O Write, Memory Read, Memory Write This command executes Read/Write access to the address mapped on the G-Bus and PCI Bus. • Memory Read Multiple, Memory Read Line The Memory Read Multiple command is issued if all of the following conditions are met when the Initiator function is operating and Burst Read access is issued from the G-Bus to the PCI Bus. (1) A value other than “0” is set to the Cache Line Size Field (PCICFG1.CLS) of the PCI Configuration 1 Register. (2) The Read data word count is equal to or less than the value set in the Cache Line Size Field. Also, the Read Memory Line command is issued when all of the following conditions are met. (1) A value other than “0” is set to the Cache Line Size Field (PCICFG1.CLS) of the PCI Configuration 1 Register. (2) The Read data word count is equal to or less than the value set in the Cache Line Size Field. 10-6 Chapter 10 PCI Controller The Memory Read command is issued if these conditions are not met, namely, if “0” is set to the Cache Line Size field (PCICFG1.CLS) of the PCI Configuration 1 Register. In the case of the target, a normal G-Bus cycle is issued to the address mapped from the PCI Bus to the G-Bus. • Memory Write and Invalidate When the TX4938 operates as the initiator, the PCI Controller is sue the Memory Write and Invalidate command if all of the folllowing conditions are met when write access from the G-Bus to the PCI Bus occurs. (1) The Memory Write and Invalidate Enable bit (PCISTATUS.MWIEN) of the PCI Status Command Register is set. (2) A value other than “0” was set to the Cache Line Size field (PCICFG1.CLS) of the PCI Configuration 1 Register. (3) The word count of the Write data is equal to or larger than the value set in the Cache Line Size field. The Memory Write command is issued in these conditions are not met. When the TX4938 operates as the target, the Memory Write and Invalidate command is converted into G-Bus Write access. Note that the TX4938 does nto support the cache memory Snoop function. • Dual address cycle When the TX4938 operates as the initiator, the PCI Controller executes dual access cycles if the PCI Bus address exceeds 0x00_FFFF_FFFF. When the TX4938 operates as the target, normal G-Bus cycles are executed to the address mapped from the PCI Bus to the G-Bus. • Configuration Read, Configuration Write These commands only issue configuration cycles as the when in the Host mode. The corresponding configuration cycles are issued on the PCI Bus. This is done by either reading or writing from/to the G2P Configuration Data Register (G2PCFGDATA) after writing the configuration space address to the G2P Configuration Address Register. The TX4938 supports both “Type 0” and “Type 1” configuration transactions. On systems that have PCI card slots, the PCI Host device checks each PCI card slot during system initialization to see if PCI device exist, then set the Configuration Space Register of the devices that do exist. If a PCI Configuration Read operation is performed for devices that do not exist, then by default a Bus Error exception will be generated since there is no PCI Bus response. Clearing the Bus Error Response During Initiator Read bit (PCICFG.IRBER) of the PCI Controller Configuration Register makes it possible to execute a Read transaction without causing a Bus Error. All bits of the data read at this time will be set to “1”. 10-7 Chapter 10 PCI Controller Configuration cycles will be accepted as the target only when in the Satellite mode. After reset, Retry response to PCI Configuration access will continue until the software sets the Target Configuration Access Ready Bit (PCICFG.TCAR) of the PCI Controller Configuration Register. Please use the software to set this bit after the software initialization process ends and the software is ready to accept PCI configuration. • Interrupt Acknowledge This command issues interrupt acknowledge cycles as an initiator only when in the Host mode. Interrupt acknowledge cycles are executed on the PCI Bus when the G2P Interrupt Acknowledge Data Register (G2PINTACK) is read. The value returned by this Read becomes the interrupt acknowledge cycle data. The TX4938 does not support interrupt acknowledge cycles as the target. • Special Cycle This command issues specialy cycles as the initiator only when in the Host mode. This command issues special cycles on the PCI Bus when writing to the G2P Special Cycle Data Register (G2PSPC). The written value is output as the special cycle data. The TX4938 does not support special cycles as the target. 10.3.4 Initiator Access (G-Bus → PCI Bus Address Conversion) During PCI initiator access, the G-Bus address of the Burst transaction issued by the G-Bus that was converted into the PCI Bus address is used to issue a Burst transaction on the PCI Bus. 36-bit physical address (G-Bus addresses) are used on the G-Bus. Also, 40-bit PCI Bus addresses are used on the PCI Bus. Three memory access windows and one I/O access window can be set in the G-Bus space (Figure 10.3.3). The size of each window is variable. When Burst transactions are issued to these access windows on the G-Bus, then that G-Bus address is converted into a PCI Bus address that is used to issue a Burst transaction to the PCI Bus as the initiator. PCI memory access is issued when the access window is the memory access window. PCI I/O access is issued when the access window is the I/O access window. Dual access cycles are also issued to the PCI Bus when the PCI Bus address exceeds 0x00_FFFF_FFFF. 0xFF_FFFF_FFFF 0xFF_FFFF_FFFF 0xF_FFFF_FFFF 0x00_0000_0000 PCI I/O Space 0x0_0000_0000 G-Bus Space 0x00_0000_0000 PCI Memory Space Memory Access Window I/O Access Window Figure 10.3.3 Initiator Access Memory Window 10-8 Chapter 10 PCI Controller When expressed as a formula, conversion of a G-Bus address (GBusAddr[35:0]) into a PCI Bus Address (PCIAddr[39:0]) is as follows below. GBASE[35:8], PBASE[39:8], and AM[35:8] each represent the setting register of the corresponding access window indicated below in Table 10.3.2. The “&” symbol indicates a logical AND for each bit, “||” indicates a logical OR for each bit, “!” indicates logical NOT, and “|” indicates bit linking. If (GBusAddr[35:8] & ! AM[35:8] == GBASE[35:8] & ! AM[35:8]) then PCIAddr[39:0] = PBASE[39:36] | ((PBASE[35:8] & ! AM[35:8]) || (GBusAddr[35:8] & AM[35:8])) | GBusAddr[7:0]; Table 10.3.2 Initiator Access Space Address Mapping Register G-Bus Base Address GBASE[35:8] Memory Space 0 Memory Space 1 Memory Space 2 I/O Space G2PM0GBASE.BA[35:8] G2PM1GBASE.BA[35:8] G2PM2GBASE.BA[35:8] G2PIOGBASE.BA[35:8] PCI Bus Base Address PBASE[39:8] G2PM0PBASE.BA[39:8] G2PM1PBASE.BA[39:8] G2PM2PBASE.BA[39:8] G2PIOPBASE.BA[39:8] Address Mask AM[35:8] G2PM0MASK.AM[35:8] G2PM1MASK.AM[35:8] G2PM2MASK.AM[35:8] G2PIOMASK.AM[35:8] Figure 10.3.4 illustrates this address conversion. 35 GBusAddr Compare 35 GBASE 8 7 0x00 0 0 35 AM 8 7 0x00 0 000-----------00111-------------------- 39 PBASE 8 7 0x00 0 39 PCIAddr 0 Figure 10.3.4 Address Conversion For Initiator (G-Bus → PCI Bus Address Conversion) It is possible to set each space to valid/invalid or to perform Word Swap (see “10.3.7 Endian Switching Function). Table 10.3.3 shows the settings registers for these properties. When 64-bit access is made to the initiator memory space, two 32-bit Burst accesses are issued on the PCI Bus. 64-bit access to the I/O space is not supported. Also, operation is not guaranteed if resources in the PCI space were made cacheable and were then accessed when the Critical Word First function of the TX49/H3 core was enabled. 10-9 Chapter 10 PCI Controller Table 10.3.3 Initiator Access Space Properties Register Enable Memory Space 0 Memory Space 1 Memory Space 2 I/O Space BusMasterEnable & PCICCFG.G2PM0EN BusMasterEnable & PCICCFG.G2PM1EN BusMasterEnable & PCICCFG.G2PM2EN BusMasterEnable & PCICCFG.G2PIOEN Word Swap G2PM0GBASE.BSWAP G2PM1GBASE.BSWAP G2PM2GBASE.BSWAP G2PIOGBASE.BSWAP BusMasterEnable: Host mode: PCI State Command Register Bus Master Bit (PCISTATUS.BM) Satellite mode: Command Register Bus Master bit 10.3.5 Target Access (PCI Bus → G-Bus Address Conversion) During PCI target access, the PCI Bus address of the Bus transaction issued by the PCI Bus is converted into a G-Bus address and is used to issue a Bus transaction on the G-Bus. 40-bit PCI Bus addresses are used on the PCI Bus. Also, 36-bit physical addresses are used on the G-Bus. Three memory access windows and one I/O access window can be set in the PCI bus space (Figure 10.3.5). The size of each window is fixed. When Bus transactions to these access windows is issued on the PCI Bus, these Bus transactions are accepted as PCI target devices. The PCI Bus Address is converted into G-Bus addresses, then Bus transactions are issued to the G-Bus. The memory space window responds to the PCI memory space access command. The I/O space window responds to the PCI I/O space access command. Note: Byte swapping is always disabled when prefetch mode is disabled. When the G-Bus is configured for big-endian mode, the order of bits in a 32-bit word does not change during a PCI transfer. (The byte ordering changes.) 0xFF_FFFF_FFFF 0xFF_FFFF_FFFF 0xF_FFFF_FFFF 0x00_FFFF_FFFF 0x00_0000_0000 PCI I/O Space Memory Access Window I/O Access Window 0x0_0000_0000 G-Bus Space 0x00_FFFF_FFFF 0x00_0000_0000 PCI Memory Space Figure 10.3.5 Target Access Memory Window 10-10 Chapter 10 PCI Controller When expressed as a formula, conversion of a PCI Bus Address (PCIAddr[39:0]) into a G-Bus address (GBusAddr[35:0]) is as follows below. GBASE[35:8], and PBASE[39:8] each represent the setting register of the corresponding access window indicated below in Table 10.3.4. The “&” symbol indicates a logical AND for each bit, and “|” indicates bit linking. Memory space 0 If (PCIAddr[39:29] == P2GM0PUBASE.BA[39:32] | P2GM0PLBASE.BA[31:29] then GBusAddr[35:0] = P2GM0GBASE[35:29] | PCIAddr[28:0]; Memory space 1 If (PCIAddr[39:24] == P2GM1PUBASE.BA[39:32] | P2GM1PLBASE.BA[31:24] then GBusAddr[35:0] = P2GM1GBASE[35:24] | PCIAddr[23:0]; Memory space 2 If (PCIAddr[31:20] == P2GM2PBASE.BA[31:20]) then GBusAddr[35:0] = P2GM2GBASE[35:20] | PCIAddr[19:0]; I/O space If (PCIAddr[31:8] == P2GIOPBASE.BA[31:8]) then GBusAddr[35:0] = P2GIOGBASE[35:8] | PCIAddr[7:0]; Table 10.3.4 Target Access Space Address Mapping Register Space Size Memory Space 0 Memory Space 1 Memory Space 2 I/O Space 512 MB 16 MB 1 MB 256 B PCI Address 40-bit 40-bit 32-bit 32-bit PCI Bus Base Address PBASE P2GM0PUBASE.BA[39:32] | P2GM0PLBASE.BA[31:29] P2GM1PUBASE.BA[39:32] | P2GM1PLBASE.BA[31:24] P2GM2PBASE.BA[31:20] P2GIOPBASE.BA[31:8] G-Bus Base Address GBASE P2GM0GBASE.BA[35:29] P2GM1GBASE.BA[35:24] P2GM2GBASE.BA[35:20] P2GIOGBASE.BA[35:8] Figure 10.3.6 illustrates this address conversion. 39/32 PCIAddr n n−1 0 Compare 39/32 PBASE n n−1 0 35 GBASE n n−1 0 35 GBusAddr n = 29 n = 24 n = 20 n=8 n n−1 0 Memory Space 0 Memory Space 1 Memory Space 2 I/O Space Figure 10.3.6 Address Conversion for Target (PCI Bus (PCI Bus → G-Bus Address Conversion) 10-11 Chapter 10 PCI Controller It is possible to set each space to valid/invalid, pre-fetch Read to valid/invalid, or to perform Word Swap (see10.3.7). Table 10.3.5 shows the settings registers for these properties. When pre-fetch Reads are set to valid, data transfer is performed on the G-Bus according to the size set by the Target Pre-fetch Read Burst Length Field (P2GCFG.TPRBL) of the P2G Configuration Register during a PCI target Read transaction. This is performed using accesses to resources that will not be affected even if a pre-read such as memory is performed. Also, PCI Burst Reads to memory spaces that were set to I/O space and pre-fetch disable are not supported. Note: Always use PCI single reads. Don’t use burst reads. Table 10.3.5 Target Access Space Properties Register Enable Memory Space 0 Memory Space 1 Memory Space 2 I/O Space PCICCFG.TCAR & MemEnable & P2GM0GBASE.P2GM0EN PCICCFG.TCAR & MemEnable & P2GM1GBASE.P2GM1EN PCICCFG.TCAR & MemEnable & P2GM2GBASE.P2GM2EN PCICCFG.TCAR & IOEnable & P2GIOGBASE.P2GIOEN Pre-fetch (Initial State) P2GCFG.MEM0PD (valid) P2GCFG.MEM1PD (valid) P2GCFG.MEM2PD (invalid) Always invalid Word Swap P2GM0GBASE.BSWAP P2GM1GBASE.BSWAP P2GM2GBASE.BSWAP P2GIOGBASE.BSWAP MemEnable: Host mode: PCI State Command Register Memory Space bit (PCISTATUS.MEMSP) Satellite mode: Command Register Memory Space bit IOEnable: Host mode: PCI State Command Register I/O Space bit (PCISTATUS.IOSP) Satellite mode: Command Register I/O Space bit 10.3.6 Post Write Function The Post Write function improves system performance by completing the original bus Write transaction without waiting for the other bus to complete its transaction when the first bus issues a Write transaction. Initiator Write can Post Write a maximum of four Write transactions, and Target Write can Post Write a maximum of nine Write transactions. Due to compatibility issues with old PC software in the PCI specifications, performing Post Writes with Initiator Configuration Write and Target I/O Write is not recognized. However, the TX4938 PCI Controller can even perform Post Writes to these functions. In order to guarantee that these Writes are completed by the target device, please execute Reads to the device that performed the Write, then either refer to the read value (so the TX49/H3 core can support non-blocking load) or execute the SYNC instruction. 10.3.7 Endian Switching Function The TX4938 supports both the Little Endian mode and the Bit Endian mode. On the other hand, the PCI Bus is only defined in Little Endian logic. Therefore, when the TX4938 is in the Big Endian mode, either the software or the hardware must perform some kind of conversion when exchanging data larger than 2 B in size with the PCI Bus. The PCI Controller can specify the endian switching function that reverses the byte arrangement of the DWORD (32-bit) data for each access window. 10-12 Chapter 10 PCI Controller Initial state operation matches the correspondence between the address and byte data regardless of the endian mode (operation is address consistent). For example, if WORD (16-bit) data is written to address 0 of the PCI Bus when the TX4938 is in the Big Endian mode, the upper byte (address 0 in Big Endian) is written to PCI Bus address 0 and the lower byte (address 1 in Big Endian) is written to address 1 of the PCI Bus. For Little Endian PCI devices, this means that the byte order is reversed. When in the Big Endian mode and a particular access window Endian switching mechanism is validated, data is transferred so the byte order does not change in DWORD (32-bit) access to that access window. Endian switching during initiator access is specified by the Byte Swap bit (BSWAP) of the G-Bus Base Address Register (G2PMnGBASE, G2PIOGBASE) of the access window for each initiator access (see Table 10.3.3). Ending switching during target access is specified by the Byte Swap bit (BSWAP) of the G-Bus Base Address Register (P2GMnGBASE, P2GIOGBASE) of the access window for each target access (see Table 10.3.5). 10.3.8 66 MHz Operation Mode The TX4938 PCI Controller supports 66 MHz PCI. When in the Host mode, the procedure for setting the PCI Bus to the 66 MHz mode is as follows below. (1) Start the system with a PCI Bus Clock frequency of 33 MHz or less. (2) The TX4938 system initialization program checks the 66 MHz Capable bit (bit 5) of the configuration Space Register Status Register in all PCI devices. If the 66 MHz Capable bit of all devices is set, then change the PCI Bus Clock frequency according to the following procedure. (3) Assert the PCI Bus Reset signal. (The TX4938 does not have PCI Reset output, so it is necessary to use an external circuit to control the PCI Bus Reset signal.) (4) Set the Software Reset bit (PCICFG.SRST) of the PCI Controller Configuration Register. (5) Setting the PCI66 MHz Mode bit (CCFG.PCI66) of the Chip Configuration Register asserts the M66EN signal. (6) Modifying the setting of the PCICLK Division Ratio field (CCFG.PCIDIVMODE) of the Chip Configuration Register changes the PCI Clock frequency from 33 MHz to 66 MHz. (7) The software reset bit (PCICCFG.SRST) is cleared after the PLL stabilizes (about 10 ms). (8) Deassert the PCI Bus Reset signal. Each PCI device detects assertion of the M66EN signal if necessary and performs the process. When the TX4938 is in the Satellite mode, the M66EN signal becomes the input signal. It is possible to read this state from the 66 MHz Drive Status bit (P2GSTATUS.M66EN) of the P2G Status Register. 10-13 Chapter 10 PCI Controller PCI Reset is detected by either using the PCI Bus Reset Signal as the TX4938 overall reset signal or using the PCI Bus Reset Signal assertion detection device that the system provides. Then, the software reset the PCI Controller. The software uses a hardware reset (PCICCFG.HRST) of the PCI Controller Configuration Register to reset the PCI Controller. 10.3.9 Power Management The TX4938 PCI Controller supports power management functions that are compliant to PCI Bus Power Management Interface Specifications Version 1.1. The PCI Host device controls the system status by reporting the power management state to the PCI Satellite device. Also, the PCI Satellite device uses the PME* signal to report requests for changing the power management state or to report to the PCI Host device that a power management event has occurred. 10.3.9.1 Power Management State In the case of the PCI Bus Power Management Interface Specifications, four power management states are defined from State D0 to State D3. The TX4938 supports states D0 through D3. Figure 10.3.7 illustrates the power management state transition. After Power On Reset, or when transitioning from the D3HOT state to the D0 state, the power management state becomes uninitialized D0. If initialized by the system software at this point, the state transitions to D0 Active. If an external PCI Host device writes 11b (D3HOT) to the PowerState field of the Power Management Control Status Register (PMCSR) of the Configuration space when in the Satellite mode, then the Power Management State Change bit (P2GSTATUS.PMSC) of the P2G Status Register is set and transitions to the D3HOT state. It then becomes possible to report Power State Change interrupts. The PowerState field value can be read from the PowerState field (PCISSTATUS.PS) of the Satellite Mode PCI Status Register. The TX4938 uses the software to change the system status after a status change is detected. Power On Reset (RESET*) D0 Uninitialized Initialization by the System Software PCI RST* (RESET*) D3cold D0 Active Software Reset VCCCut-off Change PMCSR PowerState D3hot Figure 10.3.7 Transition of the Power Management States 10-14 Chapter 10 PCI Controller 10.3.9.2 PME* Signal (Satellite Mode) The following PMEs (Power Management Events) are reported when in the Satellite mode. • The PCI Host device sets the PME_En bit of the PMCSR Register in the TX4938 Configuration space. This makes it possible for the TX4938 to assert the PME* signal. Then, the PME_En Set bit (P2GSTATUS.PMEES) of the P2G Status Register is set. Furthermore, it also becomes possible to generate PME_En Set interrupts. The PME_En bit value can be read from the PME_En bit (PCISSTATUS.PMEEN) of the Satellite Mode PCI Status Register. • Writing “1” to the PME bit (P2GCFG.PME) of the P2G Configuration Register sets the PME_Status bit of the PMCSR Register, then asserts the PME* signal, which is the open drain signal. PME is then reported to the PCI Host device. The PCI Host device checks the PMCSR PME_Status bit of each PCI device, then specifies the PCI device that asserted the PME* signal. After the process corresponding to PME ends, the PCI Host device writes “1” to the TX4938 PME_Status bit that reported PME, thereby reporting the end of the process. As a result, the PME_Status bit of the PMCSR Register is cleared and the PME* signal is deasserted. Then, the PME Status Clear bit (P2GSTATUS.PMECLR) of the P2G Status Register is set. It is also possible to generate PME Status Clear interrupts. 10.3.9.3 PME* Signal* (Host Mode) The PME Detection bit (PCICSTATUS.PMED) of the PCI Controller Status Register is set when an external satellite device asserts the PME* signal while the TX4938 is in the Host mode. It is also possible to generate PME Detection interrupts at this time. • • 10.3.10 PDMAC (PCI DMA Controller) The PCI DMA Controller (PDMAC) is a one-channel PCI Director Memory Access (DMA) controller. Data can be transferred bidirectionally between the G-Bus and the PCI Bus. Note: The PDMAC can only access the SDRAMC on the G-Bus. It does not provide support for access to other controllers on the G-Bus. 10.3.10.1 DMA Transfer The following DMA transfer procedure does not use the Chain DMA mode. 1. Address Register and Count Register Setting Sets values for the three following registers. • • • 2. PDMAC G-Bus Address Register (PDMGA) PDMAC PCI Bus Address Register (PDMPA) PDMAC Count Register (PDMCTR) Chain Address Register Setting Sets “0” to the PDMAC Chain Address Register (PDMCA). 10-15 Chapter 10 PCI Controller 3. PDMAC Status Register (PDMSTATUS) Clearing Clears any remaining status from a previous DMA transfer. PDMAC Configuration register (PDMCFG) Setting Clears the Channel Reset bit (CHRST), and makes settings such as the data transfer direction (XFRDIRC), and the data transfer unit size (XFRSIZE). DMA Transfer Initiation Setting the Transfer Active bit (XFRACT) of the PDMAC Configuration Register initiates DMA transfer. Termination Report When the DMA data transfer terminates normally, the Normal Data Transfer Complete bit (NTCMP) of the PDMAC Status Register (PDMSTATUS) is set. An interrupt is then reported if the Normal Data Transfer Complete Interrupt Enable bit (NTCMPIE) of the PDMAC Configuration Register is set. If an error is detected during DMA transfer, the error cause is recorded in the lower 5 bits of the PDMAC Status Register and the transfer is aborted. An interrupt is then reported if the Error Detection Interrupt Enable bit (ERRIE) of the PDMAC Configuration register is set. 10.3.10.2 Chain DMA DMA Command Descriptors are 4 QWORD (32-Byte) data structures indicated in Table 10.3.6 that are placed in memory. Storing the starting memory address of another DMA Command Descriptor in the Offset 0 Chain Address Field makes it possible to configure a chain list for the DMA command Descriptor. Set “0” in the Chain Address field of the DMA Command Descriptor at the end of the chain list. When the DMA transfer specified by one DMA Command Descriptor ends, the PDMAC reads the next DMA Command Descriptor that the Chain Address field automatically points to, then continues the DMA transfer. Such continuous DMA transfer that uses multiple descriptors in a chain format is referred to as the Chain DMA mode. When a DMA Command Descriptor is placed to an address that does not extend across a 32 QWORD boundary in memory, this transfer method is more efficient since data can be read by a single G-Bus Burst Read transaction. Table 10.3.6 DMA Command Descriptors Offset Address 0x00 0x08 0x10 0x18 4. 5. 6. Field Name Chain Address G-Bus Address PCI Bus Address Count Transfer Destination Register PDMAC Chain Address Register (PDMCA) PDMAC G-Bus Address Register (PDMGA) PDMAC PCI Bus Address Register (PDMPA) PDMAC Count Register (PDMCTR) 10-16 Chapter 10 PCI Controller The DMA transfer procedure is as follows when in the Chain DMA mode. 1. Count Register Setting Sets “0” to the PDMAC Count Register (PMDCTR). DMA Command Descriptor Chain Construction Constructs the DMA Command Descriptor Chain in memory. PDMAC Status Register (PDMSTATUS) Clearing Clears any remaining status from a previous DMA transfer. PDMAC Configuration Register (PDMCFG) Setting Clears the Channel Regster bit (CHRST) and makes settings such as the data transfer direction (XFRDIRC) and the data transfer unit size (XFRSIZE). DMA Transfer Initiation Setting the address of the DMA Command descriptor that is at the beginning of the Chain List in the PDMAC Chain Address Register (PDMCA) automatically initiates DMA transfer. First, the values stored in each field of the DMA Command Descriptor that is at the beginning of the Chain List are read to each corresponding PDMAC Register, then DMA transfer is performed according to the read values. If a value other than “0” is stored in the PDMAC Chain Address Register (PDMCA), data transfer of the size stored in the PDMAC Count Register is complete, then the DMA Command Descriptor value for the memory address specified by the PDMAC Chain Address Register is read. When the Chain Address field value reads a descriptor of “0”, the PDMAC Chain Address Register value is not updated and the previous value (address of the Data Command Descriptor at which the Chain Address field value is “0” when read) is held. 0 value judgement is performed when the lower 32 bits of the PDMAC Chain Address Register are rewritten. DMA transfer is automatically initiated if the value was not “0”. Therefore, please write to the upper 32 bits first when writing to the PDMAC Chain Address Register using a 32-bit Store instruction. 6. Termination Report When DMA data transfer of all descriptor chains terminates normally, the Normal Chain Complete bit (NCCMP) of the PDMAC Status Register is set. An interrupt is reported if the Chain Termination Interrupt Enable bit (MCCMPIE) of the PDMAC Configuration register (PDMCFG) is set. Also, the Normal Data Transfer Complete bit (NTCMP) of the DPMAC Status Register is set each time the DMA data transfer specified by a DMA Command Descriptor terminates normally. An interrupt is reported if the Normal Data Transfer Complete Interrupt Enable bit (NTCMPIE) of the PDMAC Configuration Register (PDMCFG) is set. If an error is detected during DMA transfer, the error cause is recorded in the lower 5 bits of the PDMAC Status Register and the transfer is aborted. An interrupt is then reported if the Error Detection Interrupt Enable bit (ERRIE) of the PDMAC Configuration register is set. 2. 3. 4. 5. 10-17 Chapter 10 PCI Controller 10.3.10.3 Dynamic Chain Operation It is possible to dynamically add other DMA Command Descriptor Chains to a DMA Command Descriptor Chain that is currently being processed when executing DMA data transfer. This is done according to the following procedure. 1. DMA Command Descriptor Chain Construction Constructs a DMA Command Descriptor Chain in memory. Addition of DMA Command Descriptor Chains Substitutes the address of the command descriptor that is at the beginning of the descriptor chain to be added into the Descriptor Chain Address field at the end of the DMA Command Descriptor Chain that is currently performing DMA transfer. Chain Enable bit checking Reads the value of the Chain Enable bit (CHNEN) in the PDMAC Configuration Register (PDMCFG). If the read value is “0”, then the Chain Address field value of the DMA Command Descriptor indicated by the address stored in the PDMAC Chain Address Register (PDMCA) is written to the PDMAC Chain Address Register (PDMCA) 2. 3. 10.3.10.4 Data Transfer Size The Transfer Size field (PDMCFG.XFERSIZE) of the PDMAC Configuration Register specifies the transfer size of each G-Bus transaction in a DMA transfer. The transfer size can be selected from one of the following: 1 DWORD, 1 QWORD, or 4 QWORD (Burst transfer). 1 QWORD or 4 QWORD can only be selected as the transfer size when the setting of the PDMAC G-Bus Address Register (PDMGA) and the PDMAC PCI Bus Address Register (PDMPA) is a 64-bit address boundary and the PDMAC Count Register (PDMCTR) setting is an 8-byte multiple. 1 DWORD must be selected as the transfer size in all other cases. 10.3.11 Error Detection, Interrupt Reporting The PCI Controller reports the four following types of interrupts to the Interrupt Controller (IRC). • • • • Normal Operation Interrupt PDMAC Interrupt Power Management Interrupt Error Detection Interrupt (Interrupt Number: 16, PCIC) (Interrupt Number: 15, PDMAC) (Interrupt Number: 23, PCIPME) (Interrupt Number: 22, PCIERR) When each cause is detected, an interrupt is reported if the corresponding Status bit is set, and the corresponding Interrupt Enable Bit is set. The following tables list the name of each interrupt cause, the Status bit, and the Interrupt Enable bit. Please refer to the explanation of each Status bit for more information regarding each interrupt cause. 10.3.11.1 Normal Operation Interrupt Name M66EN Signal Assert Detect Status Bit P2GSTATUS M66EN Interrupt Enable Bit P2GMASK M66ENIE 10-18 Chapter 10 PCI Controller 10.3.11.2 PDMAC Interrupts Name Normal Chain Termination Normal Data Transfer Termination Inter-Transfer Stall Time Reached Configuration Error PCI Fatal Error G-Bus Chain Error G-Bus Data Error PDMSTATUS Status Bit NCCMP NTCMP STLTRF CFGERR PCIERR CHNERR DATAERR Interrupt Enable Bit NCCMPIE NTCMPIE PDMCFG ERRIE 10.3.11.3 Power Management Interrupts Name PM Status Change Detect PME_En Set Detect PME Status Clear Detect PME Detect PCICSTATUS P2GSTATUS Status Bit PMSC PMEES PMECLR PME Interrupt Enable Bit PMSCIE P2GMASK PCICMASK PMEESIE PMECLRIE PMEIE 10.3.11.4 Error Detection Interrupts Name Parity Error Detect System Error Report Master Abort Receive Target Abort Receive Target Abort Report Master Data Parity Error TRDY Timeout Error Retry Timeout Error Broken Master Detect Long Burst Transfer Detect Negative Increase Burst Transfer Detect Zero Increase Burst Transfer Detect PERR* Detect SERR* Detect G-Bus Bus Error Detect PCICSTATUS G2PSTATUS PBASTATUS PCISTATUS / PCISSTATUS Status Bit DPE SSE RMA RTA STA MDPE IDTTOE IDRTOE BMD TLB NIB ZIB PERR SERR GBE Interrupt Enable Bit DPEIE SSEIE PCIMASK RMAIE RTAIE STAIE MDPEIE G2PMASK PBAMASK IDTTOEIE IDRTOEIE BMDIE TLBIE NIBIE PCICMASK ZIBIE PERRIE SERRIE GBEIE Note: In the initiator write cycle, access on the G-Bus has been finished before access on the PCI bus is finished (Post write). Therefore, when an error occurs on PCI bus, it is reported with an error detection interrupt, as shown above. In the initiator read cycle, when an error occurs on the PCI bus access, PCIC responds with a G-Bus error instead of returning read data to the G-Bus. Setting "0" to the IRBER bit of the PCICFG register suppresses output of a G-Bus error during initiator read. 10-19 Chapter 10 PCI Controller 10.3.12 PCI Bus Arbiter Configuration settings (DATA[2] signal) during boot up select whether to use the on-chip PCI Bus arbiter (Internal PCI Bus Arbiter mode) or to use the External PCI Bus arbiter (External PCI Bus Arbiter mode). When in the Internal PCI Bus Abiter mode, setting the PCI Bus Arbiter Enable bit (PBACFG.PBAEN) of the PCI Bus Arbiter Configuration Register starts operation. The on-chip PCI Bus arbiter can arbitrate eight sets of PCI Bus usage requests from the Bus Master. Five ports are used: one for the PCI Controller bus master and four for External Bus masters. The three remaining ports are reserved for future expanded features. 10.3.12.1 Request Signal, Grant Signal The four external Bus Masters are connected to the REQ[3:0] signal and the GNT[3:0]* signal. Also, when in the External PCI Bus Master mode, the REQ[0]* signal becomes the PCI Bus Request Output signal and the GNT[0]* signal becomes the Bus Usage Permission Input Signal. Furthermore, the REQ[1]* signal can be used as an interrupt output signal to the external devices (see 14.3.7 for more information). 10.3.12.2 Priority Control As illustrated below in Figure 10.3.8, a combination of two round-robin sequences is used as the arbitration algorithm that determines the priority of Internal PCI Bus arbiter bus requests. The round-robin with the lower priority (Level 2) consists of Masters W - Z, and the round-robin with the high priority (Level 1), consists of Master A - D and Level 2 Masters. The PCI Bus Arbiter Request Port Register (PBAREQPORT) specifies whether to allocate the PCI Controller and the four External Bus Masters to Masters A-D or W - Z. Level 1 (Prirority: High) Master B Master C Master A Level 2 Master D Level 2 (Priority: Low) Master W Master Z Master X Master Y Figure 10.3.8 PCI Bus Arbitration Priority 10-20 Chapter 10 PCI Controller The Bus Master priority is determined based on the Level 1 round-robin sequence. However, when Level 2 is used inside Level 1, the Level 2 Bus Master priority is determined based on the Level 2 round-robin sequence. All 8 Bus Masters cannot be used on the TX4938. However, the Bus Master priority would be as follows if we assume there is a hypothetical device that can use all 8 Bus Masters and all 8 Bus Masters (Masters A – D, W – Z) simultaneously requested the bus. A→B→C→D→W →A→ B→ C→ D → X →A→ B→ C→ D →Y →A→ B→ C→ D → Z → A (returns to the beginning) Since the priority can only transition in the order indicated by the above arrows (or the arrows in Figure 10.3.8, if we assume that the three Bus Masters A, B, and W exist, then Master B will obtain the bus first. If A and W then simultaneously request the bus, then PCI Bus ownership will transition in the order B → W → A. 10.3.12.3 Bus Parking The On-chip PCI Bus Arbiter supports bus parking. The last PCI Bus Master is made the Park Master when the Fix Park Master bit (FIXPM) of the PCI Bus Arbiter Configuration Register (PBACFG) is cleared (in the default state). When this bit is set, the Internal PCI Bus Arbiter Request A Port (Master A) becomes the Park Master. 10.3.12.4 Broken Master Detect The TX4938 On-chip PCI Bus Arbiter has a function for automatically detecting broken masters. If the PCI Bus Master requests and is granted the bus when the PCI Bus is in the Idle state, this master must assert the FRAME* signal within 16 PCI block cycles and start a transaction. The PCI Bus Arbiter recognizes any device that breaks this rule as a broken bus master and removes that device from the bus arbitration sequence. This detection function is enabled when the Broken Master Check Enable bit (BMCEN) of the PCI Bus Arbiter Configuration Register (PBACFG) is set. When a broken master is detected, the Broken Master Detection bit (PBSTATUS.BMD) of the PCI Bus Arbiter Status Register is set and the bit in the PCI Bus Arbiter Broken Master Register (PBABM) that corresponds to that master is set. Then it also becomes possible to report an interrupt. 10-21 Chapter 10 PCI Controller 10.3.12.5 Special Programming There may be some devices among PCI bus masters that operate differently from typical PCI devices. PCI devices with the following characteristics can be made usable by changing the programming of the PCI bus arbiter. 1. Bus masters that can not re-assert REQ unless GNT is once deasserted after deasserting REQ • • 2. Assign the bus master to a request port other than Port A through the PBAREQPORT register (at 0xD100). (Assign the TX4938 to Port A.) Enable the Fixed Parked Master (FIXPA) bit in the PBACFG register (at 0xD104). Bus masters that initiate a PCI transaction even when the deassertion of GNT has taken away their bus mastership before the start of the transaction • Assign the bus master to request port A, B, C or D through the PBAREQPORT register (at 0xD100). For example, a bus master with both of the above characteristics can be used by configuring the PCI bus arbiter as follows: Set the internal PCI bus arbiter to the fixed parked master. Assign the TX4938 to request port A. Assign the bus master to request port B. If this bus master is connected to REQ[3] and broken master checking is to be enabled, values to be written to the PBACFG and PBAREQPORT registers are as follows: PBACFG (at 0xD104): 0x0000000B PBAREQPORT (at 0xD100): 0x73546210 10.3.13 PCI Boot Setting the configuration during boot up (ADDR[8:6]) makes it possible to set the reset exception vector address of the TX49/H3 core to PCI Bus address 0x00_BFC0_0000. Two windows of the memory space from the G-Bus to the PCI Bus space are used when in the PCI Boot mode. The defaults of several registers are changed as indicated below. • • • • • • G-Bus base address (G2GBASE): Space size (G2PM2MASK): PCI Bus base address (G2PM2PBASE): Initiator Memory Space 2 Enable (PCICCFG.G2PM2EN): Bus Master bit (PCISTATUS.BM) [Only when in the Host mode] Target Configuration Access Ready (PCICSTAUTS.TCAR) [Only when in the Satellite mode] 0x0_1FC0_0000 4 MB 0x00_BFC0_0000 1 1 1 Also, the on-chip PCI Bus Arbiter cannot be used when the PCI Boot mode is being used while in the Satellite mode. 10-22 Chapter 10 PCI Controller 10.3.14 Set Configuration Space In Table 10.5.1, the values for the registers inside the PCI Configuration Space Register that have a gray background can be rewritten using one of the two following methods. 10.3.14.1 Set the Configuration Space Using EEPROM Load values during Reset by connecting standard 93C46/93C48 EEPROM to a dedicated port. The PCI Controller reads 16-bit half-word data for address 2n (n: 0, 1, 2, …, 31) of the PCI Configuration Space from EEPROM address (2n + 2 - 4(n mod 2)). Also, 16-bit data is read in order from the upper bits to the lower bits. The EEPROM values that correspond to the registers in Table 10.5.1 that have a white background are “don’t care”. 10.3.14.2 Set the Configuration Space Using Software Reset By using the following procedure, it is possible to use the software to set the configuration space without using EEPROM. (1) Set the value to be loaded in the Configuration Data 0 Register (PCICDATA0), the Configuration Data 1 Register (PCICDATA1), the Configuration Data 2 Register (PCICDATA2), and the Configuration Data 3 Register (PCICDATA3). (2) Set the Load Configuration Data Register bit (LCFG) of the PCI Controller Configuration Register (PCICCFG) and the Software Reset bit (SRST). (3) Clear the Software Reset bit (PCICCFG.SRST) at least four PCI Bus clock cycles later. This starts loading the data. After these processes are complete, please set the Target Configuration Access Ready bit (PCICCFG.TCAR) of the PCI Controller Configuration Register to be able to accept access to the PCI Configuration space. 10.3.15 PCI Clock The PCI bus signals are synchronized by the PCI clock applied to the PCICLKIN pin. Therefore, in PCI clock output mode, the PCI output clock must be connected to the PCICLKIN pin. 10-23 Chapter 10 PCI Controller 10.4 PCI Controller Control Register Table 10.4.1 lists the registers contained in the PCI Controller Control Register. Parentheses in the register names indicate the corresponding PCI Configuration Space Register. Table 10.4.1 PCI Controller Control Register (1/2) Section 10.4.1 10.4.2 10.4.3 10.4.4 10.4.5 10.4.6 10.4.7 10.4.8 10.4.9 10.4.10 10.4.11 10.4.12 10.4.13 10.4.14 10.4.15 10.4.16 10.4.17 10.4.18 10.4.19 10.4.20 10.4.21 10.4.22 10.4.23 10.4.24 10.4.25 10.4.26 10.4.27 10.4.28 10.4.29 10.4.30 10.4.31 10.4.32 10.4.33 10.4.34 10.4.35 10.4.36 10.4.37 10.4.38 10.4.39 10.4.40 Address 0xD000 0xD004 0xD008 0xD00C 0xD010 0xD014 0xD018 0xD01C 0xD020 0xD024 0xD02C 0xD034 0xD03C 0xD040 0xD080 0xD084 0xD088 0xD08C 0xD090 0xD094 0xD098 0xD09C 0xD100 0xD104 0xD108 0xD10C 0xD110 0xD114 0xD118 0xD11C 0xD120 0xD128 0xD130 0xD138 0xD140 0xD144 0xD148 0xD14C 0xD150 0xD158 Size 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 64 64 64 64 32 32 32 32 64 64 Mnemonic PCIID PCISTATUS PCICCREV PCICFG1 P2GM0PLBASE P2GM0PUBASE P2GM1PLBASE P2GM1PUBASE P2GM2PBASE P2GIOPBASE PCISID PCICAPPTR PCICFG2 G2PTOCNT G2PSTATUS G2PMASK PCISSTATUS PCIMASK P2GCFG P2GSTATUS P2GMASK P2GCCMD PBAREQPORT PBACFG PBASTATUS PBAMASK PBABM PBACREQ PBACGNT PBACSTATE G2PM0GBASE G2PM1GBASE G2PM2GBASE G2PIOGBASE G2PM0MASK G2PM1MASK G2PM2MASK G2PIOMASK G2PM0PBASE G2PM1PBASE Register Name ID Register (Device ID, Vendor ID) PCI Status, Command Register (Status, Command) Class Code, Revision ID Register (Class Code, Revision ID) PCI Configuration 1 Register (BIST, Header Type, Latency Timer, Cache Line Size) P2G Memory Space 0 PCI Lower Base Address Register (Base Address 0 Lower) P2G Memory Space 0 PCI Upper Base Address Register (Base Address 0 Upper) P2G Memory Space 1 PCI Lower Base Address Register (Base Address 1 Lower) P2G Memory Space 1 PCI Upper Base Address Register (Base Address 1 Upper) P2G Memory Space 2 PCI Base Address Register (Base Address 2) P2G I/O Space PCI Base Address Register (Base Address 3) Subsystem ID Register (Subsystem ID, Subsystem Vendor ID) Capabilities Pointer Register (Capabilities Pointer) PCI Configuration 2 Register (Max_Lat, Min_Gnt, Interrupt Pin, Interrupt Line) G2P Timeout Count Register (Retry Timeout Value, TRDY Timeout Value) G2P Status Register G2P Interrupt Mask Register Satellite Mode PCI Status Register (Status, PMCSR) PCI Status Interrupt Mask Register P2G Configuration Register P2G Status Register P2G Interrupt Mask Register P2G Current Command Register PCI Bus Arbiter Request Port Register PCI Bus Arbiter Configuration Register PCI Bus Arbiter Status Register PCI Bus Arbiter Interrupt Mask Register PCI Bus Arbiter Broken Master Register PCI Bus Arbiter Current Request Register (for diagnositics) PCI Bus Arbiter Current Grant Register (for diagnostics) PCI Bus Arbiter Currrent State Register (for diagnostics) G2P Memory Space 0 G-Bus Base Address Register G2P Memory Space 1 G-Bus Base Address Register G2P Memory Space 2 G-Bus Base Address Register G2P I/O Space G-Bus Base Address Register G2P Memory Space 0 Address Mask Register G2P Memory Space 1 Address Mask Register G2P Memory Space 2 Address Mask Register G2P I/O Space Address Mask Register G2P Memory Space 0 PCI Base Address Register G2P Memory Space 1 PCI Base Address Register 10-24 Chapter 10 PCI Controller Table 10.4.1 PCI Controller Control Register (2/2) Section 10.4.41 10.4.42 10.4.43 10.4.44 10.4.45 10.4.46 10.4.47 10.4.48 10.4.49 10.4.50 10.4.51 10.4.52 10.4.53 10.4.54 10.4.55 10.4.56 10.4.57 10.4.58 10.4.59 10.4.60 10.4.61 10.4.62 10.4.63 Address 0xD160 0xD168 0xD170 0xD174 0xD178 0xD180 0xD188 0xD190 0xD198 0xD1A0 0xD1A4 0xD1C8 0xD1CC 0xD1D0 0xD1D4 0xD1D8 0xD1DC 0xD200 0xD208 0xD210 0xD218 0xD220 0xD228 Size 64 64 32 32 32 64 64 64 64 32 32 32 32 32 32 32 32 64 64 64 64 64 64 Mnemonic G2PM2PBASE G2PIOPBASE PCICCFG PCICSTATUS PCICMASK P2GM0GBASE P2GM1GBASE P2GM2GBASE P2GIOGBASE G2PCFGADRS G2PCFGDATA G2PINTACK G2PSPC PCICDATA0 PCICDATA1 PCICDATA2 PCICDATA3 PDMCA PDMGA PDMPA PDMCTR PDMCFG PDMSTATUS Register Name G2P Memory Space 2 PCI Base Address Register G2P I/O Space PCI Base Address Register PCI Controller Configuration Register PCI Controller Status Register PCI Controller Interrupt Mask Register P2G Memory Space 0 G-Bus Base Address Register P2G Memory Space 1 G-Bus Base Address Register P2G Memory Space 2 G-Bus Base Address Register P2G I/O Space G-Bus Base Address Register G2P Configuration Address Register G2P Configuration Data Register G2P Interrupt Acknowldge Data Register G2P Special Cycle Data Register Configuration Data 0 Register Configuration Data 1 Register Configuration Data 2 Register Configuration Data 3 Register PDMAC Chain Address Register PDMAC G-Bus Address Register PDMAC PCI Bus Address Register PDMAC Count Register PDMAC Configuration Register PDMAC Status Register 10-25 Chapter 10 PCI Controller 10.4.1 ID Register (PCIID) 0xD000[HH5] The Device ID field corresponds to the Device ID Register in the PCI Configuration Space, and the Vendor ID field corresponds to the Vendor ID register of the PCI Configuration Space. This register cannot be access when in the Satellite mode. 31 DID R/L 0x0183 15 VID R/L 0x102F : Type : Initial value 0 : Type : Initial value 16 Bits 31:16 Mnemonic DID Field Name Device ID Description Read/Write R/L Device ID (Default: 0x0183) This register indicates the ID that is allocated to a device. The ID can be changed by loading data from a configuration EEPROM during initialization. Vendor ID (Default: 0x102F) This register indicates the device product that is allocated by PCI SIG. The product allocation can be changed by loading data from a configuration EEPROM during initialization. R/L 15:0 VID Vendor ID Figure 10.4.1 ID Registers 10-26 Chapter 10 PCI Controller 10.4.2 PCI Status, Command Register (PCISTATUS) 0xD004 The upper 16 bits correspond to the Status Register in the PCI Configuration Space, and the lower 16 bits correspond to the Command Register in the PCI Configuration Space. This register cannot be accessed when in the Satellite mode. However, it is possible to read some values of the upper 16 bits from the Satellite Mode PCI Status Register (PCISSTATUS). 31 DPE 30 SSE 29 RMA 28 RTA 27 STA 26 DT R 01 10 Reserved 25 24 23 22 21 20 CL R 1 3 SC R 0 2 BM R/W 0/1 1 0 19 Reserved : Type : Initial value 16 MDPE FBBCP Reserved 66MCP R/W1C 0 R 1 R 1 R/W1C R/W1C R/W1C R/W1C R/W1C 0 0 0 0 0 15 9 8 7 6 5 4 FBBEN SEREN STPC PEREN VPS MWIEN R/W 0 R/W 0 R 0 R/W 0 R 0 R/W 0 MEMSP IOSP R/W 0 R/W : Type 0 : Initial value Bit 31 Mnemonic DPE Field Name Detected Parity Error Description Detected Parity Error (Default: 0) Indicates that a parity error was detected. A parity error is detected in the three following situtations: • Detected a data parity error as the Read command PCI initiator. • Detected a data parity error as the Write command PCI target. • Detected an address parity error. This bit is set regardless of the setting of the Parity Error Response bit (PCISTATUS.PEREN) of the PCI Status, Command Register. 1: Detected a parity error. 0: Did not detect a parity error. Read/Write R/W1C 30 SSE Signaled System Error Signaled System Error (Default: 0) Detects either an address parity error or a special cycle data parity error. This bit is set when the SERR* signal is asserted. 1: Asserted the SERR* signal 0: Did not assert the SERR* signal. Received Master Abort (Default: 0) This bit is set when a Master Abort aborts a PCI Bus Transaction when the PCI Controller operates as the PCI initiator (except for special cycles). 1: Transaction was aborted by a Master Abort. 0: Transaction was not aborted by a Master Abort. Received Target Abort (Default: 0) This bit is set when a Target Abort aborts a PCI Bus Transaction when the PCI Controller operates as the PCI initiator. 1: Transaction was aborted by a Target Abort. 0: Transaction was not aborted by a Target Abort. Signaled Target Abort (Default: 0) This bit is set when a Target Abort aborts a PCI Bus Transaction when the PCI Controller operates as the PCI target. 1: Bus transaction was aborted by a Target Abort. 0: Bus transaction was not aborted by a Target Abort. DEVSEL Timing (Fixed Value: 01) Three DEVSEL assert timings are defined in the PCI 2.2 Specifications: 00b = Fast; 01b = Medium; 10b = Slow; 11b = Reserved). With the exception of Read Configuration and Write Configuration, when the PCI Controller is the PCI target, the DEVSEL signal is asserted to a certain bus command and indicates the slowest speed for responding to the PCI Bus Master. R/W1C 29 RMA Received Master Abort R/W1C 28 RTA Received Target Abort R/W1C 27 STA Signaled Target Abort R/W1C 26:25 DT DEVSEL Timing R Figure 10.4.2 PCI Status, Command Register (1/3) 10-27 Chapter 10 PCI Controller Bit 24 Mnemonic MDPE Field Name Master Data Parity Error Description Master Data Parity Error (Default: 0) Indicates the a parity error occurred when the PCI Controller is the PCI initiator. This bit is not set when the PCI Controller is the target. This bit is set when all of the three following conditions are met. • It has been detected that the PERR* signal was set either directly or indirectly. • The PCI Controller is the Bus Master for a PCI Bus transaction during which an error occurred. • The Parity Error Response bit of the PCI Status Command Register (PCISTATUS.PEREN) has been set. Fast Back-to-Back Capable (Fixed Value: 1) Indicates whether target access of a fast back-to-back transaction can be accepted. Is fixed to “1”. 66 MHz Capable (Fixed Value: 1) Indicates the 66 MHz operation is possible. Is fixed to “1”. Capabilities List (Fixed Value: 1) Indicates that the capabilities list is being implemented. Is fixed to “1”. Fast Back-to-Back Enable (Default: 0) Indicates that issuing of fast back-to-back transactions has been enabled. 1: Enable 0: Disable SERR* Enable (Default: 0) Enables/Disables the SERR* signal. The SERR* signal reports that either a PCI Bus address parity error or a special cycle data parity error was detected. The SERR* signal is only asserted when the Parity Error Response bit is set and this bit is set. 1: Enable 0: Disable Stepping Control (Fixed Value: 0) Indicates that stepping control is not being supported. Parity Error Response (Default 0) Sets operation when a PCI address/data parity error is detected. A parity error response (either when the Parity Error Response bit (PCISTATUS.PEREN) of the PERR* Signal Assert or PCI Status, Command Register is set, or the SERR* signal is asserted) is performed only when this bit is set. When this bit is cleared, the PCI Controller ignores all parity errors and continues the transaction process as if the parity of that transaction was correct. 1: Parity error response is performed. 0: Parity error response is not performed. VGA Palette Snoop (Fixed Value: 0) Indicates that the VGA palette snoop function is not supported. Read/Write R/W1C 23 FBBCP Fast Back-toBack Capable Reserved R 22 21 20 19:10 9 FBBEN 66MCP CL ⎯ R R ⎯ R/W 66 MHz Capable Capabilities List Reserved Fast Back-toBack Enable 8 SEREN SERR* Enable R/W 7 6 STPC PEREN Stepping Control Parity Error Response R R/W 5 4 VPS MWIEN VGA Palette Snoop Memory Write and Invalidate Enable Special Cycles Bus Master R R/W Memory Write and Invalidate Enable (Default: 0) Controls whether to use the Memory Write and Invalidate command instead of the Memory Write command when the PCI Controller is the initiator. Special Cycles (Fixed Value: 0) Indicates that special cycles will not be accepted as PCI targets. Bus Master (Default: 0/1) The default is only “1” when in the PCI Boot mode and in the Host mode. 1: Operates as the Bus Master. 0: Does not operate as the Bus Master. R R/W 3 2 SC BM Figure 10.4.2 PCI Status, Command Register (2/3) 10-28 Chapter 10 PCI Controller Bit 1 Mnemonic MEMSP Field Name Memory Space Description Memory Space (Default: 0) 1: Respond to PCI memory access. 0: Do not respond to PCI memory access. I/O Space (Default: 0) 1: Respond to PCI I/O access. 0: Do not respond to PCI I/O access. Read/Write R/W 0 IOSP I/O Space R/W Figure 10.4.2 PCI Status, Command Register (3/3) 10-29 Chapter 10 PCI Controller 10.4.3 Class Code, Revision ID Register (PCICCREV) 0xD008 The Class Code field corresponds to the Class Code Register of the PCI Configuration Space, and the Revision ID field corresponds to the Revision ID Register of the PCI Configuration Space. This register cannot be accessed when in the Satellite mode. 31 CC R/L 0x0600 15 CC R/L 0x00 8 7 RID R/L : Type : Initial value 0 : Type : Initial value 16 Bits 31:8 Mnemonic CC Field Name Class Code Description Class Code (Default: 0x060000) Classifies the device types. The default is 060000h, which defines the PCI Controller as a Host bridge device. It is possible to change the device type by loading data from Configuration EEPROM during initialization. Revision ID Indicates the device revision ID. Please contact our Engineering Department for the exact value. It is possible to change the revision ID by loading data from Configuration EEPROM during initialization. Read/Write R/L 7:0 RID Revision ID R/L Figure 10.4.3 Class Code, Revision ID Register 10-30 Chapter 10 PCI Controller 10.4.4 PCI Configuration 1 Register (PCICFG1) 0xD00C The following fields correspond to the following registers. BIST field → BIST Register of the PCI Configuration Space Header Type field → Header Type Register in the PCI Configuration Space Latency Timer field → Latency Timer Register of the PCI Configuration Space Cache Line Size field → Cache Line Size Register of the PCI Configuration Space. This register cannot be accessed when the PCI Controller is in the Satellite mode. 31 BISTC R 0 15 30 Reserved 24 23 MFUNS R 0 22 HT R/L 0x00 16 : Type : Initial value 0 CLS R/W 0x00 : Type : Initial value 8 LT R/W 0x00 7 Bit 31 30:24 23 22:16 Mnemonic BISTC Field Name BIST Capable Reserved Description BIST Capable (Fixed Value: 0) Indicates that the BIST function is not being supported. Multi-Function (Fixed Value: 0) 0: Indicates that the device is a single-function device. Header Type (Default: 0x00) Indicates the Header type. 0000000: Header Type 0 It is possible to change the header type by loading data from Configuration EEPROM during initialization. Latency Timer (Default: 0x00) Sets the latency timer value. Specifies the PCI Bus clock count during which to abort access when the GNT* signal is deasserted during PCI access. Since the lower two bits are fixed to “0”, cycle counts can only be specified in multiples of 4. Cache Line Size (Default: 0x00) Is used to select the PCI Bus command during a Burst Read transaction. See “10.3.3 Supported PCI Bus Commands)” for more information. Read/Write R ⎯ R R/L MFUNS HT Multi-Function Header Type 15:8 LT Latency Timer R/W 7:0 CLS Cache Line Size R/W Figure 10.4.4 PCI Configuration 1 Register 10-31 Chapter 10 PCI Controller 10.4.5 P2G Memory Space 0 PCI Lower Base Address Register (P2GM0PLBASE) 0xD010 This register corresponds to the Memory Space 0 Lower Base Address Register at offset address 0x10 of the PCI Configuration Space. This register cannot be accessed when the PCI Controller is in the Satellite mode. 31 BA[31:29] R/W 0x00 15 Reserved 4 3 PF R 1 2 TYPE R 00 1 0 MSI R 0 : Type : Initial value 29 28 Reserved : Type : Initial value 16 Bit 31:29 Mnemonic BA[31:29] Field Name Base Address Description Base Address (Default: 0x00) Sets the lower address of the PCI base address in Target Access Memory Space 0. The size of Memory Space 0 is fixed at 512 MB. Prefetchable (Fixed Value: 1) 1: Indicates that memory is prefetchable. Type (Default: 00) 00: Indicades that an address is within a 32-bit address region. Memory Space Indicator (Fixed Value: 0) 0: Indicates that this Base Address Register is for use by the PCI Memory Space. Read/Write R/W 28:4 3 2:1 0 PF TYPE MSI Reserved Prefetchable Type Memory Space R R R ⎯ Figure 10.4.5 P2G Memory Space 0 PCI Lower Base Address Register 10-32 Chapter 10 PCI Controller 10.4.6 P2G Memory Space 0 PCI Upper Base Address Register (P2GM0PUBASE) 0xD014 This register is unused since the PCI Controller does not support the target dual-address cycle. It is forbidden to write to this register. 10.4.7 P2G Memory Space 1 PCI Lower Base Address Register (P2GM1PLBASE) 0xD018 This register corresponds to the Memory Space 1 Lower Base Address Register at offset address 0x18 of the PCI Configuration Space. This register cannot be accessed when the PCI Controller is in the Satellite mode. 31 BA[31:24] R/W 0x00 15 Reserved 24 23 Reserved 16 : Type : Initial value 4 3 PF R 1 2 TYPE R 00 1 0 MSI R 0 : Type : Initial value Bit 31:24 Mnemonic BA[31:24] Field Name Base Address Description Base Address (Default: 0x00) Sets the lower address of the PCI base address in Target Access Memory Space 1. The size of Memory Space 1 is fixed at 16 MB. Prefetchable (Fixed Value: 1) 1: Indicates that memory is prefetchable. Memory Type (Default: 00) 00: Indicates that memory is placed in the 32-bit address space. Memory Space Indicator (Fixed Value: 0) 0: Indicates that this Base Address Register is for use by the PCI Memory Space. Read/Write R/W 23:4 3 2:1 0 PF TYPE MSI Reserved Prefetchable Type Memory Space R R R ⎯ Figure 10.4.6 P2G Memory Space 1 PCI Lower Base Address Register 10-33 Chapter 10 PCI Controller 10.4.8 P2G Memory Space 1 PCI Upper Base Address Register (P2GM1PUBASE) 0xD01C This register is unused since the PCI Controller does not support the target dual-address cycle. It is forbidden to write to this register. 10.4.9 P2G Memory Space 2 PCI Base Address Register (P2GM2PBASE) 0xD020 This register corresponds to the Memory Space 2 Base Address Register at offset address 0x20 of the PCI Configuration Space. This register cannot be accessed when the PCI Controller is in the Satellite mode. 31 BA[31:20] R/W 0x000 15 Reserved 4 3 PF R 0 2 TYPE R 00 1 0 MSI R 0 : Type : Initial value 20 19 Reserved : Type : Initial value 16 Bit 31:20 Mnemonic BA[31:20] Field Name Base Address Description Base Address (Default: 0x00) Sets the PCI base address in Target Access Memory Space 2. The size of Memory Space 12 is fixed at 1 MB. Prefetchable (Fixed Value: 0) 0: Indicates that memory is not prefetchable. Memory Type (Default: 00) 00: Indicates that an address is within a 32-bit address region. Memory Space Indicator (Fixed Value: 0) 0: Indicates that this Base Address Register is for use by the PCI Memory Space. Read/Write R/W 19:4 3 2:1 0 PF TYPE MSI Reserved Prefetchable Type Memory Space R R R ⎯ Figure 10.4.7 P2G Memory Space 2 PCI Base Address Register 10-34 Chapter 10 PCI Controller 10.4.10 P2G I/O Space PCI Base Address Register (P2GIOPBASE) 0xD024 This register corresponds to the I/O Space Base Address at offset address 0x24 of the PCI Configuration Space. This register cannot be accessed when the PCI Controller is in the Satellite mode. 31 BA[31:16] R/W 0x0000 15 BA[15:8] R/W 0x00 8 7 Reserved 1 0 IOSI R 1 : Type : Initial value : Type : Initial value 16 Bit 31:8 Mnemonic BA[31:8] Field Name Base Address Description Read/Write Base Address (Default: 0x00) R/W Sets the PCI base address of the Target Access I/O Space. The size of this I/O space is fixed at 256 Bytes. ⎯ I/O Space Indicator (Fixed Value: 1) 1: Indicates that this Base Address Register is for use by the PCI I/O Space. R 7:1 0 IOSI Reserved I/O Space Figure 10.4.8 P2G I/O Space PCI Base Address Register 10-35 Chapter 10 PCI Controller 10.4.11 Subsystem ID Register (PCISID) 0xD02C The Subsystem ID field corresponds to the Subsystem ID Register of the PCI Configuration Space, and the Subsystem Vendor ID field corresponds to the Subsystem Vendor ID Register of the PCI Configuration Space. This register cannot be accessed when the PCI Controller is in the Satellite mode. 31 SSID R/L 0x0000 15 SSVID R/L 0x0000 : Type : Initial value 0 : Type : Initial value 16 Bits 31:16 Mnemonic SSID Field Name Subsystem ID Description Subsystem ID (Default: 0x0000) This register is used to acknowledge either a subsystem that has a PCI device or an add-in board. It is possible to change the Subsystem ID by loading data from Configuration EEPROM during initialization. Subsystem Vendor ID (Default: 0x0000) This register is used to acknowledge either a subsystem that has a PCI device or an add-in board. It is possible to change the Subsystem ID by loading data from Configuration EEPROM during initialization. Read/Write R/L 15:0 SSVID Subsystem Vendor ID R/L Figure 10.4.9 Subsystem ID Register 10-36 Chapter 10 PCI Controller 10.4.12 Capabilities Pointer Register (PCICAPPTR) 0xD034 The Capabilities Pointer field corresponds to the Capabilities Pointer Register of the PCI Configuration Space. This register cannot be accessed when the PCI Controller is in the Satellite mode. 31 Reserved : Type : Initial value 15 Reserved 8 7 CAPPTR R 0xDC : Type : Initial value 0 16 Bits 31:8 7:0 Mnemonic CAPPTR Field Name Reserved Capabilities Pointer Description Capabilities Pointer (Fixed Value: 0xDC) Indicates as an offset value the starting address of the capabilities list that indicates extended functions. Read/Write ⎯ R Figure 10.4.10 Capabilities Pointer Register 10-37 Chapter 10 PCI Controller 10.4.13 PCI Configuration 2 Register (PCICFG2) 0xD03C The following fields correspond to the following registers: Max. Latency field → Max_Lat Register of the PCI Configuration Space Min. Grant field → Min_Gnt Register of the PCI Configuration Space Interrupt Pin field → Interrupt Pin Register of the PCI Configuration Space Interrupt Line field → Interrupt Line Register of the PCI Configuration Space This register cannot be accessed when the PCI Controller is in the Satellite mode. 31 ML R/L 0x0A 15 IP R/L 0x01 8 7 IL R/W 0x00 : Type : Initial value 24 23 MG R/L 0x02 0 : Type : Initial value 16 Bits 31:24 Mnemonic ML Field Name Maximum Latency Description Max_Lat (Maximum Latency) (Default: 0x0A) 00h: Does not use this register to determine PCI Bus priority. 01h-FFh: Specifies the time interval for requesting bus ownership. In units of 250 ns, assuming the PCICLK is 33 MHz. It is possible to change the maximum latency by loading data from Configuration EEPROM during initialization. Min_Gnt (Minimum Grant) (Default: 0x02) 00h: Is not used to calculate the latency timer value. 01h-FFh: Sets the time required for Burst transfer. In units of 250 ns, assuming the PCICLK is 33 MHz. It is possible to change this value by loading data from Configuration EEPROM during initialization. Interrupt Pin (Default: 0x01) Valid values: 00 - 04h 00h: Do not use interrupt signals. 01h: Use Interrupt signal INTA* 02h: Use Interrupt signal INTB* 03h: Use Interrupt signal INTC* 04h: Use Interrupt signal INTD* 05h - FFh: Reserved It is possible to change this value by loading data from Configuration EEPROM during initialization. When using either the REQ[2]* signal or the PIO signal to report an interrupt to an external device as the PCI device, please use EEPROM to set the connection with that device. Interrupt Line (Default: 0x00) This is a readable/writable 8-bit register. The software uses this register to indicate information such as the interrupt signal connection information. Operation of the TX4938 is not affected. Read/Write R/L 23:16 MG Minimum Grant R/L 15:8 IP Interrupt Pin R/L 7:0 IL Interrupt Line R/W Figure 10.4.11 PCI Configuration 2 Register 10-38 Chapter 10 PCI Controller 10.4.14 G2P Timeout Count Register (G2PTOCNT) 0xD040 The Retry Timeout field corresponds to the Retry Timeout Value Register of the PCI Configuration Space, and the TRDY Timeout field corresponds to the TRDY Timeout Value Register of the PCI Configuration Space. This register cannot be accessed when the PCI Controller is in the Satellite mode. 31 Reserved : Type : Initial value 15 RETRYTO R/W 0x80 8 7 TRDYTO R/W 0x80 : Type : Initial value 0 16 Bits 31:16 15:8 Mnemonic RETRYTO Field Name Reserved Retry Timeout Description Read/Write ⎯ R/W Retry Time Out (Default: 0x80) Sets the maximum number of retries to accept when operating as the initiator on the PCI Bus. Ends with an error when receiving more retry terminations than the set maximum number. Setting a “0” disables this timeout function. Note: Generally, disable retry time-out detection by setting this field to zero. Some PCI devices invoke more than 128 retries at normal times. TRDY Time Out (Default: 0x80) Sets the maximum value of the time to wait for assertion of the TRDY* signal when operating as the initiator on the PCI Bus. Setting a “0” disables this timeout function. Note: Generally, disable TRDY time-out detection by setting this field to zero. Some PCI devices exhibit a TRDY delay longer than 128 PCI clocks at normal times. R/W 7:0 TRDYTO TRDY Timeout Figure 10.4.12 G2P Timeout Count Register 10-39 Chapter 10 PCI Controller 10.4.15 G2P Status Register (G2PSTATUS) 31 Reserved : Type : Initial value 15 Reserved 2 1 0 0xD080 16 IDTTOE IDRTOE R/W1C R/W1C : Type 0x0 0x0 : Initial value Bit 31:2 1 0 Mnemonic IDTTOE IDRTOE Field Name Reserved TRDY Timeout Error Retry Timeout Error Description Initiator Detected TRDY Time Out Error (Default: 0x0) This bit is set when the initiator detects a TRDY timeout. Initiator Detected Retry Time Out Error (Default: 0x0) This bit is set when the initiator detects a Retry timeout. Read/Write ⎯ R/W1C R/W1C Figure 10.4.13 G2P Status Register 10-40 Chapter 10 PCI Controller 10.4.16 G2P Interrupt Mask Register (G2PMASK) 0xD084 31 Reserved : Type : Initial value 15 Reserved 2 1 0 16 IDTTOEIE IDRTOEIE R/W 0x0 R/W : Type 0x0 : Initial value Bit 31:2 1 Mnemonic IDTTOEIE Field Name Reserved TRDY Timeout Error Interrupt Enable Retry Timeout Error Interrupt Enable Description Initiator Detected TRDY Time Out Interrupt Enable (Default: 0x0) The initiator generates an interrupt when it detects a TRDY timeout. 1: Generates an interrupt. 0: Does not generate an interrupt. Initiator Detected Retry Time Out Interrupt Enable (Default: 0x0) The initiator generates an interrupt when it detects a Retry timeout. 1: Generates an interrupt. 0: Does not generate an interrupt. Read/Write ⎯ R/W 0 IDRTOEIE R/W Figure 10.4.14 G2P Interrupt Mask Register 10-41 Chapter 10 PCI Controller 10.4.17 Satellite Mode PCI Status Register (PCISSTATUS) 0xD088 The PCI Status, Command Register (PCISTATUS) or the PMCSR Register of the Configuration Space cannot be accessed when the PCI Controller is in the Satellite mode. It is possible however to read values from either of these registers. 31 Reserved 26 25 PS R 0x0 15 DPE R 0x0 14 SSE R 0x0 13 RMA R 0x0 12 RTA R 0x0 11 STA R 0x0 10 DT R 0x1 9 8 MDPE R 0x0 24 23 PMEEN 22 Reserved 16 R 0x0 7 Reserved 0 : Type : Initial value : Type : Initial value Bit 31:24 25:24 Mnemonic PS Field Name Reserved Power State Description Read/Write ⎯ R PowerState (Default: 0x0) This is a shadow register of the PowerState field in the PMCSR Register. Note: Read this field in the following procedures. If other procedures are used, incorrect data may be read. (1) General procedures After checking the P2GSTATUS.PMSC bit is set, read the PS field. (2) Procedures to read at any time To read PS field directly, but not using the procedures shown above (1), read the PS field twice consecutively. Use the value if the same value is read. PME_En (Default: 0x0) This is a shadow register of the PME_En bit of the PMCSR Register. Detected Parity Error (Default: 0x0) This is a shadow register of the PCISTATUS.DPE bit. Signaled System Error (Default: 0x0) This is a shadow register of the PCISTATUS.SSE bit. Received Master Abort (Default: 0x0) This is a shadow register of the PCISTATUS.RMA bit. Received Target Abort (Default: 0x0) This is a shadow register of the PCISTATUS.RTA bit. Signaled Target Abort (Default: 0x0) This is a shadow register of the PCISTATUS.STA bit. DEVSEL Timing (Fixed Value: 0x1) This is a shadow register of the PCISTATUS.DT field. Master Data Parity Error Detected (Default: 0x0) This is a shadow register of the PCISTATUS.MDPE bit. R ⎯ R R R R R R R ⎯ 23 22:16 15 14 13 12 11 10:9 8 7:0 PMEEN PME Enable Reserved DPE SSE RMA RTA STA DT MDPE Detected Parity Error Signaled System Error Received Master Abort Received Target Abort Signaled Target Abort Set DEVSEL Timing Data Parity Detected Reserved Figure 10.4.15 Satellite Mode PCI Status Register 10-42 Chapter 10 PCI Controller 10.4.18 PCI Status Interrupt Mask Register (PCIMASK) 0xD08C 31 Reserved : Type : Initial value 15 14 13 12 11 10 9 8 MDPEIE 16 7 Reserved 0 DPEIE SSEIE RMAIE RTAIE STAIE R/W 0x0 R/W 0x0 R/W 0x0 R/W 0x0 R/W 0x0 Reserved R/W 0x0 : Type : Initial value Bit 31:16 15 Mnemonic DPEIE Field Name Reserved Detected Parity Error Interrupt Enable Description Detected Parity Error Interrupt Enable (Default: 0x0) Generates an interrupt when a parity error is detected. Usually, this interrupt is masked and a Master Data Parity error signals the error to the system. 1: Generates an interrupt. 0: Does not generate an interrupt. Signaled System Error Interrupt Enable (Default: 0x0) Generates an interrupt when a system error is signaled. 1: Generates an interrupt. 0: Does not generate an interrupt. Received Master Abort Interrupt Enable (Default: 0x0) Generates an interrupt when a Master Abort is received. 1: Generates an interrupt. 0: Does not generate an interrupt. Received Target Abort Interrupt Enable (Default: 0x0) Generates an interrupt when a Target Abort is received. 1: Generates an interrupt. 0: Does not generate an interrupt. Signaled Target Abort Interrupt Enable (Default: 0x0) Generates an interrupt when a Target Abort is signaled. 1: Generates an interrupt. 0: Does not generate an interrupt. Received Master Abort (Default: 0x0) This is a shadow register of the PCISTATUS.RMA bit. Received Target Abort (Default: 0x0) This is a shadow register of the PCISTATUS.RTA bit. Signaled Target Abort (Default: 0x0) This is a shadow register of the PCISTATUS.STA bit. Master Data Parity Detected Interrupt Enable (Default: 0x0) Generates an interrupt when data parity is detected. 1: Generates an interrupt. 0: Does not generate an interrupt. Read/Write ⎯ R/W 14 SSEIE Signaled System Error Interrupt Enable Received Master Abort Interrupt Enable Received Target Abort Interrupt Enable Signaled Target Abort Interrupt Enable Received Master Abort Received Target Abort Signaled Target Abort Reseved R/W 13 RMAIE R/W 12 RTAIE R/W 11 STAIE R/W 13 12 11 10:9 8 RMA RTA STA R/W R/W R/W ⎯ R/W MDPEIE Master Data Parity Detected Interrupt Enable Reserved 7:0 ⎯ Figure 10.4.16 PCI Status Interrupt Mask Register 10-43 Chapter 10 PCI Controller 10.4.19 P2G Configuration Register (P2GCFG) 31 Reserved 23 22 PME R/W1S 0x0 15 FTRD R/W 0x0 14 FTA R/W 0x0 13 12 11 10 9 8 7 Reserved : Type : Initial value 0xD090 21 20 19 Reserved : Type : Initial value 0 16 TPRBL R/W 0x3 Reserved MEM0PD MEM1PD MEM2PD TOBFR TIBFR R/W 0x0 R/W 0x0 R/W 0x0 R/W 0x0 R/W 0x1 Bit 31:23 22 Mnemonic PME Field Name Reserved PME Description Read/Write ⎯ R/W1S PME (Default: 0x0) When the PCI Controller is in the Satellite mode, writing “1” to this bit signals a PME (Power Management Event) to the PCI Host device. The PME* signal is asserted if the PME_Status bit of the PMCSR Register is set and the PME_En bit of the PMCSR Register is set. This bit is cleared when the PCI Host device writes a “1” to the PME_Status bit of the PMCSR Register. This bit is invalid when the PCI Contoller is in the Host mode since the PME* signal is an input signal. Target Prefetch Read Burst Length (Default: 0x3) These bits set the number of DWORDS (32-bit words) to be read into the data FIFO when prefetching is valid during a target memory Read operation. Extra data transferred to the data FIFO is deleted when performing a memory Read operation of a PCI Bus transfer that is smaller than the set size. This setting is invalid when prefetching is disabled. 0x00: Access and transfer each 2 DWORDs of data to the target read FIFO. 0x01: Access and transfer each 4 DWORDs of data to the target read FIFO. 0x10: Access and transfer each 6 DWORDs of data to the target read FIFO. 0x11: Access and transfer each 8 DWORDs of data to the target read FIFO. R/W 21:20 TPRBL Target Prefetch Read Burst Length 19:16 15 FTRD Reserved Force Target Retry/Disconnect Force Target Abort Reserved MEM0PD Memory 0 Window Prefetch Disable Memory 0 Window Prefetch Disable (Default: 0x0) Prefetching during a G-Bus Burst Read transfer cycle to the Memory 0 Space is disabled when this bit is set to “1”. PCI Burst Read transactions are not supported when prefetching is disabled. Even if the setting of this bit is changed, prefetchable bits in the Base Address Register of the PCI Configuration Space will not reflect this change. We recommend using the default setting when the PCI Controller is in the Satellite mode. R/W Force Target Retry/Disconnect (Default: 0x0) The PCI Controller executes Retry Termination on a PCI Read access transaction if this bit is set to “1”. This is a diagnostic function. Force Target Abort (Default: 0x0) The PCI Controller executes a Target Abort on a PCI Read access transaction if this bit is set to “1”. This is a diagnostic function. R/W ⎯ 14 FTA R/W 13 12 ⎯ Figure 10.4.17 P2G Configuration Register (1/2) 10-44 Chapter 10 PCI Controller Bit 11 Mnemonic MEM1PD Field Name Memory 1 Window Prefetch Disable Description Memory 1 Window Prefetch Disable (Default: 0x0) Prefetching during a G-Bus Burst Read transfer cycle to the Memory 1 Space is disabled when this bit is set to “1”. PCI Burst Read transactions are not supported when prefetching is disabled. Even if the setting of this bit is changed, prefetchable bits in the Base Address Register of the PCI Configuration Space will not reflect this change. We recommend using the default setting when the PCI Controller is in the Satellite mode. Memory 2 Window Prefetch Disable (Default: 0x1) Prefetching during a G-Bus Burst Read transfer cycle to the Memory 2 Space is disabled when this bit is set to “1”. PCI Burst Read transactions are not supported when prefetching is disabled. Even if the setting of this bit is changed, prefetchable bits in the Base Address Register of the PCI Configuration Space will not reflect this change. We recommend using the default setting when the PCI Controller is in the Satellite mode. Read/Write R/W 10 MEM2PD Memory 2 Window Space Prefetch Disable R/W 9 TOBFR Target Out-Bound Target Out-Bound FIFO Reset (Default: 0x0) FIFO Reset The PCI Controller flushes the CORE internal Target Out-Bound FIFO when “1” is written to this bit. This bit always reads out “0” when it is read. This is a diagnostic function. Target In-Bound FIFO Reset R/W 8 TIBFR R/W Target In-Bound FIFO Reset (Default: 0x0) The PCI Controller flushes the CORE internal Target In-Bound FIFO when “1” is written to this bit. This bit always read out “0” when it is read. This is a diagnostic function. ⎯ 7:0 Reserved Figure 10.4.17 P2G Configuration Register (2/2) 10-45 Chapter 10 PCI Controller 10.4.20 P2G Status Register (P2GSTATUS) 31 Reserved 25 24 23 22 PMECLR 0xD094 21 20 19 18 17 16 Reserved PMSC PMEES M66EN IOBFE IIBFE TOBFE TIBFE R 0x0 R 0x1 R 0x1 R 0x1 R 0x1 R/W1C R/W1C R/W1C 0x0 0x0 0x0 15 Reserved : Type : Initial value 0 : Type : Initial value Bit 31:25 24 Mnemonic PMSC Field Name Reserved Description Read/Write ⎯ PM State Change Power Management State Change (Default: 0x0) R/W1C Detected “1” is set to this bit when the PowerState field of the Power Management Register (PMCSR) is rewritten. This bit is cleared to “0” when a “1” is written to it. This bit is only valid when the PCI Controller is in the Satellite mode. PME_En Set Detected R/W1C PME_En Set (Default: 0x0) This bit is set to “1” when the PME_En bit of the PMCSR Register is set to “1”. When this bit is set, it indicates that the PCI Master (Host) device enabled PME* signal output. 1: Indicates that the PME_En bit is set. 0: Indicates that the PME_En bit is not set. This bit is cleared to “0” when a “1” is written to it. This bit is only valid when the PCI Controller is in the Satellite mode. 23 PMEES 22 PMECLR R/W1C PME Status Clear PME_Status Clear (Default: 0x0) Detected This bit indicates that the PME_Status bit of the PMCSR Register was cleared. 1: Indicates that the PME_Status bit was cleared. 0: Indicates that the PME_Status bit was not cleared. This bit is cleared to “0” when a “1” is written to it. This bit is only valid when the PCI Controller is in the Satellite mode. 66 MHz Drive Status M66EN Status (Default: 0x0) This bit indicates the current status of the M66EN signal. This bit can only be read. Writes to this bit are invalid. 1: The M66EN signal is asserted. 0: The M66EN signal is deasserted. Initiator Out-Bound FIFO Empty (Default: 0x1) 1: Indicates that the Initiator Out-Bound FIFO is empty. 0: Indicates that the Initiator Out-Bound FIFO is not empty. This is a diagnostic function. Initiator In-Bound FIFO Empty (Default: 0x1) 1: Indicates that the Initiator In-Bound FIFO is empty. 0: Indicates that the Initiator In-Bound FIFO is not empty. This is a diagnostic function. R 21 M66EN 20 IOBFE Initiator OutBound FIFO Empty Initiator In-Bound FIFO Empty R 19 IIBFE R 18 TOBFE Target Out-Bound Target Out-Bound FIFO Empty (Default: 0x1) FIFO Empty 1: Indicates that the Target Out-Bound FIFO is empty. 0: Indicates that the Target Out-Bound FIFO is not empty. This is a diagnostic function. Target In-Bound FIFO Empty Target In-Bound FIFO Empty (Default: 0x1) 1: Indicates that the Target In-Bound FIFO is empty. 0: Indicates that the Target In-Bound FIFO is not empty. This is a diagnostic function. R 17 TIBFE R 16:0 Reserved ⎯ Figure 10.4.18 P2G Status Reigster 10-46 Chapter 10 PCI Controller 10.4.21 P2G Interrupt Mask Register (P2GMASK) 0xD098 31 Reserved 25 24 23 22 21 20 Reserved : Type : Initial value 0 Reserved : Type : Initial value 16 PMSCIE PMEESIE PMECLRIE M66ENIE R/W 0x0 15 R/W 0x0 R/W 0x0 R/W 0x0 Bit 31:25 24 Mnemonic PMSCIE Field Name Reserved Power Management State Change Interrupt Enable PME_En Set Interrupt Enable Description Power Management State Change Interrupt Enable (Default: 0x0) Generates an interrupt when the PowerState field of the Power Management Register (PMCSR) is rewritten. 1: Generates an interrupt. 0: Does not generate an interrupt. PME_En Set Interrupt Enable (Default: 0x0) Generates an interrupt when the PME_En bit of the PMCSR Register is set. 1: Generates an interrupt. 0: Does not generate an interrupt. Read/Write ⎯ R/W 23 PMEESIE R/W 22 PMECLRIE PME Status Clear PME_Status Clear Interrupt Enable (Default: 0x0) R/W Interrupt Enable Generates an interrupt when the PME_Status bit of the PMCSR Register is cleared. 1: Generates an interrupt. 0: Does not generate an interrupt. 66 MHz Drive Interrupt Enable M66EN Detected Interrupt Enable (Default: 0x0) Generates an M66EN interrupt when the PCI Controller is in the Satellite mode. Note: This bit must be masked in order to clear an M66EN interrupt since the M66EN bit of the P2GSTATUS Register itself cannot be cleared. When the PCI Controller is in the Host mode, M66EN interrupts are invalid and will not be signaled even if this bit is set to “1”. 1: Generates an interrupt. 0: Does not generate an interrupt. R/W 21 M66ENIE 20:0 Reseved ⎯ Figure 10.4.19 P2G Interrupt Mask Register 10-47 Chapter 10 PCI Controller 10.4.22 P2G Current Command Register (P2GCCMD) 31 Reserved : Type : Initial value 15 Reserved 4 3 TCCMD R 0x0 : Type : Initial value 0 0xD09C 16 Bits 31:4 3:0 Mnemonic TCCMD Field Name Reserved Target Current Command Register Description Target Current Command (Default: 0x0) Indicates the PCI command within the target access process that is currently in progress. This is a diagnostic function. Read/Write ⎯ R Figure 10.4.20 P2G Current Command Register 10-48 Chapter 10 PCI Controller 10.4.23 PCI Bus Arbiter Request Port Register (PBAREQPORT) 0xD100 This register sets the correlation between each PCI Bus request source (PCI Controller and REQ[3:0]) and each Internal PCI Bus Arbiter Request port (Master A - D, W - Z) (see Figure 10.3.8). When changing the settings of this register, unused ports must be programmed to a reserved value. The eight non-reserved fields must be programmed to different values. After changing this register, the Broken Master Register (BM) value becomes invalid since the bit mapping changes. This register is only valid when using the on-chip PCI Bus Arbiter. 31 Reserved 30 ReqAP R/W 111 28 27 Reserved 26 ReqBP R/W 110 24 23 Reserved 22 ReqCP R/W 101 20 19 Reserved 18 ReqDP R/W 100 16 : Type : Initial value 0 15 Reserved 14 ReqWP R/W 011 12 11 Reserved 10 ReqXP R/W 010 8 7 Reserved 6 ReqYP R/W 001 4 3 Reserved 2 ReqZP R/W 000 : Type : Initial value Bit 31 30:28 Mnemonic ReqAP Field Name Reserved Request A Port Description Request A Port (Default: 111) Sets the PCI Bus Master that connects to the Internal PCI Bus Arbiter Request A Port (Master A). 111: Makes the PCI Controller Master A. 110: Reserved 101: Reserved 100: Reserved 011: Makes REQ*[3] Master A. 010: Makes REQ*[2] Master A. 001: Makes REQ*[1] Master A. 000: Makes REQ*[0] Master A. Request B Port (Default: 110) Sets the PCI Bus Master that connects to the Internal PCI Bus Arbiter Request B Port (Master B). 111: Makes the PCI Controller Master B. 110: Reserved 101: Reserved 100: Reserved 011: Makes REQ*[3] Master B. 010: Makes REQ*[2] Master B. 001: Makes REQ*[1] Master B. 000: Makes REQ*[0] Master B. Request C Port (Default: 101) Sets the PCI Bus Master that connects to the Internal PCI Bus Arbiter Request C Port (Master C). 111: Makes the PCI Controller Master C. 110: Reserved 101: Reserved 100: Reserved 011: Makes REQ*[3] Master C. 010: Makes REQ*[2] Master C. 001: Makes REQ*[1] Master C. 000: Makes REQ*[0] Master C. Read/Write ⎯ R/W 27 26:24 ReqBP Reserved Request B Port R/W ⎯ 23 22:20 ReqCP Reserved Request C Port R/W ⎯ Figure 10.4.21 PCI Bus Arbiter Request Port Register (1/2) 10-49 Chapter 10 PCI Controller Bit 19 18:16 Mnemonic ReqDP Field Name Reserved Request D Port Description Request D Port (Default: 100) Sets the PCI Bus Master that connects to the Internal PCI Bus Arbiter Request D Port (Master D). 111: Makes the PCI Controller Master D. 110: Reserved 101: Reserved 100: Reserved 011: Makes REQ*[3] Master D. 010: Makes REQ*[2] Master D. 001: Makes REQ*[1] Master D. 000: Makes REQ*[0] Master D. Request W Port (Default: 011) Sets the PCI Bus Master that connects to the Internal PCI Bus Arbiter Request W Port (Master W). 111: Makes the PCI Controller Master W. 110: Reserved 101: Reserved 100: Reserved 011: Makes REQ*[3] Master W. 010: Makes REQ*[2] Master W. 001: Makes REQ*[1] Master W. 000: Makes REQ*[0] Master W. Request X Port (Default: 010) Sets the PCI Bus Master that connects to the Internal PCI Bus Arbiter Request X Port (Port X). 111: Makes the PCI Controller Master X. 110: Reserved 101: Reserved 100: Reserved 011: Makes REQ*[3] Master X. 010: Makes REQ*[2] Master X. 001: Makes REQ*[1] Master X. 000: Makes REQ*[0] Master X. Request Y Port (Default: 001) Sets the PCI Bus Master that connects to the Internal PCI Bus Arbiter Request Y Port (Port Y). 111: Makes the PCI Controller Master Y. 110: Reserved 101: Reserved 100: Reserved 011: Makes REQ*[3] Master Y. 010: Makes REQ*[2] Master Y. 001: Makes REQ*[1] Master Y. 000: Makes REQ*[0] Master Y. Request Z Port (Default: 000) Sets the PCI Bus Master that connects to the Internal PCI Bus Arbiter Request Z Port (Port Z). 111: Makes the PCI Controller Master Z. 110: Reserved 101: Reserved 100: Reserved 011: Makes REQ*[3] Master Z. 010: Makes REQ*[2] Master Z. 001: Makes REQ*[1] Master Z. 000: Makes REQ*[0] Master Z. Read/Write ⎯ R/W 15 14:12 ReqWP Reserved Request W Port R/W ⎯ 11 10:8 ReqXP Reserved Request X Port R/W ⎯ 7 6:4 ReqYP Reserved Request Y Port R/W ⎯ 3 2:0 ReqZP Reserved Request Z Port R/W ⎯ Figure 10.4.21 PCI Bus Arbiter Request Port Register (2/2) 10-50 Chapter 10 PCI Controller 10.4.24 PCI Bus Arbiter Configuration Register (PBACFG) 0xD104 This register is only valid when using the on-chip PCI Bus Arbiter. 31 Reserved : Type : Initial value 15 Reserved 4 3 2 1 0 16 FIXPA RPBA PBAEN BMCEN R/W 0 R/W 0 R/W 0 R/W : Type 0 : Initial value Bit 31:4 3 Mnemonic FIXPA Field Name Reserved Fixed Park Master Description Fixed Park Master (Default: 0) Selects the method for determining the Park Master. 0: The last Bus Master becomes the Park Master. 1: Internal PCI Bus Arbiter Request Port A is the Park Master. Read/Write ⎯ R/W 2 RPBA Reset PCI Bus Arbiter R/W Reset PCI Bus Arbiter (Default: 0) Resets the PCI Bus Arbiter. However, the PCI Bus Arbiter Register settings are saved. Please use the software to clear this bit. 1: The PCI Bus Arbiter is currently being reset. 0: The PCI Bus Arbiter is not currently being reset. PCI Bus Arbiter Enable (Default: 0) This is the Bus Arbiter Enable bit. After Reset, External PCI Bus requests to the PCI Arbiter cannot be accepted until this bit is set to “1”. The PCI Controller is the default Parking Master after Reset. 1: Enables the PCI Bus Arbiter. 0: Disables the PCI Bus Arbiter. Broken Master Check Enable (Default: 0) Controls Broken Master detection. 1: Enables the Broken PCI Bus Master check. 0: Disables the Broken PCI Bus Master check. R/W 1 PBAEN PCI Bus Arbiter Enable 0 BMCEN Broken Master Check Enable R/W Figure 10.4.22 PCI Bus Arbiter Configuration Register 10-51 Chapter 10 PCI Controller 10.4.25 PCI Bus Arbiter Status Register (PBASTATUS) 0xD108 This register is only valid when using the on-chip PCI Bus Arbiter. 31 Reserved : Type : Initial value 15 Reserved 1 0 BM R/W1C : Type 0 : Initial value 16 Bit 31:1 0 Mnemonic BM Field Name Reserved Broken Master Detected Description Broken Master Detected (Default: 0) This bit indicates that a Broken Master was detected. This bit is set to “1” if even one of the bits in the PCI Bus Arbiter Broken Master Register (PBABM) is “1”. 1: Indicates that a Broken Master was detected. 0: Indicates that no Broken Master has been detected. Read/Write ⎯ R/W1C Figure 10.4.23 PCI Bus Arbiter Status Register 10-52 Chapter 10 PCI Controller 10.4.26 PCI Bus Arbiter Interrupt Mask Register (PBAMASK) This register is only valid when using the on-chip PCI Bus Arbiter. 31 Reserved : Type : Initial value 15 Reserved 1 0 BMIE R/W : Type 0 : Initial value 16 0xD10C Bit 31:1 0 Mnemonic BMIE Field Name Reserved Description Read/Write ⎯ R/W Broken Master Broken Master Detected Interrupt Enable (Default: 0) Detected Interrupt Generates an interrupt when a Broken Master is detected. Enable 1: Generates an interrupt. 0: Does not generate an interrupt. Figure 10.4.24 PCI Bus Arbiter Interrupt Mask Register 10-53 Chapter 10 PCI Controller 10.4.27 PCI Bus Arbiter Broken Master Register (PBABM) 0xD110 This register indicates the acknowledged Broken Master. This register sets the bit that corresponds to the PCI Master device that was acknowledged as the Broken Master when the Broken Master Check Enable bit (BMCEN) in the PCI Bus Arbiter Configuration Register (PBACFG) is set. Regardless of the value of the Broken Master Check Enable bit, a PCI Master device is removed from the arbitration scheme when “1” is written to the corresponding BM bit. This register must be cleared to “0” since bit mapping changes, making this register value invalid when the PCI Bus Arbiter Request Port Register (PBAREQPORT) is changed. This register is only valid when using the on-chip PCI Bus Arbiter. 31 Reserved : Type : Initial value 15 Reserved 8 7 6 5 4 3 2 1 0 BM_A BM_B BM_C BM_D BM_W BM_X BM_Y BM_Z R/W 0x00 : Type : Initial value 16 Bit 31:8 7 Mnemonic BM_A Field Name Reserved Broken Master Description Broken Master A (Default: 0) Indicates whether PCI Bus Master A is a Broken Master. 1: PCI Bus Master A was acknowledged as a Broken Master. 0: PCI Bus Master A was not acknowledged as a Broken Master. Broken Master B (Default: 0) Indicates whether PCI Bus Master B is a Broken Master. 1: PCI Bus Master B was acknowledged as a Broken Master. 0: PCI Bus Master B was not acknowledged as a Broken Master. Broken Master C (Default: 0) Indicates whether PCI Bus Master C is a Broken Master. 1: PCI Bus Master C was acknowledged as a Broken Master. 0: PCI Bus Master C was not acknowledged as a Broken Master. Broken Master D (Default: 0) Indicates whether PCI Bus Master D is a Broken Master. 1: PCI Bus Master D was acknowledged as a Broken Master. 0: PCI Bus Master D was not acknowledged as a Broken Master. Broken Master W (Default: 0) Indicates whether PCI Bus Master W is a Broken Master. 1: PCI Bus Master W was acknowledged as a Broken Master. 0: PCI Bus Master W was not acknowledged as a Broken Master. Broken Master X (Default: 0) Indicates whether PCI Bus Master X is a Broken Master. 1: PCI Bus Master X was acknowledged as a Broken Master. 0: PCI Bus Master X was not acknowledged as a Broken Master. Broken Master Y (Default: 0) Indicates whether PCI Bus Master Y is a Broken Master. 1: PCI Bus Master Y was acknowledged as a Broken Master. 0: PCI Bus Master Y was not acknowledged as a Broken Master. Broken Master Z (Default: 0) Indicates whether PCI Bus Master Z is a Broken Master. 1: PCI Bus Master Z was acknowledged as a Broken Master. 0: PCI Bus Master Z was not acknowledged as a Broken Master. Read/Write ⎯ R/W 6 BM_B Broken Master R/W 5 BM_C Broken Master R/W 4 BM_D Broken Master R/W 3 BM_W Broken Master R/W 2 BM_X Broken Master R/W 1 BM_Y Broken Master R/W 0 BM_Z Broken Master R/W Figure 10.4.25 PCI Bus Arbiter Broken Master Register 10-54 Chapter 10 PCI Controller 10.4.28 PCI Bus Arbiter Current Request Register (PBACREQ) 0xD114 This register is a diagnostic register that is only valid when using the on-chip PCI Bus Arbiter. 31 Reserved : Type : Initial value 15 Reserved 8 7 CPCIBRS R/W 0x00 : Type : Initial value 0 16 Bits 31:8 7:0 Mnemonic CPCIBRS Field Name Reserved Current PCI Bus Request Status Description Current PCI Bus Request Status (Default: 0x00) This register indicates the status of the current PCI Bus Request Input Signal (PCI Controller and REQ*[3:0]). CPCIBRS[7] corresponds to the PCI Controller and CPCIBRS[3:0] correspond to REQ*[3:0]. Read/Write ⎯ R/W Figure 10.4.26 PCI Bus Arbiter Current Request Register 10-55 Chapter 10 PCI Controller 10.4.29 PCI Bus Arbiter Current Grant Register (PBACGNT) 0xD118 This is a diagnostic register that is only valid when using the on-chip PCI Bus Arbiter. 31 Reserved : Type : Initial value 15 Reserved 8 7 CPCIBGS R/W 0x80 : Type : Initial value 0 16 Bits 31:8 7:0 Mnemonic CPCIBGS Field Name Reserved Current PCI Grant Status Description Current PCI Bus Grant Status (Default: 0x80) This register indicates the current PCI Bus Grant output signal (PCI Controller and GNT*[3:0]). CPCIBGS[7] corresponds to the PCI Controller, and CPCIBGS[3:0] correspond to GNT*[3:0]. Read/Write ⎯ R/W Figure 10.4.27 PCI Bus Arbiter Current Grant Register 10-56 Chapter 10 PCI Controller 10.4.30 PCI Bus Arbiter Current State Register (PBACSTATE) 0xD11C This is a diagnostic register that is only valid when using the on-chip PCI Bus Arbiter. 31 Reserved : Type : Initial value 15 Reserved 8 7 FSM R/W 0 6 5 4 CPAS R 0x00 : Type : Initial value 0 16 Reserved Bit 31:8 7 Mnemonic FSM Field Name Reserved Observe PCI Arbiter State Machine Reserved Description Observe PCI Arbiter Finite State Machine (Default: 0) Specifies which State Machine to observe. 1: Observe the Level 1 State Machine. 0: Observe the Level 2 State Machine. Read/Write ⎯ R/W 6:5 ⎯ Figure 10.4.28 PCI Bus Arbiter Current State Register (1/2) 10-57 Chapter 10 PCI Controller Bit 4:0 Mnemonic CPAS Field Name Current PCI Bus Arbiter State Description Current PCI Bus Arbiter State (Default: 0x00) Displays the State Machine that was selected by the FSM bit. Please refer to Figures 12.5.3 and 12.11.1 for an explanation of Agent/Grant A - W and Level 2. When FSM =1: 0x00: Preparation state for transferring bus ownership to PCI Agent A. 0x01: State in which Grant A is provided to PCI Agent A when PCI Bus ownership is being held elsewhere. 0x02: State in which Grant A is provided to PCI Agent A when PCI Bus ownership is not being held elsewhere. 0x03: The agent that was provided Grant A exists in this state. If there is bus ownership, the PCI Bus Arbiter transfers bus ownership to another agent. 0x04: Preparation state for transferring bus ownership to PCI Agent B. 0x05: State in which Grant B is provided to PCI Agent B when PCI Bus ownership is being held elsewhere. 0x06: State in which Grant B is provided to PCI Agent B when PCI Bus ownership is not being held elsewhere. 0x07: The agent that was provided Grant B exists in this state. If there is bus ownership, the PCI Bus Arbiter transfers bus ownership to another agent. 0x08: Preparation state for transferring bus ownership to PCI Agent C. 0x09: State in which Grant C is provided to PCI Agent C when PCI Bus ownership is being held elsewhere. 0x0A: State in which Grant C is provided to PCI Agent C when PCI Bus ownership is not being held elsewhere. 0x0B: The agent that was provided Grant C exists in this state. If there is bus ownership, the PCI Bus Arbiter transfers bus ownership to another agent. 0x0C: Preparation state for transferring bus ownership to PCI Agent D. 0x0D: State in which Grant D is provided to PCI Agent D when PCI Bus ownership is being held elsewhere. 0x0E: State in which Grant D is provided to PCI Agent D when PCI Bus ownership is not being held elsewhere. 0x0F: The agent that was provided Grant D exists in this state. If there is bus ownership, the PCI Bus Arbiter transfers bus ownership to another agent. 0x10: Preparation state for transferring bus ownership to PCI Agent Level 2. 0x11: State in which Grant Level 2 is provided to PCI Agent Level 2 when PCI Bus ownership is being held elsewhere. 0x12: State in which Grant Level 2 is provided to PCI Agent Level 2 when PCI Bus ownership is not being held elsewhere. 0x13: The agent that was provided Grant Level 2 exists in this state. If there is bus ownership, the PCI Bus Arbiter transfers bus ownership to another agent. When FSM=0, the FSM=1 description is replaced as follows: A→W, B→X, C→Y, D→Z, Level 2→N/A. Read/Write R Figure 10.4.28 PCI Bus Arbiter Current State Register (2/2) 10-58 Chapter 10 PCI Controller 10.4.31 G2P Memory Space 0 G-Bus Base Address Register (G2PM0GBASE) 63 Reserved : Type : Initial value 47 Reserved 38 37 36 35 BA[35:32] R/W 0x0 16 BA[31:16] R/W 0x0000 15 BA[15:8] R/W 0x00 8 7 Reserved R 0x00 : Type : Initial value 0 : Type : Initial value : Type : Initial value 32 0xD120 48 BSWAP EXFER R/W R/W 0x0/0x1 0x1/0x0 31 Bit 63:38 37 Mnemonic BSWAP Field Name Reserved Byte Swap Description Byte Swap Disable (Default: Little Endian Mode: 0x1; Big Endian Mode: 0x0) Sets the byte swapping of Memory Space 0. 1: Do not perform byte swapping. 0: Perform byte swapping. Please use the default state in most situations. If this bit is changed to “1” when in the Big Endian Mode, the byte order of transfer to Memory Space 0 through DWORD (32-bit) access will not change. Endian Transfer (Default: Little Endian Mode: 0x0; Big Endian Mode: 0x1) Sets the Endian Transfer of Memory Space 0. 1: Performs Endian Transfer. 0: Does not perform Endian Transfer. Please use the default state. Base Address (Default: 0x0_0000_00) Sets the G-Bus base bus address of Memory Space 0 for initiator access. Can set the base address in 256-byte units. Read/Write ⎯ R/W 36 EXFER Endian Transfer R/W 35:8 BA[35:8] Base Address R/W 7:0 Reserved R Figure 10.4.29 G2P Memory Space 0 G-Bus Base Address Register 10-59 Chapter 10 PCI Controller 10.4.32 G2P Memory Space 1 G-Bus Base Address Register (G2PM1GBASE) 63 Reserved : Type : Initial value 47 Reserved 38 37 36 35 BA[35:32] R/W 0x0 16 BA[31:16] R/W 0x0000 15 BA[15:8] R/W 0x00 8 7 Reserved R 0x00 : Type : Initial value 0 : Type : Initial value : Type : Initial value 32 0xD128 48 BSWAP EXFER R/W R/W 0x0/0x1 0x1/0x0 31 Bit 63:38 37 Mnemonic BSWAP Field Name Reserved Byte Swap Description Byte Swap Disable (Default: Little Endian Mode: 0x1; Big Endian Mode: 0x0) Sets the byte swapping of Memory Space 1. 1: Do not perform byte swapping. 0: Perform byte swapping. Please use the default state in most situations. If this bit is changed to “1” when in the Big Endian Mode, the byte order of transfer to Memory Space 0 through DWORD (32-bit) access will not change. Endian Transfer (Default: Little Endian Mode: 0x0; Big Endian Mode: 0x1) Sets the Endian Transfer of Memory Space 1. 1: Performs Endian Transfer. 0: Does not perform Endian Transfer. Please use the default state. Base Address (Default: 0x0_0000_00) Sets the G-Bus base bus address of Memory Space 1 for initiator access. Can set the base address in 256-byte units. Read/Write ⎯ R/W 36 EXFER Endian Transfer R/W 35:8 BA[35:8] Memory Space Base Address 1 Reserved R/W 7:0 R Figure 10.4.30 G2P Memory Space 1 G-Bus Base Address Register 10-60 Chapter 10 PCI Controller 10.4.33 G2P Memory Space 2 G-Bus Base Address Register (G2PM2GBASE) 63 Reserved : Type : Initial value 47 Reserved 38 37 36 35 BA[35:32] R/W 0x0 16 BA[31:16] R/W 0x0000/0x1FC0 15 BA[15:8] R/W 0x00 8 7 Reserved R 0x00 : Type : Initial value 0 : Type : Initial value : Type : Initial value 32 0xD130 48 BSWAP EXFER R/W R/W 0x0/0x1 0x1/0x0 31 Bit 63:38 37 Mnemonic BSWAP Field Name Reserved Byte Swap Description Byte Swap Disable (Default: Little Endian Mode: 0x1; Big Endian Mode: 0x0) Sets the byte swapping of Memory Space 0. 1: Do not perform byte swapping. 0: Perform byte swapping. Please use the default state in most situations. If this bit is changed to “1” when in the Big Endian Mode, the byte order of transfer to Memory Space 0 through DWORD (32-bit) access will not change. Endian Transfer (Default: Little Endian Mode: 0x0; Big Endian Mode: 0x1) Sets the Endian Transfer of Memory Space 0. 1: Performs Endian Transfer. 0: Does not perform Endian Transfer. Please use the default state. Base Address (Default: Normal Mode: 0x0_0000_00; PCI Boot Mode: 0x0_1FC0_00) Sets the G-Bus base bus address of Memory Space 2 for initiator access. Can set the base address in 256-byte units. Read/Write ⎯ R/W 36 EXFER Endian Transfer R/W 35:8 BA[35:8] Base Address R/W 7:0 Reserved R Figure 10.4.31 G2P Memory Space 2 G-Bus Base Address Register 10-61 Chapter 10 PCI Controller 10.4.34 G2P I/O Space G-Bus Base Address Register (G2PIOGBASE) 63 Reserved : Type : Initial value 47 Reserved 38 37 36 35 BA[35:32] R/W 0x0 16 BA[31:16] R/W 0x0000 15 BA[15:8] R/W 0x00 8 7 Reserved R 0x00 : Type : Initial value 0 : Type : Initial value : Type : Initial value 32 0xD138 48 BSWAP EXFER R/W R/W 0x0/0x1 0x1/0x0 31 Bit 63:38 37 Mnemonic BSWAP Field Name Reserved Byte Swap Description Byte Swap Disable (Default: Little Endian Mode: 0x1; Big Endian Mode: 0x0) Sets the byte swapping of the I/O space. 1: Do not perform byte swapping. 0: Perform byte swapping. Please use the default state in most situations. If this bit is changed to “1” when in the Big Endian Mode, the byte order of transfer to the I/O Memory Space through DWORD (32-bit) access will not change. Endian Transfer (Default: Little Endian Mode: 0x0; Big Endian Mode: 0x1) Sets the Endian Transfer of the I/O Space. 1: Performs Endian Transfer. 0: Does not perform Endian Transfer. Please use the default state. Base Address (Default: 0x0_0000_00) Sets the G-Bus base bus address of the I/O Memory Space for initiator access. Can set the base address in 256-byte units. Read/Write ⎯ R/W 36 EXFER Endian Transfer R/W 35:8 BA[35:8] Base Address R/W 7:0 Reserved R Figure 10.4.32 G2P I/O Space G-Bus Address Register 10-62 Chapter 10 PCI Controller 10.4.35 G2P Memory Space 0 Address Mask Register (G2PM0MASK) 31 AM[35:20] R/W 0x0000 15 AM[19:8] R/W 0x000 4 3 Reserved R 0x0 : Type : Initial value 0 : Type : Initial value 0xD140 16 Bit 31:4 Mnemonic AM[35:8] Field Name Address Mask Description Read/Write R/W G-Bus to PCI-Bus Address Mask (Default: 0x0_0000_00) Sets the bits to be subject to address comparison. See 10.3.4 for more information. When setting a memory space size of 256 MB (0x1000_0000) for example, the value becomes 0x00FF_FFF0. R 3:0 Reserved Figure 10.4.33 G2P Memory Space 0 Address Mask Register 10-63 Chapter 10 PCI Controller 10.4.36 G2P Memory Space 1 Address Mask Register (G2PM1MASK) 31 AM[35:20] R/W 0x0000 15 AM[19:8] R/W 0x000 4 3 Reserved R 0x0 : Type : Initial value 0 : Type : Initial value 0xD144 16 Bit 31:4 Mnemonic AM[35:8] Field Name Address Mask Description Read/Write R/W G-Bus to PCI-Bus Address Mask (Default: 0x0_0000_00) Sets the bits to be subject to address comparison. See 10.3.4 for more information. When setting a memory space size of 256 MB (0x1000_0000) for example, the value becomes 0x00FF_FFF0. R 3:0 Reserved Figure 10.4.34 G2P Memory Space 1 Address Mask Register 10-64 Chapter 10 PCI Controller 10.4.37 G2P Memory Space 2 Address Mask Register (G2PM2MASK) 31 AM[35:20] R/W 0x0000/0x003F 15 AM[19:8] R/W 0x000/0xFFF 4 3 Reserved R 0x0 : Type : Initial value 0 : Type : Initial value 0xD148 16 Bit 31:4 Mnemonic AM[35:8] Field Name Address Mask Description Read/Write G-Bus to PCI-Bus Address Mask (Default: 0x0_0000_00) R/W (Default: Normal Mode: 0x0_0000_00; PCI Boot Mode: 0x0_03FF_FF) Sets the bits to be subject to address comparison. See 10.3.4 for more information. When setting a memory space size of 256 MB (0x1000_0000) for example, the value becomes 0x00FF_FFF0. Note: To boot PCI, set 0x0_003F_FF (4 Mbyte space) to AM[35:8] in the boot code. R 3:0 Reserved Figure 10.4.35 G2P Memory Space 2 Address Mask Register 10-65 Chapter 10 PCI Controller 10.4.38 G2P I/O Space Address Mask Register (G2PIOMASK) 31 AM[35:20] R/W 0x0000 15 AM[19:8] R/W 0x000 4 3 Reserved R 0x0 : Type : Initial value 0 : Type : Initial value 0xD14C 16 Bits 31:4 Mnemonic AM[35:8] Field Name Address Mask Description Read/Write R/W G-Bus to PCI-Bus Address Mask (Default: 0x0_0000_00) Sets the bits to be subject to address comparison. See 10.3.4 for more information. When setting a memory space size of 256 MB (0x0000_0100) for example, the value becomes 0x0000_0000. R 3:0 Reserved Figure 10.4.36 G2P I/O Space Address Mask Register 10-66 Chapter 10 PCI Controller 10.4.39 G2P Memory Space 0 PCI Base Address Register (G2PM0PBASE) 63 Reserved : Type : Initial value 47 Reserved 40 39 BA[39:32] R/W 0x00 31 BA[31:16] R/W 0x0000 15 BA[15:8] R/W 0x00 8 7 Reserved R 0x00 : Type : Initial value 0 : Type : Initial value 16 : Type : Initial value 32 0xD150 48 Bits 63:40 39:8 Mnemonic BA[39:8] Field Name Reserved Base Address Register Base Address (Default: 0x00_0000_00) Sets the PCI Base address of Memory Space 0 for initiator access. Can set the base address in 256-Byte units. Read/Write ⎯ R/W 7:0 Reserved R Figure 10.4.37 G2P Memory Space 0 G-Bus Base Address Register 10-67 Chapter 10 PCI Controller 10.4.40 G2P Memory Space 1 PCI Base Address Register (G2PM1PBASE) 63 Reserved : Type : Initial value 47 Reserved 40 39 BA[39:32] R/W 0x00 31 BA[31:16] R/W 0x0000/0xBFC0 15 BA[15:8] R/W 0x00 8 7 Reserved R 0x00 : Type : Initial value 0 : Type : Initial value 16 : Type : Initial value 32 0xD158 48 Bit 63:40 39:8 Mnemonic BA[39:8] Field Name Reserved Base Address Description Base Address (Default: 0x00_0000_00) Sets the PCI Base address of Memory Space 1 for initiator access. Can set the base address in 256-Byte units. Read/Write ⎯ R/W 7:0 Reserved R Figure 10.4.38 G2P Memory Space 1 G-Bus Base Address Register 10-68 Chapter 10 PCI Controller 10.4.41 G2P Memory Space 2 PCI Base Address Register (G2PM2PBASE) 63 Reserved : Type : Initial value 47 Reserved 40 39 BA[39:32] R/W 0x00 31 BA[31:16] R/W 0x0000 15 BA[15:8] R/W 0x00 8 7 Reserved R 0x00 : Type : Initial value 0 : Type : Initial value 16 : Type : Initial value 32 0xD160 48 Bits 63:40 39:8 Mnemonic BA[39:8] Field Name Reserved Base Address Description Base Address (Default: 0x00_0000_00) Sets the PCI Base address of Memory Space 2 for initiator access. Can set the base address in 256-Byte units. Read/Write ⎯ R/W 7:0 Reserved R Figure 10.4.39 G2P Memory Space 2 G-Bus Base Address Register 10-69 Chapter 10 PCI Controller 10.4.42 G2P I/O Space PCI Base Address Register (G2PIOPBASE) 63 Reserved : Type : Initial value 47 Reserved 40 39 BA[39:32] R/W 0x00 31 BA[31:16] R/W 0x0000 15 BA[15:8] R/W 0x00 8 7 Reserved R 0x00 : Type : Initial value 0 : Type : Initial value 16 : Type : Initial value 32 0xD168 48 Bits 63:40 39:8 Mnemonic BA[39:8] Field Name Reserved Base Address Description Base Address (Default: 0x00_0000_00) Sets the PCI Base address of the I/O Space for initiator access. Can set the base address in 256-Byte units. Read/Write ⎯ R/W 7:0 Reserved R Figure 10.4.40 G2P I/O Space G-Bus Address Register 10-70 Chapter 10 PCI Controller 10.4.43 PCI Controller Configuration Register (PCICCFG) 31 Reserved 28 27 GBWC R/W 0xfff 15 Reserved 12 11 10 9 8 7 6 5 4 3 2 1 0 : Type : Initial value 0xD170 16 HRST SRST IRBER R/W 0x0 R/W 0x0 R/W 0x1 G2PM0EN G2PM1EN G2PM2EN G2PIOEN TCAR ICAEN LCFG R/W 0x0 R/W 0x0 R/W 0x0 Reserved : Type : Initial value R/W 0x0 R/W 0x0 R/W 0x0 R/W 0x0 Bit 31:28 27:16 Mnemonic GBWC Field Name Reserved G-Bus Wait Counter Setting Description Read/Write ⎯ R/W G Bus Wait Counter (Default: 0xFFF) Sets the Retry response counter at the G-Bus during a PCI initiator Read transaction. When the initiator Read access cycle exceeds the setting of this counter, a Retry response is sent to the G-Bus and the G-Bus is released. PCI Read operation continues. This counter uses the G-Bus clock (GBUSCLK) when operating. When 0x000 is set, a Retry response is not sent to the G-Bus by a long response cycle count. When the G-Bus timeout count is used with the value other than the initial value 4096 GBUSCLK, G-BUS timeout may occur before a Retry response is sent. When G-Bus timeout of the configuration register (CCFG.GTOT) is used with the value other than the initial value (11), set the following maximum values to the register. GTOT value Maximum value of the register 10 (2048 GBUSCLK) : 0x7f0 01 (1024 GBUSCLK) : 0x3f0 00 ( 512 GBUSCLK) : 0x1f0 15:12 11 HRST Reserved Hardware Reset R/W Hard Reset (Default: 0x0) Performs PCI Controller hardware reset control. EEPROM reloading is also performed. This bit is automatically cleared when Reset ends. This is a diagnostic function. The PCI Controller cannot be accessed for 32 G-Bus clock cycles after this bit is set. 1: Perform a hardware reset on the PCI Controller. 0: Do not perform a hardware reset on the PCI Controller. ⎯ Figure 10.4.41 PCI Controller Configuration Register (1/3) 10-71 Chapter 10 PCI Controller Bit 10 Mnemonic SRST Field Name Software Reset Description Read/Write R/W Soft Reset (Default: 0x0) Performs PCI Controller software reset control. Data is also reloaded to the Configuration Space Register from EEPROM or from the Configuration Data Register. Please set this bit after the EEPROM Load End bit (PCICSTATUS.E2PDONE) is set. Also, please use the software to clear this bit at least four PCI Bus Clock cycles after Reset. Other registers of the PCI Controller cannot be accessed while this bit is set. This bit differs from the Hardware Reset bit (HRST). The following register values are not initialized. • G2P Status Register (G2PSTATUS) • PCI Bus Arbiter Status Register (PBASTATUS) • PCI Controller Status Register (PCICSTATUS) • Software Reset bit (PCICCFG.SRST) • Load Configuration Register bit (PCICCFG.LCFG) 1: The PCI Controller is reset by the software. 0: The PCI Controller is not reset by the software. 9 IRBER Bus Error Response Setting During Initiator Read R/W Initiator Read Bus Error Response (Default: 0x1) Bus error responses on the G-Bus are controlled when the following phenomena indicated by the PCI Status, Command Register (PICSTATUS) and the G2P Status Register (G2PSTATUS) occur during initiator Read access. Detected Parity Error (PCISTATUS.DPE) Received Master Abort (PCISTATUS.RMA) Received Target Abort (PCISTATUS.RTA) Initiator Detected TRDY Time Out Error (G2PSTATUS.IDTTOE) Initiator Detected Retry Time Out Error (G2PSTATUS.IDRTOE) 1: Responds with a Bus error on the G-Bus. 0: Does not respond with a Bus error on the G-Bus. (Normally terminates the Read transaction on the G-Bus. Read data is invalid.) 8 G2PM0EN Initiator Memory Space 0 Enable Initiator Memory Space 0 Enable (Default: 0x0) Controls PCI initiator access to Memory Space 0. 1: Memory Space 0 is valid. 0: Memory Space 0 is invalid. Initiator Memory Space 1 Enable (Default: 0x0) Controls PCI initiator access to Memory Space 1. 1: Memory Space 1 is valid. 0: Memory Space 1 is invalid. Initiator Memory Space 2 Enable (Default: Normal Mode: 0x0; PCI Boot Mode: 0x1) Controls PCI initiator access to Memory Space 2. 1: Memory Space 2 is valid. 0: Memory Space 2 is invalid. R/W 7 G2PM1EN Initiator Memory Space 1 Enable R/W 6 G2PM2EN Initiator Memory Space 2 Enable R/W 5 G2PIOEN Initiator I/O Space Initiator I/O Space Enable (Default: 0x0) Enable Controls PCI initiator access to the I/O Space.. 1: I/O Space is valid. 0: I/O Space is invalid. R/W Figure 10.4.41 PCI Controller Configuration Register (2/3) 10-72 Chapter 10 PCI Controller Bit 4 Mnemonic TCAR Field Name Target Configuration Access Ready Description Read/Write R/W Target Configuration Access Ready (Default: 0x0/0x1) Specifies whether to accept PCI access as a target. PCI controller receives a target access, when this bit is 1 and PCISTATUS.E2PDONE bit is 1. Configuration access from the PCI Bus can be accepted during PCI Boot up after initialization from EEPROM or after each initialization ends. Please use the software to set this bit after initialization ends. Retry response to PCI configuration access is performed until this bit is set. This bit becomes “1” only when in the PCI Boot Mode and the Satellite Mode. Operation when this bit is set to “1” then reset to “0” is not defined. 1: Responds to PCI target access. 0: Performs a Retry response to PCI target access. Initiator Configuration Access Enable (Default: 0x1) Controls initiator PCI configuration access using the G2P Configuration Address Register (G2PCFGADRS) and the G2P Configuration Data Register (G2PCFGDATA). This is a diagnostic function. 1: Initiator configuration access is possible. 0: Initiator configuration access is not possible. R/W 3 ICAEN Initiator Configuration Access Enable 2 LCFG Load Configuration Data Register R/W Load PCI Configuration Data Register (Default: 0x0) When a software reset is performed on this bit using the Software Reset bit (PCICFG.SRST) when this bit is already set, data is loaded to the Configuration Space Register from the Configuration Data 0/1/2/3 Register. 1: Load from the Configuration Data 0/1/2/3 Register. 0: Load from EEPROM. ⎯ 1:0 Reserved Figure 10.4.41 PCI Controller Configuration Register (3/3) 10-73 Chapter 10 PCI Controller 10.4.44 PCI Controller Status Register (PCICSTATUS) 31 Reserved : Type : Initial value 15 Reserved 11 10 PME 9 TLB 8 NIB 7 ZIB 6 Reserved 0xD174 16 5 4 3 GBE 2 Reserved 1 IWB R 0x0 0 E2PDONE PERR SERR R/W1C R/W1C R/W1C R/W1C 0x0 0x0 0x0 0x0 R/W1C R/W1C R/W1C 0x0 0x0 0x0 R ⎯ : Type : Initial value Bit 31:11 10 Mnemonic PME Field Name Reserved PME Detect Description PME Detect (Default: 0x0) When the PCI Controller is in the Host mode, this bit indicates that assertion of the PME* signal was detected. 1: Indicates that assertion of the PME* signal was detected. 0: Indicates that assertion of the PME* signal was not detected. Too Long Burst Detect (Default: 0x0) Indicates that a Burst transfer by the on-chip DMA Controller exceeding 8 DWORDs was detected. 1: Indicates that a Burst transfer exceeding 8 DWORDs was detected. 0: Indicates that no Burst transfer exceeding 8 DWORDs was detected. Negative Increment Burst Detect (Default: 0x0) Indicates that Burst transfer by the on-chip DMA Controller in the negative direction was detected. 1: Indicates that a Burst transfer in the negative direction was detected. 0: Indicates that no Burst transfer in the negative direction was detected. Zero Increment Burst Detect (Default: 0x0) Indicates that Burst transfer by the on-chip DMA Controller without an address increment was detected. 1: Indicates that a Burst transfer without an address increment was detected. 0: Indicates that no Burst transfer without an address increment was detected. PERR* Occurred (Default: 0x0) Indicates that the Parity Error signal (PERR*) was asserted. This bit is a monitor status bit that records assertion of the PERR* signal even if the TX4938 is not accessing PCI. 1: Indicates that the PERR* signal was asserted. 0: Indicates that the PERR* signal was not asserted. SERR* Occurred (Default: 0x0) Indicates that the System Error signal (SERR*) was asserted. This bit is a monitor status bit that records assertion of the SERR* signal even if the TX4938 is not accessing PCI. 1: Indicates that the SERR* signal was asserted. 0: Indicates that the SERR* signal was not asserted. Read/Write ⎯ R/W1C 9 TLB Long Burst Transfer Detect R/W1C 8 NIB Negative Increment Burst Detect R/W1C 7 ZIB Zero Increment Burst Detect R/W1C 6 5 PERR Reserved PERR* Detected ⎯ R/W1C 4 SERR SERR* Detected R/W1C 3 GBE G-Bus Error Detect R/W1C G-Bus Error Detect (Default: 0x0) Indicates that a G-Bus Error occurred in the G-Bus Master cycle of the PCI Controller. This error is indicated when a timeout occurs on the G-Bus. This bit is only set by Master cycle Bus Errors. 1: Indicates that a G-Bus Error was detected. 0: Indicates that no G-Bus Error was detected. Figure 10.4.42 PCI Controller Status Register (1/2) 10-74 Chapter 10 PCI Controller Bit 2 1 Mnemonic IWB Field Name Reserved Initiator Write Busy Description Initiator Write Busy (Busy: 0x0) Indicates that a Write cycle was in progress when a Write cycle to the PCI Bus was executed. While a Write cycle is in progress, no error status to that Write cycle is reflected. Therefore, this bit is used to confirm the status when it changes from “1” to “0” after the Write cycle ends. 1: Indicates that a Write cycle is in progress. 0: Indicates that no Write cycle is in progress. Read/Write ⎯ R 0 E2PDONE EEPROM Load Done R EEPROM Load Done (Default--) When using EEPROM, this bit indicates that data loading from EEPROM is complete. This bit is set to “1” when the internal process ends even if no EEPROM is connected. 1: Indicates that data loading from EEPROM is complete. 0: Indicates that data loading from EEPROM is not complete. Figure 10.4.42 PCI Controller Status Register (2/2) 10-75 Chapter 10 PCI Controller 10.4.45 PCI Controller Interrupt Mask Register (PCICMASK) 31 Reserved : Type : Initial value 15 Reserved 11 10 9 8 7 6 5 4 3 GBEIE R/W 0x0 2 1 Reserved : Type : Initial value 0 0xD178 16 PMEIE TLBIE NIBIE ZIBIE R/W 0x0 R/W 0x0 R/W 0x0 R/W 0x0 Reserved PERRIE SERRIE R/W 0x0 R/W 0x0 Bit 31:11 10 Mnemonic PMEIE Field Name Reserved PME Detect Interrupt Enable Description PME* Signal Interrupt Enable (Default: 0x0) When in the Host mode, this bit generates an interrupt when input of the PME* signal is detected. 1: Generates an interrupt. 0: Does not generate an interrupt. Too Long Burst Interrupt Enable (Default: 0x0) This bit generates an interrupt when a Burst transfer by the on-chip DMA Controller exceeding 8 DWORDs was detected. 1: Generates an interrupt. 0: Does not generate an interrupt Negative Increment Burst Interrupt Enable (Default: 0x0) This bit generates an interrupt when a negative direction Burst transfer by the on-chip DMA Controller is detected. 1: Generates an interrupt. 0: Does not generate an interrupt. Zero Increment Burst Interrupt Enable (Default: 0x0) This bit generates an interrupt when a Burst transfer by the on-chip DMA Controller without an address increment is detected. 1: Generates an interrupt. 0: Does not generate an interrupt. PERR* Interrupt Enable (Default: 0x0) This bit generates an interrupt when the Parity Error signal (PERR*) is asserted. 1: Generates an interrupt. 0: Does not generate an interrupt. SERR* Interrupt Enable (Default: 0x0) This bit generates an interrupt when the System Error signal (SERR*) is asserted. 1: Generates an interrupt. 0: Does not generate an interrupt. G-Bus Bus Error Interrupt Enable (Default: 0x0) This bit generates an interrupt when a Bus Error is asserted while the PCI Controller is the G-Bus Master. 1: Generates an interrupt. 0: Does not generate an interrupt. Read/Write ⎯ R/W 9 TLBIE Long Burst Transfer Detect Interrupt R/W 8 NIBIE Negative Increment Burst Transfer Detect Interrupt Enable Zero Increment Burst Transfer Detect Interrupt Enable Reserved R/W 7 ZIBIE R/W 6 5 PERRIE ⎯ R/W PERR* Detect Interrupt Enable 4 SERRIE SERR* Detect Interrupt Enable R/W 3 GBEIE G-Bus Bus Error Detect Interrupt Enable R/W 2:0 Reserved ⎯ Figure 10.4.43 PCI Controller Interrupt Mask Register 10-76 Chapter 10 PCI Controller 10.4.46 P2G Memory Space 0 G-Bus Base Address Register (P2GM0GBASE) 63 Reserved : Type : Initial value 47 Reserved 39 38 P2GM0EN 0xD180 48 37 36 35 BA[35:32] R/W 0x0 32 BSWAP EXFER R/W 0x0 31 BA[31:29] R/W 0x00 15 Reserved 29 28 R/W R/W 0x0/0x1 0x1/0x0 : Type : Initial value 16 Reserved : Type : Initial value 0 : Type : Initial value Bit 63:39 38 Mnemonic P2GM0EN Field Name Reserved Memory Space 0 Enable Description Target Memory Space 0 Enable (Default: 0x0) Controls whether Memory Space 0 for target access is valid or invalid. When this bit is set to invalid, Writes to the Memory Space 0 Lower Base Address Register or the Memory Space 0 Upper Base Address Register of the PCI Configuration Register become invalid. Also, “0” is returned to Reads as a response. 1: Validates Memory Space 0 for target access. 0: Invalidates Memory Space 0 for target access. Byte Swap Disable (Default: Little Endian Mode: 0x1; Big Endian Mode: 0x0) Sets the byte swapping of Memory Space 0 for target access.. 1: Do not perform byte swapping. 0: Perform byte swapping. Please use the default state in most situations. If this bit is changed to “1” when in the Big Endian Mode, the byte order of transfer to Memory Space 0 through DWORD (32-bit) access will not change. Endian Transfer (Default: Little Endian Mode: 0x0; Big Endian Mode: 0x1) Sets the Endian Transfer of Memory Space 0 for target access. 1: Performs Endian Transfer. 0: Does not perform Endian Transfer. Please use the default state. Base Address 0 (Default: 0x000) Sets the G-Bus base bus address of Memory Space 0 for target access. Can set the base address in 512-MB units. Read/Write ⎯ R/W 37 BSWAP Byte Swap R/W 36 EXFER Endian Transfer R/W 35:29 BA[35:29] Base Address R/W 28:0 Reserved ⎯ Figure 10.4.44 P2G Memory Space 0 G-Bus Base Address Register 10-77 Chapter 10 PCI Controller 10.4.47 P2G Memory Space 1 G-Bus Base Address Register (P2GM1GBASE) 63 Reserved : Type : Initial value 47 Reserved 39 38 P2GM1EN 0xD188 48 37 36 35 BA[35:32] R/W 0x0 32 BSWAP EXFER R/W 0x0 31 BA[31:24] R/W 0x00 15 Reserved 24 23 R/W R/W 0x0/0x1 0x1/0x0 : Type : Initial value 16 Reserved : Type : Initial value 0 : Type : Initial value Bit 63:39 38 Mnemonic P2GM1EN Field Name Reserved Memory Space 1 Enable Description Target Memory Space 1 Enable (Default: 0x0) Controls whether Memory Space 1 for target access is valid or invalid. When this bit is set to invalid, Writes to the Memory Space 1 Lower Base Address Register or the Memory Space 1 Upper Base Address Register of the PCI Configuration Register become invalid. Also, “1” is returned to Reads as a response. 1: Validates Memory Space 1 for target access. 0: Invalidates Memory Space 1 for target access. Byte Swap Disable (Default: Little Endian Mode: 0x1; Big Endian Mode: 0x0) Sets the byte swapping of Memory Space 1 for target access. 1: Do not perform byte swapping. 0: Perform byte swapping. Please use the default state in most situations. If this bit is changed to “1” when in the Big Endian Mode, the byte order of transfer to Memory Space 0 through DWORD (32-bit) access will not change. Endian Transfer (Default: Little Endian Mode: 0x0; Big Endian Mode: 0x1) Sets the Endian Transfer of Memory Space 1 for target access. 1: Performs Endian Transfer. 0: Does not perform Endian Transfer. Please use the default state. Base Address 0 (Default: 0x0_0000_00) Sets the G-Bus base bus address of Memory Space 1 for target access. Can set the base address in 16-MB units. Read/Write ⎯ R/W 37 BSWAP Byte Swap R/W 36 EXFER Endian Transfer R/W 35:24 BA[35:24] Memory Space Base Address 1 Reserved R/W 23:0 ⎯ Figure 10.4.45 P2G Memory Space 1 G-Bus Base Address Register 10-78 Chapter 10 PCI Controller 10.4.48 P2G Memory Space 2 G-Bus Base Address Register (P2GM2GBASE) 63 Reserved : Type : Initial value 47 Reserved 39 38 P2GM2EN 0xD190 48 37 36 35 BA[35:32] R/W 0x0 19 Reserved 32 BSWAP EXFER R/W 0x0 31 BA[31:20] R/W 0x000 15 Reserved R/W R/W 0x0/0x1 0x1/0x0 : Type : Initial value 16 20 : Type : Initial value 0 : Type : Initial value Bit 63:39 38 Mnemonic P2GM2EN Field Name Reserved Memory Space 2 Enable Description Target Memory Space 2 Enable (Default: 0x0) Controls whether Memory Space 2 for target access is valid or invalid. When this bit is set to invalid, Writes to the Memory Space 2 Lower Base Address Register or the Memory Space 2 Upper Base Address Register of the PCI Configuration Register become invalid. Also, “0” is returned to Reads as a response. 1: Validates Memory Space 2 for target access. 0: Invalidates Memory Space 2 for target access. Byte Swap Disable (Default: Little Endian Mode: 0x1; Big Endian Mode: 0x0) Sets the byte swapping of Memory Space 2 for target access. 1: Do not perform byte swapping. 0: Perform byte swapping. Please use the default state in most situations. If this bit is changed to “1” when in the Big Endian Mode, the byte order of transfer to Memory Space 2 through DWORD (32-bit) access will not change. Endian Transfer (Default: Little Endian Mode: 0x0; Big Endian Mode: 0x1) Sets the Endian Transfer of Memory Space 2 for target access. 1: Performs Endian Transfer. 0: Does not perform Endian Transfer. Please use the default state. Base Address 2 (Default: 0x000) Sets the G-Bus base bus address of Memory Space 2 for target access. Can set the base address in 1-MB units. Read/Write ⎯ R/W 37 BSWAP Byte Swap R/W 36 EXFER Endian Transfer R/W 35:20 BA[35:20] Memory Space Base Address 2 Reserved R/W 19:0 ⎯ Figure 10.4.46 P2G Memory Space 2 G-Bus Base Address Register 10-79 Chapter 10 PCI Controller 10.4.49 P2G I/O Space G-Bus Base Address Register (P2GIOGBASE) 63 Reserved : Type : Initial value 47 Reserved 39 38 P2GIOEN 0xD198 48 37 36 35 BA[35:32] R/W 0x0 32 BSWAP EXFER R/W 0x0 31 BA[31:16] R/W 0x0000 15 BA[15:8] R/W 0x00 8 7 R/W R/W 0x0/0x1 0x1/0x0 : Type : Initial value 16 : Type : Initial value 0 Reserved : Type : Initial value Bit 63:39 38 Mnemonic P2GIOEN Field Name Reserved Description Read/Write ⎯ R/W I/O Space Enable Target I/O Space Enable (Default: 0x0) Controls whether the I/O Space for target access is valid or invalid. When this bit is set to invalid, Writes to the I/O Space Base Address Register of the PCI Configuration Register become invalid. Also, “0” is returned to Reads as a response. 1: Validates I/O Space for target access. 0: Invalidates I/O Space for target access. Byte Swap Byte Swap Disable (Default: Little Endian Mode: 0x1; Big Endian Mode: 0x0) Sets the byte swapping of the I/O Space for target access. 1: Do not perform byte swapping. 0: Perform byte swapping. Please use the default state in most situations. If this bit is changed to “1” when in the Big Endian Mode, the byte order of transfer to the I/O Space through DWORD (32-bit) access will not change. Endian Transfer (Default: Little Endian Mode: 0x0; Big Endian Mode: 0x1) Sets the Endian Transfer of the I/O Space for target access. 1: Performs Endian Transfer. 0: Does not perform Endian Transfer. Please use the default state. Base Address 2 (Default: 0x000) Sets the G-Bus base bus address of the I/O Space for target access. Can set the base address in 256-byte units. 37 BSWAP R/W 36 EXFER Endian Transfer R/W 35:8 BA[35:8] Memory Space Base Address 2 Reserved R/W 7:1 ⎯ Figure 10.4.47 P2G I/O Space G-Bus Base Address Register 10-80 Chapter 10 PCI Controller 10.4.50 G2P Configuration Address Register(G2PCFGADRS) 0xD1A0 The operation of any access to this register is undefined when the PCI Controller is in the Satellite mode. 31 Reserved 24 23 BUSNUM R/W 0x00 15 DEVNUM R/W 0x00 11 10 FNNUM R/W 000 8 7 REGNUM R/W 0x00 2 1 TYPE R/W 00 : Type : Initial value 0 : Type : Initial value 16 Bit 31:24 23:16 15:11 Mnemonic BUSNUM DEVNUM Field Name Reserved Bus Number Device Number Description Bus Number (Default: 0x00) Indicates the target PCI Bus Number (one of 256). Device Number (Default: 0x00) This field is used to identify the target physical device number. (This is one number out of 32 devices. 21 of these 32 devices are used.) When in the address phase of Type 0 configuration access, AD[31:11] of the upper 21 address lines are used as the IDSEL signal. 0x00: Use AD [11] as IDSEL. 0x01: Use AD [12] as IDSEL. 0x02: Use AD [13] as IDSEL. : : 0x13: Use AD [30] as IDSEL. 0x14: Use AD [31] as IDSEL. 0x15 - 0x1F: Reserved Function Number (Default: 000) This field is used to identify the target logic function number (one out of 8). Register Number (Default: 0x00) This field is used to identify the DWORD (one out of 64) inside the Configuration Space of the target function Type (Default; 00) This field is used to identify the address type in the address phase of the target function configuration cycle. 0x0: Type 0 configuration (Use the AD[31:11] signal as the IDSEL signal.) 0x1: Type 1 configuration (Output all bits unchanged as the address to the AD[ ] signal.) Read/Write ⎯ R/W R/W 10:8 7:2 FNNUM REGNUM Function Number Register Number R/W R/W 1:0 TYPE Type R/W Figure 10.4.48 G2P Configuration Address Register 10-81 Chapter 10 PCI Controller 10.4.51 G2P Configuration Data Register (G2PCFGDATA) 0xD1A4 This is the only register that supports Byte access and 16-bit Word access. The upper address bit of the PCI Configuration Space is specified by the G2P Configuration Address Register (G2PCFGADRS). The lower two bits of the address are specified by the lower two bits of the offset address in this register as shown in Figure 10.4.2. The operation of any access to this register is undefined when the PCI Controller is in the Satellite mode. Table 10.4.2 PCI Configuration Space Access Address Access Size 32-bit 16-bit Configuration Space Address [1:0] 00 00 10 00 01 10 11 Offset Address Little Endian Mode 0xD1A4 0xD1A4 0xD1A6 0xD1A4 0xD1A5 0xD1A6 0xD1A7 Big Endian Mode 0xD1A4 0xD1A6 0xD1A4 0xD1A7 0xD1A6 0xD1A5 0xD1A4 8-bit 31 ICD R/W ⎯ 15 ICD R/W ⎯ 16 : Type : Initial value 0 : Type : Initial value Bits 31:0 Mnemonic ICD Field Name Initiator Configuration Data Description Initiator Configuration Data Register (Default--) This is a data port that is used when performing initiator PCI configuration access. PCI configuration Read or Write transactions are issued when this register is read to or written from. Read/Write R/W Figure 10.4.49 G2P Configuration Data Register 10-82 Chapter 10 PCI Controller 10.4.52 G2P Interrupt Acknowledge Data Register (G2PINTACK) 31 IIACKD R ⎯ 15 IIACKD R ⎯ : Type : Initial value 0 : Type : Initial value 0xD1C8 16 Bits 31:0 Mnemonic IIACKD Field Name Initiator Interrupt Acknowledge Address Port Description Read/Write R Initiator Interrupt Acknowledge Address Port (Default--) An Interrupt Acknowledge cycle is generated on the PCI Bus when this register is read. The data that is returned by this Read transaction becomes the Interrupt Acknowledge data. Figure 10.4.50 G2P Interrupt Acknowledge Data Register 10-83 Chapter 10 PCI Controller 10.4.53 G2P Special Cycle Data Register (G2PSPC) 31 ISCD W ⎯ 15 ISCD W ⎯ : Type : Initial value 0 : Type : Initial value 0xD1CC 16 Bits 31:0 Mnemonic ISCD Field Name Initiator Special Cycle Data Port Description Initiator Special Cycle Data Port (Default--) When this register is written to, Special Cycles are generated on the PCI Bus depending on the data that is written. Read/Write W Figure 10.4.51 G2P Special Cycle Data Register 10-84 Chapter 10 PCI Controller 10.4.54 Configuration Data 0 Register (PCICDATA0) 31 DID R/W 0x0000 15 VID R/W 0x0000 : Type : Initial value 0 : Type : Initial value 0xD1D0 16 Bits 31:16 Mnemonic DID Field Name Device ID Description Device ID (Default: 0x0000) This is the data loaded in the Device ID Register of the PCI Configuration Space. Vendor ID (Default: 0x0000) This is the data loaded in the Vendor ID Register of the PCI Configuration Space. Read/Write R/W 15:0 VID Vendor ID R/W Figure 10.4.52 ID Register 10-85 Chapter 10 PCI Controller 10.4.55 Configuration Data 1 Register (PCICDATA1) 31 CC R/W 0x0000 15 CC R/W 0x00 8 7 RID R/W 0x00 : Type : Initial value 0 : Type : Initial value 0xD1D4 16 Bis 31:8 Mnemonic CC Field Name Class Code Description Read/Write R/W Class Code (Default: 0x000000) This is the data loaded in the Class Code Register of the PCI Configuration Space. R/W Revision ID (Default: 0x00) This is the data loaded in the Revision ID Register of the PCI Configuration Space. 7:0 RID Revision ID Figure 10.4.53 Class Code/Revision ID Register 10-86 Chapter 10 PCI Controller 10.4.56 Configuration Data 2 Register (PCICDATA2) 31 SSID R/W 0x0000 15 SSVID R/W 0x0000 : Type : Initial value 0 : Type : Initial value 0xD1D8 16 Bits 31:16 Mnemonic SSID Field Name Sub System ID Description Subsystem ID (Default: 0x0000) This is the data loaded in the Sub System ID Register of the PCI Configuration space. Subsystem Vendor ID (Default: 0x0000) This is the data loaded in the Sub System Vendor ID Register of the PCI Configuration space. Read/Write R/W 15:0 SSVID Sub System Vendor ID R/W Figure 10.4.54 Sub System ID Register 10-87 Chapter 10 PCI Controller 10.4.57 Configuration Data 3 Register (PCICDATA3) 31 ML R/W 0x00 15 IP R/W 0x00 8 7 HT R/W 0x00 : Type : Initial value 24 23 MG R/W 0x00 0 : Type : Initial value 0xD1DC 16 Bits 31:24 Mnemonic ML Field Name Maximum Latency Minimum Grant Description Max_Lat (Maximum Latency) (Default: 0x00) This is the data loaded in the Max_Lat Register of the PCI Configuration Space. Min_Gnt (Minimum Grant) (Default: 0x00) This is the data loaded in the Min_Gnt Register of the PCI Configuration Space. Interrupt Pin (Default: 0x00) This is the data loaded in the Interrupt Pin Register of the PCI Configuration Space. Header Type (Default: 0x00) This is the data loaded in the Header Type Register of the PCI Configuration Space. Read/Write R/W 23:16 MG R/W 15:8 IP Interrupt Pin R/W 7:0 HT Header Type R/W Figure 10.4.55 PCI Configuration 2 Register 10-88 Chapter 10 PCI Controller 10.4.58 PDMAC Chain Address Register (PDMCA) 63 Reserved : Type : Initial value 47 Reserved 36 35 PDMCA[35:32] R/W undefined 31 PDMCA[31:16] R/W Undefined 15 PDMCA[15:3] R/W Undefined 3 2 Reserved : Type : Initial value 0 : Type : Initial value 16 : Type : Initial value 32 0xD200 48 Bits 63:36 35:3 Mnemonic PDMCA Field Name Reserved Chain Address Description PDMAC Chain Address (Default is undefined) The address of the next PDMAC Data Command Descriptor to be read is specified by a G-Bus physical address on a 64-bit address boundary. This register value is held without being affected by a Reset. 0 value judgement is performed when the lower 32 bits of this register are rewritten. DMA transfer is automatically initiated if the result is not “0”. Read/Write ⎯ R/W 2:0 Reserved ⎯ Figure 10.4.56 PDMAC Chain Address Register 10-89 Chapter 10 PCI Controller 10.4.59 PDMAC G-Bus Address Register (PDMGA) 63 Reserved : Type : Initial value 47 Reserved 36 35 PDMGA[35:32] R/W Undefined 31 PDMGA[31:16] R/W Undefined 15 PDMGA[15:2] R/W Undefined 2 1 0 : Type : Initial value 16 : Type : Initial value 32 0xD208 48 Reserved : Type : Initial value Bits 63:36 35:2 Mnemonic PDMGA Field Name Reserved G-Bus Address Description Read/Write ⎯ R/W PDMAC G-Bus Address (Default is undefined) The G-Bus DMA transfer address is specified by a G-Bus physical address on a 32-bit address boundary. This register value is used for G-Bus Read access during DMA transfer from the G-Bus to the PCI Bus, or it is used for G-Bus Write access during DMA transfer from the PCI Bus to the G-Bus. This register value is held without being affected by a Reset. ⎯ 1:0 Reserved Figure 10.4.57 G-Bus Address Register 10-90 Chapter 10 PCI Controller 10.4.60 PDMAC PCI Bus Address Register (PDMPA) 63 Reserved : Type : Initial value 47 Reserved 38 39 PDMPA[39:32] R/W Undefined 31 PDMPA[31:16] R/W Undefined 15 PDMPA[15:2] R/W Undefined 2 1 0 : Type : Initial value 16 : Type : Initial value 32 0xD210 48 Reserved : Type : Initial value Bits 63:38 39:2 Mnemonic PDMPA Field Name Reserved PCI Bus Address Description PDMAC PCI-Bus Address (Default is undefined) The PCI Bus DMA transfer address is specified by a PCI Bus physical address on a 32-bit address boundary. This register value is held without being affected by a Reset. Note: This register value is used for PCI Bus Write access during DMA transfer from the G-Bus to the PCI Bus, or it is used for PCI Bus Read access during DMA transfer from the PCI Bus to the G-Bus. Read/Write ⎯ R/W 1:0 Reserved ⎯ Figure 10.4.58 PCI Bus Address Register 10-91 Chapter 10 PCI Controller 10.4.61 PDMAC Count Register (PDMCTR) 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 Reserved 24 23 PDMCTR[23:16] R/W Undefined 15 PDMCTR[15:2] R/W Undefined 2 1 0 : Type : Initial value 16 32 0xD218 48 Reserved : Type : Initial value Bits 63:24 23:2 Mnemonic PDMCTR Field Name Reserved Transfer Byte Count Description PDMAC Transfer Count (Default is undefined) Sets an uncoded 24-bit transfer byte count in 32-bit word units. Also, the setting of this register must always be a multiple of the transfer size specified inside the PDMAC Configuration Register. No data transfer is performed if a count of “0” is set. This byte count value is calculated from the transferred byte size as the PDMAC performs a DMA transfer. This register value is held without being affected by a Reset. Read/Write ⎯ R/W 1:0 Reserved ⎯ Figure 10.4.59 Count Register 10-92 Chapter 10 PCI Controller 10.4.62 PDMAC Configuration Register (PDMCFG) 0xD220 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 Reserved 22 21 RSTFIFO 48 32 20 EXFER R/W 0x0 4 19 Reserved 16 R/W 0x0 15 14 13 REQDLY R/W 0x0 11 10 ERRIE R/W 0x0 9 NCCMPIE : Type : Initial value 3 2 1 XFRDIRC 8 NTCMPIE 7 6 5 0 CHRST R/W : Type 0x1 : Initial value Reserved CHNEN XFRACT Reserved BSWAP XFRSIZE R/W 0x0 R/W 0x0 R/W 0x0 R 0x0 R/W 0x0 R/W 0x0 R/W 0x0 Bit 63:22 21 Mnemonic RSTFIFO Field Name Reserved Reset FIFO Description Reset FIFO (Default: 0x0) Initializes the Read pointer and Write pointer to the FIFO in the PDMAC, and sets the FIFO hold count to “0”. Please use the software to clear this bit when it is set. This is a function for a diagnosis. Usually, it is not used. 1: Performs FIFO reset. 0: Does not perform FIFO reset. Read/Write ⎯ R/W 20 EXFER Endian Transfer Endian Transfer (Default: 0x0) Specifies whether to perform Endian transfer. Please use the default as is. Set up EXFER as follows according to a Endian setup of G-Bus. 1: G-Bus in Little Endian 0: G-Bus in Big Endian Request Delay (Default: 0x0) G-Bus transactions for DMA transfer must be performed separated at least by the interval this field specifies. 000: Continuously try to perform G-Bus transfer. 001: 16 G-Bus clocks 010: 32 G-Bus clocks 011: 64 G-Bus clocks 100: 128 G-Bus clocks 101: 256 G-Bus clocks 110: 512 G-Bus clocks 111: 1024 G-Bus clocks Interrupt Enable on Error (Default: 0x0) 1: PDMAC generates an error during error detection. 0: PDMAC does not generate an error during error detection. Interrupt Enable on Chain Done (Default: 0x0) 1: PDMAC generates an interrupt when the current chain is complete. 0: PDMAC does not generate an interrupt when the current chain is complete. R/W 19:14 13:11 REQDLY Reserved Request Delay Time R/W ⎯ 10 ERRIE Error Detect Interrupt Enable Normal Chain Complete Interrupt Enable R/W 9 NCCMPIE R/W Figure 10.4.60 PDMAC Configuration Register (1/2) 10-93 Chapter 10 PCI Controller Bit 8 Mnemonic NTCMPIE Field Name Description Read/Write 7 CHNEN 6 XFRACT Interrupt Enable on Transfer Done (Default: 0x0) Normal Data R/W Transfer Complete 1: PDMAC generates an interrupt when the current data transfer is complete. Interrupt Enable 0: PDMAC does not generate an interrupt when the current data transfer is complete. Chain Enable (Default: 0x0) (Read Only) Chain Enable R When the current data transfer is complete, this field reads the next data command Descriptor from the address indicated by the PDMAC Chain Address Register then indicates whether to continue the transfer or not. This bit is only set to “1” when either a CPU Write process or a Descriptor Read process sets a value other than “0” in the PDMAC Chain Address Register. This bit is cleared to “0” if either the Channel Reset bit is set, or “0” is set in the PDMAC Chain Address Register by a CPU Write or a Descriptor Read process. The above 0 value judgement is not performed when the TX49/H3 core stores the upper 32 bits in the PDMAC Chain Address Register. 1: Reads the next data command Descriptor. 0: Does not read the next data command Descriptor. Transfer Active (Default: 0x0) Transfer Active R/W Specifies whether to perform DMA transfer or not. Setting this bit after setting the appropriate value in the register group initiates DMA data transfer. This bit is not set if the PDMAC Count Register value is “0” and the Chain Enable bit is cleared when “1” is written to this bit. Even when a value other than “0” is written to the Chain Address Register, “1” is set to this bit and DMA transfer automatically starts. The above 0 value judgement is not performed when the TX49/H3 core stores the upper 32 bits in the PDMAC Chain Address Register. Data transfer will be stopped after a short delay if this bit is cleared while the data transfer is in progress. This bit is automatically cleared to “0” either when data transfer ends normally or is stopped by an error. Never clear XFRACT by software, because it stops guaranteeing a normal operation,. 1: Perform data transfer. 0: Do not perform data transfer. Reserved ⎯ R/W Byte Swap Within Swap Bytes in DWORD (Default: 0x0) Specifies whether to perform 32-bit data byte swapping. DWORD Please leave this bit at “0” for normal usage. Setting this bit when in the Big Endian mode executes data transfer so the byte order of the 32-bit data on the PCI Bus (which is Little Endian) does not change. 1: Swap the byte order of each 32-bit DWORD data, then transfer. 0: Transfer without swapping the byte order of each 32-bit DWORD data. Transfer Size (Default: 0x0) Transfer Size Specifies the data transfer size in one G-Bus transaction on the G-Bus. 00: 1 DWORD (32-bit) 01: 1 QWORD (64-bit) 10: 4 QWORD (Burst transfer) 11: Reserved Transfer Direction Transfer Direction (Default: 0x0) Specifies the DMA data transfer direction. 1: Transfers data from the G-Bus to the PCI Bus. 0: Transfers data from the PCI Bus to the G-Bus. Channel Reset (Default: 0x1) Channel Reset Resets the DMA channel. This bit must be cleared by the software in advance so the channel can start the data transfer. This reset function is not supported when PDMAC is in operation. Ensure that the Transfer Active (XFARCT) bit in the PDMSTATUS register is cleared prior to resetting the DMA channel. For chained DMA, also ensure either the Abnormal Chain Complete (ACCMP) or Normal Chain Complete (NCCMP) bit in the PDMSTATUS register is set. 1: All logic and State Machines are reset. 0: The channel becomes valid. 5 4 BSWAP 3:2 XFRSIZE R/W 1 XFRDIRC R/W 0 CHRST R/W Figure 10.4.60 PDMAC Configuration Register (2/2) 10-94 Chapter 10 PCI Controller 10.4.63 PDMAC Status Register (PDMSTATUS) 63 Reserved : Type : Initial value 47 Reserved : Type : Initial value 31 30 29 REQCNT R 0x00 15 Reserved 12 11 10 9 8 7 6 24 23 FIFOCNT R 0x0 5 4 Reserved 0xD228 48 32 20 19 18 17 16 Reserved FIFOWP R 0x0 3 2 FIFORP R 0x0 1 0 : Type : Initial value ERRINT DONEINT CHNEN XFRACT ACCMP NCCMP NTCMP CFGERR PCIERR CHNERR DATAERR R 0x0 R 0x0 R 0x0 R 0x0 R 0x0 R/W1C R/W1C 0x0 0x0 R/W1C R/W1C R/W1C R/W1C : Type 0x0 0x0 0x0 0x0 : Initial value Bit 63:30 29:24 Mnemonic REQCNT Field Name Reserved Request Delay Time Counter FIFO Hold Count Description Read/Write ⎯ R Request Delay Counter (Default: 0x00) This field indicates the request delay time counter value as 16 × n when the 6-bit value of this field is n. R FIFO Valid Entry Count (Default: 0x0) This field indicates the number of bytes that was written in the FIFO but not yet read. This is a diagnostic function. FIFO Write Pointer (Default: 0x0) This field indicates the next Write position in the FIFO. This is a diagnostic function. FIFO Read Pointer (Default: 0x0) This field indicates the next Read position in the FIFO. This is a dianostic function. Error Interrupt Status (Default: 0x0) Indicates whether to signal an error interrupt. 1: An error interrupt request exists. 0: No error interrupt request exists. Normal Transfer Complete Interrupt Status (Default: 0x0) Indicates whether a Normal Transfer Complete Interrupt is signaled. This bit becomes “1” when either the Normal Chain Complete bit (NCCMP) is set and the Normal Chain Complete Interrupt Enable bit (NCCMPIE) is set, or when the Normal Data Transfer Complete bit (NTCMP) is set and the Normal Data Transfer Complete Interrupt Enable bit (NTCMPIE) is set. 1: A Normal Transfer Complete Interrupt request exists. 0: No Normal Transfer Complete Interrupt request exists. Chain Enable (Default: 0x0) This bit is a copy of the Chain Enable bit in the PDMAC Configuration Register. R 23:20 FIFOCNT 19:18 FIFOWP FIFO Write Pointer FIFO Read Pointer Reserved 17:16 FIFORP R 15:12 11 ERRINT ⎯ R Error Interrupt Status 10 DONEINT Normal Transfer Complete Interrupt Status R 9 CHNEN Chain Enable R Figure 10.4.61 Status Register (1/2) 10-95 Chapter 10 PCI Controller Bit 8 Mnemonic XFRACT Field Name Transfer Active Description Transfer Active (Default: 0x0) This bit is a copy of the Transfer Active bit in the PDMAC Configuration Register. Abnormal Chain Complete (Default: 0x0) 1: Indicates that the Chain transfer ended in an error state. In other words, this reflects an OR operation of the PDMAC Status Register bits [3:0]. 0: Indicates that no error has occurred in the Chain transfer since the previous error bit was cleared. Note: Bits [3:0] of the PDMAC Status Register must be cleared in order to clear this bit. Normal Chain Complete (Default: 0x0) 1: Indicates that the Chain transfer ended in the Normal state. 0: Indicates that Chain transfer has not ended since this bit was previously cleared. Normal Data Transfer Complete (Default: 0x0) 1: Indicates that the data transfer specified by the PDMAC Register ended in the Normal state. 0: Indicates that data transfer has not ended since this bit was previously cleared. Configuration Error (Default: 0x0) 1: Indicates that either the current setting of the control portion in the Control Register and the Address/Count Register are not consistent with each other or the PDMAC stipulation is not being obeyed. DMA transfer stops. 0: Indicates that the current setting of the control portion in the Control Register can be tolerated. PCI Fatal Error (Default: 0x0) 1: Indicates that an error was signaled on the PCI Bus during the Chain process. 0: Indicates that no error has been signaled on the PCI Bus since this bit was previously cleared. G-Bus Chain Bus Error (Default: 0x0) 1: Indicates that a G-Bus error occurrred during the Chain process. DMA transfer stops. 0: Indicates that no G-Bus error has occurred during the Chain process since this bit was cleared. G-Bus Data Bus Error (Default: 0x0) 1: Indicates that a G-Bus error occurred during the data transfer process. DMA transfer stops. 0: Indicates that no G-Bus error has occurred during the data transfer process since this bit was cleared. Read/Write R 7 ACCMP Abnormal Chain Completion R 6 NCCMP Normal Chain Completion R/W1C 5 NTCMP Normal Data Transfer Complete R/W1C 4 3 CFGERR Reserved Configuration Error ⎯ R/W1C 2 PCIERR PCI Fatal Error R/W1C 1 CHNERR G-Bus Chain Error R/W1C 0 DATAERR G-Bus Data Error R/W1C Figure 10.4.61 Status Register (2/2) 10-96 Chapter 10 PCI Controller NCCMP NCCMPIE DONEINT Interrupt Controller (Interrupt No. 15) NTCMP NTCMPIE STLTRF ERRIE ERRINT CFGERR PCIERR CHNERR DATAERR ACCMP Figure 10.4.62 PDMAC Interrupt Signaling 10-97 Chapter 10 PCI Controller 10.5 PCI Configuration Space Register The PCI Configuration Space Register is accessed using PCI Configuration cycles by way of an external PCI host device only when in the Satellite mode. Table 10.5.1 lists registers contained within the PCI Configuration Space Register. The registers in the table with a shaded background are those whose values can be rewritten using EEPROM. (See 10.3.14.) Registers at addresses 0x00 through 0x41 can use the corresponding PCI Controller Control Register to access from the TX49/H3 core when in the Host mode. Please refer to the explanation of the corresponding PCI Controller Control registers for more information about these registers. This section only describes the registers that are accessed from the PCI Configuration Space. Also, it is possible to read some of the fields in the Status Register and PMCSR register from the Satellite Mode PCI Status Register. Please refer to the PCI Bus Specifications for more information on the PCI Configuration Register. Table 10.5.1 PCI Configuration Space Register Address 00h 04h 08h 0Ch 10h 14h 18h 1Ch 20h 24h 28h 2Ch 30h 34h 38h 3Ch 40h 44h-DBh DCh E0h E4h-FFh Max_Lat Reserved Min_Gnt Reserved Reserved Interrupt Pin Retry Timeout Value Reserved Power Management Capabilities (PMC) Reserved Reserved Next Item Ptr (Next_Item_Ptr) Capability ID (Cap_ID) Interrupt Line TRDY Timeout Value Subsystem ID Reserved Capabilities Pointer (Cap_Ptr) BIST 31 Device ID Status Class Code Header Type Latency Timer Memory Space 0 Lower Base Address Memory Space 0 Upper Base Address Memory Space 1 Lower Base Address Memory Space 1 Upper Base Address Memory Space 2 Base Address I/O Space Base Address Reserved Subsystem Vendor ID 16 15 Vendor ID Command Revision ID Cache Line Size 0 Corresponding Register PCIID PCISTATUS PCICCREV PCICFG1 P2GM0PLBASE P2GM0PUBASE P2GM1PLBASE P2GM1PUBASE P2GM2PBASE P2GIOPBASE ⎯ PCISID ⎯ PCICAPPTR ⎯ PCICFG2 G2PTOCNT ⎯ ⎯ ⎯ ⎯ Power Management Control/Status Register (PMCSR) Reserved 10-98 Chapter 10 PCI Controller 10.5.1 15 Reserved Capability ID Register (Cap_ID) 8 7 0xDC 0 CID R 0x01 : Type : Initial value Bits 15:8 7:0 Mnemonic CID Field Name Reserved Capability ID Description Capability ID (Default: 0x01) Indicates that a list is the link list of the Power Management Register. Read/Write ⎯ R Figure 10.5.1 Capability ID Register 10-99 Chapter 10 PCI Controller 10.5.2 15 Reserved Next Item Pointer Register (Next_Item_Ptr) 8 7 0xDD 0 NIP R 0x00 : Type : Initial value Bits 15:8 7:0 Mnemonic NIP Field Name Reserved Next Item Pointer Description Next Item Pointer (Default: 0x0) This is the Next Item pointer. Indicates the end of a list. Read/Write ⎯ R Figure 10.5.2 Next Item Pointer Register 10-100 Chapter 10 PCI Controller 10.5.3 15 PMESPT R 0x19 Power Management Capability Register (PMC) 11 10 9 8 Reserved 6 5 DSI R 0 0xDE 4 3 2 PMVER R 0x2 : Type : Initial value 0 D2SPT D1SPT R 0 R 0 Reserved PMECLK R 0 Bit 15:11 Mnemonic PMESPT Field Name PME Output Support Description Read/Write R PME_ Support (Fixed Value: 0x09) Indicates that the PME* signal can be output from the state where the bit is set to “1”. Bit 15: Can output the PME* signal from the D3cold state. Bit 14: Can output the PME* signal from the D3hot state. Bit 13: Can output the PME* signal from the D2 state. Bit 12: Can output the PME* signal from the D1 state. Bit 11: Can output the PME* signal from the D0 state. Note: With the TX4938 PCI Controller, it is possible to output the PME* signal from the D0 and the D3hot states. D2_Support (Fixed Value: 0) 0: Indicates that the D2 state is not supported. D1_Support (Fixed Value: 0) 0: Indicates that the D1 state is not supported. DSI (Fixed Value: 0) 0: Indicates that Device Specific Initialization is not required. PME Clock (Fixed Value: 0) 0: Indicates that the PCI Clock is not required to assert the PME* signal. Version (Fixed Value: 0x2) 2: Indicates compliance with "PCI Power Management Interface Specification" Version 1.1. R R ⎯ R ⎯ R R 10 9 8:6 5 4 3 2:0 D2SPT D1SPT D2 Support D1 Support Reserved DSI DSI Reserved PMECLK PMVER PME Clock Power Management I/F Version Figure 10.5.3 PMC Register 10-101 Chapter 10 PCI Controller 10.5.4 15 PMESTA Power Management Control/Status Register (PMCSR) 9 Reserved 8 PMEEN 0xE0 2 1 PS R/W 0x0 : Type : Initial value 0 14 7 Reserved R/W1C 0x0 R/W 0x0 Bit 15 Mnemonic PMESTA Field Name PME Status Description PME_Status (Default: 0x0) Indicates the existence of a PME (Power Management Event) . 1: There is a PME. 0: There is no PME. The value of this bit becomes “1” when Writing a “1” to the PME bit (P2GCFG.PME) of the P2G Configuration Register. This bit is cleared when the Host Bridge writes a “1”. It is possible to signal a PME* Clear Interrupt at this time. PME_En (Default: 0x0) Sets PME* signal assertion to enable or disable. 1: Enables assertion of the PME* signal. 0: Disables assertion of the PME* signal. The PME_En set bit of the P2G Status Register (P2GSTATUS.PMEES) is set when this bit is set. At this time, it is possible to signal the PME_En set interrupt. PowerState (Default: 0x0) Sets the Power Management state. The Power Management State Change bit (P2GSTATUS.PMSC) of the P2G Status Register is set when the value of this field is changed. It also becomes possible to generate a Power State Change Interrupt at this time. The TX4938 can read the value of this field from the PowerState field (PCISSTATUS.PS) of the Satellite Mode PCI Status Register. 00b: D0 (no change) 01b: D1 :Reserved 10b: D2 :Reserved 11b: D3hot Read/Write R/W1C 14:9 8 PMEEN Reserved PME Enable R/W ⎯ 7:2 1:0 PS Reserved Power State R/W ⎯ Figure 10.5.4 PMCSR Register 10-102 Chapter 11 Serial I/O Port 11. Serial I/O Port 11.1 Features The TX4938 asynchronous Serial I/O (SIO) interface has two full duplex UART channels (SIO0 and SIO1). SIO has the following features. (1) Full duplex transmission (simultaneous transmission and reception) (2) On-chip baud rate generator (3) Modem flow control (CTS/RTS) (4) FIFO • • Transmit FIFO: 8 bits × 8 stages Reception FIFO: 13 bits × 16 stages (data: 8 bits, status: 5 bits) (5) Supports DMA transfer (6) Supports multi-controller systems • Supports Master/Slave operation 11-1 Chapter 11 Serial I/O Port 11.2 Block Diagram SCLK Baud Rate IMBUSCLK SIOCLK Baud Rate Control Register IM Bus Receiver Receive Data Register Receive Data FIFO Read Buffer Receiver Shift Register RTS* RXD DMA/INT Control Register Interrupt I/F Read /Write DMA/INT Status Register FIFO Control Register Line Control Register Status Change Interrupt Status Register Reset* Request Control Transmitter Transmit Data Register Transmit Data FIFO TEMP Buffer Transmitter Shift Register CTS* TXD TX4938 Figure 11.2.1 SIO Internal Block Diagram 11-2 Chapter 11 Serial I/O Port 11.3 Detailed Explanation 11.3.1 Overview During reception, serial data that are input as an RXD signal from an external source are converted into parallel data, then are stored in the Receive FIFO buffer. Parallel data stored in the FIFO buffer are fetched by either CPU or DMA transfer. During transmission, parallel data written to the Transmit FIFO buffer by CPU or DMA transfer are converted into serial data, then are output as a TXD signal. 11.3.2 Data Format The TX4938 SIO can use the following data formats. Data Length Stop Bit Parity Bit Parity Format Start Bit : 8/7 bits : 1/2 bits : Yes/No : Even/Odd : Fixed to 1 bit Figure 11.3.1 illustrates the data frame when making each setting. 11-3 Chapter 11 Serial I/O Port 8-bit Data Transfer Direction 1 2 3 4 5 6 7 8 9 10 11 12 stop bit2, parity Start stop bit1, parity Start stop bit2 Start stop bit1 Start bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 stop bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 stop stop bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 Parity stop bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 Parity stop stop 7-bit Data 1 stop bit2, parity Start stop bit1, parity Start stop bit2 Start stop bit1 Start bit0 bit1 bit2 bit3 bit4 bit5 bit6 stop bit0 bit1 bit2 bit3 bit4 bit5 bit6 stop stop bit0 bit1 bit2 bit3 bit4 bit5 bit6 Parity stop bit0 bit1 bit2 bit3 bit4 bit5 bit6 Parity stop stop 2 3 4 5 6 7 8 9 10 11 12 8-bit Data Multi-Control System WUB = W ake Up bit 1: Address (ID) Frame 0: Data Frame 3 4 5 6 7 8 9 10 11 12 1 stop bit2 Start stop bit1 Start 2 bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 W UB stop stop bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 W UB stop 7-bit Data Multi-Control System 1 stop bit2 Start stop bit1 Start bit0 bit1 bit2 bit3 bit4 bit5 bit6 W UB stop bit0 bit1 bit2 bit3 bit4 bit5 bit6 WUB stop stop 2 3 4 5 6 7 8 9 10 11 12 Figure 11.3.1 Data Frame Configuration 11-4 Chapter 11 Serial I/O Port 11.3.3 Serial Clock Generator Generates the Serial Clock (SIOCLK). SIOCLK determines the serial transfer rate and has a frequency that is 16× the baud rate. One of the following can be selected as the source for the Serial Clock (SIOCLK). • • • Internal System Clock (IMBUSCLK) External Clock Input (SCLK) Baud rate generator circuit output The IMBUSCLK frequency can be selected from frequencies that are 1/2, 1/2.5, 1/3, or 1/4 the frequency of the CPU clock. The maximum frequency tolerance of the external clock input (SCLK) is 45% the frequency of IMBUSCLK. For example, if IMBUSCLK = 60 MHz, then set SCLK to 27 MHz or less. The baud rate generator is a circuit that divides these clock signals according to the following formula. Baud Rate = fc Prescalar × Divisor ×16 • • • fc: Clock frequency of IMBUSCLK or an external clock input (SCLK) Prescalar Value: 2, 8, 32, 128 Divide Value: 1, 2, 3,…255 Table 11.3.1 shows example settings of divide values relative to representative baud rates. 1/2 1/8 1/32 1/128 Selector Prescalar T0 T2 T4 T6 Selector Divider Selector 1/1 − 1/255 IMBUSCLK fc SCLK SIOCLK Select SIOCLK SILCR. SCS [1] Select CLK SIBGR. BCLK Baud Rate Generator Baud Rate Divide value SIBGR. BRD Select SIOCLK SILCR. SCS [0] Figure 11.3.2 Baud Rate Generator and SIOCLK Generator It is possible to correctly receive data if the error of the baud rate set by this controller is within 3.12 % of the target baud rate (communication baud rate). 11-5 Chapter 11 Serial I/O Port Table 11.3.1 Example Divide Value Settings (and error [%] from target baud rate value) fc[MHz] IMBUSCLK 66 kbps 0.11 0.15 0.30 0.60 1.20 2.40 4.80 9.60 14.40 19.20 28.80 38.40 57.60 76.80 115.20 60 0.11 0.15 0.30 0.60 1.20 2.40 4.80 9.60 14.40 19.20 28.80 38.40 57.60 76.80 115.20 Prescalar Value (SIBGR.BLCK) and Divide Value (SIBGR.BRD) 2 8 32 128 215 -0.07% 107 215 -0.07% 107 215 -0.07% 107 215 -0.07% 143 107 0.16% 0.39% 0.39% 54 -0.54% 36 -0.54% 27 -0.54% 18 -0.54% 13 3.29% 9 -0.54% 7 -4.09% 255 195 195 195 195 130 65 0.16% 0.16% 0.16% 0.16% 0.16% 4.45% 0.16% 0.39% 54 -0.54% 27 -0.54% 13 3.29% 9 -0.54% 7 -4.09% 0.39% 54 -0.54% 27 -0.54% 13 3.29% 7 -4.09% 72 -0.54% 54 -0.54% 36 -0.54% 27 -0.54% 18 -0.54% 98 -0.35% 49 -0.35% 24 12 6 1.73% 1.73% 1.73% 98 -0.35% 49 -0.35% 24 12 8 6 1.73% 1.73% 1.73% 1.73% 98 -0.35% 49 -0.35% 33 -1.36% 24 16 12 8 6 1.73% 1.73% 1.73% 1.73% 1.73% 131 -0.07% 96 48 96 48 96 48 24 16 12 8 6 4 3 2 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 1 0.00% 24 12 6 4 3 2 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 1 0.00% 24 12 6 3 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 33 -0.82% 24 12 6 3 0.00% 0.00% 0.00% 0.00% 98 -0.35% 49 -0.35% 33 -1.36% 24 16 1.73% 1.73% SCLK 7.373 0.11 0.15 0.30 0.60 1.20 2.40 4.80 9.60 14.40 19.20 28.80 38.40 57.60 76.80 115.20 11-6 Chapter 11 Serial I/O Port 11.3.4 Data Reception When the Serial Data Reception Disable bit (RSDE) of the Flow Control Register (SIFLCRn) is set to “0”, reception operation starts after the RXD signal start bit is detected. Start bits are detected when the RXD signal transitions from the High state to the Low state. Therefore, the RXD signal is not interpreted as a start bit if it is Low when the Serial Data Reception Disable bit is set to “0”. The received data are stored in the Receive FIFO. The Reception Data Full bit (RDIS) of the DMA/Interrupt Status Register (SIDISRn) is set if the byte count of the stored reception data exceeds the value set by the Receive FIFO Request Trigger Level field (RDIL) of the FIFO Control Register (SIFCRn). An interrupt is signaled when the Reception Data Interrupt Enable bit (RIE) of the DMA/Interrupt Control Register (SIDICRn) is set. The received data can be read from the Receive FIFO Data Register (SIRFIFOn). In addition, DMA transfer is initiated when the Reception Data DMA Enable bit (RDE) of the DMA/Interrupt Control Register (SIDICRn) is set. 11.3.5 Data Transmission Data stored in the Transmission Data FIFO are transmitted when the Serial Data Transmission Disable bit (TSDE) of the Flow Control Register (SIFLCRn) is set to “0”. If the available space in the Transmit FIFO is equal to or greater than the byte count set by the Transmit FIFO Request Trigger Level (TDIL) of the Control Register (SIFCRn), the transmission data empty bit (TDIS) of the DMA/Interrupt Status Register (SIDISRn) is set. An interrupt is signaled when the Transmission Data Interrupt Enable bit (TIE) of the DMA/Interrupt Control Register (SIDICRn) is set. In addition, DMA transfer is initiated when the Transmission Data DMA Enable bit (TDE) of the DMA/Interrupt Control Register (SIDICRn) is set. 11.3.6 DMA Transfer The DMA Request Select field (INTDMA[7:0]) of the Pin Configuration Register (PCFG) can be used to allocate DMA channels for each reception and transmission channel in the following manner. SIO Channel 1 Reception SIO Channel 1 Transmission SIO Channel 0 Reception SIO Channel 0 Transmission DMA Channel 0 DMA Channel 1 DMA Channel 2 DMA Channel 3 Set the DMA Channel Control Register of the DMA Controller as described below. DMA Request Polarity DMA Acknowledge Polarity Request Detection Low Active Low Active Level Detection DMCCRn.ACKPOL = 0 DMCCRn.REQPOL = 0 DMCCRn.EGREQ = 0 11-7 Chapter 11 Serial I/O Port Transfer Size Transfer Address Mode 1 Byte Dual DMCCRn.XFSZ = 000b DMCCRn.SNGAD = 0 In the case of transmission channels, the address of the Transmit FIFO Register (SITFIFOn) is set in the DMAC Destination Address Register (DMDARn). In the case of reception channels, the address of the Receive FIFO Register (SIRFIFOn) is set in the DMAC Source Address Register (DMSARn). Please set the addresses specified in “11.4.8 Transmit FIFO Register” and “11.4.9 Receive FIFO Register” since the set address differs depending on the Endian mode. 11.3.7 Flow Control SIO supports hardware flow control that uses the RTS*/CTS* signal. The CTS* (Clear to Send) input signal indicates that data can be received from the reception side when it is Low. Setting the Transmission Enable Select bit (TES) of the Flow Control Register (SIFLCRn) makes transmission flow control that uses the CTS* signal more effective. It is also possible to generate status change interrupts by changing the state of the CTS* signal. The conditions in which interrupts are generated can be selected by the CTSS Active Condition field of the DMA/Interrupt Control Register (SIDICRn). Setting the RTS* (Request to Send) output signal to High requests the transmission side to pause transmission. Transmission resumes when the reception side becomes ready and the RTS* signal is set to Low. Setting the Reception Enable Select bit (RCS) of the flow Control Register (SIFLCRn) makes reception flow control that uses the RTS* signal more effective. The RTS* signal pin status becomes High when data of the byte count set by the RTS Active Trigger Level field (RTSTL) of the Flow Control Register (SIFLCRn) accumulates in the Receive FIFO. The RTS* signal can also be made High by setting the RTS Software Control bit (RTSSC) of the Flow Control Register (SIFLCRn). Setting this bit requests the transmission side to pause transmission. 11.3.8 Reception Data Status Status data such as the following is also stored in the Receive FIFO. • Overrun error An overrun error is generated if all 16-stage Receive FIFO buffers become full and more data is transferred to the Reception Read buffer. When this occurs, the Overrun Status bit is set by the last stage of the Receive FIFO. • Parity error A parity error is generated when a parity error is detected in the reception data. • Framing error A framing error is generated when “0” is detected at the first stop bit of the reception data. • Break reception A break is detected when a framing error occurs in the reception data and all data in a single frame are “0”. When this occurs, 2 frames (2 Bytes) of 0x00 data are stored in the Receive FIFO. 11-8 Chapter 11 Serial I/O Port The Reception Error Interrupt bit (SIDISR.ERI) of the DMA/Interrupt Status Register (SIDISRn) is set when one of the following errors is detected: an overrun error, a parity error, or a framing error. An interrupt is signaled if the Reception Error Interrupt Enable bit of the DMA/Interrupt Control Register (SIDICRn) is set. The Break Detected bit (UBRKD) and the Receiving Break bit (RBRKD) of the Status Change Interrupt Status Register (SISCISR) is set when a break is detected. The Break Detected bit (UBRKD) remains set until it is cleared by the software. The Receiving Break bit (RBRKD) is automatically cleared when a frame is received that is not a break. The status of the next reception data to be read is set to the Overrun Error bit (UOER), Parity Error bit (UPER), Framing Error bit (UFER), and the Receive Break bit (RBRKD). Each of these statuses is updated when reception data is read from the Receive FIFO Register (SIRFIFOn). During DMA transfer, an error is signaled and DMA transfer stops with error data remaining in the Receive FIFO if either an error (Framing Error, Parity Error, or Overrun Error) or a Reception time out (TOUT) is detected. If a Reception Error occurs during DMA transfer, use the Receive FIFO Reset bit (RFRST) of the FIFO Control Register (SIFCRn) to clear the Receive FIFO. However, a software reset will be required if a reception overrun error has occurred. Refer to “11.3.10 Software Reset” for more information. 11.3.9 Reception Time Out A Reception time out is detected and the Reception Time Out bit (TOUT) of the DMA/Interrupt Status Register (SIDISR) is set under the following conditions. • Non-DMA transfer mode (SIDICRn.RDE = 0): When at least 1 Byte of reception data exists in the Receive FIFO and the data reception time for the 2 frames (2 Bytes) after the last reception has elapsed • DMA transfer mode (SIDICRn.RDE = 1): When the data reception time for the 2 frames (2 Bytes) after the last reception has elapsed regardless of whether reception data exists in the Receive FIFO 11.3.10 Software Reset It is necessary to reset the FIFO and perform a software reset in the following situations. 1. 2. After transmission data is set in FIFO, etc., transmission started but stopped before its completion An overrun occurred during data reception Software reset is performed by setting the Software Reset bit (SWRST) of the FIFO Control Register (SIFCR). This bit automatically returns to “0” after initialization is complete. This bit must be set again since all SIO registers are initialized by software resets. 11-9 Chapter 11 Serial I/O Port 11.3.11 Error Detection/Interrupt Signaling An interrupt is signaled if an error or an interrupt cause is detected, the corresponding status bit is set and the corresponding Interrupt Enable bit is set. The following figure shows the relationship between the status bit for each interrupt cause and each interrupt enable bit. Please refer to the explanation for each status bit for more information about each interrupt cause. Transmission DMA Acknowledge DMAC Transmission DMA Request SIDICR.TDE “0” Write R Transmission Data Empty SIDSR.TDIS SIDICR.TIE SISCISR.OERS SIDICR.STIE[5] R “0” Write SISCISR.CTSS SIDICR.STIE[4] S SIDICR.CTSAC SIDISR.STIS R “0” Write SISCISR.RBRKD SIDICR.STIE[3] SISCISR.TRDY SIDICR.STIE[2] SISCISR.TXALS SIDICR.STIE[1] During Break Reception Transmission Data Empty Transmission Complete CTS Pin CTS Status Overrun Error SISCISR.UBRKD SIDICR.STIE[0] R “0” Write Break Detected Frame Error SIDISR.ERI To IRC SIDICR.SPIE R “0” Write Parity Error SIDISR.TOUT Reception Time Out R SIDICR.RIE “0” Write SIDISR.RDIS Reception DMA Acknowledge DMAC Transmission DMA Acknowledge SIDICR.RDE “0” Write R Reception Data Full Figure 11.3.3 Relationship Between Interrupt Status Bits and Interrupt Signals 11-10 Chapter 11 Serial I/O Port 11.3.12 Multi-Controller System The Multi-Controller System consists of one Master Controller, and multiple Slave Controllers as shown below in Figure 11.3.4. In the case of the Multi-Controller System, the Master Controller transmits an address (ID) frame to all Slave Controllers, then transmits and receives data with the selected Slave Controller. Slave Controllers that were not selected will ignore this data. Data frames whose data frame Wake Up bits (WUB) are “1” are handled as address (ID) frames. Data frames whose Wake Up bit (WUB) is “0” are handled as data frames. Master TXD RXD RXD TXD Slave #1 RXD TXD Slave #2 RXD TXD Slave #3 Figure 11.3.4 Example Configuration of Multi-Controller System The data transfer procedure for the Multi-Controller System is as follows. (1) The Master and Slave Controllers set the Mode field (UMODE) of the Line Control Register (SILCR) to “10” or “11” to set the Multi-Controller System mode. Also, the Slave Controller sets the open drain enable bit (UODE) of the Line Control Register (SILCR), setting the TXD output signal to open drain output. (2) The Slave Controller sets the Reception Wake Up bit (RWUB) of the Line Control Register (SILCR), making it possible to receive address (ID) frames from the Master Controller. (3) The Master Controller sets the Transmission Wake Up bit (TWUB) of the Line Control Register (SILCR), and transmits the address (ID) of the selected Slave Controller. This causes the address (ID) frame to be transmitted. The Reception after Address Transmission Wake Up bit (RWUB) is cleared, enabling reception of data frames. (4) Since the Reception Wake Up bit (RWUB) is set, the Slave Controller generates an interrupt to the CPU by receiving an address (ID) frame. The CPU compares its own address (ID) and the received data together. If they do not match, the Reception Wake Up bit (RWUB) is cleared, making data frame reception possible. (5) The Master Controller and the selected Slave Controller clear the Transmission Wake Up bit (TWUB) of the Line Control Register (SILCR), then set the mode that transmits data frames. (6) Transmit/Receive data between the Master Controller and the selected Slave Controller. Then, Slave Controllers that were not selected ignore data frames since the Reception Wake Up bit (RWUB) is still set. 11-11 Chapter 11 Serial I/O Port 11.4 Registers With the exception of DMA access to the Transmit FIFO Register or the Receive FIFO Register, please use Word access when accessing register in the Serial I/O Port. Table 11.4.1 SIO Registers Offset Address SIO0 (Channel 0) 0xF300 0xF304 0xF308 0xF30C 0xF310 0xF314 0xF318 0xF31C 0xF320 SIO1 (Channel 1) 0xF400 0xF404 0xF408 0xF40C 0xF410 0xF414 0xF418 0xF41C 0xF420 SILCR1 SIDICR1 SIDISR1 SISCISR1 SIFCR1 SIFLCR1 SIBGR1 SITFIFO1 SIRFIFO1 Line Control Register 1 DMA/Interrupt Control Register 1 DMA/Interrupt Status Register 1 Status Change Interrupt Status Register 1 FIFO Control Register 1 Flow Control Register 1 Baud Rate Control Register 1 Transmit FIFO Register 1 Receive FIFO Register 1 SILCR0 SIDICR0 SIDISR0 SISCISR0 SIFCR0 SIFLCR0 SIBGR0 SITFIFO0 SIRFIFO0 Line Control Register 0 DMA/Interrupt Control Register 0 DMA/Interrupt Status Register 0 Status Change Interrupt Status Register 0 FIFO Control Register 0 Flow Control Register 0 Baud Rate Control Register 0 Transmit FIFO Register 0 Receive FIFO Register 0 Mnemonic Register Name 11-12 Chapter 11 Serial I/O Port 11.4.1 Line Control Register 0 (SILCR0) Line Control Register 1 (SILCR1) 0xF300 (Ch. 0) 0xF400 (Ch. 1) 16 Reserved : Type : Initial value 15 14 13 R/WUB TWUB UODE R/W 0 R/W 1 R/W 0 12 Reserved 7 6 SCS R/W 10 5 4 3 2 UEPS UPEN USBL R/W 0 R/W 0 R/W 0 1 0 UMODE R/W 00 : Type : Initial value These registers specify the format of asynchronous transmission/reception data. 31 Bit 31:16 15 Mnemonic RWUB Field Name Reserved Receive Wake Up Bit Description Read/Write ⎯ R/W Wake Up Bit for Receive (Default: 0) When in the Multi-Controller System mode, this field selects whether to receive address (ID) frames whose Wake Up bits (WUB) are “1” or to receive data frames whose Wake Up bits (WUB) are “0”. This value is undefined when not in the Multi-Controller System mode. 0: Receive data frames. 1: Receive address (ID) frames. R/W Wake Up Bit for Transmit (Default: 1) When in the Multi-Controller System mode, this field specifies the Wake Up bit (WUB). This value is undefined when not in the Multi-Controller System mode. 0: Data frame transfer (WUB = 0) 1: Address (ID) frame transfer (WUB = 1) R/W TXD Open Drain Enable (Default: 0) This field selects the output mode of the TXD signal. When in the Multi-Controller System mode, the Slave Controller must set the TXD signal to Open Drain. 0: Totem pole output 1: Open drain output ⎯ SIO Clock Select (Default: 00) This field selects the serial transfer clock. The clock frequency that is the serial transfer clock divided by 16 becomes the baud rate (bps). 00: Internal clock (IMBUSCLK) 01: Baud rate generator output that divided IMBUSCLK 10: External clock (SCLK) 11: Baud rate generator output that divided SCLK UART Even Parity Select (Default: 0) This field selects the parity mode. 0: Odd parity 1: Even parity UART Parity Enable (Default: 0) This field selects whether to perform the parity check. This bit must be cleared in multidrop systems (i.e., when the UMODE field is 10 or 11.) 0: Disable the parity check 1: Enable the parity check R/W 14 TWUB Transmit Wake Up Bit 13 UODE Open Drain Enable 12:7 6:5 SCS Reserved Clock Select 4 UEPS Even Parity Select R/W 3 UPEN Parity Check Enable R/W Figure 11.4.1 Line Control Register (1/2) 11-13 Chapter 11 Serial I/O Port Bit 2 Mnemonic USBL Field Name Stop Bit Length Description UART Stop Bit Length (Default: 0) This field specifies the stop bit length. 0: 1 bit 1: 2 bit UART Mode (Default: 00) This field sets the data frame mode. 00: 8-bit data length 01: 7-bit data length 10: Multi-Controller 8-bit data length 11: Multi-Controller 7-bit data length Read/Write R/W 1:0 UMODE Mode R/W Figure 11.4.1 Line Control Register (2/2) 11-14 Chapter 11 Serial I/O Port 11.4.2 DMA/Interrupt Control Register 0 (SIDICR0) DMA/Interrupt Control Register 1 (SIDICR1) 0xF304 (Ch. 0) 0xF404 (Ch. 1) 16 Reserved : Type : Initial value 15 TDE R/W 0 14 RDE R/W 0 13 TIE R/W 0 12 RIE R/W 0 11 SPIE R/W 0 10 9 8 Reserved 6 5 STIE R/W 000000 : Type : Initial value 0 These registers use either DMA or interrupts to execute the Host Interface. 31 CTSAC R/W 00 Bit 31:16 15 Mnemonic TDE Field Name Reserved Transmit DMA Transfer Enable Description Transmit DMA Enable (Default: 0) This field sets whether to use DMA in the method for writing transmission data to the Transmit FIFO. 0: Do not use DMA. 1: Use DMA. Receive DMA Enable (Default: 0) This field sets whether to use DMA in the method for reading reception data from the Receive FIFO. 0: Do not use DMA. 1: Use DMA. Transmit Data Empty Interrupt Enable (Default: 0) When there is open space in the Transmit FIFO, this field sets whether to signal an interrupt. Set “0” when in the DMA Transmit mode (TDE = 1). 0: Do not signal an interrupt when there is open space in the Transmit FIFO. 1: Signal an interrupt when there is open space in the Transmit FIFO. Read/Write ⎯ R/W 14 RDE Receive DMA Transfer Enable R/W 13 TIE Transmit Data Empty Interrupt Enable R/W 12 RIE Reception Data Full Interrupt Enable Receive Data Full Interrupt Enable (Default: 0) This field sets whether to signal interrupts when reception data is full (SIDISRn.RDIS = 1) or a reception time out (SIDISRn.TOUT = 1) occurs. Set to “0” when in the DMA Receive mode (RDE = 1). 0: Do not signal interrupts when reception data is full/reception time out occurred. 1: Signal interrupts when reception data is full/reception time out occurred. Receive Data Error Interrupt Enable (Default: 0) This field sets whether to signal interrupts when a reception error (Frame Error, Parity Error, Overrun Error) occurs (SIDISR.ERI = 1). 0: Do not signal reception error interrupts. 1: Signal reception error interrupts. CTSS Active Condition (Default: 00) This field specifies status change interrupt request conditions using the CTS Status (CTSS) of the Status Change Interrupt Status Register. 00: Do not detect CTS signal changes. 01: Rising edge of the CTS pin 10: Falling edge of the CTS pin 11: Both edges of the CTS pin R/W 11 SPIE Reception Error Interrupt Enable R/W 10:9 CTSAC CTSS Active Condition R/W 8:6 Reserved ⎯ Figure 11.4.2 DMA/Interrupt Control Register (1/2) 11-15 Chapter 11 Serial I/O Port Bit 5:0 Mnemonic STIE Field Name Status Change Interrupt Enable Description Status Change Interrupt Enable (Default: 0x00) This field sets the set conditions of the Status Change bit (STIS) of the DMA/Interrupt Status Register (SIDISR). The condition is selected depending on which bit of the Status Change Interrupt Status Register (SISCISR) is set. (Multiple selections are possible.) An SIO interrupt is asserted when STIC is “1”. 000000: Do not detect status changes. 1*****: Set “1” to STIS when the Overrun bit (OERS) is “1”. *1****: Set “1” to STIS when a change occurs in a condition set by the CTSS Active Condition field (CTSAC) in the CTS Status bit (CTSS). **1***: Set “1” to STIS when the Break bit (RBRKD) becomes “1”. ***1**: Set “1” to STIS when the Transmit Data Empty bit (TRDY) becomes “1”. ****1*: Set “1” to STIS when the Transmission Complete bit (TXALS) becomes “1”. *****1: Set “1” to STIS when the Break Detection bit (UBRKD) becomes “1”. Read/Write R/W Figure 11.4.2 DMA/Interrupt Control Register (2/2) 11-16 Chapter 11 Serial I/O Port 11.4.3 DMA/Interrupt Status Register 0 (SIDISR0) DMA/Interrupt Status Register 1 (SIDISR1) 0xF308 (Ch. 0) 0xF408 (Ch. 1) 16 Reserved : Type : Initial value 15 14 13 12 11 10 ERI 9 TOUT 8 TDIS 7 RDIS 6 STIS 5 Reserved These registers indicate the DMA or interrupt status information. 31 4 RFDN R 00000 0 UBRK UVALID UFER UPER UOER R 0 R 1 R 0 R 0 R 0 R/W0C R/W0C R/W0C R/W0C R/W0C 0 0 1 0 0 : Type : Initial value Bit 31:16 15 Mnemonic UBRK Field Name Reserved Receive Break Description UART Break (Default: 0) This field indicates the break reception status of the next data in the Receive FIFO to be read. Reading the Receive FIFO Register (SIRFIFO) updates the status. 0: No breaks 1: Detect breaks UART Available Data (Default: 1) This field indicates whether or not data exists in the Receive FIFO (SIRFIFO). 0: Data exists in the Receive FIFO. 1: No data exists in the Receive FIFO. UART Frame Error (Default: 0) This field indicates the frame error status of the next data in the Receive FIFO to be read. Reading the Receive FIFO Register (SIRFIFO) updates the status. 0: There are no frame errors. 1: There are frame errors. UART Parity Error (Default: 0) This field indicates the parity error status of the next data in the Receive FIFO to be read. Reading the Receive FIFO Register (SIRFIFO) updates the status. 0: There are no parity errors. 1: There are parity errors. UART Overrun Error (Default: 0) This register indicates the overrun status of the next data in the Receive FIFO to be read. Reading the Receive FIFO Register (SIRFIFO) updates the status. 0: There are no overrun errors. 1: There are overrun errors. Receive Data Error Interrupt (Default: 0) This bit is immediately set to “1” when a reception error (Frame Error, Parity Error, or Overrun Error) is detected. Time Out (Default: 0) This bit is set to “1” when a reception time out occurs. Read/Write ⎯ R 14 UVALID Receive FIFO Available Status R 13 UFER Frame Error R 12 UPER Parity Error R 11 UOER Overrun Error R 10 ERI Reception Error Interrupt Reception Time Out Transmission Data Empty R/W0C 9 8 TOUT TDIS R/W0C Transmit DMA/Interrupt Status (Default: 1) R/W0C This bit is set when available space of the amount set by the Transmit FIFO Request Trigger Level (TDIL) of the FIFO Control Register (SIFCR) exists in the Transmit FIFO. Figure 11.4.3 DMA/Interrupt Status Register (1/2) 11-17 Chapter 11 Serial I/O Port Bit 7 Mnemonic RDIS Field Name Reception Data Full Description Read/Write R/W0C Receive DMA/Interrupt Status (Default: 0) This bit is set when valid data of the amount set by the Receive FIFO Request Trigger Level (RDIL) of the FIFO Control register (SIFCR) is stored in the Receive FIFO. R/W0C Status Change Interrupt Status (Default: 0) This bit is set when at least one of the interrupt statuses selected by the Status Change Interrupt Condition field (STIE) of the DMA/Interrupt Control Register (SIDICR) becomes “1”. ⎯ Receive FIFO Data Number (Default: 00000) This field indicates how many stages of reception data remain in the Receive FIFO (0 – 16 stages). R 6 STIS Status Change 5 4:0 RFDN Reserved Reception Data Stage Status Figure 11.4.3 DMA/Interrupt Status Register (2/2) 11-18 Chapter 11 Serial I/O Port 11.4.4 Status Change Interrupt Status Register 0 (SISCISR0) Status Change Interrupt Status Register 1 (SISCISR1) 0xF30C (Ch. 0) 0xF40C (Ch. 1) 16 Reserved : Type : Initial value 15 Reserved 6 5 4 3 2 1 0 31 OERS CTSS RBRKD TRDY TXALS UBRKD R/W0C 0 R 0 R 0 R 1 R 1 R/W0C : Type 0 : Initial value Bit 31:6 5 Mnemonic ⎯ OERS Field Name Reserved Overrun Error Description ⎯ Overrun Error Status (Default: 0) This bit is immediately set to “1” when an overrun error is detected. This bit is cleared when a “0” is written. CTS Terminal Status (Default: 0) This field indicates the status of the CTS signal. 1: The CTS signal is High. 0: The CTS signal is Low. Receive Break (Default: 0) This bit is set when a break is detected. This bit is automatically cleared when a frame that is not a break is received. 1: Current status is Break. 0: Current status is not Break. Transmit Ready (Default: 1) This bit is set to “1” if at least one stage in the Transmit FIFO is free. Transmit All Sent (Default: 1) This bit is set to “1” if the Transmit FIFO and all transmission shift registers are empty. UART Break Detect (Default: 0) This bit is set when a break is detected. Once set, this bit remains set until cleared by writing a “0” to it. Read/Write ⎯ R/W0C 4 CTSS CTS Status R 3 RBRKD Receiving Break R 2 1 TRDY TXALS Transmission Data Empty Transmission Complete Break Detected R R 0 UBRKD R/W0C Figure 11.4.4 Status Change Interrupt Status Register 11-19 Chapter 11 Serial I/O Port 11.4.5 FIFO Control Register 0 (SIFCR0) FIFO Control Register 1 (SIFCR1) 0xF310 (Ch. 0) 0xF410 (Ch. 1) 16 Reserved : Type : Initial value 15 SWRST These registers set control of the Transmit/Receive FIFO buffer. 31 14 Reserved 9 8 RDIL R/W 00 7 6 5 4 TDIL R/W 00 3 2 1 0 Reserved TFRST RFRST FRSTE R/W 0 R/W 0 R/W 0 R/W : Type 0 : Initial value Bit 31:16 15 Mnemonic ⎯ SWRST Field Name Reserved Software Reset Description ⎯ Software Reset (Default: 0) This field performs SIO resets except for the FIFOs. Setting this bit to “1” initiates the reset. Set registers are also initialized. This bit returns to “0” when initialization is complete. 0: Normal operation 1: SIO software reset ⎯ Receive FIFO DMA/Interrupt Trigger Level (Default: 00) This register sets the level for reception data transfer from the Receive FIFO. 00: 1 Byte 01: 4 Bytes 10: 8 Bytes 11: 12 Bytes ⎯ Transmit FIFO DMA/Interrupt Trigger Level (Default: 00) This register sets the level for transmission data transfer to the Transmit FIFO. 00: 1 Byte 01: 4 Bytes 10: 8 Bytes 11: Setting disabled Transmit FIFO Reset (Default: 0) The Transmit FIFO buffer is reset when this bit is set. This bit is valid when the FIFO Reset Enable bit (FRSTE) is set. Cancel reset by using the software to clear this bit. 0: During operation 1: Reset Transmit FIFO Receive FIFO Reset (Default: 0) The Receive FIFO buffer is reset when this bit is set. This bit is valid when the FIFO Reset Enable bit (FRSTE) is set. Cancel reset by using the software to clear this bit. 0: During operation 1: Reset Receive FIFO FIFO Reset Enable (Default: 0) This field is the Reset Enable for the Transmit/Receive FIFO buffer. The FIFO is reset by combining the Transmit FIFO Reset bit (TFRST) and Receive FIFO Reset bit (RFRST). 0: During operation 1: Reset Enable Read/Write ⎯ R/W 14:9 8:7 ⎯ RDIL Reserved Receive FIFO Request Trigger Level ⎯ R/W 6:5 4:3 ⎯ TDIL Reserved Transmit FIFO Request Trigger Level ⎯ R/W 2 TFRST Transmit FIFO Reset R/W 1 RFRST Receive FIFO Reset R/W 0 FRSTE FIFO Reset Enable R/W Figure 11.4.5 FIFO Control Register 11-20 Chapter 11 Serial I/O Port 11.4.6 Flow Control Register 0 (SIFLCR0) Flow Control Register 1 (SIFLCR1) 0xF314 (Ch. 0) 0xF414 (Ch. 1) 16 Reserved : Type : Initial value 15 Reserved 13 12 RCS R/W 0 11 TES R/W 0 10 9 8 7 6 5 4 RTSTL R/W 0001 1 0 TBRK R/W : Type 0 : Initial value 31 Reserved R TSSC RSDE TSDE R/W 1 R/W 1 Reserved R/W 0 Bit 31:13 12 Mnemonic RCS Field Name Reserved RTS Signal Control Select Description RTS Control Select (Default: 0) This field sets the reception flow control using RTS output signals. 0: Disable flow control using RTS signals. 1: Enable flow control using RTS signals. CTS Control Select (Default: 0) This field sets the transmission flow control using CTS input signals. 0: Disable flow control using CTS signals. 1: Enable flow control using CTS signals. RTS Software Control (Default: 0) This register is used for software control of RTS output signals. 0: Set the RTS signal to Low (can receive data). 1: Sets the RTS signal to High (transmission pause request) Receive Serial Data Disable (Default: 1) This is the Serial Data Disable bit. When this bit is cleared, data reception starts after the start bit is detected. The RTS signal will not become High even if this bit is cleared. 0: Enable (can receive data) 1: Disable (halt reception) Transmit Serial Data Disable (Default: 1) This is the Serial Data Transmission Disable bit. When this bit is cleared, data transmission starts. When set, transmission stops after completing transmission of the current frame. 0: Enable (can transmit data) 1: Disable (halt transmission) RTS Trigger Level (Default: 0001) The RTS hardware control assert level is set by the reception data stage count of the Receive FIFO. 0000: Disable setting 0001: 1 : 1111: 15 Break Transmit (Default: 0) Transmits a break. The TXD signal is Low while TBRK is set to “1”. 0: Disable (clear break) 1: Enable (transmit break) Read/Write ⎯ R/W 11 TES CTS Signal Control Select R/W 10 9 RTSSC Reserved RTS Software Control R/W ⎯ 8 RSDE Serial Data Reception Disable R/W 7 TSDE Serial Data Transmit Disable R/W 6:5 4:1 RTSTL Reserved RTS Active Trigger Level R/W ⎯ 0 TBRK Break Transmission R/W Figure 11.4.6 Flow Control Register 11-21 Chapter 11 Serial I/O Port 11.4.7 Baud Rate Control Register 0 (SIBGR0) Baud Rate Control Register 1 (SIBGR1) 0xF318 (Ch. 0) 0xF418 (Ch. 1) 16 Reserved : Type : Initial value 15 Reserved 10 9 BCLK R/W 11 8 7 BRD R/W 0xFF : Type : Initial value 0 These registers select the clock that is provided to the baud rate generator and set the divide value. 31 Bit 31:10 9:8 Mnemonic BCLK Field Name Reserved Baud Rate Generator Clock Description Baud Rate Generator Clock (Default: 11) This field sets the input clock for the baud rate generator. 00: Select prescalar output T0 (fc/2) 01: Select prescalar output T2 (fc/8) 10: Select prescalar output T4 (fc/32) 11: Select prescalar output T6 (fc/128) Baud Rate Divide Value (Default: 0xFF) This field set divide value BRG of the baud rate generator. This value is expressed as a binary value. Read/Write ⎯ R/W 7:0 BRD Baud Rate Divide Value R/W Figure 11.4.7 Baud Rate Control Register 11-22 Chapter 11 Serial I/O Port 11.4.8 Transmit FIFO Register 0 (SITFIFO0) 0xF31C (Ch. 0) Transmit FIFO Register 1 (SITFIFO1) 0xF41C (Ch. 1) When using the DMA Controller to perform DMA transmission, set the following addresses in the Destination Address Register (DMDARn) of the DMA Controller according to the Endian Mode bit (DMCCRn.LE) setting of the DMA Controller. • • 31 Reserved : Type : Initial value 15 Reserved 8 7 TxD W ⎯ : Type : Initial value 0 Little Endian: Big Endian: 0xF31C (Ch.0), 0xF41C (Ch.1) 0xF31F (Ch.0), 0xF41F (Ch.1) 16 Bit 31:8 7:0 Mnemonic TxD Field Name Reserved Transmission Data Description Transmit Data Data written to this register are written to the Transmit FIFO. Read/Write ⎯ W Figure 11.4.8 Transmit FIFO Register 11-23 Chapter 11 Serial I/O Port 11.4.9 Receive FIFO Register 0 (SIRFIFO0) 0xF320 (Ch. 0) Receive FIFO Register 1 (SIRFIFO1) 0xF420 (Ch. 1) When using the DMA Controller to perform DMA transmission, set the following addresses in the Destination Address Register (DMDARn) of the DMA Controller according to the Endian Mode bit (DMCCRn.LE) setting of the DMA Controller. • • 31 Reserved : Type : Initial value 15 Reserved 8 7 RxD R Undefined : Type : Initial value 0 Little Endian: Big Endian: 0xF320 (Ch.0), 0xF420 (Ch.1) 0xF323 (Ch.0), 0xF423 (Ch.1) 16 Bit 31:8 7:0 Mnemonic RxD Field Name Reserved Reception Data Description Receive Data This field reads reception data from the Receive FIFO. Reading this register updates the Reception Data Status. Read/Write ⎯ R Figure 11.4.9 Receive FIFO Register 11-24 Chapter 12 Timer/Counter 12. Timer/Counter 12.1 Features The TX4938 has an on-chip 3-channel timer/counter. • • • • • • • 32-bit Up Counter: 3 Channels Interval Timer Mode (Channel 0, 1, 2) Pulse Generator Mode (Channel 0, 1) Watchdog Timer Mode (Channel 2) Timer Output Signal (TIMER[1:0]) × 2 Counter Input Signal (TCLK): × 1 Watchdog Timer Reset Output (WDRST*): × 1 12-1 Chapter 12 Timer/Counter 12.2 Block Diagram TX4938 IM-Bus I/F Signal Counter Input Clock Timer Interrupt 0 IM-Bus I/F Signal Counter Input Clock Timer Interrupt 1 IM-Bus I/F Signal Counter Input Clock Timer Interrupt 2 NMI* Internal Reset Chip Configuration Register (CCFG.WR) Timer-0 Interval Timer Mode TIMER[0] Timer-1 Pulse Generator Mode Interval Timer Mode TIMER[1] Timer-2 Interval Timer Mode Watchdog Timer Mode Selector TCLK Figure 12.2.1 Connecting Timer Module Inside the TX4938 IM-Bus Register R/W Control Logic Timer Timer Read Register Reset Signal Clock Signal Clock Divider x1/21/256 32-bit Counter Clock Select Compare Register A Compare Register B Clear Interval Mode Reg. Pulse Gen. Mode Reg. Watchdog Mode Reg. Timer Control Register Comparator (=) TIMER[1:0] Interrupt Control Logic Timer Interrupt Request Signal (Internal Signal) Watchdog Request Signal (Internal Signal) Interrupt Control Register Figure 12.2.2 Timer Internal Block Diagram 12-2 Chapter 12 Timer/Counter 12.3 Detailed Explanation 12.3.1 Overview The TX4938 has an on-chip 3-channel 32-bit timer/counter. Each channel supports the following modes. (1) Interval Timer Mode (Timer 0, 1, 2) This mode periodically generates interrupts. (2) Pulse Generator Mode (Timer 0, 1) This is the pulse signal output mode. (3) Watchdog Timer Mode (Timer 2) This mode is used to monitor system abnormalities. 12.3.2 Counter Clock The clock used for counting can be set to a frequency that is 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, or 1/256 of the internal clock (IMBUSCLK) frequency, or can be selected from nine counter input signal (TCLK) types. Divide Register n (TMCCDRn) and the Counter Clock Select bit (TMTCRn.CCS) are used to select the counter clock. In this situation, IMBUSCLK is the internal clock signal which is the G-Bus clock divided by 2. See “Chapter 6 Clocks” for more information. The counter input signal (TCLK) is used by three channels. Using TCLK makes it possible to count external events. The External Clock Edge bit (TMTCRn.ECES) can be used to select the clock rising/falling count. Set the TCLK clock frequency to 45% or less of IMBUSCLK (TCLK = 27 MHz or less when IMBUSCLK = 60 MHz). The following tables shows example count times when using 60 MHz or 66 MHz IMBUSCLK. Table 12.3.1 Divide Value and Count (IMBUSCLK = 60 MHz) Divide Rate 2 4 8 16 32 64 128 256 TMCCDRn. CCD 000 001 010 011 100 101 110 111 Counter Clock Frequency (Hz) 30.0 M 15.0 M 7.5 M 3.75 M 1.9 M 937.5 K 468.8 K 234.4 K Resolution (ns) 33.33 66.67 133.33 266.67 533.33 1066.67 2133.33 4266.67 Max. Set Time TMCPRAn Value (sec.) for 1 sec. 143.17 286.33 572.66 1145.32 2290.65 4581.30 9162.60 18325.20 30000000 15000000 7500000 3750000 1875000 937500 468750 234375 12-3 Chapter 12 Timer/Counter Table 12.3.2 Divide Value and Count (IMBUSCLK = 66 MHz) Divide Rate 2 4 8 16 32 64 128 256 TMCCDRn. CCD 000 001 010 011 100 101 110 111 Counter Clock Frequency (Hz) 33.0 M 16.5 M 8.3 M 4.1 M 2.1 M 1031.3 K 515.6 K 257.8 K Resolution (ns) 30.30 60.61 121.21 242.42 484.85 969.70 1939.39 3878.79 Max. Set Time TMCPRAn Value (sec.) for 1 sec. 130.15 260.30 520.60 1041.20 2082.41 4164.82 8329.63 16659.27 33000000 16500000 8250000 4125000 2062500 1031250 515625 257813 12.3.3 Counter Each channel has an independent 32-bit counter. Set the Timer Count Enable bit (TMTCRn.TCE) and the 32-bit counter will start counting. Clear the Timer Count Enable bit to stop the counter. If the Counter Reset Enable bit (TMTCRn.CRE) is set, then the counter will be cleared also. The Watchdog Timer Disable bit (TMWTRM2.WDIS) must be set in order to stop and clear this counter when in the Watch Dog Timer mode. Also, reading the Timer Read Register (TMTRR) makes it possible to fetch the counter value. 12.3.4 Interval Timer Mode The Interval Timer mode is used to periodically generate interrupts. Setting the Timer Mode field (TMTCRn.TMODE) of the Timer Control Register to “00” sets the timer to the Interval Timer mode. This mode can be used by all timers. When the count value matches the value of Compare Register A (TMCPRAn), the Interval Timer TMCPRA Status bit (TMTISRn.TIIS) of the Timer Interrupt Status Register is set. When the Interval Timer Interrupt Enable bit (TMITMRn.TIIE) of the Interval Timer Mode Register is set, timer interrupts occur. When a “0” is written to the Interval Timer TMCPRA Status bit (TMTISRn.TIIS), TIIS is cleared and timer interrupts stop. If the Timer Zero Clear Enable bit (TMITMRn.TZCE) is set, the counter is cleared to 0 if the count value matches the Compare Register A (TMCPRAn) value. Count operation stops when the Timer Zero Clear Enable bit (TMITMRn.TZCE) is cleared. The level of the TIMER[1:0] output signal stays in the initial state (Low) in this mode. Output is undefined when changing from the Pulse Generator mode to this mode. Figure 12.3.1 shows an outline of the count operation and generation of interrupts when in the Interval Timer mode and Figure 12.3.2 shows the operation when using an external input clock. 12-4 Chapter 12 Timer/Counter Count Value TMCPRA Reg. Compare Value 0x000000 Time TCE = 0 TCE = 1 TCE = 0 TCE = 1 TCE = 0 TCE = 1 CRE = 1 CRE = 0 CRE = 0 TZCE = 1 TZCE = 0 TZCE = 1 TIIE = 1 TIIE = 0 TIIE = 1 Timer Interrupt* TIIS = 0 TIIS = 0 TIIS = 0 TIIS = 0 TMODE = 00 (Interval Timer Mode), CCS = 0 (Internal Clock) Figure 12.3.1 Operation Example of Interval Timer (Using Internal Clock) Count Value TMCPRA Reg. Compare Value 0x000000 TCE = 1 TIIE = 1 TCE = 0 TCE = 1 TIIE = 0 Time TCLK Interrupt* TIIS = 1 TMODE = 00 (Interval Timer Mode), CCS = 0 (External Clock), ECES = 0 (Falling Edge) CRE = 0 (Counter Reset Disable), TZCE = 1 (Zero Clear Enable) Figure 12.3.2 Operation Example of the Interval Timer (External Input Clock: Rising Edge Operation) 12-5 Chapter 12 Timer/Counter 12.3.5 Pulse Generator Mode When in the Pulse Generator mode, use Compare Register A (TMCPRAn) and Compare Register B (TMCPRBn) to output a particular period and particular duty square wave to the TIMER[n] signal. Setting the Timer Mode field (TMTCRn.TMODE) of the Timer Control Register to “01” sets the timer to the Pulse Generator mode. Timer 0 and Timer 1 can be used, but Timer 2 cannot. The initial state of the TIMER[n] signal can be set by the Flip Flop Default bit (TMPGMRn.FFI) of the Pulse Generator Mode Register. The TIMER[n] output signal reverses when the counter value matches the value set in Compare Register A (TMCPRAn). The TIMER[n] output signal reverse again, clearing the counter when the counter continues counting and the value set in Compare Register B (TMCPRBn) and the counter value match. Consequently, a value greater than that in Compare Register A (TMCPRAn) must not be set in Compare Register B (TMCPRBn). Interrupts can be generated in the Pulse Generator mode as well. However, this is not standard practice. The Pulse Generator TMCPRA Status bit (TMTISRn.TPIAS) of the Timer Interrupt Status Register is set when the count value matches the value of Compare Register A (TMCPRAn). Timer interrupts are generated when the TMCPRA Interrupt Enable bit (TMPGMRn.TPIAE) of the Pulse Generator Mode Register is set. Similarly, the Pulse Generator TMCPRB Status bit (TMTISRn.TPIBS) of the Timer Interrupt Status Register is set when the count value matches the value of Compare Register B (TMCPRBn). Timer interrupts are generated when the TMCPRB Interrupt Enable bit (TMPGMRn.TPIBE) of the Pulse Generator Mode Register is set. Count Value TMCPRBn Compare Value TMCPRAn Compare Value 0x000000 TCE = 1 TCE = 0 TCE = 1 Time TIMER[n] TMODE1 = 01 (Pulse Generator Mode), CCS= 0 (Internal Clock) FFI = 1 (Initial High), CRE = 0 (Counter Reset Disable) Figure 12.3.3 Operation Example of the Pulse Generator Mode 12-6 Chapter 12 Timer/Counter 12.3.6 Watchdog Timer Mode The Watchdog Timer mode is used to monitor system anomalies. The software periodically clears the counter and judges an anomaly to exist if the counter is not cleared within a specified period of time. Then, either the TX4938 is internally reset or an NMI is signaled to the TX49/H3 core. Set the Timer mode field (TMTCR2.TMODE) of the Timer Control Register to “10” to set the timer to the Watchdog Timer mode. This mode can only be used by Timer 2. Use the Watchdog Reset bit (WR) of the Chip Configuration Register (CCFG) to select whether to perform an internal reset or signal an NMI. Set this bit to “1” to select Watchdog Reset, or set it to “0” to select NMI Signaling. When the timer count reaches the value programmed in Compare Register A (TMCPRA2), the Watchdog Timer TMCPRA Match Status bit in the Timer Interrupt Status Register (TMTISR2.TWIS) is set. Either the watchdog timer reset or NMI is issued if the Timer Watchdog Enable bit in the Watchdog Timer Mode Register (TMWTMR2.TWIE) is set. When the watchdog timer reset is selected, the Watchdog Reset Status bit in the Chip Configuration Register (CCFG.WDRST) is set. If the Watchdog Reset External Output bit in the Chip Configuration Register (CCFG.WDREXEN) is cleared, the entire TX4938 is initialized but the configuration registers. Setting the Watchdog Reset External Output bit (CCFG.WDREXEN) causes the WDRST* signal to be asserted. This does not initialize the TX4938. The WDRST* signal remains asserted until the RESET* signal is asserted. Assertion of the RESET* signal deasserts the WDRST* signal and initializes the TX4938. There are three ways of stopping NMI signaling from being performed. 1. 2. 3. Clear the Watchdog Timer Interrupt Status bit (TMTISR2.TWIS) of the timer Interrupt Status Register. Clear the counter by writing “1” to the Watchdog Timer Clear bit (TMWTMR2.TWC) of the Watchdog Timer Mode Register. Clear the Watchdog Timer Interrupt Enable bit (TMWTMR2.TWIE) while the Watchdog Timer Disable bit (TMWTMR2.WDIS) is still set. It is possible to stop the counter when in the Watchdog Timer mode by clearing the Timer Counter Enable bit (TMTCR2.TCE) of the Timer Control Register while the Watchdog Timer Disable bit (TMWTMR2.WDIS) of the Watchdog Timer Mode Register is set to “1”. It is also possible to stop the counter by clearing the Counter Clock Divide Cycle Enable bit (TMTCR2.CCDE) of the Timer Control Register when the internal clock is being used as the counter clock. It is not possible to directly write “0” to the Watchdog Timer Disable bit (TMWTMR2.WDIS). There are two ways to clear this bit. 1. 2. Clear the Watchdog Timer Interrupt Enable bit (TMWTMR2.WDIS) Clear the Timer Counter Enable bit (TMTCR2.TCE) of the Timer Control Register 12-7 Chapter 12 Timer/Counter In Watchdog Timer mode, the TIMER[1:0] outputs remain at logic high. Count Value TMCPRA2 Compare Value 0x000000 TCE = 1 TCE = 0 TCE = 1 TWC = 1 TWC = 1 TWC = 1 TWIE = 0 TWIE = 0 TWIE = 1 TWIE = 1 TWIS = 1 TWIS = 1 TWIS = 0 TWIS = 1 Internal Reset Signal or Internal NMI Signal Watchdog Timer Disable Bit (TMWTMR2.WDIS) TMODE = 10 (Watch Dog Timer Mode), CRE = 0 (Counter Reset Disable) WDIS = 1 WDIS = 1 Time Figure 12.3.4 Operation Example of the Watchdog Timer Mode 12-8 Chapter 12 Timer/Counter 12.4 Registers Table 12.4.1 Timer Register List Offset Address Time 0 (TMR0) 0xF000 0xF004 0xF008 0xF00C 0xF010 0xF020 0xF030 0xF040 0xF0F0 Timer 1 (TMR1) 0xF100 0xF104 0xF108 0xF10C 0xF110 0xF120 0xF130 0xF140 0xF1F0 Timer 2 (TMR2) 0xF200 0xF204 0xF208 0xF20C 0xF210 0xF220 0xF230 0xF240 0xF2F0 TMTCR2 TMTISR2 TMCPRA2 TMCPRB2 TMITMR2 TMCCDR2 TMPGMR2 TMWTMR2 TMTRR2 Timer Control Register 2 Timer Interrupt Status Register 2 Compare Register A 2 (Reserved) Interval Timer Mode Register 2 Divide Cycle Register 2 (Reserved) Watchdog Timer Mode Register 2 Timer Read Register 2 TMTCR1 TMTISR1 TMCPRA1 TMCPRB1 TMITMR1 TMCCDR1 TMPGMR1 TMWTMR1 TMTRR1 Timer Control Register 1 Timer Interrupt Status Register 1 Compare Register A 1 Compare Register B 1 Interval Timer Mode Register 1 Divide Cycle Register 1 Pulse Generator Mode Register 1 (Reserved) Timer Read Register 1 TMTCR0 TMTISR0 TMCPRA0 TMCPRB0 TMITMR0 TMCCDR0 TMPGMR0 TMWTMR0 TMTRR0 Timer Control Register 0 Timer Interrupt Status Register 0 Compare Register A 0 Compare Register B 0 Interval Timer Mode Register 0 Divide Cycle Register 0 Pulse Generator Mode Register 0 (Reserved) Timer Read Register 0 Register Symbol Register Name 12-9 Chapter 12 Timer/Counter 12.4.1 Timer Control Register n (TMTCRn) TMTCR0 TMTCR1 TMTCR2 0xF000 0xF100 0xF200 16 Reserved : Type : Initial value 15 Reserved 8 7 TCE R/W 0 6 CCDE R/W 0 5 CRE R/W 0 4 Reserved 31 3 ECES R/W 0 2 CCS R/W 0 1 0 TMODE R/W 00 : Type : Initial value Bit 31:8 7 Mnemonic TCE Field Name Reserved Timer Counter Enable Description Timer Count Enable (Default: 0) This field controls whether the counter runs or stops. When in the Watchdog mode, counter operation only stops when the Watchdog Timer Disable bit (TMWTMR2.WDIS) of the Watchdog Timer Mode Register is set. When the Watchdog Timer Disable bit is cleared, the value of this Timer Count Enable bit becomes “0”, but the count continues. 0: Stop counter (the counter is also cleared to “0” when CRE = 1) 1: Counter operation Counter Clock Divide Enable (Default: 0) This bit enables the divide operation of the internal clock (IMBUSCLK). The counter stops if this bit is set to “0” when the internal bus clock is in use. 0: Disable 1: Enable Counter Reset Enable (Default: 0) This bit controls the counter reset when the TCE bit was used to stop the counter. During CRE = 1, reset the counter if TCE is set from 1 to 0. During TCE = 0, the counter isn’t reset if CRE is set from 0 to 1. When TCE = 1 and CRE = 0, stop and reset the counter if TCE is set to 0 and CRE is set to 1 simultaneously. 1: Stop and reset the counter to “0” when the TCE bit is cleared to “0”. 0: Only stop the counter when the TCE bit is cleared to “0”. External Clock Edge Select (Default: 0) This bit specifies the counter operation edge when using the counter input signal (TCLK). 0: Falling edge of the counter input signal (TCLK) 1: Rising edge of the counter input signal (TCLK) Counter Clock Select (Default: 0) This bit specifies the timer clock. 0: Internal clock (IMBUSCLK) 1: External input clock (TCLK) Timer Mode (Default: 00) This bit specifies the timer operation mode. 11: Reserved 10: Watchdog Timer mode (Timer 2), Reserved (Timer 0, 1) 01: Pulse Generator mode (Timer 0, 1), Reserved (Timer 2) 00: Interval Timer mode Read/Write ⎯ R/W 6 CCDE Counter Clock Divider Enable R/W 5 CRE Counter Reset Enable R/W 4 3 ECES Reserved External Clock Edge Select R/W ⎯ 2 CCS Counter Clock Select R/W 1:0 TMODE Timer Mode R/W Figure 12.4.1 Timer Control Register 12-10 Chapter 12 Timer/Counter 12.4.2 Timer Interrupt Status Register n (TMTISRn) TMTISR0 TMTISR1 TMTISR2 0xF004 0xF104 0xF204 16 Reserved : Type : Initial value 15 Reserved 4 3 2 1 0 TIIS 31 TWIS TPIBS TPIAS RW0C RW0C RW0C RW0C : Type 0 0 0 0 : Initial value Bit 31:4 3 Mnemonic TWIS Field Name Reserved Watchdog Timer Status Description Read/Write ⎯ 2 TPIBS Pulse Generator TMCPRB Status 1 TPIAS Pulse Generator TMCPRA Status Watchdog Timer TMCPRA Match Status (Default: 0) R/W0C (This bit is Reserved in the case of the TMTISR0 Register and the TMTISR1 Register.) When in the Watchdog Timer mode, this bit is set when the counter value matches Compare Register 2 (TMCPRA2). This bit is cleared by writing a “0” to it. During Read 0: Did not match the Compare Register 1: Matched the Compare Register During Write 0: Negate interrupt 1: Invalid Pulse Generator TMCPRB Match Status (Default: 0) R/W0C (This bit is Reserved in the case of the TMTISR2 Register.) When in the Pulse Generator mode, this bit is set when the counter value matches Compare Register Bn (TMCPRBn). This bit is cleared by writing a “0” to it. During Read 0: Did not match the Compare Register 1: Matched the Compare Register During Write 0: Clear 1: Invalid Pulse Generator TMCPRA Match Status (Default: 0) R/W0C (This bit is Reserved in the case of the TMTISR2 Register.) When in the Pulse Generator mode, this bit is set when the counter value matches Compare Register A n (TMCPRAn). This bit is cleared by writing a “0” to it. During Read 0: Did not match the Compare Register 1: Matched the Compare Register During Write 0: Clear 1: Invalid Interval Timer TMCPRA Match Status (Default: 0) When in the Interval Timer mode, this bit is set when the counter value matches Compare Register A n (TMCPRAn). This bit is cleared by writing a “0” to it. During Read 0: Did not match the Compare Register 1: Matched the Compare Register During Write 0: Clear 1: Invalid R/W0C 0 TIIS Interval Timer TMCPRA Status Figure 12.4.2 Timer Interrupt Status Register 12-11 Chapter 12 Timer/Counter 12.4.3 Compare Register An (TMCPRAn) TMCPRA0 0xF008 TMCPRA1 0xF108 TMCPRA2 0xF208 16 TCVA R/W 0xFFFF 15 TCVA R/W 0xFFFF : Type : Initial value 0 : Type : Initial value 31 Bits 31:0 Mnemonic TCVA Field Name Timer Compare Register A Description Timer Compare Value A (Default: 0xFFFFFFFF) Sets the timer compare value as a 32-bit value. This register can be used in all modes. Read/Write R/W Figure 12.4.3 Compare Register A 12-12 Chapter 12 Timer/Counter 12.4.4 Compare Register Bn (TMCPRBn) TMCPRB0 0xF00C TMCPRB1 0xF10C 16 TCVB R/W 0xFFFF 15 TCVB R/W 0xFFFF : Type : Initial value 0 : Type : Initial value 31 Bits 31:0 Mnemonic TCVB Field Name Timer Compare Value B Description Timer Compare Value B (Default: 0xFFFFFFFF) Sets the timer compare value as a 32-bit value. This register can only be used when in the Pulse Generator mode. Please set a value greater than that in Compare Register A. Read/Write R/W Figure 12.4.4 Compare Register B 12-13 Chapter 12 Timer/Counter 12.4.5 Interval Timer Mode Register n (TMITMRn) TMITMR0 0xF010 TMITMR1 0xF110 TMITMR2 0xF210 16 Reserved : Type : Initial value 15 TIIE R/W 0 14 Reserved 1 0 TZCE R/W : Type : Initial value 0 31 Bit 31:16 15 Mnemonic TIIE Field Name Reserved Interval Timer Interrupt Enable Description Timer Interval Interrupt Enable (Default: 0) Sets Interval Timer TMCPRA Interrupt Enable/Disable. 0: Disable (mask) 1: Enable Interval Timer Zero Clear Enable (Default: 0) This bit specifies whether or not to clear the counter to “0” after the count value matches Compare Register A. Count stops at this value if it is not cleared. 0: Do not clear 1: Clear Read/Write ⎯ R/W 14:1 0 TZCE Reserved Interval Timer Clear Enable R/W ⎯ Figure 12.4.5 Interval Timer Mode Register 12-14 Chapter 12 Timer/Counter 12.4.6 Divide Register n (TMCCDRn) TMCCDR0 0xF020 TMCCDR1 0xF120 TMCCDR2 0xF220 16 Reserved : Type : Initial value 15 Reserved 3 2 CCD R/W 000 : Type : Initial value 0 31 Bits 31:3 2:0 Mnemonic CCD Field Name Reserved Counter Clock Divide Value Description Counter Clock Divide (Default: 000) These bits specify the divide value when using the internal clock (IMBUSCLK) as the counter input clock source. The binary value n is divided by 2n+1. 000: Divide by 21 (f/2) 001: Divide by 22 (f/4) 010: Divide by 23 (f/8) 011: Divide by 24 (f/16) 100: Divide by 25 (f/32) 101: Divide by 26 (f/64) 110: Divide by 27 (f/128) 111: Divide by 28 (f/256) Read/Write ⎯ R/W Figure 12.4.6 Divide Register 12-15 Chapter 12 Timer/Counter 12.4.7 Pulse Generator Mode Register n (TMPGMRn) TMPGMR0 0xF000 TMPGMR1 0xF130 16 Reserved : Type : Initial value 15 14 13 Reserved 1 0 FFI R/W : Type : Initial value 0 31 TPIBE TPIAE R/W 0 R/W 0 Bit 31:16 15 Mnemonic TPIBE Field Name Reserved TMCPRB Interrupt Enable Description Timer Pulse Generator Interrupt by TMCPRB Enable (Default: 0) When in the Pulse Generator mode, this bit sets Interrupt Enable/Disable for when TMCPRB and the counter value match. 0: Mask 1: Do not mask Timer Pulse Generator Interrupt by TMCPRA Enable (Default: 0) When in the Pulse Generator mode, this bit sets Interrupt Enable/Disable for when TMCPRA and the counter value match. 0: Mask 1: Do not mask Initial TIMER Output Level (Default: 0) This bit specifies the TIMER[n] signal default when in the Pulse Generator mode. 0: Low 1: High Read/Write ⎯ R/W 14 TPIAE TMCPRA Interrupt Enable R/W 13:1 0 FFI Reserved Flip Flop Default R/W ⎯ Figure 12.4.7 Pulse Generator Mode Register 12-16 Chapter 12 Timer/Counter 12.4.8 31 Reserved : Type : Initial value 15 TWIE R/W 0 14 Reserved 8 7 WDIS RW1S 0 6 0 1 0 TWC R/W1C : Type : Initial value 0 Watchdog Timer Mode Register n (TMWTMRn) TMWTMR2 0xF240 16 Bit 31:16 15 Mnemonic TWIE Field Name Reserved Watchdog Timer Signaling Enable Description Timer Watchdog Enable (Default: 0) This bit sets NMI signaling enable/disable either when in the Watchdog Timer mode or during a reset. This bit cannot be cleared when the Watchdog Timer Disable bit (WDIS) is “0”. 0: Disable (mask) 1: Enable Watchdog Timer Disable (Default: 0) Only when this bit is set can the counter be stopped by clearing the Watchdog Timer Signaling Enable bit (TWIE) or by clearing the Timer Counter Enable bit (TMTCR2.TCE) of the Timer Control Register. Writing “0” to this bit is not valid. This bit can be cleared in either of the following ways. Clear the Watchdog Timer Interrupt Enable bit (TMWTMR2.TWIE). Clear the Timer Counter Enable bit (TMTCR2.TCE) of the Timer Control Register. Watchdog Timer Clear (Default: 0) Setting this bit to “1” clears the counter. Writing “0” to this bit is not valid. This bit is always read as “0”. Read/Write ⎯ R/W 14:8 7 W DIS Reserved Watchdog Timer Disable ⎯ R/W1S 6:1 0 TWC Reserved Watchdog Timer Clear ⎯ R/W1C Figure 12.4.8 Watchdog Timer Mode Register 12-17 Chapter 12 Timer/Counter 12.4.9 Timer Read Register n (TMTRRn) 0xF0F0 TMTRR0 TMTRR1 TMTRR2 0xF0F0 0xF1F0 0xF2F0 16 TCNT R 0x0000 15 TCNT R 0x0000 : Type : Initial value 0 : Type : Initial value 31 Bits 31:0 Mnemonic TCNT Field Name Timer Counter Description Timer Counter (Default: 0x00000000) This Read Only register is a 32-bit counter. Operation when this register is written to is undefined. Read/Write R Figure 12.4.9 Timer Read Register 0 12-18 Chapter 13 Parallel I/O Port 13. Parallel I/O Port 13.1 Characteristics The TX4938 on-chip Parallel I/O port (PIO) is a 16-bit general-purpose parallel port. The input/output direction and the port type during output (totem pole output/open drain output) can be set for each bit. 13.2 Block Diagram 8 SDRAMC CB[7:0] ADDR[18] (SEL1) IM-Bus PIO Input Data Register 8 PIO[7:0] 8 CB[7:0]/PIO[15:8] Output Data Register 8 Direction Control Register OD Control Register 8 Figure 13.2.1 Parallel I/O Block Diagram 13-1 Chapter 13 Parallel I/O Port 13.3 Detailed Description 13.3.1 Selecting PIO Pins Of the 16-bit PIO signals, signals PIO[15:8] can be used in combination with 8-bit ECC check bit signals. The configuration signal (ADDR[18]) at boot up determines which function will be used. See “3.2 Boot Configuration” for more information. 13.3.2 General-purpose Parallel Port The four following registers are used to control the PIO port. • • • • PIO Output Data Register (PIODO) PIO Input Data Register (PIODI) PIO Direction Control Register (PIODIR) PIO Open Drain Control Register (PIOOD) PIO signals can be selected by the PIO Direction Control Register (PIODIR) for each bit as either input or output. Signals selected as output signals output the values written into the PIO Data Output Register (PIODO). The PIO Open Drain Control Register (PIOOD) can select whether each bit is either an open drain output or a totem pole output. PIO signal status is indicated by the PIO Data Input Register. This register can be read out at any time regardless of the pin direction settings. 13.4 Registers Table 13.4.1 PIO Register Map Offset Address 0xF500 0xF504 0xF508 0xF50C Mnemonic PIODO PIODI PIODIR PIOOD Output Data Register Input Data Register Register Name Direction Control Register Open Drain Control Register 13-2 Chapter 13 Parallel I/O Port 13.4.1 31 Reserved :Type :Initial value 15 14 13 12 11 10 9 8 PDO R/W 0x0000 :Type :Initial value 7 6 5 4 3 2 1 0 PIO Output Data Register (PIODO) 0xF500 16 Bit 31:16 15 :0 Mnemonic PDO [15:0] Field Name Reserved Data Out Description Port Data Output [15:0] (Initial value:0x0000) Data that is output to the PIO pin (PIO [15:0]). Read/Write ⎯ R/W Figure 13.4.1 PIO Output Data Register 13.4.2 31 PIO Input Data Register (PIODI) 0xF504 16 Reserved :Type :Initial value 15 14 13 12 11 10 9 8 PDI R Undefined :Type :Initial value 7 6 5 4 3 2 1 0 Bit 31:16 15 :0 Mnemonic PDI [15:0] Field Name Reserved Data In Description ⎯ Port Data Input [15:0] (Initial value:TBD) Data that is input to the PIO pin (PIO [15:0]). R Figure 13.4.2 PIO Input Data Register 13-3 Chapter 13 Parallel I/O Port 13.4.3 31 Reserved :Type :Initial value 15 14 13 12 11 10 9 8 PDIR R/W 0x0000 :Type :Initial value 7 6 5 4 3 2 1 0 PIO Direction Control Register (PIODIR) 0xF508 16 Bit 31:16 15 :0 Mnemonic PDIR [15:0] Field Name Reserved Direction Control Description Port Direction Control [15:0] (Initial value: 0x0000) Sets the I/O direction of the PIO pin (PIO [15:0]). 0: Input (Reset) 1: Output Read/Write ⎯ R/W Figure 13.4.3 PIO Direction Control Register 13.4.4 31 PIO Open Drain Control Register (XPIOOD) 0xF50C 16 Reserved :Type :Initial value 15 14 13 12 11 10 9 8 POD R/W 0x0000 :Type :Initial value 7 6 5 4 3 2 1 0 Bit 31:16 15 :0 Mnemonic POD [15:0] Field Name Reserved Open Drain Control Description Port Open Drain Control [15:0] (Initial value: 0x0000) Sets whether to use the PIO pin (PIO [15:0]) as an open drain. 0: Open drain (Reset) 1: Totem pole Read/Write ⎯ R/W Figure 13.4.4 PIO Open Drain Control Register 13-4 Chapter 14 AC-link Controller 14. AC-link Controller 14.1 Features ACLC, AC-link controller module can be connected to audio and/or modem CODECs described in the “Audio CODEC ’97 Revision 2.1” (AC’97) defined by Intel and can operate them. Refer to the following Web site for more information regarding the AC’97 specification. http://developer.intel.com/ial/scalableplatforms/audio/ Its features are summarized as follows. • • • • • • • • • • • Up to two CODECs are supported. AC’97 compliant CODEC register access protocol is supported. CODEC register access completion is recognized by polling or interrupt. Recording and playback of 16-bit PCM Left&Right channels are supported. Recording can be selected from PCM L&R or Mic. Playback of 16-bit Surround, Center, and LFE channels is supported. Variable Rate Audio recording is supported. Variable Rate Audio playback is supported. Line 1 and GPIO slots for Modem CODEC are supported. AC-link low-power mode, wake-up, and warm-reset are supported Sample-data I/O via DMA transfer is supported. 14-1 Chapter 14 AC-link Controller 14.2 Configuration Figure 14.2.1 illustrates the ACLC configuration. DMAC IM-bus aclcimbif Bus I/F aclc Data I/O Master Slave Register Wakeup Control System-side (imclk / imreset* ) Asynchronous Handshake Slot-data Transfer Slot Valid/Req & Register Access Link-side (BITCLK / ACRESET* ) Bitstream Receive & Transmit AC-link Figure 14.2.1 ACLC Module Configuration 14-2 Chapter 14 AC-link Controller 14.3 Functional Description ACLC provides four mechanisms to operate AC’97-compliant CODEC(s): • • • • AC-link status control (start-up and low-power mode) CODEC register access Sample-data transmission and reception GPIO operation This section first describes the CODEC connection, chip configuration, and overall usage-flow. Then AClink start-up sequence and the other mechanisms will be described. Using low-power mode comes last. 14.3.1 CODEC Connection The ACLC module has two SDIN (named as SDATA_IN in the AC’97 specification) signals and supports up to two CODECs to be connected. This section shows some system configuration diagrams for typical usages. Note that the diagrams shown here is intended to provide conceptual understanding and some components may be necessary on the actual circuit board to ensure proper electrical signals. The diagrams assume CODECs compliant with the CODEC ID strapping recommendation described in the section D.5.2 of the AC’97 revision 2.1 specification. 14.3.1.1 Stereo Audio and Optional Modem Connection ACLC SYNC BITCLK SDOUT ACRESET* SDIN0 SDIN1 Audio CODEC (CODEC ID=‘00’) SYNC BIT_CLK SDATA_OUT RESET# SDATA_IN CID1 CID0 SYNC BIT_CLK SDATA_OUT RESET# SDATA_IN CID1 CID0 GND Optional Modem CODEC (CODEC ID=’01’) Figure 14.3.1 Stereo Audio and Optional Modem Connection Diagram 14-3 Chapter 14 AC-link Controller 14.3.1.2 5.1 Channel Audio Connection This sample assumes one CODEC with four DACs mapped to stereo front (3&4) and stereo rear (7&8) slots, and another CODEC with two DACs mapped to center (6) and LFE (9) slots. ACLC SYNC BITCLK SDOUT ACRESET* SDIN0 SDIN1 4Channel Audio CODEC (CODEC ID=’0’) SYNC BIT_CLK SDATA_OUT RESET# SDATA_IN CID1 CID0 SYNC BIT_CLK SDATA_OUT RESET# SDATA_IN CID1 CID0 GND 2Channel Audio CODEC (CODEC ID=‘3’) Figure 14.3.2 5.1 Channel Audio Connection Diagram 14.3.2 Boot Configuration To utilize ACLC, the CPU must boot up with ACLC enabled by setting Pin Configuration Register’s Shared Pin Select2 via the boot configuration. Refer to the sections 3.2 and 5.2.3 for the detail of the boot configuration. 14-4 Chapter 14 AC-link Controller 14.3.3 Usage Flow This section outlines a process flow when using the AC’97 connected to ACLC. Refer to the subsequent sections for the details of each operation performed in this process flow. The diagrams below describe the audio playback and recording processes. The modem transmission and reception can be done in a similar way. System Software Enable ENLINK Deassert ACRESET* Start BITCLK ACLC and DMAC AC’97 Set CODEC Ready CODECRDY Interrupt Check AC’97 status Start up AC-link DAC Ready response Register setting such as Volume (*) Set volume, etc. Setup DMA buffer Configure DMAC Start DMA Channel and enable transmit-data DMA Start transmit-data DMA Start sending data to slot Start audio playback Write to DMA buffer and update DMA descriptor (repeatedly) DMAC generates Transfer Completion interrupt (repeatedly) Stop updating DMA descriptor DMAC channel goes inactive DMA underrun error occurs Check completion status Stop transmit-data DMA Disable transmit-data DMA Stop sending data to slot Dummy write to data register to clear pending DMA request if any Stop audio playback Disable ENLINK Assert ACRESET* Stop AC-link Stop BITCLK (*) Register settings such as volume can be made during data playback. Figure 14.3.3 Audio Playback Process Flow 14-5 Chapter 14 AC-link Controller System Software Enable ENLINK ACLC and DMAC Deassert ACRESET* AC’97 Start BITCLK Set CODEC Ready Check AC’97 status CODECRDY Interrupt Start recording audio ADC Ready response Start up AC-link Register setting such as gain (*) Set gain, etc. Clear DMA buffer Configure DMAC Start DMA Channel and enable receive-data DMA Start receiving data from slot Start receive-data DMA Send sample data Read from DMA buffer and update DMA descriptor (repeatedly) DMAC generates Transfer Completion interrupt (repeatedly) Stop updating DMA descriptor DMAC channel goes inactive DMA overrun error occurs Check completion status Receive-data DMA halts Disable receive-data DMA Dummy read from data register to clear pending DMA request if any Disable ENLINK Assert ACRESET * Stop AC-link Stop BITCLK (*) Register settings such as gain can be made during data recording Figure 14.3.4 Audio Recording Process Flow 14-6 Chapter 14 AC-link Controller 14.3.4 AC-link Start Up Figure 14.3.5 shows the conceptual sequence of AC-link start-up. The ACLC Control Enable Register’s Enable AC-link bit is used to deassert/assert the ACRESET* signal to the link side (including AC-link). This bit defaults to ‘0’, so the CPU asserts the ACRESET* signal when it boots up. The AC’97 specification requires that the reset assertion period is 1µs or longer. The software is responsible for controlling the length of this period. The AC’97 specification also requires that the primary CODEC stops the AC-link clock (BITCLK) signal during the period from ACRESET* signal assertion to 162.8ns after ACRESET* signal deassertion. ACLC assumes the primary CODEC meet this requirement. Deasserting the link-side reset makes the primary CODEC start driving the BITCLK signal. When the BITCLK signal is provided, ACLC starts the SYNC signal output, which indicates the start of the AC-link frame, and starts the frame-length counting. When a CODEC becomes ready to receive access to its own register, the CODEC sets the “CODEC Ready” bit of the Tag slot. When ACLC detects that this bit has been set, the ACLC Interrupt Status Register (ACINTSTS)’s CODEC[1:0] Ready (CODEC[1:0]RDY) bit is set. The system software is able to recognize the readiness of the CODEC(s) by detecting this event by way of either polling or interrupt. In case of 5.1 channel audio connection example (Figure 14.3.2), because the secondary CODEC is connected to the SDIN1 signal of ACLC, the software must watch ACINTSTS.CODEC1RDY bit to determine the CODEC’s readiness for the register access. ACRESET* BITCLK SYNC SDIN ENLINK CODECRDY Boot up Software sets ENLINK bit CODEC becomes ready to accept register access ACLC internal clock becomes active Note: The number of BITCLK cycles relative to other signals is not to scale. Figure 14.3.5 Cold Reset and CODEC Ready Recognition 14-7 Chapter 14 AC-link Controller 14.3.5 CODEC Register Access By accessing registers in the CODEC, the system software is able to detect or control the CODEC state. This section describes how to read and write CODEC registers via ACLC. For details about AC’97 register set and proper sequence to operate CODEC, refer to the AC’97 specification and target CODEC datasheet. It takes several frame periods for a read or write access to complete. Taking this into account, ACLC is equipped with a function for reporting CODEC register access completion as status-change or interrupt. In order to read an AC’97 register, write the access destination CODEC ID and register address in ACLC CODEC Register Access Register (ACREGACC) with its CODECRD bit set to “1”. After the ACLC Interrupt Status Register (ACINTSTS)’s REGACC Ready (REGACCRDY) bit is set, the software is able to get the data returned from the AC’97 by reading the ACREGACC register and issue another access. In order to write to an AC’97 register, write the access destination CODEC ID, register address, and the data in ACLC’s ACREGACC register with ACREGACC.CODECRD bit set to “0”. After the ACINTSTS.REGACCRDY bit has been set, the software is able to issue another access. In case of 5.1 channel audio connection example (Figure 14.3.2), because the secondary CODEC has CODEC ID of ‘3’, the software must write ‘3’ into ACREGACC.CODECID field when it issues secondary CODEC register access. 14-8 Chapter 14 AC-link Controller 14.3.6 Sample-data Transmission and Reception This section describes the mechanism for transmission and reception of PCM audio and modem wave-data. An overview is described first. The DMA (Direct Memory Access) operation, error detection and recovery procedure follow. A special case using slot activation control is described last. 14.3.6.1 Overview Figure 14.3.6 and Figure 14.3.7 show conceptual views of the sample-data transmission and reception mechanisms. ACLC REQ Latch DMAREQ Read DMA Buffer Data Write Data Strobe Valid Flag Data ACCTLEN FIFO ACSLTEN Linkside AC-link Slot Req Slot Valid, Slot Data Memory DMAC Underrun Error Figure 14.3.6 Sample-data Transmission Mechanism ACLC REQ Latch DMAREQ Write DMA Buffer Data Read Data Strobe Data ACCTLEN FIFO ACSLTEN Linkside AC-link Slot Valid, Slot Data Memory DMAC Overrun Error Figure 14.3.7 Sample-data Reception Mechanism The CODEC requests ACLC to transmit and receive sample-data via ‘slot-request’ and ‘slotvalid’ bit-fields on the SDIN signal of AC-link. For transmission, ACLC transmits the data with ‘slot-valid’ tag set. For reception, ACLC captures the slot-data. Transmission or reception through each stream can be independently activated or deactivated under control of ACLC Slot Enable Register (ACSLTEN). ACLC is equipped with a separate FIFO for each data-stream. The data to transmit is prefetched from memory to FIFO through DMA. The received data is buffered on FIFO and then stored to memory through DMA. In this stage, each DMA is independently activated or deactivated under control of ACLC Control Enable Register (ACCTLEN). 14-9 Chapter 14 AC-link Controller 14.3.6.2 DMA Channel Mapping ACLC uses four DMA request channels. These DMA channels are allocated to four out of seven data-streams, or slots, on the AC-link frame, according to ACLC DMA Channel Selection Register (ACDMASEL) setting as shown in Table 14.3.1. The pin configuration register allocates these DMA channels of ACLC to the DMAC (DMA controller) channels according to Pin Configuration Register (PCFG)’s DMA Request Selection (DMASEL[7:0]) bits as described in section 8.3.1. Table 14.3.1 DMA Channel Mapping Modes AC-link Slot Number PCM L&R out (3&4) Surround L&R out (7&8) Center out (6) LFE out (9) PCM L&R in (3&4) or Mic in (6) Modem Line1 out (5) Modem Line 1 in (5) ACLC ch1 ACLC ch2 ACLC ch3 ACLC ch2 ACLC ch3 ACDMASEL 0 ACLC ch0 1 ACLC ch0 ACLC ch1 2 ACLC ch0 ACLC ch1 ACLC ch2 ACLC ch3 3 ACLC ch0 ACLC ch1 ACLC ch3 ACLC ch2 14.3.6.3 Sample-data Format ACLC transmits/receives 16 bits per sample for each data slot shown in Table 14.3.1. The data resides on the first 16 bits of the 20 bits assigned to each slot on AC-link. Each sample-data register allows access by word (32-bit) unit only. Therefore the DMA count must be a multiple of word. Note that the transmit-data DMA count also must be the FIFO depth (refer to Table 14.3.8) or more for a reason described later. For audio PCM front and surround streams, every data-word is loaded with a couple of left and right samples. For audio MIC stream, valid data is loaded in the same field as the left sample while the other field is filled with ‘0’. For audio center, LFE, and modem line 1 streams, two consecutive samples are packed into every word. The data format at the sample-data register is arranged so that the data format on the DMA buffer follows the rules below. • • • Each sample data is put in the byte order in which the CPU operates (big- or little-endian). Samples are put in the time-sequential order at increasing addresses on memory. For a DMA channel which couples left and right samples, each left sample precedes the corresponding right sample. Refer to the sections 14.4.16 and later for the register format. 14-10 Chapter 14 AC-link Controller Figures below show the format of DMA buffer for each type of DMA channel. #0, #1, … means the sample’s sequential number for the AC-link slot. Subscript ‘L’ means lower 8-bit of each sample and subscript ‘H’ means upper 8-bit. Table 14.3.2 Front and Surround DMA Buffer Format in Little-endian Mode Address offset +0 +4 +8 : +0 Left#0L Left#1L Left#2L : +1 Left#0H Left#1H Left#2H : +2 Right#0L Right#1L Right#2L : +3 Right#0H Right#1H Right#2H : Table 14.3.3 Center, LFE, and Modem DMA Buffer Format in Little-endian Mode Address offset +0 +4 +8 : +0 #0L #2L #4L : +1 #0H #2H #4H : +2 #1L #3L #5L : +3 #1H #3H #5H : Table 14.3.4 Mic DMA Buffer Format in Little-endian Mode Address offset +0 +4 +8 : +0 #0L #1L #2L : +1 #0H #1H #2H : +2 0 0 0 : +3 0 0 0 : Table 14.3.5 Front and Surround DMA Buffer Format in Big-endian Mode Address offset +0 +4 +8 : +0 Left#0H Left#1H Left#2H : +1 Left#0L Left#1L Left#2L : +2 Right#0H Right#1H Right#2H : +3 Right#0L Right#1L Right#2L : Table 14.3.6 Center, LFE, and Modem DMA Buffer Format in Big-endian Mode Address offset +0 +4 +8 : +0 #0H #2H #4H : +1 #0L #2L #4L : +2 #1H #3H #5H : +3 #1L #3L #5L : Table 14.3.7 Mic DMA Buffer Format in Big-endian Mode Address offset +0 +4 +8 : +0 #0H #1H #2H : +1 #0L #1L #2L : +2 0 0 0 : +3 0 0 0 : 14-11 Chapter 14 AC-link Controller 14.3.6.4 DMA Operation When ACLC’s REQ latch (refer to Figure 14.3.6 and Figure 14.3.7) needs to read or write sample-data, it issues a DMA request. When DMAC acknowledges the request by performing write- or read-access to the ACLC sample-data register, ACLC deasserts the request. Therefore, the software must properly set up DMAC so that the source or destination points to the corresponding sample-data register for the DMA channel. Setup the DMA Channel Control Registers (DMCCRn) in DMAC as follows. Immediate chain DMA request polarity DMA acknowledge polarity Request sense Sample chain Transfer size Transfer address mode Enable Low-active Low-active Level-sensitive 1 word 1 word Dual DMCCRn.IMMCHN = 1 [Note] DMCCRn.REQPOL = 0 DMCCRn.ACKPOL = 0 DMCCRn.EGREQ = 0 DMCCRn.SMPCHN = 1 DMCCRn.XFSZ = 010b DMCCRn.SNGAD = 0 Note: Use this setting when DMA chain operation is utilized For a transmission channel, assign the address of ACLC Audio PCM Output/Surround/Center/LFE/Modem Output Register (ACAUDO/SURR/CENT/LFE/ MODODAT) to the DMAC destination address register (DMDARn). For a reception channel, assign the address of ACLC Audio input/Modem Input Register (ACAUDI/MODIDAT) to the DMAC source address register (DMSARn). When any DMA request is pending, the REQ latch will not deasserted the request until the corresponding sample-data register is accessed. Just unsetting ACLC Control Enable Register (ACCTLEN)’s DMA Enable (xxxxDMA) bit corresponding to the DMA will not clear the REQ latch. The procedure to continuously push or pull the sample-data stream through the chain DMA operation follows the DMAC specification. Refer to section 8.3.10 for this respect. 14-12 Chapter 14 AC-link Controller 14.3.6.5 Sample-data FIFO For a transmission stream, as long as ACLC Control Enable Register (ACCTLEN) allows that transmission and the FIFO has any room to fill data in, the FIFO issues a request via the REQ latch. On the other side, when a transmission FIFO receives a data-request from the link-side, it provides data with valid-flag set if it has any valid data. If it has no valid data, it responds with valid-flag unset and an underrun error bit is set. At the transmit-data DMA start-up, until the FIFO becomes full, it responds to the link-side with valid-flag unset, in order to maximize the buffering effect. Therefore, the DMA size must be the FIFO depth or more. Table 14.3.8 Transmission FIFO Depth Data-stream PCM L&R out Surround L&R out Center out LFE out Modem Line 1 out FIFO Depth (Word) 3 3 2 2 1 The link-side drives the slot-valid bit and slot-data on AC-link. When underrun occurs, these bits are driven to all ‘0’. For a reception stream, as long as the FIFO has any valid data, the FIFO issues a request via the REQ latch. On the other side, when ACCTLEN allows that reception and the link-side issues a data strobe, the FIFO stores the valid data. If the FIFO is full when it receives a data strobe, the data is discarded and an overrun error bit is set. 14.3.6.6 Error Detection and Recovery In most usages, since the CODEC continuously requests sample-data transmission and reception, after DMA is finished, underrun and overrun will occur. The procedure described below allows the software to determine whether an error has occurred during DMA operation. The software sets ACLC Control Enable Register (ACCTLEN)’s Error Halt Enable (xxxxEHLT) bit before it starts a DMA channel. After it starts the DMA channel, it waits until ACLC Interrupt Status Register (ACINTSTS)’s Underrun or Overrun Error (xxxxERR) bit is set. When the event is detected, the software checks DMA Channel Control Register (DMCCRn)’s Transfer Active (XFACT) bit and ACLC DMA Request Status Register (ACDMASTS)’s Request (xxxxDMA) bit and determines the DMA completion status as follows. Table 14.3.9 DMA Completion Status Determination DMCCRn.XFACT Inactive Inactive Active ACDMASTS.xxxxDMA Pending Not Pending * Completion Status No Error during DMA Underrun or Overrun Underrun or Overrun To recover from error, disable and enable the stream via ACCTLEN, and restart the DMA. 14-13 Chapter 14 AC-link Controller 14.3.6.7 Slot Activation Control In case ACLC is required to begin transmission or reception of multiple streams at the same time, slot activation control will be useful. To use this feature, the software must deactivate the relevant streams first, enable ACLC Control Enable Register (ACCTLEN), make sure the transmission FIFO becomes full by checking ACLC FIFO Status Register (ACFIFOSTS)’s Full (xxxxFULL) bit, and finally enable ACLC Slot Enable Register (ACSLTEN). This procedure assures that all the reception streams are activated at a frame and all the transmission streams begin to respond to the slot-request bits of that frame. Note that access to ACSLTEN and ACLC Slot Disable Register (ACSLTDIS) needs special care to synchronize with the link-side. Refer to the register description for detail. Since operating ACCTLEN register and DMAC without touching ACSLTEN is sufficient for most usages, the initial ACSLTEN value enables all the transmission and reception through the slots by default. 14.3.6.8 Variable Rate Limitation To improve compatibility with existing AC’97 CODECs and controllers on the market, ACLC combines sample-data for the slots 3 and 4 into one DMA channel, and similarly for the slots 7 and 8. This feature effectively considers that the slot request bit from the CODEC for slot 4 shall be always same (in tandem) as for slot 3 for each frame, and similarly for the slots 7 and 8. ACLC also considers that the slot valid bit from the CODEC for slot 4 shall be always same (in tandem) as for slot 3 for each frame. 14.3.7 GPIO Operation ACLC supports the slot 12 for the MC’97 (Modem Codec) GPIO. The slot 12 is shadowed in the ACLC GPI Data Register (ACGPIDAT) and ACLC GPO Data Register (ACGPODAT) in the following way: • • ACLC copies the slot 12 input data into the ACGPIDAT register, if the slot 12 input is marked by the CODEC as valid in the AC-link frame period. ACLC generates the slot 12 output data from the ACGPODAT register and mark it as valid, if the slot 12 is required from the CODEC in the previous AC-link frame. This shadowing function is enabled as long as ACSLTEN allows. The bit 0 of the slot 12 is defined as ‘GPIO_INT’ and can cause ACLC to request an interrupt. 14-14 Chapter 14 AC-link Controller 14.3.8 Interrupt ACLC generate two kinds of interrupt to the interrupt controller as below. • ACLC Interrupt Logical OR of all the valid bits of ACLC Interrupt Masked Status Register (ACINTMSTS) is connected. Refer to the section 14.4.5. • ACLCPME Interrupt This interrupt shows the wake-up from CODEC in AC-link low-power mode. Refer to the description for ACLC Control Enable Register (ACCTLEN)’s Wake-up Enable (WAKEUP) bit in section 14.4.1. 14.3.9 AC-link Low-power Mode The AC’97 specification makes provision for saving power during system suspension by poweringdown both the controller and CODEC except the minimum circuit to detect modem RING/Caller-ID event and wake up the system. AC’97 CODEC is required to go into the low-power mode when they receive a special register-write access. In this mode, the AC-link controller must drive all output signals to low level to allow the CODEC digital I/O power cut. ACLC provides ‘AC-link low-power mode’ setting. When this mode is enabled by ACLC Control Enable Register (ACCTLEN)’s Enable AC-link Low-power Mode (LOWPWR) bit, all the output signals except the ACRESET* signal to the AC-link are forced to low level. The AC-link will be reactivated out of the low-power mode when the SYNC signal is driven high for 1 µs or longer by the AC-link controller while the BITCLK signal is inactive. The software is responsible for controlling the length of this period. ACLC also provides the ‘wake-up’ function. While this function is enabled by ACCTLEN Register’s Enable Wake-up (WAKEUP) bit, high-level input at any SDIN[x] signal will force ACLCPME interrupt assertion. When ACLCPME interrupt is recognized, the software must disable the low-power mode and assert warm reset to the AC-link via ACCTLEN Register’s Enable Warm Reset (WRESET) bit. After the warm reset is deasserted, the CODEC will start providing the BITCLK signal, and then ACLC will generate the SYNC signal for usual AC-link frames. Refer to section B.5.1 of AC’97 specification revision 2.1 for the power-down and wake-up sequence in AC-link power-down mode. 14-15 Chapter 14 AC-link Controller 14.4 Registers The base address for the ACLC registers is described in section 4.2. Only word (32-bit) accesses are allowed. These registers return to their initial values when the module gets reset by power-on or configuration-register operation. The ‘Disable AC-link’ operation initializes the ACREGACC, ACGPIDAT, ACGPODAT, and ACSLTEN registers while keeping the other registers. Do not access any location which is not mentioned in this section. All the register bits marked as ‘Reserved’ are reserved. The value of the reserved bit when read is undefined. When any register is written, write to the reserved bit(s) the same value as the previous value read. Table 14.4.1 ACLC Registers Address 0xF700 0xF704 0xF708 0xF710 0xF714 0xF718 0xF71C 0xF720 0xF740 0xF744 0xF748 0xF74C 0xF750 0xF780 0xF784 0xF7A0 0xF7A4 0xF7A8 0xF7AC 0xF7B8 0xF7B0 0xF7BC 0xF7FC Mnemonic ACCTLEN ACCTLDIS ACREGACC ACINTSTS ACINTMSTS ACINTEN ACINTDIS ACSEMAPH ACGPIDAT ACGPODAT ACSLTEN ACSLTDIS ACFIFOSTS ACDMASTS ACDMASEL ACAUDODAT ACSURRDAT ACCENTDAT ACLFEDAT ACMODODAT ACAUDIDAT ACMODIDAT ACREVID Register Name ACLC Control Enable Register ACLC Control Disable Register ACLC CODEC Register Access Register ACLC Interrupt Status Register ACLC Interrupt Masked Status Register ACLC Interrupt Enable Register ACLC Interrupt Disable Register ACLC Semaphore Register ACLC GPI Data Register ACLC GPO Data Register ACLC Slot Enable Register ACLC Slot Disable Register ACLC FIFO Status Register ACLC DMA Request Status Register ACLC DMA Channel Selection Register ACLC Audio PCM Output Data Register ACLC Surround Data Register ACLC Center Data Register ACLC LFE Data Register ACLC Modem Output Data Register ACLC Audio PCM Input Data Register ACLC Modem Input Data Register ACLC Revision ID Register Type R/W1S W1C R/W R/W1C R R/W1S W1C RS/WC R R/W R/W1S W1C R R R/W W W W W W R R R Initial Value 0x00000000 — 0x00000000 0x00000010 0x00000000 0x00000000 — 0x00000000 0x00000000 0x00000000 0x000003DF — 0x00000000 0x00000000 0x00000000 — — — — — 0xXXXXXXXX 0xXXXXXXXX 0x00000203 14-16 Chapter 14 AC-link Controller 14.4.1 ACLC Control Enable Register 0xF700 This register is used to check the setting of various ACLC features and to enable them. 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Reserved AUDIE LFEEH CENTE SURRE AUDO MODIE MODOE Reserved HLT LT HLT HLT EHLT HLT HLT R/W1S R/W1S R/W1S R/W1S R/W1S R/W1S R/W1S : Type 0 15 14 13 12 11 10 9 8 AUDO DMA 0 6 5 0 4 0 3 0 2 0 1 LOW PWR 0 0 ENLINK : Initial value 7 MODID MODO AUDID LFEDM CENTD SURR MA DMA Reserved MA A MA DMA R/W1S R/W1S Reserved RDYCLR MICSEL WRESET WAKEUP R/W1S R/W1S R/W1S R/W1S R/W1S W 1S R/W1S R/W1S R/W1S R/W1S R/W1S : Type 0 0 0 0 0 0 0 0 0 0 0 0 0 : Initial value Bit 31:24 23 Mnemonic ⎯ Field Name Reserved Enable Modem Receive-data DMA Error Halt Description MODIEHLT: Enable Modem Receive-data DMA Error Halt. R 0: Indicates that MODIDMA error halt is disabled. 1: Indicates that MODIDMA error halt is enabled. W 1S 0: No effect 1: Enables MODIDMA error halt. When MODIDMA overrun occurs, subsequent DMA will not be issued. MODOEHLT: Enable Modem Transmit-data DMA Error Halt. R W 1S 0: Indicates that MODODMA error halt is disabled. 1: Indicates that MODODMA error halt is enabled. 0: No effect 1: Enables MODODMA error halt. When MODODMA underrun occurs, subsequent DMA will not be issued. Read/Write ⎯ R/W1S 22 MODOEHLT Enable Modem Transmit-data DMA Error Halt R/W1S 21 20 ⎯ AUDIEHLT Reserved Enable Audio Receive-data DMA Error Halt AUDIEHLT: Enable Audio Receive-data DMA Error Halt. R W 1S 0: Indicates that AUDIDMA error halt is disabled. 1: Indicates that AUDIDMA error halt is enabled. 0: No effect 1: Enables AUDIDMA error halt. When AUDIDMA overrun occurs, subsequent DMA request will not be issued. ⎯ R/W1S 19 LFEEHLT Enable Audio LFE Transmit-data DMA Error Halt LFEEHLT: Enable Audio LFE Transmit-data DMA Error Halt. R 0: Indicates that LFEDMA error halt is disabled. 1: Indicates that LFEDMA error halt is enabled. W1S 0: No effect 1: Enables LFEDMA error halt. When LFEDMA underrun occurs, subsequent DMA request will not be issued. CENTEHLT: Enable Audio Center Transmit-data DMA Error Halt. R W1S 0: Indicates that CENTDMA error halt is disabled. 1: Indicates that CENTDMA error halt is enabled. 0: No effect 1: Enables CENTDMA error halt. When CENTDMA underrun occurs, subsequent DMA request will not be issued. R/W1S 18 CENTEHLT Enable Audio Center Transmit-data DMA Error Halt R/W1S Figure 14.4.1 ACCTLEN Register (1/3) 14-17 Chapter 14 AC-link Controller Bit 17 Mnemonic Field Name Description SURREHLT: Enable Audio Surround L&R Transmit-data DMA Error Halt. R 0: Indicates that SURRDMA error halt is disabled. 1: Indicates that SURRDMA error halt is enabled. W1S 0: No effect 1: Enables SURRDMA error halt. When SURRDMA underrun occurs, subsequent DMA request will not be issued. AUDOEHLT: Enable Audio PCM L&R Transmit-data DMA Error Halt. R 0: Indicates that AUDODMA error halt is disabled. 1: Indicates that AUDODMA error halt is enabled. W1S 0: No effect 1: Enables AUDODMA error halt. When AUDODMA underrun occurs, subsequent DMA request will not be issued. MODIDMA: Enable Modem Receive-data DMA. R W 1S 0: Indicates that modem receive-data DMA is disabled. 1: Indicates that modem receive-data DMA is enabled. 0: No effect 1: Enables modem receive-data DMA. Read/Write R/W1S SURREHLT Enable Audio Surround L&R Transmit-data DMA Error Halt 16 AUDOEHLT Enable Audio PCM L&R Transmit-data DMA Error Halt R/W1S 15 MODIDMA Enable Modem Receive-data DMA R/W1S 14 MODODMA Enable Modem Transmit-data DMA MODODMA: Enable Modem Transmit-data DMA. R 0: Indicates that modem transmit-data DMA is disabled. 1: Indicates that modem transmit-data DMA is enabled. W 1S 0: No effect 1: Enables modem transmit-data DMA. [Note: DMA size must be internal FIFO depth or more.] AUDIDMA: Enable Audio Receive-data DMA. R 0: Indicates that audio receive-data DMA is disabled. 1: Indicates that audio receive-data DMA is enabled. W 1S 0: No effect 1: Enables audio receive-data DMA. LFEDMA: Enable Audio LFE Transmit-data DMA. R W1S 0: Indicates that audio LFE transmit-data DMA is disabled. 1: Indicates that audio LFE transmit-data DMA is enabled. 0: No effect 1: Enables audio LFE transmit-data DMA. [Note: DMA size must be internal FIFO depth or more.] R/W1S 13 12 ⎯ AUDIDMA Reserved Enable Audio Receive-data DMA ⎯ R/W1S 11 LFEDMA Enable Audio LFE Transmit-data DMA R/W1S 10 CENTDMA Enable Audio Center Transmit- data DMA CENTDMA: Enable Audio Center Transmit-data DMA. R 0: Indicates that audio Center transmit-data DMA is disabled. 1: Indicates that audio Center transmit-data DMA is enabled. W1S 0: No effect 1: Enables audio Center transmit-data DMA. [Note: DMA size must be internal FIFO depth or more.] R/W1S 9 SURRDMA Enable Audio Surround L&R Transmit-data DMA SURRDMA: Enable Audio Surround L&R Transmit-data DMA. R/W1S R 0: Indicates that audio Surround L&R transmit-data DMA is disabled. 1: Indicates that audio Surround L&R transmit-data DMA is enabled. W1S 0: No effect 1: Enables audio Surround L&R transmit-data DMA. [Note: DMA size must be internal FIFO depth or more.] AUDODMA: Enable Audio PCM L&R Transmit-data DMA. R 0: Indicates that audio PCM L&R transmit-data DMA is disabled. 1: Indicates that audio PCM L&R transmit-data DMA is enabled. W1S 0: No effect 1: Enables audio PCM L&R transmit-data DMA. [Note: DMA size must be internal FIFO depth or more.] R/W1S 8 AUDODMA Enable Audio PCM L&R Transmit-data DMA Figure 14.4.1 ACCTLEN Register (2/3) 14-18 Chapter 14 AC-link Controller Bit 7:6 5 Mnemonic ⎯ RDYCLR Field Name Reserved Clear CODEC Ready Bit Description RDYCLR: Clear CODEC Ready Bit W1C Read/Write ⎯ W1S 4 MICSEL 3 W RESET 2 W AKEUP 0: No effect 1: Clear CODEC[1:0] ready bits [Note: This bit should only be written to reevaluate the CODEC ready status after power-down command is sent to CODEC.] MIC Selection MICSEL: MIC Selection. R/W1S R 0: Indicates that PCM L&R (Slot 3&4) is selected for audio reception. 1: Indicates that MIC (Slot 6) is selected for audio reception. W 1S 0: No effect 1: Selects MIC (Slot 6) for audio reception. W RESET: Assert Warm Reset. R/W1S Assert Warm Reset R 0: Indicates that warm reset is not asserted. 1: Indicates that warm reset is asserted. W 1S 0: No effect 1: Asserts warm reset. [Note 1: Do not assert warm reset during normal operation.] [Note 2: The software must guarantee the warm reset assertion time meets the AC’97 specification (1.0 µs or more).] R/W1S Enable Wake-up W AKEUP: Enable Wake-up. R 0: Indicates that wake-up from low-power mode is disabled. 1: Indicates that wake-up from low-power mode is enabled. While any SDIN signal is driven high, ACLC asserts ACLCPME interrupt request to the interrupt controller. W 1S 0: No effect 1: Enables wake-up from low-power mode. [Note: Do not enable wake-up during normal operation.] R/W1S 1 LOWPWR 0 ENLINK Enable AC-link LOWPWR: Enable AC-link Low-power Mode. low-power mode R 0: SYNC and SDOUT signals are not forced to low. 1: SYNC and SDOUT signals are forced to low. W 1S 0: No effect 1: Forces SYNC and SDOUT signals low. [Note: Do not enable AC-link low-power mode during normal operation.] Enable AC-link ENLINK: Enable AC-link. R 0: Indicates that the ACRESET* signal to AC-link is asserted. 1: Indicates that the ACRESET* signal to AC-link is not asserted. W 1S 0: No effect 1: Deasserts the ACRESET* signal to AC-link [Note: The software must guarantee the ACRESET* signal assertion time meets the AC’97 specification (1.0 µs or more).] R/W1S Figure 14.4.1 ACCTLEN Register (3/3) 14-19 Chapter 14 AC-link Controller 14.4.2 ACLC Control Disable Register This register is used to disable various ACLC features. 31 Reserved 0xF704 24 23 22 21 20 19 18 17 16 MODIE MODO AUDIE LFEEH CENTE SURRE AUDO HLT EHLT Reserved HLT LT HLT HLT EHLT W 1C 15 14 13 12 11 10 9 8 AUDO DMA W1C 5 Reserved W1C 4 MIC SEL W1C 3 W1C 2 W1C 1 W1C : Type : Initial value 0 ENLINK 7 MODID MODO AUDID MA DMA Reserved MA LFED CENTD SURR MA MA DMA WRE LOW SET WAKEUP PWR W 1C W1C W1C W1C W1C W1C W1C W1C W1C W1C W1C W1C : Type : Initial value Bit 31:24 23 Mnemonic — MODIEHLT Field Name Reserved Disable Modem Receive-data DMA Error Halt Description MODIEHLT: Disable Modem Receive-data DMA Error Halt. W1C 0: No effect 1: Disables MODIDMA error halt. MODIDMA request(s) will continue to be issued even after MODIDMA overrun occurs. Read/Write ⎯ W1C 22 MODOEHLT Disable Modem Transmit-data DMA Error Halt Reserved AUDIEHLT Disable Audio Receive-data DMA Error Halt Disable Audio LFE Transmit-data DMA Error Halt MODOEHLT: Disable Modem Transmit-data DMA Error Halt. W1C 0: No effect 1: Disables MODODMA error halt. MODODMA request(s) will continue to be issued even after MODODMA underrun occurs. W1C 21 20 ⎯ AUDIEHLT: Disable Audio Receive-data DMA Error Halt. W1C 0: No effect 1: Disables AUDIDMA error halt. AUDIDMA request(s) will continue to be issued even after AUDIDMA overrun occurs. W1C 0: No effect 1: Disables LFEDMA error halt. LFEDMA request(s) will continue to be issued even after LFEDMA underrun occurs. W1C 0: No effect 1: Disables CENTDMA error halt. CENTDMA request(s) will continue to be issued even after CENTDMA underrun occurs. W1C 0: No effect 1: Disables SURRDMA error halt. SURRDMA request(s) will continue to be issued even after SURRDMA underrun occurs. W1C 0: No effect 1: Disables AUDODMA error halt. AUDODMA request(s) will continue to be issued even after AUDODMA underrun occurs. W1C 0: No effect 1: Disables modem receive-data DMA. W1C 0: No effect 1: Disables modem transmit-data DMA. W1C 19 LFEEHLT LFEEHLT: Disable Audio LFE Transmit-data DMA Error Halt. W1C 18 CENTEHLT Disable Audio Center Transmit-data DMA Error Halt SURREHLT Disable Audio Surround L&R Transmit-data DMA Error Halt AUDOEHLT Disable Audio PCM L&R Transmit-data DMA Error Halt MODIDMA Disable Modem Receive-data DMA CENTEHLT: Disable Audio Center Transmit-data DMA Error Halt. W1C 17 SURREHLT: Disable Audio Surround L&R Transmit-data DMA Error Halt. W1C 16 AUDOEHLT: Disable Audio PCM L&R Transmit-data DMA Error Halt. W1C 15 MODIDMA: Disable Modem Receive-data DMA. W1C 14 MODODMA Disable Modem Transmit-data DMA MODODMA: Disable Modem Transmit-data DMA. W1C Figure 14.4.2 ACCTLDIS Register (1/2) 14-20 Chapter 14 AC-link Controller Bit 13 12 Mnemonic Field Name Reserved — Description AUDIDMA: Disable Audio Receive-data DMA. W1C 0: No effect 1: Disables audio receive-data DMA. Read/Write ⎯ W1C 11 — LFEDMA: Disable Audio LFE Transmit-data DMA. W1C 0: No effect 1: Disables audio LFE transmit-data DMA. W1C 10 — CENTDMA: Disable Audio Center Transmit-data DMA. W1C 0: No effect 1: Disables audio Center transmit-data DMA. W1C 9 — SURRDMA: Disable Audio Surround L&R Transmit-data DMA. W 1C 0: No effect 1: Disables audio Surround L&R transmit-data DMA. W1C 8 — AUDODMA: Disable Audio PCM L&R Transmit-data DMA. W 1C 0: No effect 1: Disables audio PCM L&R transmit-data DMA. W1C 7:5 4 Reserved — MICSEL: MIC Selection W 1C 0: No effect 1: Selects PCM L&R (Slot 3&4) for audio reception W1C 0: No effect 1: Deasserts warm reset. [Note: The software must guarantee the warm reset assertion time meets the AC’97 specification (1.0 µs or more).] W1C 0: No effect 1: Disables wake-up from low-power mode. W1C 0: No effect 1: Releases SYNC and SDOUT signals from low. W1C 0: No effect 1: Asserts the ACRESET* signal to AC-link. [Note: The software must guarantee the ACRESET* signal assertion time meets the AC’97 specification (1.0 µs or more).] W1C ⎯ 3 — W RESET: Deassert Warm Reset. W 1C 2 — W AKEUP: Disable Wake-up. W 1C 1 — LOWPWR: Disable AC-link Low-power Mode. W 1C 0 — ENLINK: Disable AC-link. W 1C Figure 14.4.2 ACCTLDIS Register (2/2) Clear xxxxDMA bits in ACCTLEN to “0” by using this register to disable transmit/receive-data DMA and to stop transmission/reception by the AC-link. Note that if these bits are cleared while output-slot data is flowing in the FIFO, ACLC may output a wrong data as the last sample. This behavior will not occur if the software waits for data-flow completion by detecting underrun before it disables the corresponding slot. 14-21 Chapter 14 AC-link Controller 14.4.3 ACLC CODEC Register Access Register CODEC registers can be accessed through this register. 31 CODE CRD W 15 REGDAT R/W : Type : Initial value 30 Reserved 26 25 24 23 Reserved 0xF708 22 REGADR 16 CODECID W R/W 0 : Type : Initial value Bit 31 Mnemonic CODECRD Field Name AC’97 register read access Reserved AC’97 CODEC ID CODECID: AC’97 CODEC ID W W Description CODECRD: AC’97 register read access 0: Indicates a write access. 1: Indicates a read access. Read/Write W 30:26 25:24 — CODECID ⎯ W Specifies the CODEC ID of the read/write access destination. The values “0” through “3” can be specified as the CODEC ID, but the number of CODECs actually supported depends on the configuration. ⎯ REGADR: AC’97 register address Read address. Valid address can be read after read access is R complete. W Specifies the read/write access destination address. REGDAT: AC’97 register data R W Read data. Valid data can be read after read access is complete. W rite data. R/W 23 22:16 — REGADR Reserved AC’97 register address 15:0 REGDAT AC’97 register data R/W Figure 14.4.3 ACREGACC This register must not be read from or written to until access completion is reported through the ACINTSTS register. 14-22 Chapter 14 AC-link Controller 14.4.4 ACLC Interrupt Status Register 0xF710 This register shows various kinds of AC-link and ACLC status. 31 Reserved : Type : Initial value 15 MODIE RR 16 14 MODOE RR 13 Reserved 12 AUDIE RR 11 LFEERR 10 CENTE RR 9 SURRE RR 8 AUDOE RR 7 6 5 GPIOINT 4 REGAC CRDY 3 2 1 CODEC 1RDY 0 CODEC 0RDY Reserved Reserved R/W1C R/W1C R/W1C R/W1C R/W1C R/W1C R/W1C R/W1C R/W1C R R : Type : Initial value 0 0 0 0 0 0 0 0 1 0 0 Bit 31:16 15 Mnemonic — MODIERR Field Name Reserved Modem Receive-data DMA Overrun Modem Transmit-data DMA Underrun Reserved Audio Receive-data DMA Overrun Audio LFE Transmit-data DMA Underrun Audio Center Transmit-data DMA Underrun Audio Surround L&R Transmit-data DMA Underrun Audio PCM L&R Transmitdata DMA Underrun Reserved GPIO Interrupt GPIOINT: GPIO Interrupt R W1C Description MODIERR: Modem Receive-data DMA Overrun R W1C R W1C 1: Indicates that the modem receive-data DMA overran. This bit is cleared when “1” is written to it. Read/Write ⎯ R/W1C 14 MODOERR MODOERR: Modem Transmit-data DMA Underrun 1: Indicates that the modem transmit-data DMA underran. This bit is cleared when “1” is written to it. R/W1C 13 12 ⎯ AUDIERR ⎯ AUDIERR: Audio Receive-data DMA Overrun R W1C R W1C R W1C R W1C R W1C 1: Indicates that the audio receive-data DMA overran. This bit is cleared when “1” is written to it. R/W1C 1: Indicates that the audio LFE transmit-data DMA underran. This bit is cleared when “1” is written to it. R/W1C 1: Indicates that the audio center transmit-data DMA underran. This bit is cleared when “1” is written to it. R/W1C 1: Indicates that the audio surround L&R transmit-data DMA underran. This bit is cleared when “1” is written to it. R/W1C 1: Indicates that the audio PCM L&R transmit-data DMA underran. This bit is cleared when “1” is written to it. ⎯ R/W1C 1: Indicates that the incoming slot 12 bit[0] is ‘1’ (the modem CODEC GPIO interrupt). This bit is cleared if “1” is written to it while the incoming slot 12 bit[0] is ‘0’. R/W1C 11 LFEERR LFEERR: Audio LFE Transmit-data DMA Underrun 10 CENTERR CENTERR: Audio Center Transmit-data DMA Underrun 9 SURRERR SURRERR: Audio Surround L&R Transmit-data DMA Underrun 8 AUDOERR AUDOERR: Audio PCM L&R Transmit-data DMA Underrun 7:6 5 ⎯ GPIOINT Figure 14.4.4 ACINTSTS Register (1/2) 14-23 Chapter 14 AC-link Controller Bit 4 Mnemonic Field Name R Description REGACCRDY: ACREGACC Ready 1: Indicates that the ACREGACC register is ready to get the value (in case the previous operation was a read access) and to initiate another R/W access to an AC’97 register. The result of reading or writing to the ACREGACC register before the completion notification is undefined. This bit is cleared if “1” is written to it. This bit automatically becomes ‘0’ when the ACREGACC register is written. Read/Write R/W1C REGACCRDY ACREGACC Ready W1C 3:2 1 0 ⎯ Reserved ⎯ R R R R 1: Indicates that the CODEC Ready bit of SDIN1 Slot0 is set. 1: Indicates that the CODEC Ready bit of SDIN0 Slot0 is set. CODEC1RDY CODEC1 Ready CODEC1RDY: CODEC1 Ready CODEC0RDY CODEC0 Ready CODEC0RDY: CODEC0 Ready Figure 14.4.4 ACINTSTS Register (2/2) 14-24 Chapter 14 AC-link Controller 14.4.5 ACLC Interrupt Masked Status Register Every bit in this register is configured as follows: ACINTMSTS = ACINTSTS & ACINTEN Bit placement is the same as for the ACINTSTS register. The logical OR of all bits in this register is used as ACLC interrupt request to the interrupt controller. 0xF714 14.4.6 ACLC Interrupt Enable Register 0xF718 Interrupt request enable (R/W1S). Bit placement is the same as for the ACINTSTS register. Its initial value is all ‘0’. When a value is written to this register, the bit in the position where “1” was written is set to “1.” 14.4.7 ACLC Interrupt Disable Register 0xF71C Interrupt request enable clear (W1C). Bit placement is the same as for the ACINTSTS register. When a value is written to this register, the ACINTEN register bit in the position where a “1” was written is cleared to “0.” 14-25 Chapter 14 AC-link Controller 14.4.8 ACLC Semaphore Register 0xF720 This register is used for mutual exclusion control for resource. 31 SEMAPH RS/WC 0 15 SEMAPH RS/WC 0 : Type : Initial value 0 : Type : Initial value 16 Bit 31:0 Mnemonic SEMAPH Field Name Semaphore flag SEMAPH: Semaphore flag. RS Description 0: Indicates that the semaphore is unlocked. The read operation to this register will atomically set the bit[0] to lock the semaphore. 1: Indicates that the semaphore is locked. x: Writing any value to this register clears the bit[0] to release the semaphore. Read/Write RS/WC WC Figure 14.4.5 ACSEMAPH Register This register is provided primarily for the mutual exclusion between the audio and modem drivers to share the common resources of ACLC, such as the ACREGACC register and the link-control bits in the ACCTLEN/DIS register. 14-26 Chapter 14 AC-link Controller 14.4.9 ACLC GPI Data Register This register shows GPIO (slot 12) input data. 31 Reserved 20 19 GPIDAT R 0x00000 15 GPIDAT R 0x00000 1 0 GPIO INT 0xF740 16 : Type : Initial value R 0 : Type : Initial value Bit 31:20 19:1 0 Mnemonic ⎯ GPIDAT GPIOINT Field Name Reserved GPIO-In data GPIO Interrupt Indication GPIDAT: GPIO-In data R R Description Read/Write ⎯ R R Read data. The incoming slot 12 bits[19:1] are shadowed here. GPIO Interrupt. The incoming slot 12 bit[0] is shadowed here. GPIOINT: GPIO Interrupt Indication Figure 14.4.6 ACGPIDAT Register 14-27 Chapter 14 AC-link Controller 14.4.10 ACLC GPO Data Register This register specifies GPIO (slot 12) output data. 31 Reserved 21 20 W RPEND 0xF744 19 GPODAT R/W 0x00000 1 16 R 0 15 GPODAT R/W 0x00000 : Type : Initial value 0 R 0 : Type : Initial value Bit 31:20 20 Mnemonic ⎯ WRPEND Field Name Reserved Write Pending W RPEND: Write Pending R Description Read/Write ⎯ R 0: Indicates that the previous write operation is complete and the ACGPODAT register is ready to be written. 1: Indicates that the previous write operation is not complete and the ACGPODAT register is not yet ready to be written. R/W Reads back the value previously written to this field. Writes data to the outgoing slot 12 bits[19:1]. Reads always ‘0’. R 19:1 GPODAT GPIO-Out data GPODAT: GPIO-Out data R W 0 ⎯ ⎯ R Figure 14.4.7 ACGPODAT Register Writing a value into this register needs several BITCLK cycles to take effect. The software must guarantee that no write access be executed until the previous write access takes effect (completes), by reading the ACGPODAT.WRPEND bit prior to writing this register. If it is set for a long time, the BITCLK signal on the AC-link is probably inactive for whatever reason. 14-28 Chapter 14 AC-link Controller 14.4.11 ACLC Slot Enable Register 0xF748 This register enables independently the AC-link slot data streams. 31 Reserved 17 16 W RPEND R : Type : Initial value 0 15 Reserved 10 9 8 7 6 MODO SLT 5 4 3 2 CENT SLT 1 SURR SLT 0 AUDO SLT GPISLT GPOSLT MODISLT Reserved AUDISLT LFESLT R/W1S R/W1S R/W1S R/W1S R/W1S R/W1S R/W1S R/W1S R/W1S : Type 1 1 1 1 1 1 1 1 1 : Initial value Bit 31:17 16 Mnemonic ⎯ WRPEND Field Name Reserved Write Pending W RPEND: Write Pending R Description Read/Write ⎯ R 0: Indicates that the previous write operation is complete and the ACSLTEN and ACSLTDIS registers are ready to be accessed. 1: Indicates that the previous write operation is not complete and the ACSLTEN and ACSLTEDIS registers are not yet ready to be accessed. ⎯ R/W1S 15:10 9 ⎯ GPISLT Reserved Enable GPI slot reception GPISLT: Enable GPI slot reception. R W1S 0: Indicates that GPI slot reception is disabled. 1: Indicates that GPI slot reception is enabled. 0: No effect 1: Enables GPI slot reception. 8 GPOSLT Enable GPO Slot transmission GPOSLT: Enable GPO Slot transmission. R W1S 0: Indicates that GPO slot transmission is disabled. 1: Indicates that GPO slot transmission is enabled. 0: No effect 1: Enables GPO slot transmission. R/W1S 7 MODISLT Enable Modem slot reception MODISLT: Enable Modem slot reception. R W1S 0: Indicates that modem slot reception is disabled. 1: Indicates that modem slot reception is enabled. 0: No effect 1: Enables modem slot reception. R/W1S 6 MODOSLT Enable Modem slot transmission MODOSLT: Enable Modem slot transmission. R W1S 0: Indicates that modem slot transmission is disabled. 1: Indicates that modem slot transmission is enabled. 0: No effect 1: Enables modem slot transmission. R/W1S 5 ⎯ Reserved ⎯ Figure 14.4.8 ACSLTEN Register (1/2) 14-29 Chapter 14 AC-link Controller Bit 4 Mnemonic AUDISLT Field Name Enable Audio slot reception R W1S Description AUDISLT: Enable Audio slot reception. 0: Indicates that audio slot reception is disabled. 1: Indicates that audio slot reception is enabled. 0: No effect 1: Enables audio slot reception. Read/Write R/W1S 3 LFESLT Enable Audio LFE slot transmission LFESLT: Enable Audio LFE slot transmission. R W1S 0: Indicates that audio LFE slot transmission is disabled. 1: Indicates that audio LFE slot transmission is enabled. 0: No effect 1: Enables audio LFE slot transmission. R/W1S 2 CENTSLT Enable Audio Center slot transmission CENTSLT: Enable Audio Center slot transmission. R W1S 0: Indicates that audio Center slot transmission is disabled. 1: Indicates that audio Center slot transmission is enabled. 0: No effect 1: Enables audio Center slot transmission. R/W1S 1 SURRSLT Enable Audio Surround L&R slot transmission SURRSLT: Enable Audio Surround L&R slot transmission. R W1S 0: Indicates that audio Surround L&R slot transmission is disabled. 1: Indicates that audio Surround L&R slot transmission is enabled. 0: No effect 1: Enables audio Surround L&R slot transmission. R/W1S 0 AUDOSLT Enable Audio PCM L&R slot transmission AUDOSLT: Enable Audio PCM L&R slot transmission. R W1S 0: Indicates that audio PCM L&R Slot transmission is disabled. 1: Indicates that audio PCM L&R Slot transmission is enabled. 0: No effect 1: Enables audio PCM L&R slot transmission. R/W1S Figure 14.4.8 ACSLTEN Register (2/2) Writing a value into this register needs several BITCLK cycles to take effect. The software must guarantee that no write access be executed until the previous write access takes effect (completes), by reading the ACSLTEN.WRPEND bit prior to writing this register. If it is set for a long time, the BITCLK signal on the AC-link is probably inactive for whatever reason. 14-30 Chapter 14 AC-link Controller 14.4.12 ACLC Slot Disable Register 0xF74C This register disables independently the AC-link slot data streams. 31 Reserved : Type : Initial value 15 Reserved 10 9 8 7 MODI SLT 16 6 MODO SLT 5 Reserved 4 AUDI SLT 3 LFESLT 2 CENT SLT 1 SURR SLT 0 AUDO SLT GPISLT GPOSLT W 1C W1C W1C W1C W1C W1C W1C W1C W1C : Type : Initial value Bit 31:10 9 Mnemonic ⎯ GPISLT Field Name Reserved Disable GPI slot reception Disable GPO Slot transmission Disable Modem slot reception Disable Modem slot transmission Reserved Disable Audio slot reception Disable Audio LFE slot transmission Disable Audio Center slot transmission Disable Audio Surround L&R slot transmission Disable Audio PCM L&R slot transmission Description GPISLT: Disable GPI slot reception. W1C 0: No effect 1: Disables GPI slot reception. Read/Write ⎯ W1C 8 GPOSLT GPOSLT: Disable GPO Slot transmission. 0: No effect 1: Disables GPO slot transmission. MODISLT: Disable Modem slot reception. 0: No effect 1: Disables modem slot reception. MODOSLT: Disable Modem slot transmission. W1C 0: No effect 1: Disables modem slot transmission. W1C W1C W1C 7 MODISLT W1C 6 MODOSLT W1C 5 4 ⎯ AUDISLT ⎯ AUDISLT: Disable Audio slot reception. 0: No effect 1: Disables audio slot reception. LFESLT: Disable Audio LFE slot transmission. 0: No effect 1: Disables audio LFE slot transmission. CENTSLT: Disable Audio Center slot transmission. 0: No effect 1: Disables audio Center slot transmission. SURRSLT: Disable Audio Surround L&R slot transmission. W1C 0: No effect 1: Disables audio Surround L&R slot transmission. W1C W1C W1C W1C W1C 3 LFESLT W1C 2 CENTSLT W1C 1 SURRSLT W1C 0 AUDOSLT AUDOSLT: Disable Audio PCM L&R slot transmission. W1C 0: No effect 1: Disables audio PCM L&R slot transmission. Figure 14.4.9 ACSLTDIS Register Writing a value into this register needs several BITCLK cycles to take effect. The software must guarantee that no write access be executed until the previous write access takes effect (completes), by reading the ACSLTEN.WRPEND bit prior to writing this register. If it is set for a long time, the BITCLK signal on the AC-link is probably inactive for whatever reason. 14-31 Chapter 14 AC-link Controller 14.4.13 ACLC FIFO Status Register 0xF750 This register indicates the AC-link slot data FIFO status. 31 Reserved : Type : Initial value 15 Reserved 16 14 MODO FULL 13 12 11 LFE FULL 10 CENT FULL 9 SURR FULL 8 AUDO FULL 7 MODI FILL 6 MODO FILL 5 Reserved 4 AUDI FILL 3 LFEFILL 2 CENT FILL 1 SURR FILL 0 AUDO FILL Reserved R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 : Type : Initial value Bit 31:15 14 Mnemonic ⎯ Field Name Reserved Description MODOFULL: Modem Transmit-data Full. R 0: Indicates modem transmit-data FIFO is not full. 1: Indicates modem transmit-data FIFO is full. Read/Write ⎯ R MODOFULL Modem Transmit-data Full Reserved LFEFULL Reserved Audio LFE Transmit-data Full Audio Center Transmit-data Full Audio Surround L&R Transmit-data Full 13:12 11 ⎯ LFEFULL: Audio LFE Transmit-data Full. R 0: Indicates audio LFE transmit-data FIFO is not full. 1: Indicates audio LFE transmit-data FIFO is full. R 0: Indicates audio Center transmit-data FIFO is not full 1: Indicates audio Center transmit-data FIFO is full. R 0: Indicates audio Surround L&R transmit-data FIFO is not full. 1: Indicates audio Surround L&R transmit-data FIFO is full. R R 10 CENTFULL CENTFULL: Audio Center Transmit-data Full. R 9 SURRFULL SURRFULL: Audio Surround L&R Transmit-data Full. R 8 AUDOFULL Audio PCM L&R AUDOFULL: Audio PCM L&R Transmit-data Full. Transmit-data R 0: Indicates audio PCM L&R transmit-data FIFO is not full. Full 1: Indicates audio PCM L&R transmit-data FIFO is full. Modem Receive-data Filled Modem Transmit-data Filled Reserved Audio Receive-data Filled Audio LFE Transmit-data Filled AUDIFILL: Audio Receive-data Filled. R 0: Indicates audio receive-data FIFO is empty. 1: Indicates audio receive-data FIFO is not empty. MODIFILL: Modem Receive-data Filled. R 0: Indicates modem receive-data FIFO is empty. 1: Indicates modem receive-data FIFO is not empty. 7 MODIFILL R 6 MODOFILL MODOFILL: Modem Transmit-data Filled. R 0: Indicates modem transmit-data FIFO is empty. 1: Indicates modem transmit-data FIFO is not empty. R 5 4 ⎯ AUDIFILL ⎯ R 3 LFEFILL LFEFILL: Audio LFE Transmit-data Filled. R 0: Indicates audio LFE transmit-data FIFO is empty. 1: Indicates audio LFE transmit-data FIFO is not empty. R Figure 14.4.10 ACFIFOSTS Register (1/2) 14-32 Chapter 14 AC-link Controller Bit 2 Mnemonic CENTFILL Field Name Audio Center Transmit-data Filled Audio Surround L&R Transmit-data Filled R Description CENTFILL: Audio Center Transmit-data Filled. 0: Indicates audio Center transmit-data FIFO is empty. 1: Indicates audio Center transmit-data FIFO is not empty. Read/Write R 1 SURRFILL SURRFILL: Audio Surround L&R Transmit-data Filled. R 0: Indicates audio Surround L&R transmit-data FIFO is empty. 1: Indicates audio Surround L&R transmit-data FIFO is not empty. R 0 AUDOFILL Audio PCM L&R AUDOFILL: Audio PCM L&R Transmit-data Filled. Transmit-data R 0: Indicates audio PCM L&R transmit-data FIFO is empty. Filled 1: Indicates audio PCM L&R transmit-data FIFO is not empty R Figure 14.4.10 ACFIFOSTS Register (2/2) 14-33 Chapter 14 AC-link Controller 14.4.14 ACLC DMA Request Status Register 0xF780 This register indicates the AC-link slot data DMA request status. 31 Reserved : Type : Initial value 15 Reserved 8 7 MODI REQ 16 6 MODO REQ 5 Reserved 4 AUDI REQ 3 LFEREQ 2 CENT REQ 1 SURR REQ 0 AUDO REQ R 0 R 0 R 0 R 0 R 0 R 0 R 0 : Type : Initial value Bit 31:8 7 Mnemonic ⎯ MODIREQ Field Name Reserved Modem Data Reception Request Modem Data Transmission Request Reserved Audio Data Reception Request Audio LFE Data Transmission Request Audio Center Data Transmission Request Audio Surround L&R Data Transmission Request Description MODIREQ: Modem Data Reception Request R 0: No request is pending. 1: Request is pending. Read/Write ⎯ R 6 MODOREQ MODOREQ: Modem Data Transmission Request R 0: No request is pending. 1: Request is pending. R 5 4 ⎯ AUDIREQ ⎯ AUDIREQ: Audio Data Reception Request R 0: No request is pending. 1: Request is pending. R 0: No request is pending. 1: Request is pending. R 0: No request is pending. 1: Request is pending. R R 3 LFEREQ LFEREQ: Audio LFE Data Transmission Request R 2 CENTREQ CENTREQ: Audio Center Data Transmission Request R 1 SURRREQ SURRREQ: Audio Surround L&R Data Transmission Request R 0: No request is pending. 1: Request is pending. 0 AUDOREQ Audio PCM L&R AUDOREQ: Audio PCM L&R Data Transmission Request Data R 0: No request is pending. Transmission 1: Request is pending. Request R Figure 14.4.11 ACDMASTS Register This read-only register shows if any DMA request is pending for each data I/O channel. A DMA request can be pending after the software deactivates the DMAC channel or disables DMA by ACCTLDIS register bit to complete DMA operation. In this case, write or read the sample data register (ACAUDODAT and others) to clear the DMA request. 14-34 Chapter 14 AC-link Controller 14.4.15 ACLC DMA Channel Selection Register 0xF784 This register is used to select and check the channel allocation for AC-link slot data DMA. 31 Reserved : Type : Initial value 15 Reserved 2 1 0 ACDMASEL R/W 0 : Type : Initial value 16 Bit 31:2 1:0 Mnemonic ⎯ Field Name Reserved Description ACDMASEL: DMA Channel Selection R/W ACDMASEL: DMA Channel Selection 0: PCM L&R out, Audio in, and Modem out&in. 1: PCM L&R out, Surround L&R out, and Modem out&in. 2: PCM L&R out, Surround L&R out, Center out, and LFE out. 3: PCM L&R out, Surround L&R out, Center out, and Audio in. Read/Write ⎯ R/W ACDMASEL DMA Channel Selection Figure 14.4.12 ACDMASEL Register This register selects DMA channel mapping mode. The software is recommended to make sure no DMA request is pending before changing this register value. 14-35 Chapter 14 AC-link Controller 14.4.16 ACLC Audio PCM Output Data Register ACLC Surround Data Register 0xF7A0 0xF7A4 These registers are used to write audio PCM and surround L&R output data. 31 DAT1: Sample Right (Little-endian mode) / DAT0: Sample Left (Big-endian mode) W 15 DAT0: Sample Left (Little-endian mode) / DAT1: Sample Right (Big-endian mode) W : Type : Initial value 0 : Type : Initial value 16 Bit 31:16 15:0 Mnemonic — — Field Name — — W W Description Little-endian mode DAT1: Sample Right DAT0: Sample Left Big-endian mode DAT0: Sample Left Left DAT1: Sample Right Read/Write W W Figure 14.4.13 ACAUDODAT/ACSURRDAT Register 14-36 Chapter 14 AC-link Controller 14.4.17 ACLC Center Data Register ACLC LFE Data Register ACLC Modem Output Data Register 0xF7A8 0xF7AC 0xF7B8 This registers are used to write audio center, LFE, and modem output data. 31 DAT1: Sample data 1 (Little-endian mode) / DAT0: Sample data 0 (Big-endian mode) W 15 DAT0: Sample data 0 (Little-endian mode) / DAT1: Sample data 1 (Big-endian mode) W : Type : Initial value 0 : Type : Initial value 16 Bit 31:16 15:0 Mnemonic — — Field Name — — W W Description Little-endian mode DAT1: Sample data 1 DAT0: Sample data 0 Big-endian mode DAT0: Sample data 0 DAT1: Sample data 1 Read/Write W W Figure 14.4.14 ACCENDAT/ACLFEDAT/ACMODODAT Register 14-37 Chapter 14 AC-link Controller 14.4.18 ACLC Audio PCM Input Data Register This register is used to read audio PCM input data. 31 DAT1: Sample Right or ‘0’ (Little-endian mode) / DAT0: Sample Left or MIC (Big-endian mode) R Undefined 15 DAT0: Sample Left or MIC (Little-endian mode) / DAT1: Sample Right or ‘0’ (Big-endian mode) R Undefined : Type : Initial value 0 : Type : Initial value 16 0xF7B0 Bit 31:16 15:0 Mnemonic — — Field Name — — R R Description Little-endian mode DAT1: Sample Right or ‘0’ DAT0: Sample Left or MIC Big-endian mode DAT0: Sample Left or MIC DAT1: Sample Right or ‘0’ Read/Write R R Figure 14.4.15 ACAUDIDAT Register 14-38 Chapter 14 AC-link Controller 14.4.19 ACLC Modem Input Data Register This register is used to read modem input data. 31 DAT1: Sample data 1 (Little-endian mode) / DAT0: Sample data 0 (Big-endian mode) R Undefined 15 DAT0: Sample data 0 (Little-endian mode) / DAT1: Sample data 1 (Big-endian mode) R Undefined : Type : Initial value 0 : Type : Initial value 16 0xF7BC Bit 31:16 15:0 Mnemonic — — Field Name — — R R Description Little-endian mode DAT1: Sample data 1 DAT0: Sample data 0 Big-endian mode DAT0: Sample data 0 DAT1: Sample data 1 Read/Write R R Figure 14.4.16 ACMODIDAT Register 14-39 Chapter 14 AC-link Controller 14.4.20 ACLC Revision ID Register 0xF7FC This register is used to read ACLC module’s revision ID. 31 Reserved : Type : Initial value 15 Major Revision R 0 R 0 R 0 R 0 R 0 R 0 R 1 R 1 R 0 R 0 R 0 8 7 Minor Revision R 0 R 0 R 0 R 1 R 0 : Type : Initial value 0 16 Bit 31:16 15:8 Mnemonic ⎯ ⎯ Field Name Reserved ⎯ R Description Major Revision Contact Toshiba technical staff for an explanation of the revision value. Minor Revision Contact Toshiba technical staff for an explanation of the revision value. Read/Write ⎯ R 7:0 ⎯ ⎯ R R Figure 14.4.17 ACREVID Register This read-only register shows the revision of ACLC module. Note that this number is not related to the AC’97 specification revision. 14-40 Chapter 15 Interrupt Controller 15. Interrupt Controller 15.1 Characteristics The TX4938 on-chip Interrupt Controller (IRC) receives interrupt requests from the TX4938 on-chip peripheral circuitry as well as external interrupt requests then generates interrupt requests to the TX49/H3 processor core. Also, the Interrupt Controller has a 16-bit flag register that generates interrupt requests to either external devices or to the TX49/H3 core. The Interrupt Controller has the following characteristics. • • • • Supports interrupts from 18 types of on-chip peripheral circuits and a maximum of 6 external interrupt signal inputs Sets 8 priority interrupt levels for each interrupt input Can select either edge detection or level detection for each external interrupt when in the interrupt detection mode As a flag register used for interrupt requests, the Interrupt Controller contains a 16-bit readable/writeable register and can issue interrupt requests to external devices as well as to the TX49/H3 core (IRC interrupt). 15-1 Chapter 15 Interrupt Controller 15.2 Block Diagram TX49/H3 Core Internal Timer Interrupt Request Interrupt Request (IP[7:2]) 0 1 [7] [6:2] [7:2] 6 Interrupt Controller 1 1 2 Detection Circuit Set Interrupt Level 4 4 3 2 1 1 1 1 1 TINTDIS 1 1 1 1 1 External Interrupt Signal (INT[5:0]) ECC Error TX49 Write time out Error SIO[1:0] DMA0[3:0] DMA1[3:0] TMR[2:0] ACLC PDMAC0 PCIC0 PCIERR0 PCIPME0 ETHERC0 ETHERC1 NDFMC PCIC1 SPI Internal Interrupt Request Non-maskable Interrupt Signal (NMI*) (active Low) Watchdog Timer Interrupt Watch-dog timer Interrupt (TMR2) (active Low) Internal Interrupt Signal Non-maskable Interrupt Request Set Interrupt Mask Process Priority External Interrupt Request Flag Register REQ[1]*/INTOUT Polarity Register PCIC Mask Register Interrupt Control Register Figure 15.2.1 Interrupt Controller Outline 15-2 Chapter 15 Interrupt Controller Interrupt Detection IDE Interrupt Detection Interrupt Level Mode IRDM0-1 IRLVL0-7 Interrupt Mask Level IRMSK Detection Circuit Low Level High Level Edge Detector Edge Detector Negative Edge Positive Edge Interrupt Source 1 Encoder Interrupt Pending IRPND 3 Interrupt Prioritization 1 Interrupt IRCS.FL 5 Interrupt Cause IRCS.CAUSE IP [2] IP [7:3] 3 3 3 Interrupt Level IRCS.LVL Figure 15.2.2 Internal Block Diagram of Interrupt Controller 15-3 Chapter 15 Interrupt Controller 15.3 Detailed Explanation 15.3.1 Interrupt sources The TX4938 has as interrupt sources interrupts from 18 types of on-chip peripheral circuits and 6 external interrupt signals. Table 15.3.1 lists the interrupt sources. Signals with the lower interrupt number have the higher priority. The priorities are explained below in section 15.3.4. The interrupt number 5 is shared between INT[3] and ETHERC1. When ETHERC1 is used, an interrupt is noticed from ETHERC1 to the IRC interrupt number 5 internal of a chip. The external pin INT[3] is used when ETHERC1 is used for the purpose other than an interrupt. This is the same as for the interrupt number 6. Refer to “3.3 Pin multiplex” for muliplexed pins. Table 15.3.1 Interrupt Sources and Priorities Priority High Interrupt Number 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Interrupt Source SDRAM ECC Error (Internal) TX49 Write Timeout Error (Internal) INT[0] (External) INT[1] (External) INT[2] (External) INT[3] (External) / ETHERC1 (Internal) INT[4] (External) / ETHERC0 (Internal) INT[5] (External) SIO0 (Internal) SIO1 (Internal) DMA0[0] (Internal) DMA0[1] (Internal) DMA0[2] (Internal) DMA0[3] (Internal) IRC (Internal) PDMAC0 (Internal) PCIC0 (Internal) TMR0 (Internal) TMR1 (Internal) TMR2 (Internal) (Reserved) NDFMC (Internal) PCIERR (Internal) PCIPMC (Internal) ACLC (Internal) ACLCPME (Internal) PCIC1INT (Internal) DMAC1[0] (Internal) DMAC1[1] (Internal) DMAC1[2] (Internal) DMAC1[3] (Internal) SPI (Internal) Low 31 15-4 Chapter 15 Interrupt Controller In addition to the above, the TX49/H3 core has a TX49/H3 core internal timer interrupt and two software interrupts, but these interrupts are directly reported to the TX49/H3 core independently of this Interrupt Controller. Please refer to the 64-bit TX System RISC TX49/H3 Core Architecture Manual for more information. 15.3.2 Interrupt request detection In order to perform interrupt detection, each register of the Interrupt Controller is initialized, then the IDE bit of the Interrupt Detection Enable Register (IRDEN) is set to “1.” All interrupts detected by the Interrupt Controller are masked when this bit is cleared. It is possible to set each interrupt factor detection mode using Interrupt Detection Mode Register 0 (IRDM0) and Interrupt Detection Mode Register 1 (IRDM1). There are four detection modes: Low level, High level, falling edge, and rising edge. The detected interrupt factors can be read out from the Interrupt Pending Register (IRPND). 15.3.3 Interrupt level assigning Interrupt levels from 0 to 7 are assigned to each detected interrupt using the Interrupt Level Register (IRLVL0-7). Interrupt level 7 is the highest priority and interrupt level1 is the lowest priority. Level 0 interrupts will be masked. (Table 15.3.2). The priorities set by these interrupt levels will be given higher priority than the priorities provided for each interrupt source indicated in Table 15.3.1. Table 15.3.2 Interrupt Levels Priority High Interrupt Level (IRLVLn.ILm) 111 110 101 100 011 010 Low Mask 001 000 15-5 Chapter 15 Interrupt Controller 15.3.4 Interrupt priority assigning When multiple interrupt requests exist, the Interrupt Controller selects the interrupt with the highest priority according to the priority level and interrupt number. Interrupt factors with an interrupt level equal to or lower than the interrupt level specified by the Interrupt Mask Level Register (IRMSK) will be excluded (masked). When the interrupt with the highest priority is selected, then the interrupt number of that interrupt is set in the interrupt factor field (CAUSE) of the Interrupt Current Status Register (IRCS), the interrupt level is set in the Interrupt Level field (LVL), and the Interrupt Flag bit (IF) is set. Priorities are assigned as follows. • • When interrupt levels differ, the interrupt with the higher interrupt level has priority (Table 15.3.2) When multiple interrupts with the same interrupt level are simultaneously detected, the interrupt with the smaller interrupt number has priority (Table 15.3.1). In the following cases, interrupts are reprioritized. If any new interrupt requests are generated before reprioritization, the highest-priority interrupt is accepted, changing the Interrupt Cause (CAUSE) and Interrupt Level (LVL) fields in the Interrupt Current Status (IRCS) register. • When an interrupt request with a higher interrupt level than that of the currently selected interrupt is detected. If the interrupt levels are equal, the Interrupt Cause (CAUSE) field does not change, even if the interrupt number is smaller. When the interrupt level (IRLVLn.ILm) of the currently selected interrupt changes to a value smaller than the current setting. When the currently selected interrupt is cleared (refer to 15.3.6 Clearing interrupt requests). • • Changing the Interrupt Mask Level (IRMSK.LML) does not cause the IRC to reprioritize interrupts. However, if the Interrupt Mask Level (IRMSK.LML) is set to a value equal to or greater than the current interrupt level (IRLVLn.ILm), the Interrupt Flag bit in the Interrupt Current Status register (IRCS.IF) is set to mask the interrupt. 15-6 Chapter 15 Interrupt Controller 15.3.5 Interrupt notification When the interrupt with the highest priority is selected, then the interrupt factor is reported to the Interrupt Current Status Register (IRCS) and an interrupt is reported to the TX49/H3 core. The TX49/H3 core distinguishes interrupt factors using the IP field (IP[7:2]) of the Cause Register. The interrupt notification from the Interrupt Controller is reflected in the IP[2] bit. The Interrupt Handler uses the IP[2] bit to judge whether or not there are interrupts from this Interrupt Controller and uses the Interrupt Current Status Register (IRCS) to determine the interrupt cause. The Interrupt Factor field (IRCS.CAUSE) value is reflected in the remaining bits of the IP field. Since bit IP[7] is also being used for notification of TX49/H3 CPU core internal timer interrupts, the contents specified by IP[7] differ according to whether internal timer interrupts are set to valid (TINTDIS=0) or invalid (TINTDIS=1), as indicated Table 15.3.3. TINTDIS is the value that is set from DATA[7] at the timing when the RESET* signal is deasserted. See the explanation “3.2 Boot Configuration” for more information. Table 15.3.3 Interrupt Notification to IP[7:2] of the CP0 Cause Register TINTDIS 0 (Internal Timer Interrupts: Valid) 1 (Internal Timer Interrupts: Invalid) IP[7] Internal Timer Interrupt Notification IP[6:3] IRCS.CAUSE[3:0] IP[2] IRCS.IF IRCS.IF IRCS.CAUSE[4:0] 15.3.6 Clearing interrupt requests Interrupt requests are cleared according to the following process. • When the detection mode is set to the High level or Low level: Operation is performed to deassert the request of a source that is asserting an interrupt request. When the detection mode is set to Rising edge or Falling edge Edge detection requests are cleared by first specifying the interrupt source of the interrupt request to be cleared in the Edge Detection Clear Source field (EDCS0 or EDCS1) of the Interrupt Edge Detection Clear Register (IREDC) then writing the resulting value when the corresponding Edge Detection Clear Enable bit (EDCE0 or EDCE1) is set to “1.” • 15-7 Chapter 15 Interrupt Controller 15.3.7 Interrupt requests It is possible to make interrupt requests to external devices and interrupt requests (IRC interrupts) to the TX49/H3 core by using a 16-bit interrupt request flag register. REQ[1]* signals are used as interrupt output signals. Consequently, external interrupt requests can only be used when in the PCI External Arbiter mode. Also, internal interrupt requests are assigned to interrupt number 13 of the Interrupt Controller (IRC). The following six registers set the interrupts. • • • • Interrupt Request Flag Register (IRFLAG0, IRFLAG1) Interrupt Request Polarity Control Register (IRPOL) Interrupt Request Mask Register (IRMASKINT, IRMASKEXT) Interrupt Request Control Register (IRRCNT) The following formulas derive the interrupt generation conditions: Internal interrupt request = (|((IRFLAG[15:0] ^ IRPOL[15:0]) & IRMASKINT[15:0]))^ IRRCNT.INTPOL External interrupt request = (|((IRFLAG[15:0] ^ IRPOL[15:0] ) & IRMASKEXT[15:0]))^ IRRCNT.EXTPOL In the above formulas, “^” indicates Exclusive OR operations and “|” indicates reduction operators that perform an OR operation on all bits. Also, the External Interrupt OD Control bit (IRRCNT.OD) of the Interrupt Request Control Register can select whether the external interrupt supply signal is open drain output or totem pole output. IRRCNT.INTPOL IRFLAG[15] IRPOL[15] IRMASK[15] Internal Interrupt Request (0: Request present) External Interrupt Request IRRCNT.EXTPOL Figure 15.3.1 External Interrupt Request Logic 15-8 Chapter 15 Interrupt Controller There are two flag registers: Flag Register 0 (IRFLAG0), and Flag Register 1 (IRFLAG1). These registers have two different Write methods. Accordingly, Writes to one register are reflects in the other. Either “0” or “1” can be written to Flag Register 0 In the case of Flag Register 1 however, “1” can be written from the TX49/H3 core, but “0” cannot be written. On the other hand, bits that wrote “1” are cleared to “0” in the case of access from a device other than the TX49/H3 core (access from an external PCI device for example). The bit value at this time will not change even if “0” is written. This register sends interrupt notification from the TX49/H3 core to external devices. External devices can be used in applications that clear these interrupt notifications. 15-9 Chapter 15 Interrupt Controller 15.4 Registers Table 15.4.1 Interrupt Control Registers Address 0xF600 0xF604 0xF608 0xF610 0xF614 0xF618 0xF61C 0xF620 0xF624 0xF628 0xF62C 0xF640 0xF660 0xF680 0xF6A0 0xF510 0xF514 0xF518 0xF51C 0xF520 0xF524 Register IRDEN IRDM0 IRDM1 IRLVL0 IRLVL1 IRLVL2 IRLVL3 IRLVL4 IRLVL5 IRLVL6 IRLVL7 IRMSK IREDC IRPND IRCS IRFLAG0 IRFLAG1 IRPOL IRRCNT IRMASKINT IRMASKEXT Register Name Interrupt Detection Enable Register Interrupt Detection Mode Register 0 Interrupt Detection Mode Register 1 Interrupt Level Register 0 Interrupt Level Register 1 Interrupt Level Register 2 Interrupt Level Register 3 Interrupt Level Register 4 Interrupt Level Register 5 Interrupt Level Register 6 Interrupt Level Register 7 Interrupt Mask Register Interrupt Edge Detection Clear Register Interrupt Pending Register Interrupt Current Status Register Interrupt Request Flag Register 0 Interrupt Request Flag Register 1 Interrupt Request Polarity Control Register Interrupt Request Control Register Interrupt Request Internal Interrupt Mask Register Interrupt Request External Interrupt Mask Register 15-10 Chapter 15 Interrupt Controller 15.4.1 31 Reserved : Type : Default 15 Reserved 1 0 IDE R/W : Type 0 : Default Interrupt Detection Enable Register (IRDEN) 0xF600 16 Bit(s) 31:1 0 Mnemonic ⎯ IDE Field Name ⎯ Interrupt Control Enable Reserved Explanation Interrupt Detection Enable (Default: 0) Enables interrupt detection. 0: Stop interrupt detection. 1: Start interrupt detection Read/Write ⎯ R/W Figure 15.4.1 Interrupt Detection Enable Register 15-11 Chapter 15 Interrupt Controller 15.4.2 31 IC23 R/W 0 15 IC7 R/W 0 14 13 IC6 R/W 0 Interrupt Detection Mode Register 0 (IRDM0) 30 29 IC22 R/W 0 12 11 IC5 R/W 0 28 27 IC21 R/W 0 10 9 IC4 R/W 0 8 7 IC3 R/W 0 24 Reserved 23 IC19 R/W 0 6 22 0xF604 21 IC18 R/W 0 5 IC2 R/W 0 4 3 IC1 R/W 0 20 19 IC17 R/W 0 2 1 IC0 R/W 0 : Type : Default 18 17 IC16 R/W 0 0 : Type : Default 16 Bits 31:30 Mnemonic IC23 Field Name Interrupt Source Control 23 Explanation Interrupt Source Control 23 (Default: 00) These bits specify the active state of PCIPMC interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 22 (Default: 00) These bits specify the active state of PCIERR0 interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 21 (Default: 00) These bits specify the active state of NDFMC interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Reserved Interrupt Source Control 19 (Default: 00) These bits specify the active state of TMR[2] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 18 (Default: 00) These bits specify the active state of TMR[1] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 17 (Default: 00) These bits specify the active state of TMR[0] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Read/Write R/W 29:28 IC22 Interrupt Source Control 22 R/W 27:26 IC21 Interrupt Source Control 21 R/W 25:24 23:22 ⎯ IC19 ⎯ Interrupt Source Control 19 ⎯ R/W 21:20 IC18 Interrupt Source Control 18 R/W 19:18 IC17 Interrupt Source Control 17 R/W Figure 15.4.2 Interrupt Detection Mode Register 0 (1/2) 15-12 Chapter 15 Interrupt Controller Bits 17:16 Mnemonic IC16 Field Name Interrupt Source Control 16 Explanation Interrupt Source Control 16 (Default: 00) These bits specify the active state of PCIC interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 7 (Default: 00) These bits specify the active state of external INT[5] interrupts. 00: Low level active 01: High level active 10: Falling edge active 11: Rising edge active Interrupt Source Control 6 (Default: 00) These bits specify the active state of external INT[4] interrupts. 00: Low level active 01: High level active 10: Falling edge active 11: Rising edge active Interrupt Source Control 5 (Default: 00) These bits specify the active state of external INT[3] interrupts. 00: Low level active 01: High level active 10: Falling edge active 11: Rising edge active Interrupt Source Control 4 (Default: 00) These bits specify the active state of external INT[2] interrupts. 00: Low level active 01: High level active 10: Falling edge active 11: Rising edge active Interrupt Source Control 3 (Default: 00) These bits specify the active state of external INT[1] interrupts. 00: Low level active 01: High level active 10: Falling edge active 11: Rising edge active Interrupt Source Control 2 (Default: 00) These bits specify the active state of external INT[0] interrupts. 00: Low level active 01: High level active 10: Falling edge active 11: Rising edge active Interrupt Source Control 1 (Default: 00) These bits specify the active state of TX49 Write Timeout Error interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 0 (Default: 00) These bits specify the active state of ECC Error interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Read/Write R/W 15:14 IC7 Interrupt Source Control 7 R/W 13:12 IC6 Interrupt Source Control 6 R/W 11:10 IC5 Interrupt Source Control 5 R/W 9:8 IC4 Interrupt Source Control 4 R/W 7:6 IC3 Interrupt Source Control 3 R/W 5:4 IC2 Interrupt Source Control 2 R/W 3:2 IC1 Interrupt Source Control 1 R/W 1:0 IC0 Interrupt Source Control 0 R/W Figure 15.4.2 Interrupt Detection Mode Register 0 (2/2) 15-13 Chapter 15 Interrupt Controller 15.4.3 31 IC31 R/W 0 15 IC15 R/W 0 14 13 IC14 R/W 0 Interrupt Detection Mode Register 1 (IRDM1) 30 29 IC30 R/W 0 12 11 IC13 R/W 0 28 27 IC29 R/W 0 10 9 IC12 R/W 0 26 25 IC28 R/W 0 8 7 IC11 R/W 0 24 23 IC27 R/W 0 6 22 0xF608 21 IC26 R/W 0 5 IC10 R/W 0 4 3 IC9 R/W 0 20 19 IC25 R/W 0 2 1 IC8 R/W 0 : Type : Default 18 17 IC24 R/W 0 0 : Type : Default 16 Bit 31:30 Mnemonic IC31 Field Name Interrupt Source Control 31 Explanation Interrupt Source Control 31 (Default: 00, R/W) These bits specify the active state of SPI interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 30 (Default: 00, R/W) These bits specify the active state of DMA1[3] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 29 (Default: 00, R/W) These bits specify the active state of DMA1[2] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 28 (Default: 00, R/W) These bits specify the active state of DMA1[1] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 27 (Default: 00, R/W) These bits specify the active state of DMA1[0] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 26 (Default: 00, R/W) These bits specify the active state of PCIC1 interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Read/Write R/W 29:28 IC30 Interrupt Source Control 30 R/W 27:26 IC29 Interrupt Source Control 29 R/W 25:24 IC28 Interrupt Source Control 28 R/W 23:22 IC27 Interrupt Source Control 27 R/W 21:20 IC26 Interrupt Source Control 26 R/W Figure 15.4.3 Interrupt Detection Mode Register 1 (1/3) 15-14 Chapter 15 Interrupt Controller Bit 19:18 Mnemonic IC25 Field Name Interrupt Source Control 25 Explanation Interrupt Source Control 25 (Default: 00, R/W) These bits specify the active state of ACLCPME interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 24 (Default: 00, R/W) These bits specify the active state of ACLC interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 15 (Default: 00) These bits specify the active state of PDMAC interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 14 (Default: 00) These bits specify the active state of IRC interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 13 (Default: 00) These bits specify the active state of DMA0 [3] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 12 (Default: 00) These bits specify the active state of DMA0 [2] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 11 (Default: 00) These bits specify the active state of DMA0 [1] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 10 (Default: 00) These bits specify the active state of DMA0 [0] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Read/Write R/W 17:16 IC24 Interrupt Source Control 24 R/W 15:14 IC15 Interrupt Source Control 15 R/W 13:12 IC14 Interrupt Source Control 14 R/W 11:10 IC13 Interrupt Source Control 13 R/W 9:8 IC12 Interrupt Source Control 12 R/W 7:6 IC11 Interrupt Source Control 11 R/W 5:4 IC10 Interrupt Source Control 10 R/W Figure 15.4.3 Interrupt Detection Mode Register 1 (2/3) 15-15 Chapter 15 Interrupt Controller Bit 3:2 Mnemonic IC9 Field Name Interrupt Source Control 9 Explanation Interrupt Source Control 9 (Default: 00) These bits specify the active state of SIO[1] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Interrupt Source Control 8 (Default: 00) These bits specify the active state of SIO[0] interrupts. 00: Low level active 01: Disable 10: Disable 11: Disable Read/Write R/W 1:0 IC8 Interrupt Source Control 8 R/W Figure 15.4.3 Interrupt Detection Mode Register 1 (3/3) 15-16 Chapter 15 Interrupt Controller 15.4.4 31 Reserved Interrupt Level Register 0 (IRLVL0) 27 26 IL17 R/W 000 24 0xF610 23 Reserved 19 18 IL16 R/W 000 : Type : Default 0 IL0 R/W 000 : Type : Default 16 15 Reserved 11 10 IL1 R/W 000 8 7 Reserved 3 2 Bit 31:27 26:24 Mnemonic ⎯ IL17 Field Name ⎯ Interrupt Level 17 Reserved Explanation Interrupt Level of INT [17] (Default: 000) These bits specify the interrupt level of [TMR [0] 000: Interrupt Level 0 (Interrupt disable) 001:Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [16] (Default: 000) These bits specify the interrupt level of PCIC0 interrupts. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [1] (Default: 000) These bits specify the interrupt level for TX49 Write Timeout Error interrupts. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010:Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Read/Write ⎯ R/W 23:19 18:16 ⎯ IL16 ⎯ Interrupt Level 16 ⎯ R/W 15:11 10:8 ⎯ IL1 ⎯ Interrupt Level 1 ⎯ R/W 7:3 ⎯ ⎯ ⎯ Figure 15.4.4 Interrupt Level Register 0 (1/2) 15-17 Chapter 15 Interrupt Controller Bit 2:0 Mnemonic IL0 Field Name Interrupt Level 0 Explanation Interrupt Level of INT [0] (Default: 000) These bits specify the interrupt level of ECC Error interrupts. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Read/Write R/W Figure 15.4.5 Interrupt Level Register 0 (2/2) 15-18 Chapter 15 Interrupt Controller 15.4.5 31 Reserved Interrupt Level Register (IRLVL1) 27 26 IL19 R/W 000 24 0xF614 23 Reserved 19 18 IL18 R/W 000 : Type : Default 0 IL2 R/W 000 : Type : Default 16 15 Reserved 11 10 IL3 R/W 000 8 7 Reserved 3 2 Bit 31:27 26:24 Mnemonic ⎯ IL19 Field Name ⎯ Interrupt Level 19 Reserved Explanation Interrupt Level of INT [19] (Default: 000) These bits specify the interrupt level of TMR [2]. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [18] (Default: 000) These bits specify the interrupt level of TMR[1]. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [3] (Default: 000) These bits specify the interrupt level of external INT[1]. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Read/Write ⎯ R/W 23:19 18:16 ⎯ IL18 ⎯ Interrupt Level 18 ⎯ R/W 15:11 10:8 ⎯ IL3 ⎯ Interrupt Level 3 ⎯ R/W 7:3 ⎯ ⎯ ⎯ Figure 15.4.5 Interrupt Level Register 1 (1/2) 15-19 Chapter 15 Interrupt Controller Bit 2:0 Mnemonic IL2 Field Name Interrupt Level 2 Explanation Interrupt Level of INT [2] (Default: 000) These bits specify the interrupt level of external INT[0]. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Read/Write R/W Figure 15.4.5 Interrupt Level Register 1 (2/2) 15-20 Chapter 15 Interrupt Controller 15.4.6 31 Reserved Interrupt Level Register 2 (IRLVL2) 27 26 IL21 24 0xF618 23 Reserved : Type : Default 16 15 Reserved 11 10 IL5 R/W 000 8 7 Reserved 3 2 IL4 R/W 000 0 : Type : Default Bit 31:27 26:24 Mnemonic ⎯ IL21 Field Name ⎯ Interrupt Level 21 Reserved Explanation Interrupt Level of INT [21] (Default: 000) These bits specify the interrupt level of NDFMC. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [5] (Default: 000) These bits specify the interrupt level of external INT[3] / ETHERC1. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [4] (Default: 000) These bits specify the interrupt level of external INT[2]. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Read/Write ⎯ R/W 23:11 10:8 ⎯ IL5 ⎯ Interrupt Level 5 ⎯ R/W 7:3 2:0 ⎯ IL4 ⎯ Interrupt Level 4 ⎯ R/W Figure 15.4.6 Interrupt Level Register 2 15-21 Chapter 15 Interrupt Controller 15.4.7 31 Reserved Interrupt Level Register 3 (IRLVL3) 27 26 IL23 R/W 000 24 0xF61C 23 Reserved 19 18 IL22 R/W 000 : Type : Default 0 IL6 R/W 000 : Type : Default 16 15 Reserved 11 10 IL7 R/W 000 8 7 Reserved 3 2 Bit 31:27 26:24 Mnemonic ⎯ IL23 Field Name ⎯ Interrupt Level 23 Reserved Explanation Interrupt Level of INT [23] (Default: 000) These bits specify the interrupt level of PCIPME0 interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [22] (Default: 000) These bits specify the interrupt level of PCIERR0 interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [7] (Default: 000) These bits specify the interrupt level of external INT[5]. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Read/Write ⎯ R/W 23:19 18:16 ⎯ IL22 ⎯ Interrupt Level 22 ⎯ R/W 15:11 10:8 ⎯ IL7 ⎯ Interrupt level 7 ⎯ R/W 7:3 ⎯ ⎯ ⎯ Figure 15.4.7 Interrupt Level Register 3 (1/2) 15-22 Chapter 15 Interrupt Controller Bit 2:0 Mnemonic IL6 Field Name Interrupt level 6 Explanation Interrupt Level of INT [6] (Default: 000) These bits specify the interrupt level of external INT[4] / ETHERC0. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Read/Write R/W Figure 15.4.7 Interrupt Level Register 3 (2/2) 15-23 Chapter 15 Interrupt Controller 15.4.8 31 Reserved Interrupt Level Register 4 (IRLVL4) 27 26 IL25 R/W 000 24 0xF620 23 Reserved 19 18 IL24 R/W 000 : Type : Default 0 IL8 R/W 000 : Type : Default 16 15 Reserved 11 10 IL9 R/W 000 8 7 Reserved 3 2 Bit 31:27 26:24 Mnemonic ⎯ IL25 Field Name ⎯ Interrupt level 25 Reserved Explanation Interrupt Level of INT [25] (Default: 000, R/W) These bits specify the interrupt level of ACLCPME interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [24] (Default: 000, R/W) These bits specify the interrupt level of ACLC interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [9] (Default: 000) These bits specify the interrupt level of SIO [1] interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Read/Write ⎯ R/W 23:19 18:16 ⎯ IL24 ⎯ Interrupt level 24 ⎯ R/W 15:11 10:8 ⎯ IL9 ⎯ Interrupt level 9 ⎯ R/W 7:3 ⎯ ⎯ ⎯ Figure 15.4.8 Interrupt Level Register 4 (1/2) 15-24 Chapter 15 Interrupt Controller Bit 2:0 Mnemonic IL8 Field Name Interrupt level 8 Explanation Interrupt Level of INT [8] (Default: 000) These bits specify the interrupt level of SIO [0] interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Read/Write R/W Figure 15.4.8 Interrupt Level Register 4 (2/2) 15-25 Chapter 15 Interrupt Controller 15.4.9 31 Reserved Interrupt Level Register 5 (IRLVL5) 27 26 IL27 R/W 000 24 23 0xF624 19 Reserved 18 IL26 R/W 000 : Type : Default 0 IL10 R/W 000 : Type : Default 16 15 Reserved 11 10 IL11 R/W 000 8 7 Reserved 3 2 Bit 31:27 26:24 Mnemonic ⎯ IL27 Field Name ⎯ Interrupt level 27 Reserved Explanation Interrupt Level of INT [27] (Default: 000) These bits specify the interrupt level of DMA1 [0] interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [26] (Default: 000) These bits specify the interrupt level of PCIC1 interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [11] (Default: 000) These bits specify the interrupt level of DMA0 [1] interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Read/Write ⎯ R/W 23:19 18:16 ⎯ IL26 ⎯ Interrupt level 26 ⎯ R/W 15:11 10:8 ⎯ IL11 ⎯ Interrupt level 11 ⎯ R/W 7:3 ⎯ ⎯ ⎯ Figure 15.4.9 Interrupt Level Register 5 (1/2) 15-26 Chapter 15 Interrupt Controller Bit 2:0 Mnemonic IL10 Field Name Interrupt Level 10 Explanation Interrupt Level of INT [10] (Default: 000) These bits specify the interrupt level of DMA0 [0] interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Read/Write R/W Figure 15.4.9 Interrupt Level Register 5 (2/2) 15-27 Chapter 15 Interrupt Controller 15.4.10 Interrupt Level Register 6 (IRLVL6) 31 Reserved 27 26 IL29 R/W 000 15 Reserved 11 10 IL13 R/W 000 8 7 Reserved 3 2 IL12 R/W 000 : Type : Default 24 0xF628 23 Reserved 19 18 IL28 R/W 000 0 : Type : Default 16 Bit 31:27 26:24 Mnemonic ⎯ IL29 Field Name ⎯ Interrupt level 29 Reserved Explanation Interrupt Level of INT [29] (Default: 000) These bits specify the interrupt level of DMA1 [2] interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [28] (Default: 000) These bits specify the interrupt level of DMA1 [1] interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [13] (Default: 000) These bits specify the interrupt level of DMA0 [3] interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Read/Write ⎯ R/W 23:19 18:16 ⎯ IL28 ⎯ Interrupt level 28 ⎯ R/W 15:11 10:8 ⎯ IL13 ⎯ Interrupt level 13 ⎯ R/W 7:3 ⎯ ⎯ ⎯ Figure 15.4.10 Interrupt Level Register 6 (1/2) 15-28 Chapter 15 Interrupt Controller Bit 2:0 Mnemonic IL12 Field Name Interrupt level 12 Explanation Interrupt Level of INT [12] (Default: 000) These bits specify the interrupt level of DMA0 [2] interrupts. 000: Interrupt level 0 (Interrupt disable) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Read/Write R/W Figure 15.4.10 Interrupt Level Register 6 (2/2) 15-29 Chapter 15 Interrupt Controller 15.4.11 Interrupt Level Register 7 (IRLVL7) 31 Reserved 27 26 IL31 R/W 000 15 Reserved 11 10 IL15 R/W 000 8 7 Reserved 3 2 IL14 R/W 000 : Type : Default 24 0xF62C 23 Reserved 19 18 IL30 R/W 000 0 : Type : Default 16 Bit 31:27 26:24 Mnemonic ⎯ IL31 Field Name ⎯ Interrupt level 31 Reserved Explanation Interrupt Level of INT [31] (Default: 000) These bits specify the interrupt level of SPI interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [30] (Default: 000) These bits specify the interrupt level of DMA1[3] interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Interrupt Level of INT [15] (Default: 000) These bits specify the interrupt level of PDMAC interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Reserved Read/Write ⎯ R/W 23:19 18:16 ⎯ IL31 ⎯ Interrupt level 30 ⎯ R/W 15:11 10:8 ⎯ IL15 ⎯ Interrupt level 15 ⎯ R/W 7:3 ⎯ ⎯ ⎯ Figure 15.4.11 Interrupt Level Register 7 (1/2) 15-30 Chapter 15 Interrupt Controller Bit 2:0 Mnemonic IL14 Field Name Interrupt Level 14 Explanation Interrupt Level of INT [14] (Default: 000) These bits specify the interrupt level of IRC interrupts. 000: Interrupt level 0 (Interrupt disabled) 001: Interrupt level 1 010: Interrupt level 2 011: Interrupt level 3 100: Interrupt level 4 101: Interrupt level 5 110: Interrupt level 6 111: Interrupt level 7 Read/Write R/W Figure 15.4.11 Interrupt Level Register 7 (2/2) 15-31 Chapter 15 Interrupt Controller 15.4.12 Interrupt Mask Level Register (IRMSK) 31 Reserved : Type : Default 15 Reserved 3 2 IML R/W 0 : Type : Default 0 0xF640 16 Bit 31:3 2:0 Mnemonic ⎯ IML Field Name ⎯ Interrupt Mask Level Reserved Explanation Interrupt Mask Level (Default: 000) These bits specify the interrupt mask level. Masks interrupts with a mask level equal to or lower than the set mask level. 000: Interrupt mask level 0 (No interrupts masked) 001: Interrupt mask level 1 (Levels 2-7 enabled) 010: Interrupt mask level 2 (Levels 3-7 enabled) 011: Interrupt mask level 3 (Levels 4-7 enabled) 100: Interrupt mask level 4 (Levels 5-7 enabled) 101: Interrupt mask level 5 (Levels 6-7 enabled) 110: Interrupt mask level 6 (Level 7 enabled) 111: Interrupt mask level 7 (Interrupts disabled) Read/Write ⎯ R/W Figure 15.4.12 Interrupt Mask Register 15-32 Chapter 15 Interrupt Controller 15.4.13 Interrupt Edge Detection Clear Register (IREDC) 31 Reserved : Type : Default 15 Reserved 9 8 EDCE0 RW1C 0xF660 16 7 Reserved 4 3 EDCS0 R/W 0000 0 0 : Type : Default Bit 31:9 8 Mnemonic ⎯ EDCE0 Field Name ⎯ Edge Detection Clear Enable 0 Reserved Explanation Edge Detection Clear Enable 0 (Default: 0) Clears edge detection of interrupts specified by the EDCS0 field. 0: Does not clear. 1: Clears. Value always becomes “0” when this bit is read. Reserved Edge Detection Clear Source 0 (Default: 0x0) These bits specify the interrupt source to be cleared. 1111: Reserved 1110: Reserved 1101: Reserved 1100: Reserved 1011: Reserved 1010: Reserved 1001: Reserved 1000: Reserved 0111: External INT [5] interrupt 0110: External INT [4] interrupt 0101: External INT [3] interrupt 0100: External INT [2] interrupt 0011: External INT [1] interrupt 0010: External INT [0] interrupt 0001: Reserved 0000: Reserved Read/Write ⎯ R/W1C 7:4 3:0 ⎯ EDCS0 ⎯ Edge Detection Clear Source 0 ⎯ R/W Figure 15.4.13 Interrupt Status Control Register 15-33 Chapter 15 Interrupt Controller 15.4.14 Interrupt Pending Register (IRPND) 0xF680 Indicates the status of each interrupt request regardless of the IRLVL 7-0 and IRMSK value. 31 IS31 R 0 15 IS15 R 0 30 IS30 R 0 14 IS14 R 0 29 IS29 R 0 13 IS13 R 0 28 IS28 R 0 12 IS12 R 0 27 IS27 26 IS26 25 IS25 R 0 9 IS9 R 0 24 IS24 R 0 8 IS8 R 0 23 IS23 R 0 7 IS7 R 0 22 IS22 R 0 6 IS6 R 0 21 IS21 R 0 5 IS5 R 0 20 Reserved 19 IS19 R 0 18 IS18 R 0 2 IS2 R 0 17 IS17 R 0 1 IS1 R 0 16 IS16 R 0 0 IS0 R 0 : Type : Default : Type : Default R 0 11 IS11 R 0 R 0 10 IS10 R 0 4 IS4 R 0 3 IS3 R 0 Bit 31 Mnemonic IS31 Field Name Interrupt Status 31 Explanation IRINTREQ [31] Status (Default: 0, R) This bit indicates the SPI interrupt status. 1: Interrupt requests 0: No interrupt requests IRINTREQ [30] Status (Default: 0, R) This bit indicates the DMA1[3] interrupt status. 1: Interrupt requests 0: No interrupt requests IRINTREQ [29] Status (Default: 0, R) This bit indicates the DAM1[2] interrupt status. 1: Interrupt requests 0: No interrupt requests IRINTREQ [28] Status (Default: 0, R) This bit indicates the DMA1[1] interrupt status. 1: Interrupt requests 0: No interrupt requests IRINTREQ [27] Status (Default: 0, R) This bit indicates the DMA1[0] interrupt status. 1: Interrupt requests 0: No interrupt requests IRINTREQ [26] Status (Default: 0, R) This bit indicates the PCIC1 interrupt status. 1: Interrupt requests 0: No interrupt requests IRINTREQ [25] Status (Default: 0, R) This bit indicates the ACLCPME interrupt status. 1: Interrupt requests 0: No interrupt requests IRINTREQ [24] Status (Default: 0, R) This bit indicates the ACLC interrupt status. 1: Interrupt requests 0: No interrupt requests IRINTREQ [23] status This bit indicates the PCIPMC interrupt status 1: Interrupt requests 0: No interrupt requests Read/Write R 30 IS30 Interrupt Status 30 R 29 IS29 Interrupt Status 29 R 28 IS28 Interrupt Status 28 R 27 IS27 Interrupt Status 27 R 26 IS26 Interrupt Status 26 R 25 IS25 Interrupt Status 25 R 24 IS24 Interrupt Status 24 R 23 IS23 Interrupt Status 23 R Figure 15.4.14 Interrupt Source Status Register (1/3) 15-34 Chapter 15 Interrupt Controller Bit 22 Mnemonic IS22 Field Name Interrupt Status 22 Explanation IRINTREQ [22] status This bit indicates the PCIERR error status. 1: Interrupt requests 0: No interrupt requests IRINTREQ [21] status This bit indicates the NDFMC interrupt status. 1: Interrupt requests 0: No interrupt requests Read/Write R 21 IS21 Interrupt Status 21 R 20 19 ⎯ IS19 ⎯ Interrupt Status 19 Reserved IRINTREQ [19] status This bit indicates the TMR [2] interrupt status. 1: Interrupt requests 0: No interrupt requests R ⎯ 18 IS18 Interrupt Status 18 IRINTREQ [18] status This bit indicates the TMR [1] interrupt status. 1: Interrupt requests 0: No interrupt requests R 17 IS17 Interrupt Status 17 IRINTREQ [17] status This bit indicates the TMR[0] interrupt status 1: Interrupt requests 0: No interrupt requests R 16 IS16 Interrupt Status 16 IRINTREQ [16] status This bit indicates the PCIC interrupt status 1: Interrupt requests 0: No interrupt requests R 15 IS15 Interrupt Status 15 IRINTREQ [15] status This bit indicates the PDMAC interrupt status. 1: Interrupt requests 0: No interrupt requests R 14 IS14 Interrupt Status 14 IRINTREQ [14] status This bit indicates the IRC interrupt status 1: Interrupt requests 0: No interrupt requests R 13 IS13 Interrupt Status 13 IRINTREQ [13] status This bit indicates the DMA [3] interrupt status 1: Interrupt requests 0: No interrupt requests R 12 IS12 Interrupt Status 12 IRINTREQ [12] status This bit indicates the status of DMA [2] interrupts. 1: Interrupt requests 0: No interrupt requests R 11 IS11 Interrupt Status 11 IRINTREQ [11] status This bit indicates the status of DMA [1] interrupts. 1: Interrupt requests 0: No interrupts requests R 10 IS10 Interrupt Status 10 IRINTREQ [10] status This bit indicates the status of DMA [0] interrupts. 1: Interrupt requests 0: No interrupt requests R Figure 15.4.14 Interrupt Source Status Register (2/3) 15-35 Chapter 15 Interrupt Controller Bit 9 Mnemonic IS9 Field Name Interrupt Status 9 IRINTREQ [9] status Explanation This bit indicates the status of SIO [1] interrupts. 1: Interrupt requests 0: No interrupt requests Read/Write R 8 IS8 Interrupt Status 8 IRINTREQ [8] status This bit indicates the status of SIO [0] interrupts. 1: Interrupt requests 0: No interrupt requests R 7 IS7 Interrupt Status 7 IRINTREQ [7] status This bit indicates the status of external INT [5] interrupts. 1: Interrupt requests 0: No interrupt requests R 6 IS6 Interrupt Status 6 IRINTREQ [6] status This bit indicates the status of external INT [4] interrupts. 1: Interrupt requests 0: No interrupt requests R 5 IS5 Interrupt Status 5 IRINTREQ [5] status This bit indicates the status of external INT [3] interrupts. 1: Interrupt requests 0: No interrupt requests R 4 IS4 Interrupt Status 4 IRINTREQ [4] status This bit indicates the status of external INT [2] interrupts. 1: Interrupt requests 0: No interrupt requests R 3 IS3 Interrupt Status 3 IRINTREQ [3] status This bit indicates the status of external INT [1] interrupts. 1: Interrupt requests 0: No interrupt requests R 2 IS2 Interrupt Status 2 IRINTREQ [2] status This bit indicates the status of external INT [0] interrupts. 1: Interrupt requests 0: No interrupt requests R 1 IS1 Interrupt Status 1 IRINTREQ [1] status This bit indicates the status of TX49 Write Timeout Error interrupts. 1: Interrupt requests 0: No interrupt requests R 0 IS0 Interrupt Status 0 IRINTREQ [0] status This bit indicates the status of ECC Error interrupts. 1: Interrupt requests 0: No interrupt requests R Figure 15.4.14 Interrupt Source Status Register (3/3) 15-36 Chapter 15 Interrupt Controller 15.4.15 Interrupt Current Status Register (IRCS) 31 Reserved 0xF6A0 17 16 IF R 1 : Type : Default 15 Reserved 11 10 LVL R 000 8 7 Reserved 5 4 CAUSE R 11111 0 : Type : Default Bit 31:17 16 Mnemonic ⎯ IF Field Name ⎯ Interrupt Flag Reserved Interrupt Flag (Default: 1) Explanation Read/Write ⎯ R This bit indicates the interrupt generation status. 0: Interrupt requests have been generated. 1: Interrupt requests have not been generated 15:11 10:8 ⎯ LVL ⎯ Interrupt Level Reserved Interrupt Level (Default: 000) These bits specify the level of the interrupt request that was reported to the TX49/H3 core. This field becomes undefined if no interrupt request is pending (i.e., the IF bit is set). 000: Interrupt level 0 001: Interrupt level 1 : 7:5 ⎯ ⎯ Reserved : ⎯ 111: Interrupt level 7 R ⎯ Figure 15.4.15 Interrupt Current Status Register (1/2) 15-37 Chapter 15 Interrupt Controller Bit 4:0 Mnemonic CAUSE Field Name Interrupt Cause Explanation Interrupt Cause (Default: 0x1F) These bits specify the interrupt cause that was reported to the TX49/H3 core. This field becomes undefined if no interrupt request is pending (i.e., the IF bit is set). 00000: ECC Error 00001: TX49 Write Timeout Error 00010: External INT [0] interrupt 00011: External INT [1] interrupt 00100: External INT [2] interrupt 00101: External INT [3] interrupt 00110: External INT [4] interrupt 00111: External INT [5] interrupt 01000: SIO [0] interrupt 01001: SIO [1] interrupt 01010: DMA0 [0] interrupt 01011: DMA0 [1] interrupt 01100: DMA0 [2] interrupt 01101: DMA0 [3] interrupt 01110: IRC interrupt 01111: PDMAC0 interrupt 10000: PCIC0 interrupt 10001: TMR [0] interrupt 10010: TMR [1] interrupt 10011: TMR [2] interrupt 10100: (Reserved) 10101: NDFMC interrupt 10110: PCIERR interrupt 10111: PCIPME interrupt 11000: ACLC interrupt 11001: ACLCPME interrupt 11010: PCIC1 interrupt 11011: DMA1[0] interrupt 11100: DMA1[1] interrupt 11101: DMA1[2] interrupt 11110: DMA1[3] interrupt 11111: SPI interrupt Read/Write R Figure 15.4.15 Interrupt Current Status Register (2/2) 15-38 Chapter 15 Interrupt Controller 15.4.16 Interrupt Request Flag Register 0 (IRFLAG0) 31 Reserved : Type : Default 15 PF0 [15] 14 PF0 [14] 13 PF0 [13] 12 PF0 [12] 11 PF0 [11] 10 PF0 [10] 9 PF0 [9] 8 PF0 [8] 7 PF0 [7] 6 PF0 [6] 5 PF0 [5] 4 PF0 [4] 3 PF0 [3] 2 PF0 [2] 1 PF0 [1] 0 PF0 [0] : Type : Default 0xF510 16 R/W 0x0000 Bit 31:16 15:0 Mnemonic ⎯ PF0 [15:0] Field Name ⎯ Flag 0 Reserved Explanation Interrupt Request Flag 0 [15:0] (Default: 0x0000) Changes made to this register are reflected in Flag Register 1 also since they are the same registers. The bits in this field accept writes of both 1s and 0s. Read/Write ⎯ R/W Figure 15.4.16 Interrupt Request Flag Register 0 15-39 Chapter 15 Interrupt Controller 15.4.17 Interrupt Request Flag Register 1 (IRFLAG1) 31 Reserved : Type : Default 15 PF1 [15] 14 PF1 [14] 13 PF1 [13] 12 PF1 [12] 11 PF1 [11] 10 PF1 [10] 9 PF1 [9] 8 PF1 [8] 7 PF1 [7] 6 PF1 [6] 5 PF1 [5] 4 PF1 [4] 3 PF1 [3] 2 PF1 [2] 1 PF1 [1] 0 PF1 [0] : Type : Default 0xF514 16 R/W 0x0000 Bit 31:16 15:0 Mnemonic ⎯ PF1 [15:0] Field Name ⎯ Flag 1 Reserved Explanation Interrupt Request Flag 1 [15:0] (Default: 0x0000) Changes made to this register are reflected in Flag Register 0 also since they are the same registers. Writes to Flag Register 1 operate as follows: Write Write from the TX49/H3 core 1: Set the flag bit 0: No change Write from other devices (DMAC, PCIC) 1: Clear the flag bit 0: No change Read: Read the flag bit Read/Write ⎯ R/W Figure 15.4.17 Interrupt Request Flag Register 1 15-40 Chapter 15 Interrupt Controller 15.4.18 Interrupt Request Polarity Control Register (IRPOL) 31 Reserved : Type : Default 15 FPC [15] 14 FPC [14] 13 FPC [13] 12 FPC [12] 11 FPC [11] 10 FPC [10] 9 FPC [9] 8 FPC [8] 7 FPC [7] 6 FPC [6] 5 FPC [5] 4 FPC [4] 3 FPC [3] 2 FPC [2] 1 FPC [1] 0 FPC [0] : Type : Default 0xF518 16 R/W 0x0000 Bit 31:16 15:0 Mnemonic ⎯ FPC [15:0] Field Name ⎯ Flag Polarity Control Reserved Explanation Flag Polarity Control [15:0] (Default: 0x0000) These bits specify the polarity of the flag bit that generated the interrupt. An interrupt request is generated when the XOR of the FPC bit and the flag bit is “1.” Flag bit (PF) 0 0 1 1 FPC bit 0 1 0 1 Interrupt request No Yes Yes No Read/Write ⎯ R/W Figure 15.4.18 Interrupt Requests Polarity Control Register 15-41 Chapter 15 Interrupt Controller 15.4.19 Interrupt Request Control Register (IRRCNT) 31 Reserved : Type : Default 15 Reserved 3 2 ODC 0xF51C 16 1 0 EXTPOL INTPOL R/W 0 R/W 1 R/W : Type 1 : Default Bit 31:3 2 Mnemonic ⎯ ODC Field Name ⎯ External Interrupt OD Control Reserved Explanation External Interrupt Open Drain Control (Default: 0) This bit specifies whether to make the external interrupt signal (IRC[2]*) an open drain pin or not. 0: Open drain (reset) 1: Totem pole Read/Write ⎯ R/W 1 EXTPOL External Interrupt Request Polarity Control External Interrupt Polarity Control (Default: 1) This bit specifies the polarity of external interrupt requests. 0: Do not reverse polarity of interrupt requests. 1: Reverse polarity of interrupt requests Internal Interrupt Polarity Control (Default: 1) This bit specifies the polarity of internal interrupt requests. 0: Do not reverse polarity of interrupt requests. 1: Reverse polarity of interrupt requests R/W 0 INTPOL Internal Interrupt Request Polarity Control R/W Figure 15.4.19 Interrupt Request Control Register 15-42 Chapter 15 Interrupt Controller 15.4.20 Interrupt Request Internal Interrupt Mask Register (IRMASKINT) 31 Reserved : Type : Default 15 [15] 14 [14] 13 [13] 12 [12] 11 [11] 10 [10] 9 [9] 8 [8] 7 [7] 6 [6] 5 [5] 4 [4] 3 [3] 2 [2] 1 [1] 0 [0] : Type : Default MINT MINT MINT MINT MINT MINT MINT MINT MINT MINT MINT MINT MINT MINT MINT MINT R/W 0x0000 0xF520 16 Bit 31:16 15:0 Mnemonic ⎯ MINT [15:0] Field Name ⎯ Internal Request Mask Reserved Explanation Internal Interrupt Mask (Default: 0x0000) These bits specify whether to use the corresponding flag bit as an internal interrupt cause. Interrupt causes are masked when this bit is “0.” 0: Mask (Reset) 1: Do not mask Read/Write ⎯ R/W Figure 15.4.20 Interrupt Request Internal Interrupt Mask Register 15-43 Chapter 15 Interrupt Controller 15.4.21 Interrupt Request External Interrupt Mask Register (IRMASKEXT) 0xF524 31 Reserved : Type : Default 15 [15] 14 [14] 13 [13] 12 [12] 11 [11] 10 [10] 9 [9] 8 [8] 7 [7] 6 [6] 5 [5] 4 [4] 3 [3] 2 [2] 1 [1] 0 [0] : Type : Default MEXT MEXT MEXT MEXT MEXT MEXT MEXT MEXT MEXT MEXT MEXT MEXT MEXT MEXT MEXT MEXT R/W 0x0000 16 Bit 31:16 15:0 Mnemonic ⎯ MEXT [15:0] Field Name ⎯ External Request Mask Reserved Explanation Read/Write ⎯ R/W External Interrupt Mask (Default: 0x0000) These bits specify whether to use the corresponding flag bit as an external interrupt cause. Interrupt causes are masked when this bit is “0.” 0: Mask (reset) 1: Do not mask Figure 15.4.21 Interrupt Request External Interrupt Mask Register 15-44 Chapter 16 Ethernet Controller 16. Ethernet Controller 16.1 Features Mounted in the TX4938 is a 2-channel 10/100 Mbps Ethernet Controller. This Ethernet Controller has circuits equivalent to the Toshiba TC35815CF (but partially modified) built in. 16.2 Block diagram G-Bus PCI Controller Ethernet Controller Bus Control Layer Bus Master Burst Clock 33/66 MHz 32-bit PCI Clock Bus Slave Clock PCI Config Register BII DMA Layer DMA Tx Block DMA SRAM DMA Rx Block DMA Control Status Register DII MAC Layer ARC Flow Control MAC Tx Block MAC Tx FIFO MAC Control Status Register MAC Rx FIFO MAC Rx Block MII I/F PHY Layer 10BASE-TPHY or 100BASE-XPHY Figure 16.2.1 Ethernet Controller Block Diagram 16-1 Chapter 16 Ethernet Controller 16.3 Detailed explanation 16.3.1 Accessing the Ethernet Controller The Ethernet Controller is connected to the chip-internal PCI Bus. The chip-internal PCI Bus is connected to the G-Bus via the PCI Controller (PCIC1). Therefore, you access the Ethernet Controller via PCI Controller 1. PCI Controller 1 is a circuit that is equivalent to the PCI Controller (PCIC0) in Chapter 10. The Ethernet Controller only supports the PCI Controller 1 functions that it requires to operate. Following are the differences with PCIC0. • • • • • • Host mode only. (Does not support the Satellite mode.) Does not support EEPROM for Config data storage Does not support an external PCI arbiter Does not support type 1 configuration Does not support the Interrupt Acknowledge command Does not support the Special Cycle command 16.3.1.1 PCI Controller 1 control registers Table 16.3.1 lists the PCI Controller 1 registers. For the details of each register or the operation of the PCI Controller, see Chapter 10. Table 16.3.1 PCI Controller Control Registers (1/2) Reference 10.4.1 10.4.2 10.4.3 10.4.4 10.4.5 Address 0x7000 0x7004 0x7008 0x700C 0x7010 0x7014 Size 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 Mnemonic PCIID PCISTATUS PCICCREV PCICFG1 P2GM0PLBASE Register Name ID Register (Device ID, Vendor ID) PCI Status, Command Register Class Code, Revision ID Register (Class Code, Revision ID) PCI Configuration 1 Register (BIST, Header Type, Latency Timer, Cache Line Size) P2G Memory Space 0 PCI Lower Base Address Register (Base Address 0 Lower) Reserved P2G Memory Space 1 PCI Lower Base Address Register (Base Address 1 Lower) Reserved P2G Memory Space 2 PCI Base Address Register (Base Address 2) P2G I/O Space PCI Base Address Register (Base Address 3) Subsystem ID Register (Subsystem ID, Subsystem Vendor ID) Capabilities Pointer Register (Capabilities Pointer) PCI Configuration 2 Register (Max_Lat, Min_Gnt, Interrupt Pin, Interrupt Line) G2P Timeout Count Register (Retry Timeout Value, TRDY Timeout Value) G2P Status Register G2P Interrupt Mask Register Reserved PCI Status Interrupt Mask Register 10.4.7 0x7018 0x701C P2GM1PLBASE 10.4.9 10.4.10 10.4.11 10.4.12 10.4.13 10.4.14 10.4.15 10.4.16 10.4.18 0x7020 0x7024 0x702C 0x7034 0x703C 0x7040 0x7080 0x7084 0x7088 0x708C P2GM2PBASE P2GIOPBASE PCISID PCICAPPTR PCICFG2 G2PTOCNT G2PSTATUS G2PMASK PCIMASK 16-2 Chapter 16 Ethernet Controller Table 16.3.1 PCI Controller Control Registers (2/2) Reference 10.4.19 10.4.20 10.4.21 10.4.22 10.4.23 10.4.24 10.4.25 10.4.26 10.4.27 10.4.28 10.4.29 10.4.30 10.4.31 10.4.32 10.4.33 10.4.34 10.4.35 10.4.36 10.4.37 10.4.38 10.4.39 10.4.40 10.4.41 10.4.42 10.4.43 10.4.44 10.4.45 10.4.46 10.4.47 10.4.48 10.4.49 10.4.50 10.4.51 10.4.52 10.4.53 Address 0x7090 0x7094 0x7098 0x709C 0x7100 0x7104 0x7108 0x710C 0x7110 0x7114 0x7118 0x711C 0x7120 0x7128 0x7130 0x7138 0x7140 0x7144 0x7148 0x714C 0x7150 0x7158 0x7160 0x7168 0x7170 0x7174 0x7178 0x7180 0x7188 0x7190 0x7198 0x71A0 0x71A4 0x71C8 0x71CC 0x71D07228 Size 32 32 32 32 32 32 32 32 32 32 32 32 64 64 64 64 32 32 32 32 64 64 64 64 32 32 32 64 64 64 64 32 32 32 32 - Mnemonic P2GCFG P2GSTATUS P2GMASK P2GCCMD PBAREQPORT PBACFG PBASTATUS PBAMASK PBABM PBACREQ PBACGNT PBACSTATE G2PM0GBASE G2PM1GBASE G2PM2GBASE G2PIOGBASE G2PM0MASK G2PM1MASK G2PM2MASK G2PIOMASK G2PM0PBASE G2PM1PBASE G2PM2PBASE G2PIOPBASE PCICCFG PCICSTATUS PCICMASK P2GM0GBASE P2GM1GBASE P2GM2GBASE P2GIOGBASE G2PCFGADRS G2PCFGDATA G2PINTACK G2PSPC P2G Status Register Register Name P2G Configuration Register P2G Interrupt Mask Register P2G Current Command Register PCI Bus Arbiter Request Report Register PCI Bus Arbiter Configuration Register PCI Bus Arbiter Status Register PCI Bus Arbiter Interrupt Mask Register PCI Bus Arbiter Broken Master Register PCI Bus Arbiter Current Request Register (for diagnostics) PCI Bus Arbiter Current Grant Register (for diagnostics) PCI Bus Arbiter Current State Register (for diagnostics) G2P Memory Space 0 G-Bus Base Address Register G2P Memory Space 1 G-Bus Base Address Register G2P Memory Space 2 G-Bus Base Address Register G2P I/O Space G-Bus Base Address Register G2P Memory Space 0 Address Mask Register G2P Memory Space 1 Address Mask Register G2P Memory Space 2 Address Mask Register G2P I/O Space Address Mask Register G2P Memory Space 0 PCI Base Address Register G2P Memory Space 1 PCI Base Address Register G2P Memory Space 2 PCI Base Address Register G2P I/O Space PCI Base Address Register PCI Controller Configuration Register PCI Controller Status Register PCI Controller Interrupt Mask Register P2G Memory Space 0 G-Bus Base Address Register P2G Memory Space 1 G-Bus Base Address Register P2G Memory Space 2 G-Bus Base Address Register P2G I/O Space G-Bus Base Address Register G2P Configuration Address Register G2P Configuration Data Register G2P Interrupt Acknowledge Data Register G2P Special Cycle Data Register Reserved 16-3 Chapter 16 Ethernet Controller 16.3.1.2 Interrupt signaling PCI Controller 1 signals the following interrupt to the Interrupt Controller (IRC): PCIC1 Interrupt (Interrupt Number: 26, PCIC1INT) This interrupt is similar to a combination of four PCI Controller 0 interrupt signals into a single interrupt signal. For the content of each interrupt, see subsection 10.3.11. The Ethernet Controller signals the following interrupts to the Interrupt Controller (IRC): Ethernet Channel 0 Interrupt (Interrupt Number: 6) Ethernet Channel 1 Interrupt (Interrupt Number: 5) For the content of these interrupts, see 16.4.3.9 Interrupt Source Register. 16.3.1.3 IDSEL signal connections Internal PCI Bus AD (Address, Data) signals are connected to Ethernet Controller 0, 1 IDSEL signals. Each connection destination follows below. Ethernet Channel 0 IDSEL signal: Internal PCI Bus AD[31] Ethernet Channel 1 IDSEL signal: Internal PCI Bus AD[30] 16.3.1.4 On-chip PCI bus clock frequency The on-chip PCI bus can be programmed to operate at one half or one fourth of the GBUSCLK frequency. Apply a logic High to ADD[16] at boot time to set the on-chip PCI bus clock frequency to one fourth of GBUSCLK. When it is necessary to increase the on-chip PCI bus clock frequency to one half of GBUSCLK, program the relevant register bits in the following order: 1. 2. 3. 4. Set the PCIC1RST bit in the Clock Control (CLKCTR) register to 1. This asserts the reset signals to the PCIC1, ETHER0 and ETHER1 modules. Set PCI1-66 bit in the Chip Configuration (CCFG) register to 1. Set the PCI1DMD bit in the Chip Configuration (CCFG) register to 1. Clear the PCIC1RST bit in the Clock Control (CLKCTR) register to 0. This asserts the reset signals to the PCIC1, ETHER0 and ETHER1 modules. 16.3.2 Data structure The Ethernet Controller exchanges control information and data using the following data structure. • • • Frame Descriptors Buffer Descriptors Data Buffer Figure 16.3.1 shows the relationships of the above data structures. A frame descriptor consists of a 4-byte pointer that points to the next frame, a field dedicated to a system or application program, a frame status field, a control field for all frames, and a corresponding group buffer descriptor. The buffer descriptor contains a pointer to the data buffer and buffer control information. The data buffer is a data storage area in Byte units that is stored in either the Little Endian or Big Endian order. For details on these data structures, see 16.3.7 Memory configuration. 16-4 Chapter 16 Ethernet Controller The DMA engine responds to the transfer of data that is positioned at the byte boundaries. Frame descriptors must be aligned to 16-Byte boundaries. Also, buffer descriptors must be aligned to 8-Byte boundaries. The DMA engine Burst transfers 4-Byte aligned data as much as possible. However, whether data buffers are aligned to 4-Byte boundaries or not does not have much effect on performance. The DMA engine accesses only words or parts of words not aligned to 4-Byte boundaries at the start and end of Block transfer. Part way through Block transfer however, the DMA engine performs wordunit 4-Byte access. Q ueue Access Head Tail Fram e Descriptor Next System FStatus Control Data BStatus Data BStatus Data BStatus Next System FStatus Control Data BStatus Data BStatus Next System FStatus Control Data BStatus Data BStatus Data BStatus ... Buffer Descriptor Data Buffer Figure 16.3.1 Data Structure Outline 16.3.3 System control model The Ethernet Controller as two programmable modes: the Interrupt Drive mode and the Polling mode. • • Interrupt Drive mode This mode generates an interrupt each time a packet or group packet transmits or receives. Polling mode This mode always polls to see if there is a subsequent packet to transmit or receive. When data or a descriptor is added to the frame descriptor queue, the Ethernet Controller performs transmission. The Host CPU checks the status of the frame descriptor for the received packet and judges reception completion. The CPU does not use an interrupt. By enabling or disabling interrupts for each frame descriptor, the Ethernet Controller can arrange the stage layout to enable the handling of multiple packets between interrupts. In this way, the ability of the system to handle multiple packets at once and to cache the handling instructions makes it possible to reduce interrupt handling overhead and improve performance. Furthermore, unless major errors occur, you can set the Ethernet Controller to not issue interrupts. In this situation, you have to put several controls in the Enable state so start/end of traffic and polling in the Idle state is handled efficiently. For details, see 16.3.9 DMA Operation. 16-5 Chapter 16 Ethernet Controller 16.3.4 Functional overview Figure 16.2.1 is a diagram of the entire Ethernet system. Figure 16.3.2 and Figure 16.3.3 are more detailed function block diagrams of the Ethernet Controller. Figure 16.3.2 is a function block diagram of DMA. Figure 16.3.3 is a function block diagram of MAC. G-Bus PCIC PCI Address Data PCI Config Register PCI I/O Control PCI Slave PCI Master Pipe Register PCI Bus/DMA Buffer Arbiter BII DMA Reception Consumer Control Status Register DMA Transmission Producer DMA Reception Buffer DMA Transmission Buffer 32 32 DMA Reception Producer 8 8 DMA Transmission Consumer DII Figure 16.3.2 DMA Function Block 16-6 Chapter 16 Ethernet Controller Figure 16.3.2 and Figure 16.3.3 both show the relationship with the DMA-independent interface (DII). DII is an internal interface that has simple handshake signals and interfaces MAC-internal FIFO with the DMA block-internal DMA buffer. The two FIFOs in the MAC are 1 Byte wide. The DMA block contains DMA buffers that are wider and deeper than MAC. Figure 16.3.2 shows the relationship with the bus-independent interface (BII). The BII is an internal interface that has Bus Request/Bus Grant protocols for Burst access performed by the Bus Master. The BII makes it possible to connect the DMA engine to a 32-bit PCI Bus Controller or another bus controller. 16.3.4.1 Overview of PCI and DMA Figure 16.3.2 shows the PCI Bus configuration, blocks that perform control, DMA buffer and data exchange. • • • • PCI I/O Control Block Generates and acknowledges PCI control signals. PCI Slave Control Block Acknowledges and controls transactions when the Ethernet Controller is the target device. PCI Master Control Block Starts and controls transactions requested by the DMA engine of the Ethernet Controller. PCI Pipe Register Group Buffers data so the DMA engine can continue Burst transfer with 1-1-1-1 timing over a long period of time. PCI Configuration Register Flexibly performs PCI system setup. DMA Control Status Register Sets up and controls DMA. Arbiter Block Arbitrates access to the PCI Bus or the DMA buffer. Producer Block, Consumer Block Controls transmission/reception data output/input to/from the DMA buffer. • • • • The DMA buffer the DMA engine controls has a transmission area and a reception area. The DMA Transmission buffer stores the data and status information of multiple packets that are currently being transmitted. The DMA Reception buffer stores the data and status information of multiple packets that were received. Each buffer has a Producer Block that controls the data stored in a buffer and a Consumer Block that controls data removed from a buffer. The PCI Bus/DMA Buffer arbiter determines whether the consumer or producer State Machine has higher priority access permission to the PCI Bus/DMA Buffer. The priority changes dynamically and, if possible during Burst transfer, gives priority to the State Machine that controls the PCI Bus. However, when either the MAC Reception FIFO becomes nearly full or the MAC Transmission FIFO becomes nearly empty during transmission, priority is given to that FIFO. In other situations, the round-robin scheme is used to provide service in a fair manner. The DMA Controller block consists of the circuits required for the Bus Master to perform read/write operations via the PCI Bus. 16-7 Chapter 16 Ethernet Controller • • • • Busrt Size Control Circuit Optimizes PCI and system performance. Transmission Threshold Control Circuit Matches transmission latency to PCI Bus latency. Big Endian Byte Translation Circuit Supports data transfer to Big Endian format processors. Buffer Distribution/Sharing Control Circuit Can distribute then store one frame in multiple buffers. Can also store multiple frames in a single buffer and increase the usage efficiency. Polling Control Circuit Polls transmission packets. Is optional. Transmission Wakeup Control Circuit Performs control required to start transmission when the data is prepared. Early Notification Circuit Circuit that generates signals for starting to handle reception data before the data ends. Interrupt Enable Control Circuit Adjusts controller operation as the protocol requires. • • • • 16-8 Chapter 16 Ethernet Controller 16.3.4.2 MAC overview Figure 16.3.3 is a function block diagram of MAC. MAC consists of a Transmission Block, Reception Block, Control/Status Register group, Flow Control Block, and a Serial Controller. The Serial Controller is an MII station management interface. DII 32 Reception Block CRC/ARC Filter Flow Control 8 Transmission Block Back-off, Intergap Timer MAC Transmission FIFO 8 MAC Control Status Register Group ARC MAC Reception FIFO Parity Generator Parity Generator Preamble, Jam Generator Pad, CRC Generator MII Station Manager Loop Back MDC MDIO RxD[3:0] MII TxD[3:0] Figure 16.3.3 MAC Function Block The media-independent interface (MII) transfers signals between the 100Base-T compatible physical layer and the Transmission/Reception Block. MII is described in the IEEE 802.3 standard. The Transmission Block buffers data transmitted from the MAC Transmission FIFO, assembles packets, and then transfers them to the MII. Included in the Transmission Block are circuits that generate Preamble Bytes, Jam Bytes, Pad Bytes, and CRC values. Also included is a parity check circuit, a timer that creates back-off delay when a collision occurs, and a time that creates a cap between packets that were transmitted. The Reception Block expands packets received from MII, and then stores them in MAC Reception FIFO. Included in the Reception Block are a circuit that checks the CRC value, a circuit that generates parity to protect data in the FIFO, and a circuit that checks the packet length. Also included is an address recognition circuit (ARC) that, based on the receiving address, judges whether to accept or discard a packet. 16-9 Chapter 16 Ethernet Controller You can use a loop back circuit to separate MAC from the MII and physical layer and perform MAC layer testing. The MAC function block performs control to perform network manipulation such as the following: • • • • • • • • Control to include a stop request at the end of a packet currently being transmitted or received, and enable or disable the transmission/reception circuit Interrupt enable/disable control for each condition Address recognition control for up to 21 addresses Counter, status bit for collecting network management data Loop back or other control that aids network failure diagnosis Pause operation enable control for pausing the transmitter when a MAC control frame described by Pause operation is received MAC control frame transmission control for enabling Pause or other MAC control frame generation even when the transmitter has paused MAC control frame pass through control for enabling hardware or software to handle MAC control frames in another format 16.3.5 DMA function block 16.3.5.1 DMA Transmission Controller The DMA Transmission Controller consists of two State Machines: Producer and Consumer. The Producer checks the frame descriptor of the transmission queue, then controls data transfer from the transmission queue to the DMA Transmission buffer. Also, after transmission ends, the Producer controls the writing of transmission status information that expresses the MAC status information for the transmitted data. The Consumer controls transfer of data from the MAC transmission engine or a large-capacity DMA transmission buffer to a small MAC transmission FIFO. 16.3.5.2 DMA Reception Controller The DMA Reception Controller consists of two State Machines: Producer and Consumer. Producer controls data transfer from MAC Reception FIFO to the DMA reception buffer. Consumer allocates buffers from the empty buffer list, writes the frame descriptor and related buffer descriptor of the packet in the free descriptor area, then controls data transfer via the PCI Bus from the DMA Reception buffer to the system memory. 16-10 Chapter 16 Ethernet Controller 16.3.6 MAC function blocks 16.3.6.1 MAC Transmission Block The Transmission Block takes charge of data transmission. The Transmission Block is compliant with the IEEE 802.3 carrier sense multiple access with collision detection method (CSMA/CD) protocol. This block also supports full duplex modes that can simultaneously perform transmission and reception. The Transmission Block consists of the following parts. • • • • • Transmission FIFO, FIFO Control Counter Preamble, Jam Oscillator Pad Byte, CRC Generator Parity Checker Back Off, Intergap Timer For details of the Transmission Block, see 16.3.8 MAC operation. 16.3.6.2 MAC Reception Block The Reception Block takes charge of data reception. The Reception Block is compliant with the IEEE 802.3 carrier sense multiple access with collision detection method (CSMA/CD) protocol. This block also supports full duplex modes that can simultaneously perform transmission and reception. The Reception Block consists of the following parts. • • • • Reception FIFO, FIFO Control Counter Address Recognition ARC Block CRC Generator, Tester Parity Generator For details on the Reception block, see 16.3.8 MAC operation. 16.3.6.3 Flow Control Block The Flow Control Block has the following functions: • • • • • Recognize MAC control frames the Reception Block received Transmit MAC control frames (even when the transmitter is paused) Pause operation timer and counter Command/Status Register Interface Options for handing off MAC control frames to the software driver The reception circuit in the Flow Control Block recognizes the MAC control frame, and then performs the following Pause operation. First, the Data Length/Data Type field must have a specific value for a MAC control frame. Second, the ARC must recognize the destination address. Third, the frame length must by 64 Bytes including CRC. Fourth, the CRC test result must confirm the correctness of the frame. Finally, the frame must include a valid Pause operation code and operand. 16-11 Chapter 16 Ethernet Controller If the Data Length/Data Type field does not contain a specific value that expresses a MAC control frame, MAC performs no operation and the packet is treated as a typical packet. If the ARC cannot recognize the destination address, MAC ignores the packet. If the packet length including CRC is not 64 Bytes, MAC does not perform Pause operation. In this case, if Pass Through is in the Enabled state, the driver is handed off. If the Control bit of the Transmission Status Register is set, you can detect full duplex mode Pause operation or other MAC control function frames even if the transmitter itself is in the Pause state. The Flow Control Block has two timers for Pause operation and a Control/Status Register for each timer. One timer, register pair is used when the received packet pauses the transmitter. The other timer, register pair is used to estimate the pause status of the transmission destination after the transmitter transmits a Pause command. The Command/Status Register Interface is used to access the Transmission Control Register, the Transmission Status Register, the Reception Control Register, and the Reception Status Register. You can use these registers to start transmission of a MAC Control frame, enable or disable the MAC control function, or access the Flow Control counter. You can use the Control bit to select whether to completely handle MAC Control frames inside the Ethernet Controller or hand them off to the software driver. Therefore, default flow control is possible even if the software driver itself does not support flow control. 16.3.6.4 MAC Control Register, Status Registers MAC has a group of Control Registers and Status Registers. These registers are used to control the Transmission Block or Reception Block, display MAC status, are used in the communication interface with CAM, and are used in the interface with the MII Station Manager. These registers can also access from PCI using the memory map or I/O map. For details on the MAC Control Register or Status Register, see 16.4.5 MAC Control, Status Register group. 16.3.6.5 MII Station manager MAC in the Ethernet Controller handles station management data signals (MDIO and MDC) from the MII Controller, but it does not interpret them. Using a serial interface defined by MII, the MII Station Manager reads and writes to/from the Control Registers and Status Registers in a PHY device whose configuration is set up. When it is necessary to access these registers to negotiate configuration using an application specialized for a bridge, router, switching hub, etc., you can use the MAC Control Registers and Status Registers to trigger reads and writes through the Station Management Data Interface. For details, see 16.4.5.5 Station Management Registers. 16.3.6.6 Reception packet alignment When storing Reception packets in the buffer, the Ethernet Controller can skip by the set byte count. By default, the Ethernet Controller does not skip Reception packets and these packets are on double-word boundaries. You can set the DMA Control Register to have the first buffer skip 13 Bytes. This function is convenient when aligning packets when internally necessary by handling IPs and decoding. 16-12 Chapter 16 Ethernet Controller 16.3.7 Memory configuration This subsection describes the data structure the PCI-mounted Ethernet Controller uses when exchanging data with the Host system. The data structures are stored in system memory. There are three basic data structures: • • • Frame descriptor Buffer descriptor Data buffer These data structures are used in the following manners: • • • Transmission queue: Reception queue: Buffer list: Listing the frame descriptors of packets ready for transmission Listing the frame descriptors of received packets Listing the frame descriptors that have unused buffers for receiving data Figure 16.3.1 shows an outline of each data structure. This subsection describes each data structure in detail. Depending on the type of data structure, some queues in use may include different information. Each following item will describes this in detail. During continuous polling operation, a queue never becomes empty once it is created. One frame descriptor is always appended to the end of a queue. This dummy frame descriptor is used in processes that generate a descriptor to be transmitted. For details, see 16.3.9 DMA Operation. To start transmission, the system sets the address of the first frame descriptor in the Transmission queue in the Transmission Frame Pointer Register. The Ethernet Controller transmits while tracing the Transmission queue, then updates the status of the transmitted packet. The owner bit of the Frame Descriptor Status Field and Frame Descriptor Control field indicates “Transmission complete”. This enables the system software to handle the queue in situations such as when releasing the buffer. The Ethernet Controller fetches the buffer from the buffer list, and then writes the new frame descriptor or new buffer descriptor in a free descriptor area. Subsection 16.3.9 DMA Operation. describes this. 16.3.7.1 Frame descriptor A frame descriptor consists of a pointer to the next frame descriptor in the queue, a System Data field, a Frame Length field, a Control field, and a Status field. Table 16.3.2 shows the frame descriptor format. Table 16.3.2 Frame Descriptor Format Byte 3 Byte 2 FDNext FDSystem FDStat FDCtl FDNext FDSystem FDStat FDCtl FDLength Next frame descriptor Frame system data Frame descriptor status Frame descriptor control Frame descriptor length FDLength Byte 1 Byte 0 Offset 00 h 04 h 08 h 0C h Address of the next frame descriptor in the queue Is used by the system or application software Status field of this frame descriptor Control field of this frame descriptor Field that expresses the length of this field 16-13 Chapter 16 Ethernet Controller The Ethernet Controller retains the Frame System Data field (FDSystem). The FDSystem field can be used by system or application programs. The initial value of the frame descriptor written to the Reception queue is fetched from the frame descriptor of the current buffer list. Depending on the queue type, the usage of the FDNext, FDCtl, FDStat, or FDLength fields varies. See the following items for an explanation. 16.3.7.1.1 FDNext field (next frame descriptor) The FDNext field stores a flag that indicates the end of list (EOL) or a pointer to the next frame descriptor in the same queue. The frame descriptor must be aligned to a 16-byte boundary. In other words, bits 0-3 of the valid pointer must be "0". 31 Pointer 16 15 Pointer 4 3 0 0 1 0 0 EOL Bit(s) 31:4 Mnemonic Pointer Field Name 28-bit Pointer Description 28 bit Pointer When EOL=0, the upper 28 bits of the address of the next frame descriptor in this queue is stored. Is fixed to 000 EOL 0: Pointer is valid. 1: End of list. You have to wait until this flag is cleared. 3:1 0 EOL End Of List flag Figure 16.3.4 FDNext Field Regardless of the queue type, by setting the EOL bit, you can use the FDNext field stop the list consumer (consumption side processing mechanism). The consumer must wait for the list producer (generation side processing mechanism) to clear the EOL bit and store a valid pointer. In the case of a buffer list queue, you can use the FDNext field to create a chain to the next buffer pool from any buffer pool. When not creating a buffer list chain, the software driver has to set its own address in the FDNext field. Doing so makes it possible for the Ethernet Controller to recheck so it can reuse the same buffer area. You can also set the EOL bit and stop the Ethernet Controller. 16.3.7.1.2 FDSystem field (frame descriptor system data) The FDSystem field is a 32-bit field that is reserved for use by the system software. You can use this field to store pointers to the information table, pointers to C++ virtual functions, etc. The Transmission queue does not use the FDSystem field. In the case of a Reception queue, the Ethernet Controller copies the content of the FDSystem field of a frame descriptor that retains a buffer list to which is allocated the first buffer descriptor that stores the frame. 16-14 Chapter 16 Ethernet Controller 16.3.7.1.3 FDStat field (frame descriptor status) The Transmission queue or Reception queue uses the FDStat field to display the transmission/reception complete status. For the meaning of each Status bit, see the descriptions of the TX_Stat Register and Rx_Stat Register in subsection 16.4.5 MAC Control, Status Register group. The reception empty buffer list does not use the FDStat field. 16.3.7.1.4 FDLength field (frame descriptor length) The Transmission queue does not use the FDLength field. In the case of the Reception queue, the Ethernet Controller sets the FDLength field to the total packet length. In the case of a buffer list, the FDLength field is used to count the number of empty buffer descriptors allocated to the queue. The Ethernet Controller accesses the buffer list frame descriptor through the Buffer List Frame Pointer Register. When the Ethernet Controller encounters a buffer that it does not own, it sets the BL_Ex bit of the Interrupt Source Register and then waits for the system to clear it. The Ethernet Controller treats the FDLength field value as the upper limit, then reads the buffer descriptor. As the Ethernet Controller nears the end of the list, it reads out the next frame descriptor that the FDNext field indicates, as described in 16.4.3.8 Free Descriptor Area (FDA) Register. 16-15 Chapter 16 Ethernet Controller 16.3.7.1.5 FDCtl field (frame descriptor control) This item shows the FDCtl field configuration and application. The Transmission queue or Reception queue uses the COwnsFD bit to synchronize the Ethernet Controller and System process. The Transmission queue or buffer list uses the FrmOpt field. The Transmission queue or Reception queue uses the BDCount field (the buffer list uses the Frame Descriptor Length field (FDLength) to enable the use of buffer pools larger than the BDCount field permits). For each reception packet, an excessive buffer descriptor error is issued when more than 28 buffer descriptors are used. 15 COwnsFD 14 FrmOpt 10 9 Reserved 5 4 BD Count 0 Bit(s) 15 Mnemonic COwnsFD Field Name Frame Descriptor Owner Description COwnsFD 1: The Ethernet Controller owns the frame descriptor after the system sets the COwnsFD bit. 0: The system owns the frame descriptor after the Ethernet Controller clears the COwnsFD bit. Frame Option Control option for each frame (see the following description) BDCount This is the number of allocated buffer descriptors (1-28). 14:10 4:0 FrmOpt BDCount Frame Option Buffer Descriptor Count Figure 16.3.5 FDCtl Field The Transmission queue uses the FrmOpt field and sets the transmission characteristics of each packet. • • • • 10000 01000 00100 00010 Big Endian order Issue interrupt after transmission Do not add CRC For short frames, do not add PAD You can use combinations of the above bits to set various transmission characteristics. For example, "01110" means "Little Endian, issue interrupt after transmission, no CRC, no padding for short packets". In applications such as hubs where transmission packets are being received from both Big Endian and Little Endian transmission sources, controlling Big Endian for each packet is useful. In computer applications, it is easier to use the global Big Endian control bit described in 16.4.3.1 DMA Control Register. Unless you set a global enable bit like that described in 16.4.3.6 Reception Fragment Size Register, the Reception buffer list uses the option set in the FrmOpt field to control packing and the endian. 16-16 Chapter 16 Ethernet Controller • • 10000 00001 Big Endian order Enables packing for this frame's buffer, ignores any global enable bit When packing is enabled, the RxFragSize Register controls the packing algorithm. 16.3.7.2 Buffer descriptor Each buffer descriptor consists of a pointer to the data buffer, a control byte, a status byte, and a 2-byte Buffer Length field. Table 16.3.3 indicates the buffer descriptor format. Table 16.3.3 Buffer Descriptor Format Byte 3 BDCtl BuffData BDCtl BDStat Buff Length Byte 2 BuffData BDStat Buffer Data Pointer Buffer Descriptor Control Buffer Descriptor Status Buffer Length Byte 1 BuffLength Byte 0 Offset 00h 04h Address of the buffer that stores data (32 bits) Control of this buffer descriptor Status of this buffer descriptor Field that expresses the length of this buffer When a buffer is listed in the buffer list, the BuffData field indicates the buffer head and the BuffLength field indicates the size of buffers allocated as unused buffers. When the buffer is used in the Transmission queue or Reception queue, the BuffData field indicates the descriptor head and the BuffLength field indicates the data length. When a buffer is placed in the buffer list, the system software is responsible for allocating the Buffer Length field and setting the size. Similar to the frame descriptor, usage of the BDCtl field or BDStat field varies depending on the queue type. Note: As shown in step 4 of 16.3.8.4 Frame transmission procedure, more than 8 bytes of data is required as a Transmission packet data. One Transmission packet cannot consist of multiple data buffers, so you have to implement your design so the BuffLength (buffer length) total is 8 bytes or more. 16-17 Chapter 16 Ethernet Controller 16.3.7.2.1 BDCtl field (buffer descriptor control) The transmission queue does not use the BDCtl field. In the case of the reception queue, the number of buffer descriptors per buffer area is set in the BDCtl field. The first buffer descriptor in a frame is number 0, and the subsequent buffer descriptors are number 1 and number 2. 7 COwnsBD 6 RxBDSeqN 0 Bit(s) 7 Mnemonic COwnsBD Field Name Buffer Descriptor Owner Description COwnsBD 1: The Ethernet Controller owns the buffer descriptor. When the system sets the COwnsBD bit, the buffer can freely receive data. 0: The system owns the buffer descriptor. When the Ethernet Controller clears the COwnsBD bit, it indicates that the buffer is full. RxBDSeqN After receiving data, this field indicates the running number of this buffer in the current buffer area. 6:0 RxBDSeqN Reception Buffer Descriptor Number Figure 16.3.6 BDCtl Field In an empty buffer list, the BDCtl field is used to record buffer ownership. This makes it possible to allocate the buffer descriptor and synchronize release of the buffer. This also prevents the Ethernet Controller from using the buffer in a loop before the system empties the buffer. 16-18 Chapter 16 Ethernet Controller 16.3.7.2.2 BDStat field (buffer descriptor status) In the case of a transmission queue, the Ethernet Controller does not use the BDStat field. In the case of a reception queue, the BDStat field is used as the buffer ID. This value is copied from an empty buffer queue. 7 RxBDID 0 Bits 7:0 Mnemonic RXBDID Field Name Reception Buffer Descriptor ID Description RXBDID Value of the buffer descriptor identification number Figure 16.3.7 BDStat Field In the case of an empty buffer queue, the BDStat field is used to hand the buffer descriptor identification number to the Ethernet Controller. Note: You can only apply buffer descriptor identification numbers freely if there are no more than 256 buffers in a single buffer pool. 16-19 Chapter 16 Ethernet Controller 16.3.8 MAC operation This subsection describes MAC operation in detail with respect to the following content: • • • • • • • • • Format of MAC frames and packets Initializing MAC Access MAC Registers Frame transmission procedure Frame reception procedure Operation of the address recognition circuit (ARC) Pause operation in full duplex transfers Signaling transmission/reception errors Accessing station management data 16.3.8.1 Format of MAC frames and packets Figure 16.3.8 shows the format of IEEE 802.3 Ethernet packets. Standard packets have the following fields. Transmission Packet (Encoded in media by MAC transmission part_ Added by MAC Tx Part Deleted by MAC Rx Part Preamble 7 Bytes 1 Byte ... 1 Byte 1 Byte 6 Bytes 6 Bytes SFD Recipient Address Tx Data Frame (Transmitted by MAC Client) Rx Data Frame (Transmit to MAC Client) Sender Address Frame Length, Frame Type Upper 1 Byte Lower LLC Data User Pad MSB 4 Bytes Added by MAC Tx Part Deleted by Rx Part CRC (FCS) LSB Rx Packet (Received from media by MAC Rx Part) 1 Byte 0-1500 Bytes 0-46 Bytes Figure 16.3.8 Ethernet Packet Frame Fields • Preamble— repeat the same byte 7 times Each byte is fixed to 10101010 and is transmitted from left to right. The preamble is sometimes shortened during transmission and is not necessary when receiving data. Start Frame Delimiter (SFD)— 1 Byte The SFD is fixed to 10101011 and is transmitted from left to right. It is necessary when receiving data. Recipient address— 6 Bytes This is a unicast or multicast address. ARC can use the recipient address and can freely perform address filtering. Sender address— 6 Bytes MAC does not check the sender address. However, to make the sender address a valid station address, the first bit (LSB) of the first Byte transmitted must be “0”. Frame length or frame type— 2 Bytes Is transmitted upper byte first. In the IEEE802.3 standard, a value of 1500 or less is defined as the frame length, and any value greater than 1535 is defined as the frame type. If the value is 1500 or less, it indicates the byte count of the logic link control (LLC) data in the Data field. MAC recognizes 8808h as the MAC control frame and specially recognizes 8100h as a tagged VLAN frame. • • • • 16-20 Chapter 16 Ethernet Controller • • • Logic link control (LLC) data— 0-1500 Bytes LLC data consists of two fields: User Data and Pad Data. User Data— 0-1500 Bytes Pad Data— 0-46 Bytes When the user data is less than 46 Bytes long, MAC can add padding bytes and make the LLC data 46 Bytes long. Cyclic redundancy check (CRC)— 4 Bytes Also referred to as the frame check sequence (FCS), this value is calculated from all other fields except the preamble, SFD, and CRC itself. The preamble, SFD, pad data, and CRC are added on by the transmission side. You can also pad data using the software. CRC can use the Transmission Control Register to suppress padding. You can use the Reception Control Register to control deletion of CRC. You can delete pad data using either the DMA engine or the software driver. Except for CRC, the MAC transmits each byte starting from the least significant byte. In this document, all bytes transmitted or received are collectively referred to as “packets”. The term “frame” refers to a part that you provide during transmission or a part that is provided to you during reception. Standard IEEE802.3 frames are transformed by various factors and options. • Depending on the PHY, there are cases where the preamble length is not 7 Bytes. Sometimes a repeater shortens the preamble. The transmission part sends the preamble in a standard format, but the reception part does not care even if there is no preamble or the preamble is more than 7 Bytes long. SFD follows the preamble. When in the Short Packet mode, LLC data less than 46 Bytes long is allowed. In this case, there are options for suppressing padding when transmitting data or for allowing the reception of short packets. When in the Long Packet mode, LLC data larger than 1500 Bytes is allowed. There is an option for allowing the reception of long packets. There is an option for suppressing the addition of CRC fields. There is also an option for allowing the reception of packets that do not have a valid CRC field. • • • • • 16-21 Chapter 16 Ethernet Controller 16.3.8.1.1 Format of recipient addresses Bit 0 of a recipient address specifies the address type. This bit indicates whether the address is an individual address or a group address. Group addresses are also referred to as multicast addresses. Individual addresses are also referred to as unicast addresses. Broadcast addresses are special group addresses that are FF-FF-FF-FF-FF-FF hexadecimal addresses. Bit 1 distinguishes locally managed addresses from globally managed addresses. If an address is managed globally (universal), bit 1 is set to "0". If an address is allocated locally, bit 1 is set to "1". Bit 1 is set to "1" for broadcast addresses. Recipient address (first Byte) 7 Rest 2 1 U/L 0 I/G : Type : Default Bit(s) 7:2 1 Mnemonic Rest U/L Field Name Remaining Bit Universal/Local Description Rest Remaining bits of the first Byte are the recipient bits. U/L 0: Universal address 1: Local address I/G 0: Individual address 1: Group address 0 I/G Individual/Group Figure 16.3.9 Format of Recipient Addresses 16.3.8.1.2 Special flow control recipient address The IEEE802.3 standard specially prescribes a recipient address of 01-80-C2-01-00-01 for PAUSE manipulation packets to realize full duplex flow control. In order for the MAC to receive packets including the special recipient address for PAUSE manipulation, you have to set the address in one entry in ARC memory, enable that entry, and then activate ARC itself. The details are described in the following paragraphs. However, part of the ARC entry uses the SdPause bit of the Transmission Control Register and is also used when generating flow control frames. 16-22 Chapter 16 Ethernet Controller 16.3.8.2 Initializing MAC After powering up or after performing reset, the MAC Control Status Register is initialized as described in section 16.4 Registers. The transmission collision count and ARC data is not initialized when you power up or reset the Ethernet Controller. The transmission collision count is reset when a new packet is transmitted. Initialize ARC memory before enable ARC. 16.3.8.3 MAC Register access Access to the MAC Register is controlled through the PCI Bus Interface. For details on read access and write access of the register, including the MAC Control Register, see 16.3.9 DMA operation. 16.3.8.3.1 Clearing special registers The Lost Packet Error Count Register is cleared when it is read. This makes it possible to synchronize it to software drivers that tabulate the total error count. The Transmission Status Register and Reception Status Register are cleared at the beginning of the next packet. Therefore, values read from the Register Interface may not be stable. These register values are stored in the FDStatus field of the frame descriptor in memory for each transmission or reception packet. You have to use the software to check the status value retained in the system data structure. 16.3.8.4 Frame transmission procedure (1) To transmit a frame, the Transmission Enable bit (TxEn) of the Transmission Control Register must be set, and the Transmission Halt Request bit (TxHalt) must be cleared. Furthermore, the Halt Transmission Immediately bit (TxHalt) and the Halt Request bit (HaltReq) of the MAC Control Register must be cleared. Usually, the above conditions (such as storing a valid frame descriptor address in the Transmission Frame Descriptor address) are set after initializing the DMA Controller. In this way, MAC instructs the DMA engine to transmit a frame to MAC Transmission FIFO. At this time, the DMA Transmission Controller controls transfers to the MAC Transmission FIFO. (2) The MAC Transmission Block starts transmitting data in the FIFO. However, the first 64 Bytes are held in the FIFO until the net is fetched. Then, the MAC Transmission Block requests the next data and continues to transmit until the DMA Transmission Controller indicates the end of transmission data. The MAC Transmission Block generates pad bytes when necessary, adds CRC to the end of a packet, then ends transmission. The MAC Transmission Block will then set the Transmission Complete bit (Comp) of the Transmission Status Register to signal that transmission has ended. Finally, depending on the Interrupt Enable Register settings, an interrupt may occur. (3) Data transfer via the MII Interface is driven by a 25 MHz or 2.5 MHz MII Transmission Clock (Tx_clk). 16-23 Chapter 16 Ethernet Controller (4) The MAC Transmission Block must not start transmitting to the net until 8-byte data is stored in the MAC Transmission FIFO. The first 8 bytes transmitted are the preamble and Start Frame Delimiter (SFD), so the allowable DMA latency when starting transmission is 16-byte time. The DMA Transmission Block does not transmit data to the MAC Transmission FIFO until either the entire packet is stored in the DMA Transmission buffer or the byte count set in the Transmission Threshold Register is stored in the DMA Transmission buffer. If a Transmission Underrun error is generated, you can avoid an underrun by increasing the setting of the Transmission Threshold Register. (5) The MAC Transmission Block performs a parity check. If a Parity error is generated, the MAC Transmission Block aborts transmission, then resets the FIFO and sets the Transmission Parity Error bit (TxPar) of the Transmission Status Register. 16.3.8.4.1 IEEE 802.3 transmission protocol The MAC Transmission Block consists of three State Machines. The Main State Machine executes MAC layer protocol and controls the other two State Machines (Gap State Machine and Back Off State Machine). The Gap State Machine fetches the timing gap between packets, then counts them. The Back Off State Machine executes the Back Off or Resend algorithms of the 802.3 CSMA/CD protocol. 16.3.8.4.2 Interpacket gap (IPG) timing When in the half duplex mode, the Gap State Machine measures 96-bit time from the point when the Carrier Sense signal is deasserted. This time becomes the interpacket gap. Gap State Machine splits the 96-bit time into 64-bit and 32-bit time, then precisely controls the timing at which transmission starts. If there is traffic with the first 64-bit time, the Gap State Machine resets the counter to 0, then starts counting from the beginning. If there is traffic during the remaining 32-bit time, the count continues as is and signals that 96-bit time has elapsed. When in the full duplex mode, Gap State Machine starts counting along with transmission completion, then signals transmission completion after 96-bit time passes. 16.3.8.4.3 Collision process and back off When the Main State Machine detects a collision, it starts up the counter of the Back Off State Machine, waits for the Back Off time to elapse, then attempts to resend the packet that caused the collision. The Back Off time is a multiple of 512-bit time (including × 0). When a collision happens in the same packet, the Main State Machine advances the internal Trial Count counter by 1 each time this happens. Then, it causes an 11-bit pseudorandom number generator to generate random numbers and output a subset of it. Each time this is retried, the subset increases in size by 1 bit. In this way, the following formula is invoked by the hardware. 0 ≤ r < 2k k = min(n, 10) 16-24 Chapter 16 Ethernet Controller r is the slot time count that the MAC must wait when a collision occurs. n is the number of retransmission attempts. For example, after the first collision, n=1 and r is a random number between 0 and 1. In this case, the pseudorandom number generator is 1-bit wide and generates either 0 or 1 as a random number. For the second and subsequent attempts, r is a random number between 0 and 3. In other words, State Machine is n=2, so the pseudorandom number generator looks at the lower 2 bits and generates random numbers between 0 and 3. To reduce the statistical probability of similar random number sequences being generated between multiple MACs using the same random number generator, MAC uses the CRC value of the packet that was previously transmitted successfully to recalculate a basic random number sequence. 16.3.8.4.4 MII transmission operation If there is data to be transmitted, there is no problem with the interpacket gap, and MII preparations are complete (in other words, there are no collisions for full duplex or for half duplex there are no collisions and there is no CrS),MAC transmits the preamble and SFD. After that, unless Short Packet transmission is enabled, MAC transmits 64 Bytes of data regardless of the packet length. If the packet length is less than 64 Bytes, the MAC Transmission Block pads the LLC Data field with zeroes. If CRC generation is enabled, the MAC Transmission Block appends CRC to the end of the packet. If a collision occurs during the first 64 Bytes (7-Byte preamble + SFD + 56-Byte frame), the MAC Transmission Block aborts transmission and transmits a jam pattern (a 32-bit sequence of ones). In this case, it advances the transmission retry counter by 1, then transfers control to the Back Off State Machine. After the Back Off time elapses, the MAC Transmission Block tries to resend the packet if there is no problem with the interpacket gap. If no collisions occur, the MAC Transmission Block transmits the rest of the packet. If the first 64 Bytes are transmitted without any collision, the MAC Transmission Block provides the DMA engine with permission to overwrite these 64 Bytes. After transmitting the 64 Bytes, the MAC Transmission Block transmits the reset of the packet and appends CRC to the end of it. If an underrun occurs in the FIFO or there is a collision that occurs more than 16 times, the MAC Transmission Block makes no attempt to resend the packet and makes preparations to transmit the next packet registered in the queue. If a transmission error occurs, the MAC Transmission Block sets the appropriate bit of the Transmission Status Register. Also, depending on the Transmission Control Register settings, an interrupt may occur. Tx_clk Tx_en TxD[3:0] CrS Col Figure 16.3.10 Transmission with no Collisions 16-25 Chapter 16 Ethernet Controller Figure 16.3.10 shows the transmission timing of packets with MII. Tx_end and TxD[3:0] change after the rising edge of Tx_clk, then are stable until sampled at the next rising edge. When in the full duplex transfer mode, CrS and Col become undefined. When in the half duplex transfer mode, CrS must be asserted after Tx_en and must be asserted during packet transmission. If CrS is deasserted during packet transmission, a Carrier Lost error will occur. Col retaining the “L” setting indicates that no collisions have occurred. Tx_clk Tx_en TxD[3:0] CrS Col Figure 16.3.11 Transmission when Collision Occurred in the Preamble Figure 16.3.11 shows the method the Transmission Block uses to handle collisions. It adds 4-Byte jam data before deasserting Tx_en. If a collision occurs in the preamble, the jam data is added on after SFD ends. P1 P2 P3 P4 P5 P6 P7 SFD J1 J3 J4 16.3.8.5 Frame reception procedure To receive a frame, the Reception Enable bit (RxEn) of the Reception Control Register must be set, and the Reception Halt Request bit (RxHalt) must be cleared. Furthermore, the Halt Transmission Immediately bit (TxHalt) and the Halt Request bit (HaltReq) of the MAC Control Register must be cleared. Usually, before programming the above registers, the DMA Controller is initialized. This allows the DMA Reception Controller to control transfers from the MAC Reception FIFO. For the method of initializing data structures to enable reception, see the descriptions in subsections 16.3.9 DMA Operation and 16.3.9.5 Receiving frames. When enabled, the MAC Reception Block always monitors the data stream coming in from MII. When in the Loop-back mode, the data stream is inputted from the MAC Transmission Block via MII. The MAC Reception Block receives a 0- to 7-Byte preamble and the Start Frame Delimiter (SFD). The MAC Reception Block checks whether the first nibble received is a preamble, then checks whether there is an SFD in the first 8 Bytes of the packet. Except for the preamble, the MAC Reception Block treats a packet that does not have the SFD as its first Byte as a packet fragment and deletes it. 16-26 Chapter 16 Ethernet Controller Following after the SFD is the first nibble of the recipient address. The MAC Reception Block generates parity when it receives 1 Byte of data, then stores it with the data in the MAC Reception FIFO. After that, it signals the existence of reception data. The MAC Reception Block collects subsequent nibbles into Byte units and stores them in the appropriate FIFO. The DMA Reception Controller reads them from the MAC Reception FIFO in Byte units, performs a parity check, and then transfers the data to the DMA Reception buffer. When either the MAC Reception FIFO becomes empty or it transmits the last Byte of a packet and ends transmission, the MAC Reception Block signals this fact. If PHY asserts both the Rx_DV and Rx_er signals while receiving a frame, the MAC Reception Block reports that a CRC error occurred in the current packet. When the MAC Reception Block receives the recipient address, the ARC tries to recognize the received address. If the ARC refuses a packet, the MAC Reception Block signals this fact and the DMA Reception Block destroys the data packet. 16.3.8.6 Address Recognition Circuit (ARC) operation To read from or write to ARC memory, first the system software sets the ARC Address Register, and then it reads and writes the ARC Data Register. All Bytes are written to regardless of the Byte Enable status. To write either the upper 2 Bytes or lower 2 Bytes of a double word, the driver software has to handle the data to correctly and simultaneously write 2 adjoining Bytes. The Ethernet Controller does not support Read, Modify, or Write cycles to internal DMA RAM. Figure 16.3.12 shows how the MAC reads entries from the ARC. ARC entries are in the Big Endian Byte order. In other words, if #0-0 is the first Byte of the first entry, then #0-5 is the sixth and therefore last Byte of the first entry. After entry #20 are the 2 Bytes Rsv-2 and Rsv-3, then the 2 double words MC#1 and MC#2. MC#1 and MC#2 cannot be used by ARC operation, but they are used when generating the MAC control frame. Item 16.3.8.7 Pause operation during full duplex transfer describes this. Byte 3 #0-0 #0-4 #1-2 #2-0 #2-4 #3-2 #4-0 #4-4 #5-2 #18-0 #18-4 #19-2 #20-0 #20-4 MC#1-0 MC#2-0 Byte 2 #0-1 #0-5 #1-3 #2-1 #2-5 #3-3 #4-1 #4-5 #5-3 #18-1 #18-5 #19-3 #20-1 #20-5 MC#1-1 MC#2-1 Byte 1 #0-2 #1-0 #1-4 #2-2 #3-0 #3-4 #4-2 #5-0 #5-4 #18-2 #19-0 #19-4 #20-2 Rsv-2 MC#1-2 MC#2-2 Byte 0 #0-3 #1-1 #1-5 #2-3 #3-1 #3-5 #4-3 #5-1 #5-5 #18-3 #19-1 #19-5 #20-3 Rsv-3 MC#1-3 MC#2-3 00h 04h 08h 0Ch 10h 14h 18h 1Ch 20h ... 6Ch 70h 74h 78h 7Ch 80h 84h Figure 16.3.12 ARM Memory Map 16-27 Chapter 16 Ethernet Controller 16.3.8.7 Pause operation during full duplex transfer 16.3.8.7.1 Local Pause operation To enable Pause operation during full duplex transfer, you have to set a special multicast address for the MAC control frame in ARC memory and set the corresponding bit in the ARC Enable Register. You can store the special multicast address for the MAC control frame anywhere in ARC memory, but there are cases where you will have to be careful of the storage location to optimize the usage efficiency of ARC memory (see 16.3.8.7.2 Remote Pause operation). The MAC reception circuit recognizes full duplex Pause operation when the following conditions are met. • • • • A particular value (0x8808) is set in the Frame Length/Frame Type field of the MAC control frame. The ARC recognizes a packet. The packet is 64 Bytes long. The Operation field specifies Pause operation (0x0001). After recognizing full duplex transfer Pause operation, the MAC reception circuit loads the operand values into the Pause Count Register then instructs both the MAC and DMA engines to pause when processing of the current packet ends. If no packet is currently being processed, then both engines immediately pause. The pause circuit manages the Pause Count Register and counts down the pause time. When the pause time count becomes 0, the pause circuit issues an instruction to end pausing and operation of the transmission circuit resumes. If another Pause operation is recognized during Pause operation, the Pause Count Register is reset by a new operand value. An operand value of 0 will abort the Pause operation currently in progress. 16.3.8.7.2 Remote Pause operation The program can freely set the MAC control frame of the Ethernet Controller, so even when performing Pause operation or using MAC control in the future, it will still support this function. For remote Pause operation or transmission of other MAC control frames, follow the procedure below. • • • Set the recipient address to #0 of the ARC memory. Set the sender address to #1 of the ARC memory. To #20 of the ARC memory set the special MAC control type value (0x0808), the Pause operation opcode (0x0001), and the operand value (pause time: 0x0000 to 0xFFFF). Write 0x0000 to the 2 Bytes after ARC #20. Write 0x0000_0000 to MC#1 and MC#2. Then, remote Pause transmission is complete at one bus operation. Write to the Transmission Control Register and set the SdPause bit. • • 16-28 Chapter 16 Ethernet Controller Usually, the recipient address is the special multicast address of the MAC control frame and the sender address is the local station address. You can enable these ARC entries to be used for address filtering. Since ARC entry #20 does not include a valid network address, you must not enable it when using it as part of a flow control transmission. When transmission ends, the transmission status is written in the Transmission Control Frame Status Register. If the End of Transmission Control bit (bit 10) of the Interrupt Enable Control Register is set, the DMA engine will issue interrupts. 16.3.8.8 Error display The Error flags and Abnormal Operation flags are divided into those that are set during transmission and those that are set during reception. These flags are each set in the Transmission Status Register (Tx_Stat) and the Reception Status Register (Rx_Stat), respectively. Also, the Missing Packet Count Register (Miss_Cnt) contains the number of deleted packets and is used to manage the system network. See 16.4 Registers for the format of these flags and the counter. 16.3.8.8.1 Transmission error display Transmission operation ends when an entire packet (preamble, SFD, data, CRC) is transferred to a physical medium without any collisions occurring. If an internal error or network error occurs, the MAC Transmission Block reports the content of that error. If one of the states described below occurs, transmission is aborted and the Status bit is set. After the Status bit is set, an interrupt occurs if the corresponding Interrupt Enable bit in the Transmission Control Register is set. Table 16.3.4 Transmission Error Display (1/2) Error Display MAC Transmission Parity Error Description The data that the DMA Transmission Controller transmits to the MAC Transmission FIFO via DII is protected by the Parity bit. If a Parity error occurs, the DMA Transmission Controller halts transmission if the TxParErr bit of the Transmission Status Register is set and interrupts are enabled. The MAC Transmission FIFO has a capacity of 80 Bytes so even if a collision occurs, it holds 64 Bytes for retransmission and can support DMA latency up to 1.28 µs (128-bit late time=16-Byte time). The DMA Transmission Controller has sufficient bandwidth, so if an underrun occurs in the MAC Transmission FIFO, this usually indicates that there is a problem with the latency of the PCI Bus. When such an underrun occurs, the Underrun bit of the Transmission Status Register is set. Carrier Sense (CrS) is monitored from the beginning of the Start Frame Delimiter to the last transmission Byte. This error indicates that transmission was not aborted even though CrS either does not exist or was lost due to a network fault or other cause. When in the Loop-back mode, Tx_en drives CrS. With full duplex transfers, Carrier Sense Lost is not asserted since CrS is not handed off to the Transmission Block. When Carrier Sense is lost, the LostCrS bit of the Transmission Status Register is set. If the MAC encounters a collision during transmission, it backs off, updates the collision counter, and then tries to retransmit the data after a specific time interval elapses. When the counter becomes “16”, transmission is aborted if transmission is attempted 16 times and a collision occurred every time. A network fault could cause excessive collisions. When excessive collisions occur, the ExColl bit of the Transmission Status Register is set. MAC Transmission FIFO Underrun Carrier Sense Lost Excessive Collision 16-29 Chapter 16 Ethernet Controller Table 16.3.4 Transmission Error Display (2/2) Error Display Late Collision (Collision Outside Window) Description When the network is operating properly, the MAC detects a collision in the first 64 Bytes of the transmitted data. When a collision occurs after this time elapses (when one occurs outside the window), this means that there is a network fault. In this case, the LateColl bit of the Transmission Status Register is set and packet transmission is aborted. In other words, transmission is not retried after a late collision occurs. When in the 10 Mbps mode, “heartbeat” is checked at the end of the transmitted packet. A heartbeat is a short collision signal that occurs within the first 40-bit late time period after the transmission ends. When a heartbeat is not detected, the SQErr bit of the Transmission Status Register is set. This state indicates that it is necessary to defer transmission since the transmission route was already in use when packet transmission was attempted. This is not an error, but unless an error occurs, this state is used to indicate the state of the transmission route. When the Defer state occurs, the TxDefer bit of the Transmission Status Register is set. There are cases where it is necessary to defer transmission since the transmission route was already in use when the MAC attempted to transmit a packet the first time. If the deferral time is longer than MAX_DEFERRAL (2.4288 ms when in the 10 Mbps mode, 0.24288 ms when in the 100 Mbps mode) and the NoExDef bit of the Transmission Control Register is disabled, then the ExDefer bit of the Transmission Status Register is set. When the Excessive Deferral state occurs, transmission is not aborted, but a network fault may have occurred. It is possible to transmit an Excessive Deferral interrupt before packet transmission is complete and display it in the IntExDefer bit of the Interrupt Factor Register. When attempting to transmit a packet, there are cases where the MAC has to defer transmission since the reception of a MAC control frame including Pause operation caused the Transmission Block to stop transmitting. This is not an error, but this state is reported to indicate the network status. Marking the aborted packet sets the Paused bit of the Transmission Status Register for the final packet before Pause becomes effective to complement the software process. SQE Defer Excessive Deferral Transmission PAUSE 16-30 Chapter 16 Ethernet Controller 16.3.8.8.2 Reception error display After detecting the Start Frame Delimiter (SFD), the MAC writes the data received from the physical medium to the MAC Reception FIFO. The MAC Reception Block checks whether an overflow occurred in the MAC Reception FIFO during reception. Also, when reception ends, it checks for external errors (Alignment, CRC, Maximum Frame Length Exceeded). Table 16.3.5 Reception Error Display Error Display MAC Reception Parity Error Alignment Error Description Once data enters the MAC Reception FIFO, it is protected by the Parity bit. If the RxParErr bit of the Reception Status Register is set and interrupts are enabled when a Parity error occurs, the MAC Reception Block aborts reception. After reception ends, the MAC Reception Block checks whether reception packets are properly framed at the 8-bit boundaries. If they are not properly framed and CRC is invalid, the data is corrupted as it passes along the network and the MAC Reception Block signals an Alignment error. The MAC Reception Block also signals a CRC error at this time. The AlignErr bit and CRCErr bit of the Reception Status Register are set. After reception ends, if the MAC Reception Block checks CRC and there was an error, it signals that error. The CRC error, Frame Alignment error, and the Maximum Frame Length Exceeded error are network errors that the Reception Block detects. These errors could be detected in the following combinations. CRC Error • • • • Overflow Error CRC error only Alignment error and CRC error only Maximum Frame Length Exceeded error and CRC error only Alignment error, Maximum Frame Length Exceeded error, and CRC error During reception, the data is first stored in the MAC Reception FIFO, and then is transferred to the DMA Reception Controller. If the MAC Reception FIFO becomes full due to a cause such as excessive system latency, then the MAC Reception Block sets the Overflow bit of the Reception Status Register. The MAC Reception Block checks the packet length when reception ends. If it receives a frame that is longer than the maximum frame length of 1518 Bytes when the Long Frame mode is not enabled, the MAC Reception Block signals this error. When PHY detects a media error such as a coding violation, it signals MAC by asserting Rx_er. When MAC acknowledges the assertion of Rx_er, it deletes the received packet. A CRC error is forcibly issued and reception of the packet is terminated. There are also cases where an Alignment error or Minimum Frame Length error are detected. Maximum Frame Length Exceeded Error MII Error 16.3.8.9 Accessing station management data Following is the basic sequence of events when accessing station management data. • • • • • The system software checks the Busy bit and confirms that MD is not Busy. For a write operation, you have to write data to the Data Register before setting up the Control Register. The software writes the MDC address, the Read or Write flag, and sets the Busy bit. The Ethernet Controller ends operation then clears the Busy bit. In the case of a read operation, the system software can read the Data Register after it detects that the Busy bit was cleared. 16-31 Chapter 16 Ethernet Controller 16.3.9 DMA operation This subsection describes the programming of the PCI-mounted Ethernet Controller. The programming details differ slightly depending on whether you select batch processing as the control mode or select Continuous Polling. Unless otherwise stated, the descriptions in this subsection assume the use of Continuous Polling. Following is the structure of this subsection. • • • • • • Initial setup of PCI Initial setup of DMA and MAC Initializing the queues Transmitting frames Receiving frames Handling interrupts Note: If you use the SRAM in the DMA Controller without initializing it, Packet errors may be mistakenly detected during packet reception. Implement the following initialization procedure to prevent this phenomenon from occurring. 1) Prepare for initial setup Set (write "1" to) the TestMode bit (bit 13) of the DMA_Ctl (0x00) Register. 2) Initialize on-chip memory Implement the following on all addresses (0x000-0x3FF) of the on-chip SRAM. (i) Set the on-chip SRAM address in ARC_Adr (0x60). (ARC_Loc field: 0x0000x3FF) (ii) Write initialization data 0x0000_0000 to ARC_Data (0x064). (32-bit write) You can implement the following to confirm the written data. Read ARC_Data(0x64). (32-bit read) 3) Cancel the Test mode Reset (write "0" to) 1 in the TestMode bit (bit 13) of the DMA_Ctl (0x00) Register. 16-32 Chapter 16 Ethernet Controller 16.3.9.1 Initial setup of PCI When initially setting up the system, you can use the IDSel signal to write to the PCI Configuration Register. This makes it possible for the system to map the Ethernet Controller to a memory boot address space then transfer data to the boot address space to output the IDSel signal. Registers such as the following require initial setup. • • • • PCI I/O Base Address Register or PCI Memory Base Address Register: To map the register to an I/O address space or memory space PCI Command Register: To customize the PCI function There are also situations where the following register requires initial setup. PCI Interrupt Register: To customize latency or signal interrupt factors to external pins 16.3.9.2 Initial setup of DMA and MAC After initially setting up the PCI, the DMA Control Register and MAC Control Register are usually mapped to an I/O address space or memory address space and are available for reading and writing. Registers such as the following require initial setup. • • • • • • • • • • DMA Transmission Frame Pointer: To start transmission DMA Buffer List Frame Pointer: To provide buffer for receiving data DMA Free Descriptor Area Base Register or DMA Free Descriptor Area Size Register: To initialize the reception signaling area DMA Transmission Polling Control Register: To customize polling of transmission packets DMA Transmission Threshold Register: To customize transmission latency handling MAC Transmission Control Register: To change the default transmission settings MAC Reception Control Register: To change the default reception settings MAC ARC Control Register: To customize the recognition conditions of station addresses and multicast addresses MAC ARC Address Register and MAC ARC Data Register: To set the filtering of station addresses and other addresses MAC ARC Enable Register: To enable each ARC entry after setting up the ARC There are also situations where the following registers require initial setup. • • MAC Control Register: To customize the MAC configuration DMA Control Register: To customize the Burst size 16-33 Chapter 16 Ethernet Controller 16.3.9.3 Initializing the queues The system has to set up the transmission queue, buffer list, and reception descriptor area before starting up the Ethernet Controller. 16.3.9.3.1 Initializing the transmission queue The Transmission Block has two operation modes: Batch Processing and Continuous Polling. When in the Batch Processing mode, the system software prepares a link list of the frame descriptors to be transmitted. The final descriptor must have "1" set in the EOL (end of list) field. When the last frame descriptor is transmitted, the Transmission Frame Pointer Register reads EOL and transmission ends. To resume transmission after this, the system resets the Transmission Frame Pointer Register. When in the Continuous Polling mode, the system software also prepares a link list of the frame descriptors to be transmitted. However, the last frame descriptor is a dummy frame descriptor. The beginning of a link list is only a dummy frame descriptor, so it is okay for it to be empty. The system owns the dummy descriptor to prevent the Ethernet Controller from accessing it. Transmitting a new packet overwrites the dummy frame descriptor. This is explained in 16.4.4 Flow Control Register group. 16.3.9.3.2 Initializing the buffer list The buffer list queue is either a single frame descriptor or multiple frame descriptors combined into a link list containing a list of the empty buffer descriptors that is initialized. It is okay for the buffer list to have one of the following configurations. 1. One frame descriptor containing many free buffer descriptors 2. A link list of frame descriptors 3. Wrap-around queue in which the last frame descriptor points to the first frame descriptor In configurations 1 and 2 above, the EOL bit of the FDNext field is set while in configuration 3, the FDNext field of the last frame descriptor points to the first frame descriptor. You can use the Reception Fragment Size Register to globally pack a buffer. Also, you can use the Control field (FDCtl) of a frame descriptor to select whether to pack in buffer area units. Setting up the Buffer ID field when packing a buffer is useful in managing memory. For details on packing buffers, see 16.4.3.6 Reception Fragment Size Register, 16.4.3.8 Free Descriptor Area (FDA) Registers, and 16.3.7.2.1 BDCtl field (buffer descriptor control). 16.3.9.3.3 Initializing a reception descriptor area You can initialize a reception descriptor by writing in the Free Descriptor Area Base Register or the Free Descriptor Area Size Register. The Ethernet Controller starts writing to the reception queue in the reception descriptor area according to these registers. 16-34 Chapter 16 Ethernet Controller 16.3.9.4 Transmitting frames Paragraph 16.3.9.3.1 Initializing the transmission queue described transmission in a batch process. For each frame transmission batch, the system initializes the transmission queue and sets a Transmission Frame Pointer Register at the head of the queue. In the case of continuous polling transmission, the frame descriptor list ends at the dummy frame descriptor owned by the system. The Ethernet Controller enters the Polling mode when it reaches a dummy record. In this mode, the Ethernet Controller periodically checks the frame descriptor Control (FDCtl) field and waits for the system to set the COwnsFD bit. The Transmission Polling Counter Register controls the polling frequency. To transmit frames in the Continuous Polling mode, the system writes the frame descriptor of the frame to be transmitted at the end of the transmission queue. The system overwrites the old dummy frame descriptor, creates a new dummy frame descriptor, and sets the FDNext field of the old frame descriptor in a new dummy frame descriptor. After that, it sets the COwnsFD bit of the old frame descriptor and transfers ownership to the Ethernet Controller. 16.3.9.4.1 Signaling transmission completion The system can fetch transmission completion information in various ways. • • • Request an interrupt. Poll the FDCtl field of the transmitted frame descriptor and confirm system ownership. Poll the Transmission Frame Pointer Register. You can set interrupts to occur either at the end of each frame or at the end of selected frames. When polling the Transmission Frame Pointer Register, it has an invalid value (a value set in FDNext while EOL=1) in the Batch Processing mode or has a dummy frame descriptor address when in the Continuous Polling mode. 16.3.9.5 Receiving frames For the MAC to receive a frame, the system software has to perform the following operations. • • • As described in 16.3.9.3 Initializing the queues, initialize a free buffer list or free descriptor area. Write a dummy frame descriptor in a free descriptor area. Set the COwnsFD bit of the FDCtl field so the Ethernet Controller becomes the owner. Initialize Free Descriptor Area Base Register to the address of the dummy frame descriptor in the free descriptor area. There are two ways for the system software to get notification of a reception frame: • • Request an interrupt for each reception frame. Poll the dummy frame descriptor and check whether the COwnsFD bit is set. You can enable interrupts by setting the Reception Complete Interrupt Enable bit of the Reception Control Register. The system must perform the following processes after it receives a frame. • • Process the frame descriptor, and then release it for reuse. Release the buffer returned from the above protocol layer and add it to the free buffer list. 16-35 Chapter 16 Ethernet Controller 16.3.9.5.1 Processing reception frame descriptors Free descriptor areas are used by FIFOs. However, the frame processing and time required for returning the corresponding buffer differ depending on the application. Then, the frame descriptor mapped by the Ethernet Controller copies that content to a different area, the frame descriptor of the free descriptor area is released in the order received, and the copied descriptor contents are handed to the upper layer of the protocol stack. 16.3.9.5.2 Releasing buffers There are two methods of mapping a buffer: • • Start a new frame in a new buffer (Single Frame mode). Place several frames or parts of a frame in one buffer (Packed Buffer mode). The Control field of the Reception Fragment Size Register or Frame Descriptor controls the method of mapping the buffer. The Single Frame mode has the advantage of allowing easy memory management, but has the disadvantage of decreasing the memory usage efficiency. Conversely, the Packed Buffer mode has the advantage when considering memory usage efficiency, but has the disadvantage since memory management becomes complex. When in the Packed Buffer mode, multiple frames or parts of frames may be placed in the same buffer area, so you must keep several points in mind when managing the memory. The Ethernet Controller counts the number of buffers created in the same buffer area then provides that value as the RxBDSeqN value of the BDCtl field in the buffer descriptor. Then, the system software counts the returned fragments, confirms that all fragments were returned, then releases them. The buffer ID value (RxBDID) is copied from the buffer descriptor of the free buffer list queue to the buffer descriptor in the reception frame queue. You can use up to 256 buffer IDs. When you require more buffer IDs than that, there are several techniques you can use. For example, you can specify the buffer ID expansion bit in the FDSystem field. You can also use the upper bit of the buffer pointer. 16.3.9.6 Handling interrupts Interrupts generally use one common interrupt line. To confirm whether this PCI device is the interrupt source, use the system software to read the Interrupt Factor Register. Depending on the content of the Interrupt Factor Register, you may have to read other registers such as the Transmission Status Register or Reception Status Register. 16-36 Chapter 16 Ethernet Controller 16.4 Registers 16.4.1 Overview This subsection describes the Ethernet Controller registers you can access. These registers are grouped as follows below. • • • • PCI Configuration Register Group DMA Control, Status Register Group Flow Control Register Group MAC Control, Status Register Group During normal operation, once you finish setting them up, few registers require direct access. Transmission/Reception operation is performed using a cyclic queue with a ring-like structure. Control information and status information is transmitted by the data structures described in 16.3.7 Configuration. You have to initialize the DMA Control Registers before starting any transfer operation. You have to access the MAC Registers when it requires a special configuration such as address filtering by the ARC. When using an interrupt drive type, you have to access several of the DMA Registers or MAC Registers from inside the Interrupt Handler, enable or disable interrupts, check the interrupt factors, or clear the Interrupt Condition bit. Also, the Flow Control Register can use a driver to access them in order to monitor the run status of Pause commands issued from a local terminal or remote terminal. 16.4.1.1 Accessing registers Except for those that use part of RAM, the reserved bits of a register are initialized to "0" or "1". To maintain compatibility even if the method of using the registers changes in the future, do not change the values of the reserved bits when using the software to write to registers. Also, do not implement programming that depends on the values of the reserved bits. 16-37 Chapter 16 Ethernet Controller 16.4.1.2 Overview of PCI Configuration Registers Table 16.4.1 lists the name, mnemonic, address, size, and access type of each PCI Configuration Register. PCI Configuration Registers are used by standard Master/Slave PCI devices. Included in PCI Configuration Registers are Device ID Registers, Control Registers, registers that display status information, and registers that make various settings. These registers are setting during initialization. Table 16.4.1 PCI Configuration Registers Address 00h 02h 04h 06h 08h 0Ch 10h 14h 2Ch 2Eh 34h 3Ch 40h 44h Mnemonic Vend_ID Dev_ID PCI_Cmd PCI_Stat PCI_Clas PCI_Ctl IO_BaseA MLo_BaseA Sub_Vend_ID Sub_ID PCI_Cap_Ptr PCI_Int PM_Cap PM_CSR Register Name Vendor ID Register Device ID Register PCI Command Register PCI Status Register Class Code Register PCI Control Register I/O Base Address Register Memory Base Address Register Subsystem Vendor ID Register Subsystem ID Register PCI Function Pointer PCI Interrupt Register Power Management Function Power Management Control Status The address of a PCI Configuration Register is valid when the input signal IDSel is asserted. The addresses of DMA Registers and MAC Registers are valid when IDSel is not asserted and the upper bits of the addresses match either the I/O Base Address Register (IO_BaseA) or the Memory Base Address Register (MLo_BaseA). 16.4.1.3 Overview of DMA Control, Status Registers Table 16.4.2 shows the name, mnemonic, address, size, and access type of each DMA Control, Status Register. DMA Control, Status Registers control the transmission queue, reception queue, free buffer list, and free descriptor area. Registers for controlling the fragment size and polling rate are also available. Table 16.4.2 DMA Control, Status Registers Address 00h 04h 08h 0Ch 10h 14h 18h 1Ch 20h 24h Mnemonic DMA_Ctl TxFrmPtr TxThrsh TxPollCtl BLFrmPtr RxFragSize Int_En FDA_Bas FDA_Lim Int_Src Register Name DMA Control Register Transmission Frame Pointer Transmission Threshold Register Transmission Polling Control Register Buffer List Frame Pointer Reception Fragment Size Register Interrupt Enable Register Free Descriptor Area Base Register Free Descriptor Area Size Register Interrupt Function Register 16-38 Chapter 16 Ethernet Controller 16.4.1.4 Overview of MAC Control, Status Registers MAC layer registers are broken down into the Flow Control Register and MAC Control, Status Register groups. Table 16.4.3 shows the name, mnemonic, address, size, and access type of each Flow Control Register. Table 16.4.3 Flow Control Registers Address 30h 34h 38h Mnemonic PauseCnt RemPauCnt TxConFrmStat Register Name Pause Count Register Remote Pause Count Register Transmission Control Frame Status Register Table 16.4.4 shows the name, mnemonic, address, size, and access type of each MAC Control, Status Register. Similar to the ARC Control Register and Error Count Register, some registers are accessed by the system software driver when the MAC is activated. A standard DMA engine controls the MAC Transmission Control Register, MAC Transmission Status Register, MAC Reception Control Register, and MAC Reception Status Register after the system software driver sets them up. Table 16.4.4 MAC Control, Status Register Address 40h 44h 48h 4Ch 50h 54h 58h 5Ch 60h 64h 68h 7Ch Mnemonic MAC_Ctl ARC_Ctl Tx_Ctl Tx_Stat Rx_Ctl Rx_Stat MD_Data MA_CA ARC_Adr ARC_Data ARC_Ena Miss_Cnt Register Name MAC Control Register ARC Control Register Transmission Control Register Transmission Status Register Reception Control Register Reception Status Register Station Management Data Register Station Management Control, Address Register ARC Address Register ARC Data Register ARC Enable Register Missed Error Count Register MAC layer Control Registers include registers such as the Master MAC Control Register, Transmission/ Reception Control Register, and the ARC Control Register. 16-39 Chapter 16 Ethernet Controller 16.4.1.5 Register address maps Figure 16.4.1 through Figure 16.4.4 show the memory addresses of the PCI Configuration Registers, DMA Control, Status Registers, Flow Control Registers, and MAC Control, Status Registers. System memory addresses are listed in the Little Endian mode. Byte 3 Dev_ID PCI_Stat PCI_Clas PCI_Ctl Base_Cl BIST Sub_Cl Hdr_Typ Byte 2 Byte 1 Vend_ID PCI_Cmd Prog_IF Lat_Timr Rev_ID Cache_Sz Byte 0 00 04 08 0C 10 14 18 ... Sub_Vend_ID Reserved Reserved Reserved PCI_Int Max_Lat Min_Gnt PM_Cap PM_CSR Int_Pin Int_Line Cap_Ptr 2C 30 34 38 3C 40 44 IO_BaseA MLo_BaseA Reserved (MHi_BaseA) Reserved Sub_ID Figure 16.4.1 Address Map of PCI Configuration Registers Byte 3 Reserved Byte 2 TxFrmPtr Byte 1 DMA_Ctl TxThrsh TxPollCtl Byte 0 00 04 08 0C 10 14 18 1C FDA_Lim 20 24 Reserved Reserved BLFrmPtr Reserved Reserved FDA_Bas Reserved Reserved Int_Src RxFragSize Int_En Figure 16.4.2 Address Map of DMA Control, Status Registers 16-40 Chapter 16 Ethernet Controller Byte 3 Byte 2 Byte 1 Byte 0 30h 34h 38h Reserved Reserved Reserved PauseCnt RemPauCnt TxConFrmStat Figure 16.4.3 Address Map of Flow Control Registers Reserved Reserved Reserved Reserved Reserved Rx_Stat Reserved Reserved Reserved ARC_Data[3:0] Reserved Reserved Reserved Reserved Reserved MAC_Ctl Reserved Tx_Ctl Tx_Stat Rx_Ctl MD_Data MD_CA ARC_Adr ARC_Ena[2:0] Reserved Reserved Miss_Cnt ARC_Ctl 40 44 48 4C 50 54 58 5C 60 64 68 6C 70 … 7C Figure 16.4.4 Address Map of MAC Control, Status Registers 16-41 Chapter 16 Ethernet Controller 16.4.2 PCI Configuration Register group Each PCI device has a configuration address space totaling 256 Bytes. The PCI specification prescribes the first 72 Bytes of this space in advance. An Ethernet Controller that has the wakeup service only uses the first 74-Byte address space. 16.4.2.1 Vendor ID Register (Vend_ID) 31 0x00 16 : Type : Default 15 Vendor ID Number R 0x102F : Type : Default 0 Figure 16.4.5 Vendor ID Register The Vendor ID Register stores the ID code PCI SIG, which denotes Toshiba as the component manufacturer. The ID code 0xFFFF is reserved and is invalid. Toshiba's PCI SIG number is 0x102F. 16.4.2.2 Device ID Register (Dev_ID) 31 0x02 16 : Type : Default 15 Device ID Number R 0x0031 : Type : Default 0 Figure 16.4.6 Device ID Register The Device ID Register stores a 16-bit value for identifying a particular device. The device ID number Toshiba allocated is 0x0031. The Class Code Register stores the device's revision ID. 16-42 Chapter 16 Ethernet Controller 16.4.2.3 PCI Command Register (PCI_Cmd) 31 0x04 16 : Type : Default 15 Reserved 10 9 FastEn 8 SErrEn 7 WaitCC 6 ParER 5 VGA_PS 4 MWIEn 3 SpecC 2 BusMas 1 MemS 0 IOS R 0 R/W 0 R 0 R/W 0 R 0 R 0 R 0 R/W 0 R/W 0 R/W 0 : Type : Default Bit(s) 15:10 9 Mnemonic FastEn Field Name Reserved Fast Back-to-back Enable Description FastEn (fixed to "0", R) The Ethernet Controller cannot perform two consecutive bus transactions. SerrEn (Default: 0, R/W) Enables the system error (SERR#) driver. WaitCC (fixed to "0", R) The Ethernet Controller does not generate address/data stepping. ParER (Default: 0, R/W) The device responds to a parity error. VGA_PS (fixed to "0", R) Does not perform special VGA Palette Snoop. MWIEn (Default: 0, R) The Ethernet Controller does not issue the Memory Write and Invalidate command. SpecC (fixed to "0", R) The Ethernet Controller ignores special cycles. BusMas (Default: 0, R/W) The device can operate as a Bus Master. MemS (Default: 0, R/W) The device responds to memory access. IOS (Default: 0, R/W) The device responds accesses to the I/O space. 8 7 SErrEn W aitCC System Error Enable Wait Cycle Control 6 5 4 ParER VGA_PS MWIEn Parity Error Response VGA Palette Snoop Memory Write and Invalidate Enable Special Cycle Bus Master Memory Space I/O Space 3 2 1 0 SpecC BusMas MemS IOS Figure 16.4.7 PCI Command Register Hardware reset initializes the PCI Command Register to 0x0000. Software reset does not initialize the register contents. The PCI Command Register defines the method of generating and responding to PCI cycles. For details, see Subsection 6.2.2 Device Control in the PCI specification. For the Ethernet Controller to function properly, you have to set the BusMas bit and MemS bit or IOS bit. Set the SErrEn bit and the ParER bit to match the system. The FastEn, WaitCC, VGA_PS, MWIEn and SpecC bits are always "0". The Ethernet Controller ignores any writes to these bits. 16-43 Chapter 16 Ethernet Controller The Ethernet Controller has only one address comparator. The address comparator shares memory access and I/O access as described below. If MemS=0 and IOS=1, the Ethernet Controller responds to any accesses made to the I/O space. If MemS=0 and IOS=0, the Ethernet Controller does not respond to any accesses made to the I/O space or to the memory space. If MemS=1, then the Ethernet Controller only responds to accesses made to the memory space regardless of the IOS value. Also, you have to initialize the corresponding base address registers in addition to MemS and IOS. 16-44 Chapter 16 Ethernet Controller 16.4.2.4 PCI Status Register (PCI_Stat) 31 0x06 16 : Type : Default 15 DParErr 14 SSysErr 13 RMasAbt 12 RTarAbt 11 STarAbt 10 9 8 DParD R/W1C 7 FastCap 6 UDF 5 Cap66 4 ExCap 3 Reserved 0 DEVSEL R/W1C R/W1C R/W1C R/W1C R/W1C R 0 1 0 0 0 0 0 0 R 0 R 0 R 1 R 1 : Type : Default Bit(s) 15 Mnemonic DParErr Field Name Detected Parity Error Description DParErr (Default: 0, R/W) Indicates that a parity error was detected. This bit is set if a parity error is detected even when the register's Parity Error Response bit is not set. This also applies to parity errors occurring during an address cycle. SSysErr (Default: 0, R/W) This bit is set when the device asserts SERR#. RMasAbt (Default: 0, R/W) Indicates that the current device is the Bus Master and that Master Abort ended the Bus Master transaction (excluding special cycles). 14 13 SSysErr RMasAbt Signal System Error Receive Master Abort 12 RTarAbt Receive Target Abort RTarAbt (Default: 0, R/W) Indicates that the current device is the Bus Master and that Target Abort ended the Bus Master transaction. STarAbt (Default: 0, R/W) Indicates the current device is the target and that Target Abort ended the Bus Master transaction. DEVSEL (Fixed to "01", R) The latest output timing of DEVSEL# when the Ethernet Controller is accessed as the target device is "medium speed". This field is encoded as follows. 00: Fast 01: Medium Speed 10: Slow DParD (Default: 0, R/W) This bit is set when all of the three following conditions are met. 1: PERR# was asserted as the Bus Master, but the target asserted it. 2. The agent that set PERR# was the Bus Master. 3. The Parity Error Response bit of the PCI Control Register is set to "1". 11 STarAbt Signal Target Abort 10:9 DEVSEL Device Select Timing 8 DParD Detect Data Parity Error 7 FastCap Fast Back-to-back Capable FastCap (fixed to "0", R) The Ethernet Controller cannot perform consecutive transactions from different agents. UDF (fixed to "0", R) Indicates that there are no user-defined functions in the Ethernet Controller. Cap66 (fixed to "1", R) Indicates that the Ethernet Controller can operate at 33-66 MHz. ExCap (fixed to "1", R) Indicates that the Ethernet Controller has extended functions. 6 UDF User Defined Function 5 Cap66 66 MHz Operation Capable 4 3:0 ExCap Extended Function Reserved Figure 16.4.8 PCI Status Register 16-45 Chapter 16 Ethernet Controller Software reset initializes the PCI Status Register to 0x0230. The PCI Status Register retains status information on events relating to the PCI Bus. There are several points about this register that you should keep in mind. First, writing "1" to a bit in this register clears it to "0". Also, the value of each bit does not change when you write "0" to it. This enables the system and PCI device to simultaneously update the status information. For details, see Subsection 6.2.3 Device Status of the PCI specification. 16-46 Chapter 16 Ethernet Controller 16.4.2.5 Class Code Register (PCI_Clas) 31 Base_Cl R 0x02 15 Prog_IF R 0x00 8 7 Rev_ID R 0x41 : Type : Default 24 0x08 23 Sub_Cl R 0x00 0 : Type : Default 16 Bit(s) 31:24 23:16 15:8 7:0 Mnemonic Base_CI Sub_Cl Prog_IF Rev_ID Field Name Base Class ID Subclass ID Programming Interface Revision ID Description Base_Cl (fixed to "0x02", R) Sub_Cl (fixed to "0x00", R) Is defined in the Ethernet Controller. Prog_IF (fixed to "0x00", R) The register-level programming interface is not defined. Rev_ID (fixed to "0x41", R) Is set to "0x41" for this Ethernet Controller. Figure 16.4.9 Class Code Register 16-47 Chapter 16 Ethernet Controller 16.4.2.6 PCI Control Register (PCI_Ctl) 31 BIST R 1 15 R/W 0 Lat_Timr R/W 0x00 R 0x0 8 7 Reserved 0x0C 24 23 Hdr_Typ R 0x00 6 Cache_Sz R/W 0x00 : Type : Default 0 : Type : Default 16 Bit(s) 31:24 23:16 Mnemonic BIST Hdr_Typ Field Name Embedded Self-Test Header Type Description BISAT (Default: 0x80, R/W) Controls whether to invoke BIST during startup. Hdr_Typ (fixed to "0x00", R) This is a single-function device. The range 0x10-0x3F of the configuration space is the standard layout. Lat_Tmr (DefaultA: 0x00, R/W) Sets the time the Ethernet Controller operates as the Bus Master as a PCI Bus Clock count. Cache_Sz (Default: 0x00, R/W) Sets the system cache line size. 15:8 Lat_Timr Latency Timer 7 6:0 Cache_Sz Reserved Cache Line Size Figure 16.4.10 PCI Control Register Hardware reset initializes the PCI Control Register to 0x8000_0000. Software reset does not change the register contents. BIST is used for testing the buffers on the chip. Bit 31 of the BIST field is read only and is fixed to "1". In other words, the Ethernet Controller supports BIST. Bit 30 is used to start invoking BIST. Writing "1" to bit 30 starts a test. This bit is cleared when a test ends. If an error occurs in a test, then either bit 25 or bit 24 is set. Bit 25 is set if a parity error occurs when starting up SRAM inside DMA. Bit 24 indicates that there is a fault in the SRAM in DMA. In other words, it indicates that the read data and the expected value (read data) do not match. Bits 29:26 are reserved. The software driver invokes BIST during initialization. (Note: Invoking BIST affects operation since RAM data and RAM registers are overwritten.) When the clock is 33 MHz, testing 1 K × 4-Byte memory requires approximately 123 µs. The default value of the latency timer is 0. You can use a program to set the latency timer. After performing a hardware reset, the cache line size is initialized to 0. You must use the software driver to set an appropriate default value. In most cases, the recommended value is 8 double words (32 Bytes). The maximum value of the cache line size is 127 double words. The cache line size is used to select the Memory Read Multiple command or Memory Read Line command and perform Burst reads. 16-48 Chapter 16 Ethernet Controller 16.4.2.7 I/O, Memory Base Address Registers I/O Base Address Register (IO_BaseA) 0x10 The I/O Base Address Register and Memory Base Address Register are used to map the DMA and MAC Control Registers or Status Registers to the I/O address space or system memory space. Both the I/O address space and memory address space have a maximum size of 32 bits. In addition to setting the Base Address Register, you have to set the corresponding Control bits in the PCI Command Register. 31 BaseAddr R/W 0x0000 8 7 BaseAddr R/W 0x00 : Type : Default 16 15 0 0 I/O R 1 : Type : Default Bit(s) 31:8 7:1 0 Mnemonic BaseAddr Field Name Base Address Description BaseAddr (Default: 0x000000, R/W) This field sets the upper 24 bits of the base address Fixed to “0”. I/O I/O Flag I/O (fixed to “1”, R) Indicates that this base address is relative to the I/O space. Figure 16.4.11 I/O Base Address Register 16-49 Chapter 16 Ethernet Controller Hardware resets initialize the I/O Base Address Register to 0x0000_0001. Software resets do not change the register contents. Memory Address Register (MLo_BaseA) 31 BaseAddr R/W 0x0000 8 7 BaseAddr R/W 0x00 0 : Type : Default 4 3 2 Loc R 0x0 1 0 I/O R 0 : Type : Default 0x14 16 15 Bit(s) 31:8 7:3 2:1 Mnemonic BaseAddr Field Name Base Address Description BaseAddr (Default: 0x00_0000, R/W) This field sets the upper 24 bits of the base address. Fixed to “0”. Loc Location Bit Loc (Default: 00, R) This field indicates that memory is placed in a 32-bit address space. I/O (Default: 1, R) Indicates that this base address is relative to the memory space. 0 I/O I/O Flag Figure 16.4.12 Memory Base Address Register Hardware resets initialize the Memory Base Address Register to 0x0000_0000. Software resets do not change the register contents. 16-50 Chapter 16 Ethernet Controller 16.4.2.8 Subsystem Vendor ID Register, Subsystem ID Register Subsystem Vendor ID Number Register (Sub_Vend_ID) 31 0x2C 16 : Type : Default 15 Subsystem Vendor ID Number R 0x0000 : Type : Default 0 Figure 16.4.13 Subsystem Vendor ID Number Register The Subsystem Vendor ID Register stores the PCI SIG ID number that denotes the adapter card manufacturer. In the case of the TX4938, this value is 0 since it uses an on-chip PCI device. Subsystem ID Register (Sub_ID) 0x2E 31 16 : Type : Default 15 Subsystem ID Number R 0x0000 : Type : Default 0 Figure 16.4.14 Subsystem ID Register The Subsystem ID Register stores a 16-bit value for identifying a particular device. In the case of the TX4938, this value is 0. 16-51 Chapter 16 Ethernet Controller 16.4.2.9 PCI Function Pointer Register (PCI_Cap_Ptr) 31 Reserved : Type : Default 15 Reserved 8 7 CapPtr R 0x40 : Type : Default 0 0x34 16 Bit(s) 31:8 7:0 Mnemonic CapPtr Field Name Reserved Function Pointer Description CapPtr (Fixed to “0x40”, R) This field is the offset of the first entry in the function list. Figure 16.4.15 PCI Function Pointer Register 16.4.2.10 PCI Interrupt Register (PCI_Int) 31 Max Lat R 0x00 15 Int Pin R 0x01 8 7 Int Line R/W 0x00 : Type : Default 24 0x3C 23 Min Gnt R 0x00 0 : Type : Default 16 Bit(s) 31:24 23:16 Mnemonic Max_Lat Min_Gnt Field Name Maximum Latency Minimum Grant Description Max_Lat (Fixed to “0x00”, R) Sets the latency timer value (unit: 1/4 µs). Min_Gnt (Fixed to “0x00”, R) Assuming the PCI clock is 33 MHz, this field sets the time required for Burst transfer (unit: 1/4 µs). Int_Pin (Fixed to “0x01”, R) Is set to INTA#. Int_Line (Default: 0x00, R/W) Is set by the system. Is the connection information of the interrupt line. 15:8 7:0 Int_Pin Int_Line Interrupt Pin Function Pointer Figure 16.4.16 PCI Interrupt Register When the value of Max_Lat and Min_Gnt is 0, you do not use the PCI Interrupt Register to determine Maximum Latency and Minimum Grant. To check whether this PCI device caused an interrupt, use the software to access the Interrupt Source Register. For details, see 16.4.3.9 Interrupt Source Register. 16-52 Chapter 16 Ethernet Controller 16.4.2.11 PCI Power Management Registers Power Management Function Register (PM_Cap) 31 27 26 25 24 Reserved 22 0x40 21 20 19 18 16 : Type : Default 15 8 7 Reserved 0 : Type : Default Bit(s) 31:0 Mnemonic Field Name Reserved Description Reserved The Ethernet Controller does not support the Power Management Function Register. Figure 16.4.17 Power Management Function Register Power Management Control, Status Register (PM_CSR) 31 24 23 Reserved 0x44 16 : Type : Default 15 14 13 12 9 8 7 Reserved 2 1 0 : Type : Default Bit(s) 31:0 Mnemonic Field Name Reserved Description Reserved The PCI Controller does not support the Power Management Control, Status Register. Figure 16.4.18 Power Management Control, Status Register 16-53 Chapter 16 Ethernet Controller 16.4.3 DMA Control, Status Register group The DMA engine and system software jointly manage three queues: the transmission queue, the reception queue, and the buffer list. The transmission queue is used for frame descriptors that are ready for transmission and are standing by. The reception queue is used for frame descriptors that have been received and are waiting for processing by the system software. The buffer list is a buffer descriptor queue. Buffer descriptors describe system memory areas that can be used to store reception data. The free descriptor area (FDA) is a memory area that the Ethernet Controller can write transmission queue frame descriptors and buffer list descriptors to. 16-54 Chapter 16 Ethernet Controller 16.4.3.1 DMA Control Register (DMA_Ctl) 31 Reserved 24 0x00 23 22 21 20 19 M66En Stat 18 IntMask 17 SWInt Req 16 TxWake Up RxAlign R/W 0x0 Reserved R 0/1 DmBurst 15 RxBigE 14 TxBigE 13 Test Mode 12 Reserved 9 8 R/W 0 2 R/W R/W 0 0 1 0 Reserved : Type : Default R/W 0 R/W 0 R/W 0 R/W 0x08 : Type : Default Bit(s) 31:24 23:22 Mnemonic RxAlign Field Name Reserved Reception Alignment Description D2Supp (Default: 0x0, R/W) This field controls the alignment of reception packets as follows: 01: Skips the first byte of the first buffer. 10: Skips the first or second byte of the first buffer. 11: Skips the first through third byte of the first buffer. M66EnStat (Fixed to 0/1, R) 1: Indicates that the PCI Bus operates at a maximum of 66 MHz. 0: Indicates that the PCI Bus operates at 33 MHz or less. IntMask (Default: 0, R/W) Setting this bit to “1” disables the interrupt request signal. SWIntReq (Default: 0, R/W) Setting this bit to “1” issues an interrupt request. TxWakeUp (Default 0, R/W) Setting this bit to “1” ends the current polling cycle and starts transmission. RxBigE (Default: 0, R/W) Setting this bit to “1” processes reception data in the Big Endian mode. TxBigE (Default: 0, R/W) Setting this bit to “1” processes transmission data in the Big Endian mode. TestMode (Default: 0, R/W) Enables the test mode function. 21:20 19 M66EnStat Reserved 66 MHz Enable State 18 17 16 IntMask SWIntReq TxWakeUp Interrupt Mask Software Interrupt Request Transmission Wake Up 15 RxBigE Reception Big Endian 14 TxBigE Transmission Big Endian 13 12:9 8:2 TestMode Test Mode Reserved DmBurst DMA Burst Size DmBurst (Default: 0x08, R/W) Indicates the Burst size of data transfer executed in the Master mode. 1:0 Reserved Figure 16.4.19 DMA Control Register 16-55 Chapter 16 Ethernet Controller Hardware resets initialize the DMA Control Register as follows: • • 0000_1020h: 0008_1020h: When the PCI Bus speed is 0-33 MHz When the PCI Bus speed is 33-66 MHz 0x20 of the lower byte denotes the default (32 Bytes = 8 double words) of the DMBurst field. The DMA Control Register controls data transfer functions in the Master mode such as the Burst side, Big Endian handling, and the test mode. This register also controls various DMA functions during transmission such as wake up and software interrupts. The DmBurst field controls the data transfer size with which the PCI Bus was used when operating in the Master mode. Bits 8:0 set the data transfer size (DMA Burst size), but the lower 2 bits are fixed to “0” and must be a multiple of 4. After a hardware reset, the default value becomes 32 Bytes, in other words 8 double words. You can change this value using a software driver. You cannot set the DmBurst field to “0”. Writing of “0” to this field is ignored. Generally, a multiple of the PCI cache line size is set in the DmBurst field. If the Burst size is 4, 8 or 12 when in the 100 Mbps full duplex mode, you have to take into consideration throughput reduction of the PCI Bus. The TestMode bit enables test functions such as those that enable reading or writing to all areas of the internal DMA buffer or those that display internal status information in the reserved bits of a register. The TxBigE bit and RxBigE bit enable the transmitting or receiving of data with Big Endian mode devices. However, it is important to note that only the data (bytes in the area designated by the buffer descriptor) is handled in the Big Endian mode. Control information such as frame descriptors and buffer descriptors are always in a format unique to the PCI Bus. In other words, they are in the Little Endian format. The TxWakeUp bit enables immediate data transmission without waiting for the end of the current polling cycle. Setting the TxWakeUp bit to “1” while the transmitter is polling aborts the current polling cycle. When the current polling cycle ends, the current TxWakeUp bit is cleared. Any writing of “0” to the TxWakeUp bit is ignored. Software interrupts are made available to support software drivers. The IntMask bit disables all interrupt sources. Therefore, even when the processing of interrupt sources is in progress, the software driver can put interrupts in the Enable state again. The M66EnStat bit is used to control the MAC clock divide circuit when driving serial addresses of the MII station manager. 16-56 Chapter 16 Ethernet Controller 16.4.3.2 Transmission Frame Pointer Register 0x04 31 Addr R/W 0x0000 15 Adrr R/W 0x000 4 3 2 Reserved 1 0 EOL R/W 1 : Type : Default : Type : Default 16 Bit(s) 31:4 Mnemonic Address Field Name Description Addr (Default: 0x000_0000, R/W) Retains the address of the first frame descriptor to be transmitted. EOL (Default: 1, R/W) When this bit is set to “1”, the Address field is ignored. The Ethernet Controller waits for the system to clear it. 3:1 0 EOL Reserved End of List Figure 16.4.20 Transmission Frame Pointer Register Software resets initialize the Transmission Frame Pointer Register to 0x0000_0001. Software resets set the EOL bit to “1”. To enable polling of a transmission or the packet to be transmitted, the system has to set this register in a properly initialized frame descriptor. The address has to be aligned to a 16-Byte boundary. Therefore, bits 0-3 must be “0”. For information on polling control methods, see the description in 16.4.3.4 Transmission Polling Control Register. 16-57 Chapter 16 Ethernet Controller 16.4.3.3 Transmission Threshold Register (TxThrsh) 31 Reserved : Type : Default 15 Reserved 11 10 TxThold R/W : Type : Default 0 0x08 16 Bit(s) 31:11 10:0 Mnemonic TxThold Field Name Reserved Transmission Threshold Register Description TxThold (Default: -, R/W) The Transmission Threshold Register controls buffer latency when transmitting packets. Figure 16.4.21 Transmission Threshold Register The Transmission Threshold Register uses part of internal RAM, so it is not affected by hardware resets or software resets. The Transmission Threshold Register controls buffer latency when transmitting packets. If the threshold value is not “0”, data transfer to the MAC starts either when the number of data bytes set by the threshold value (TxThold) has accumulated in the DMA Transmission buffer or when an entire packet is stored in the DMA Transmission buffer. When the threshold value is “0”, data is transferred to the MAC immediately after the data is fetched from the PCI Bus. The software driver initializes the Transmission Threshold Register. When the threshold value (TxThold) is too small, the DMA Transmission buffer immediately becomes free due to the PCI Bus latency. This situation is displayed in the MAC transmission status, so the system software increases the threshold value. Be careful to not make the threshold value greater than 1620. Having a threshold value greater than 1620 when in the Long Packet mode causes buffer memory to become full before transmission is enabled, therefore causing the transmission circuit to hang. 16-58 Chapter 16 Ethernet Controller 16.4.3.4 Transmission Polling Control Register (TxPollCtl) 31 Reserved : Type : Default 15 Reserved 12 11 TxPollCtl R/W : Type : Default 0 0x0C 16 Bit(s) 31:12 11:0 Mnemonic TxPollCtl Field Name Reserved Transmission Polling Control Register Description TxPollCtl (Default: -, R/W) The Transmission Polling Control Register controls the frequency at which packets to be transmitted are polled. Figure 16.4.22 Transmission Polling Control Register The Transmission Polling Control Register uses part of internal RAM, so it is not affected by hardware resets or software resets. The Transmission Polling Control Register controls the frequency at which packets to be transmitted are polled. The TxPollCtl field operates as a counter. When a value is set to it, it decrements until it reaches 0. When it reaches 0, it polls to see if preparations for the next transmission packet are complete. No polling is performed when 0 is set in the TxPollCtl field. When the clock frequency is 33 MHz, the counter units equate to 61.44 µs. The software driver initializes this register. The software driver also sets the count value. 16-59 Chapter 16 Ethernet Controller 16.4.3.5 Buffer List Frame Pointer (BLFrmPtr) 0x10 31 Addr R/W 0x0000 15 Addr R/W 0x00 4 3 2 1 Reserved 0 EOL R/W : Type 1 : Default : Type : Default 16 Bit(s) 31:4 4:1 0 Mnemonic Address Field Name Reserved Description Addr (Default: 0x000_0000, R/W) EOL (Default: 1, R/W) When this bit is set to “1”, the Address field is ignored. You have to wait until the system clears this bit. EOL End of List Figure 16.4.23 Buffer List Frame Pointer Software resets initialize the Buffer List Frame Pointer to 0x0000_0001. When it fetches a free buffer descriptor, the Buffer List Frame Pointer holds the address of the first frame descriptor to be read. To enable data reception, the system has to set this register in a properly initialized frame descriptor. The address must be aligned to a 16-Byte boundary. In other words, bits 0-3 must be “0”. 16-60 Chapter 16 Ethernet Controller 16.4.3.6 Reception Fragment Size Register (RxFragSize) 31 Reserved : Type : Default 15 EnPack 0x14 16 14 Reserved 12 11 MinFrag R/W 0x000 2 1 0 Reserved : Type : Default R/W 0 Bit(s) 31:16 15 Mnemonic EnPack Field Name Reserved Enable Packing Description EnPack (Default: 0, R/W) 1: Uses the MinFrag value for buffer packing control. 0: Uses the FDCtl field of the frame descriptor for buffer packing control. 14:12 11:2 MinFrag Reserved Minimum Fragments MinFrag (Default: 0x000, R/W) The minimum byte count when partially writing to a buffer that contains data. 1:0 Reserved Figure 16.4.24 Reception Fragment Size Register Hardware resets initialize the Reception Fragment Size Register to 0x0000_0000. Software resets do not change the register contents. The Reception Fragment Size Register specifies the size of minimum data fragments that the Ethernet Controller generates. The minimum fragment size must be a multiple of 4. Therefore, the lower 2 bits are always “0”. You can use the EnPack bit to globally enable packing, or you can enable packing in buffer-area units. For more information on the enabling of packing in bufferarea units, see the description in 16.3.7.1.5 FDCtl field (frame descriptor control). The Ethernet Controller always stores reception data in addresses aligned to 4-Byte boundaries. Therefore, the last 1-3 bytes of a frame may be unused. When enabling packing, the MinFrag value must be greater than 0 for the Ethernet Controller to function properly. When using packing, use a software driver to set the MinFrag field and EnPack bit. When not enabling packing, the MinFrag value must remain at “0”. Packing is performed when more than the Minimum Fragment Size + 4 Bytes in the buffer is free. Packing is not performed when the amount of free space in the buffer is less than the Minimum Fragment Size. In this case, data is stored starting from the next buffer. 16-61 Chapter 16 Ethernet Controller 16.4.3.7 Interrupt Enable Register (Int_En) 31 Reserved : Type : Default 15 Reserved 12 11 NRAbt En 0x18 16 10 TxCtlC mpEn 9 DmPar ErrEn 8 DPar DEn 7 EarNot En 6 5 4 3 RTarg AbtEn 2 STarg AbtEn 1 BLExE n 0 FDAE xEn DPar SSvsEr Rmas ErrEn rEn AbtEn R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 : Type : Default Bit(s) 31:12 11 Mnemonic NRAbtEn Field Name Reserved Non-recoverable Abort Enable Description NRAbtEn (Default: 0, R/W) Enables interrupts when a non-recoverable abort occurs internally. TxCtlCmpEn (Default: 0, R/W) Enables interrupts when transmission of the MAC control frame is complete. DmParErrEn (Default: 0, R/W) Enables interrupts if a parity error is detected when reading or writing from/to DMA-internal RAM. DParDEn (Default: 0, R/W) Enables interrupts when bit 8 of the PCI Status Register is set. EarNotEn (Default: 0, R/W) When receiving a reception packet, issues an interrupt not only when reaching the tail of a packet, but also issues an interrupt when writing the first buffer or its descriptor. DParErrEn (Default: 0, R/W) Enables interrupts if a parity error is detected during PCI Bus transfer while the Ethernet Controller is accessing the Bus Master. SSvsErrEn (Default: 0, R/W) Enables interrupts if the Ethernet Controller signals a system error. RmasAbtEn (Default: 0, R/W) Enables interrupts if a Master Abort is received while the Ethernet Controller is operating as the Target. RTargAbtEn (Default: 0, R/W) Enables interrupts if a Target Abort is received while the Ethernet Controller is operating as the Target. STargAbtEn (Default: 0, R/W) Enables interrupts if a Target Abort is issued while the Ethernet Controller is operating as the Target. BLExEn (Default: 0, R/W) Enables interrupts when the buffer list is completely used up. In other words, enables interrupts when the Ethernet Controller encounters descriptors owned by the system that still remain in the buffer list. FDAExEn (Default: 0, R/W) Enables interrupts when the free descriptor area is totally used up. In other words, enables interrupts when the Ethernet Controller encounters blocks owned by the system that still remain in the FDA. 10 TxCtlCmpEn MAC Control Frame Transmission Complete Enable DMA Parity Error Enable 9 DmParErrEn 8 7 DParDEn EarNotEn Data Parity Detection Enable Early Notification Enable 6 DParErrEn Parity Error Detection Enable 5 SSvsErrEn System Error Notification Enable Master Abort Reception Enable 4 RmasAbtEn 3 RTargAbtEn Target Abort Reception Enable 2 STargAbtEn Target Abort Notification Enable 1 BLExEn Buffer List Exhaustion Notification Enable 0 FDAExEn Free Descriptor Area Exhaust Notification Enable Figure 16.4.25 Interrupt Enable Register 16-62 Chapter 16 Ethernet Controller Hardware resets initialize the Interrupt Enable Register to 0x0000_0000. Software resets do not change the register contents. The Interrupt Enable Register controls whether to issue an interrupt in response to errors detected by the DMA engine or in response to some other conditions. The Early Notification Enable (EarNotEn) bit is shared by applications that are required to reduce latency. When handling Early Notification, note that the frame descriptor becomes invalid. Only the first buffer descriptor is valid if an Early Notification interrupt occurs. 16-63 Chapter 16 Ethernet Controller 16.4.3.8 Free Descriptor Area (FDA) Registers Free Descriptor Area Base Register (FDA_Bas) 31 Addr R/W 0x0000 15 Addr R/W 0x000 4 3 2 1 Reserved 0 : Type : Default 0x1C 16 : Type : Default Bit(s) 31:4 Mnemonic Address Field Name Description Addr (Default: 0x000_0000, R/W) The Free Descriptor Area Base Register contains the start address of the area for writing the frame descriptors and buffer descriptors of reception packets. The address must be a multiple of 16 Bytes. Therefore, bits 0-3 are fixed to "0". 3:0 Reserved Figure 16.4.26 Free Descriptor Area Base Register Hardware resets initialize the Free Descriptor Area Base Register to 0x0000_0000. Software resets do not change the register contents. Free Descriptor Area Size Register (FDA_Lim) 31 Reserved : Type : Default 15 Count/Offset R/W 0x000 4 3 Reserved : Type : Default 0 0x20 16 Bit(s) 31:16 15:4 Mnemonic Count/Offset Field Name Reserved Count/Offset Description Count/Offset (Default: 0x000, R/W) This field sets the size of the Reception Descriptor Area in 16Byte units. You could also consider the lower 16 bits as being an offset from the base address. 3:0 Reserved Figure 16.4.27 Free Descriptor Area Size Register 16-64 Chapter 16 Ethernet Controller Hardware resets initialize the Free Descriptor Area Size Register to 0x0000_0000. Software resets do not change the register contents. Note: You have to specify in the FDA_Lim Register the minimum offset value of the free descriptor area from which it is safe to start the next frame descriptor. You have to secure an area that is sufficient for storing a maximum size packet that includes one frame descriptor and the maximum number of buffer descriptors. For example, if the maximum number of buffer descriptors required to store a maximum length frame is 28, then this area requires a capacity of 256 (16 + 28 × 8 in 16-Byte units) Bytes. 16-65 Chapter 16 Ethernet Controller 16.4.3.9 Interrupt Source Register (Int_Src) 31 Reserved 0x24 17 16 IntEX Defer R/W1C 15 Reserved 14 NRAbt 13 DmPar ErrStat R/W1C 12 BLEx 11 FDAEx 10 IntNRA bt R 9 IntTxCtl Cmp R/W1C 8 IntExB D R/W1C 7 DmPar Err R 6 IntEarN ot R/W1C 5 SWInt 4 IntBLEx 3 IntFDA Ex R 2 IntPCI 1 0 0 : Type : Default IntMacR IntMacT x x R/W1C R/W1C R/W1C R/W1C R/W1C R R R : Type : Default 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit(s) 31:17 16 Mnemonic IntEXDefer Field Name Reserved Description IntEXDefer (Default: 0, R/W1C) This bit is set if an excessive delay is detected and the EnExDefer (Excessive Defer Enable) bit of the Transmission Control Register (Tx_Ctl) is set. 15 14 13 12 11 NRAbt DmParErrStat BLEx FDAEx Reserved NRAbt (Default: 0, R/W1C) This bit is set to "1" when a non-recoverable abort occurs. DmParErrStat (Default: 0, R/W1C) This bit is set to "1" when a DMA parity error occurs. BLEx (Default: 0, R/W1C) This bit is set to "1' when the buffer list (BL) becomes full. FDAEx (Default: 0, R/W1C) This bit is set to "1" when the free descriptor area (FDA) becomes full. IntNRAbt (Default: 0, R) The interrupt source is a non-recoverable abort state. IntTxCtlCmp (Default: 0, R/W1C) The interrupt source is the completion of MAC control frame transmission. IntExBD (Default: 0, R/W1C) The interrupt source is excessive buffer descriptors (more than 28 buffer descriptors). DmParErr (Default: 0, R) The interrupt source is a DMA parity error. IntEarNot (Default: 0, R/W1C) The interrupt source is early notification. SWInt (Default: 0, R) The interrupt source is a software interrupt request. IntBLEx (Source: 0, R) The interrupt source is the buffer list being completely used up. IntFDAEx (Default: 0, R) The interrupt source is the free descriptor area being completely used up. IntPCI (Default: 0, R) The PCI Status Register (PCI_Stat) displays the interrupt source. 10 9 IntNRAbt IntTxCtlCmp 8 IntExBD 7 6 5 4 DmParErr IntEarNot SWInt IntBLEx 3 IntFDAEx 2 IntPCI Figure 16.4.28 Interrupt Source Register (1/2) 16-66 Chapter 16 Ethernet Controller Bit(s) 1 Mnemonic IntMacRx Field Name Description IntMacRx (Default: 0, R/W1C) The MAC Reception Status Register (Rx_Stat) displays the interrupt source. IntMacTx (Default: 0, R/W1C) The MAC Transmission Status Register (Tx_Stat) displays the interrupt source. 0 IntMacTx Figure 16.4.28 Interrupt Source Register (2/2) Writing "1" to W1Clr clears it to "0". This bit denotes the bits that clear interrupts. Any writing of "0" to these bits is ignored. "R" indicates that a bit is Read Only. Either clearing the source that set these bits to "1" or resetting Ethernet control clears these bits to "0". Software resets initialize the Interrupt Source Register to 0x0000_0000. The system software reads the Interrupt Source Register to check whether there are any interrupts related to Ethernet control. Also, the Interrupt Source Register contains several status bits that can only be displayed here. If bits 15:0 are all "0", this indicates that the Ethernet Controller did not issue any interrupts. If the Ethernet Controller causes any interrupts, then setting the IntMask bit of the DMA Control Register makes it possible to mask any subsequent interrupts that the Ethernet Controller issues. Bit 8 is set when there are more than 28 buffer descriptors are in a single frame descriptor. If excessive buffer descriptors occur, the controller aborts transmission or reception operation. To resume transmission or reception operation, you have to perform a software reset and rebuild the transmission queue, reception queue, and buffer list. Bit 13 is set when a parity error is detected in the DMA RAM. However, bit 7 is only set if the DParErrEn bit of the Interrupt Enable Register is set. To make it possible to handle as many completed transmission frames or reception frames as possible, the software driver has to clear the IntMACTx bit or the IntMACRx bit. Since the frame that is the interrupt source is handled as a part of the immediately previous interrupt, there are cases where there are no complete frames in an interrupt. Take this into account when creating your software driver. 16-67 Chapter 16 Ethernet Controller 16.4.4 Flow Control Register group Pause Count Register (PauseCnt) 0x30 31 Reserved : Type : Default 15 8 7 PauseCnt R 0x0000 0 16 : Type : Default Bit(s) 31:16 15:0 Mnemonic PauseCnt Field Name Reserved Reception Pause Count Description PauseCnt (Default: 0, R) This is the number of time slots that the transmitter pauses as a result of receiving a MAC control Pause operation packet. Figure 16.4.29 Pause Count Register Remote Pause Count Register (RemPauCnt) 31 Reserved : Type : Default 15 8 7 RemPauCnt R 0x0000 0 0x34 16 : Type : Default Bit(s) 31:16 15:0 Mnemonic RemPauCnt Field Name Reserved Remote Pause Count Description RemPauCnt (Default: 0, R) This is the number of time slots that the remote MAC pauses as a result of transmitting a Pause operation packet. Figure 16.4.30 Remote Pause Count Register Software resets initialize the Pause Count Register and Remote Pause Count Register to 0x0000_0000. The Pause Count Register displays the current value of the received Pause count. When a Pause operation MAC control frame is received, the specified Pause count is set and the count is decremented at each unit time stamp. When the count is "0", it indicates that MAC is not pausing. The Remote Pause Count Register displays a rough value of the pause counter that the remote station has based on the transmitted Pause command. In either case, the unit is 1 slot time. In other words, it is 512-bit late time. 16-68 Chapter 16 Ethernet Controller Transmission Control Frame Status Register (TxCtlFrmStat) 31 Reserved 22 21 Tx_Stat Value R/W 15 Tx_Stat Value R/W : Type : Default 0 : Type : Default 0x38 16 Bit(s) 31:22 21:0 Mnemonic Tx_Stat Value Field Name Reserved Transmission Control Frame Status Description Tx_Stat (Default: -, R/W) The Transmission Control Frame Status Register displays via the SdPause bit of the Transmission Control Register the status from when the MAC control frame was transmitted to a remote station. Figure 16.4.31 Transmission Control Frame Status Register The Transmission Control Frame Status Register uses part of the internal RAM, so it is not affected by hardware resets or software resets. The Transmission Control Frame Status Register displays via the SdPause bit of the Transmission Control Register the status when the MAC control frame was transmitted to a remote station. After transmission ends, the software driver fetches the status from this register. The software can reset this register before starting transmission of the MAC control frame. The software can use the TxCtlCmpEn bit of the Interrupt Enable Register to issue an interrupt when transmission of the MAC control frame ends. For information on the bit fields, see the explanation of the Transmission Status Register (Tx_Stat) in 16.4.5.3 Transmission Control, Status Registers. 16-69 Chapter 16 Ethernet Controller 16.4.5 MAC Control, Status Register group 0x40 16 Reserved : Type : Default 15 14 13 EnMiss Roll 16.4.5.1 MAC Control Register (MAC_Ctl) 31 12 11 10 Miss Roll 9 8 Reserved 7 6 Conn 5 4 Mac Loop 3 FullDup 2 Reset 1 HaltI mm 0 Halt Req Reserved Reserved R/W 0 R 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 : Type : Default Bit(s) 31:14 13 Mnemonic EnMissRoll Field Name Reserved Missing Error Counter Rollover Enable Reserved Missing Error Counter Rollover Reserved Description EnMissRoll (Default: 0, R/W) Issues an interrupt when the count value of the Missing Error Count Register rolls over from 0x7FFF to 0x8000. MissRoll (Default: 0, R) Indicates that the count value of the Missing Error Count Register rolled over from 0x7FFF to 0x8000. (Read only) Conn (Default: 00, R/W) This field selects the connection mode. 00: Automatic (default) 01: Reserved 10: MII (MII clock determines the transfer rate) 11: Reserved 12:11 10 MissRoll 9:7 6:5 Conn Connection Mode 4 MacLoop MAC Loop Back MacLoop (Default: 0, R/W) Directly provides the transmission signal as the input of the reception circuit without sending it outside the Ethernet Controller. FullDup (Default: 0, R/W) Set this bit to "1" for full duplex. Reset (Default: 0, R/W) Resets all State Machines and FIFOs of the Ethernet Controller. HaltImm (Default: 0, R/W) Immediately halts transmission or reception when set to “1”. When receiving data, if this bit is set after MAC starts processing the recipient address, reception operation for the current packet continues and the data is transferred to system memory. At this time, if the RxHalted bit of the Reception Status Register is set, it indicates that the system sent a Reception Halt Request while a packet was being received. If this bit is set before starting processing of the recipient address, reception operation is immediately halted. The RxHalted bit will then be set. 3 2 1 FullDup Reset HaltImm Full Duplex Mode Software Reset Immediate Halt 0 HaltReq Halt Request HaltReq (Default: 0, R/W) Halts transmission/reception when the packet currently in progress ends. Figure 16.4.32 MAC Control Register 16-70 Chapter 16 Ethernet Controller Hardware resets initialize the MAC Control Register to 0x8000. Setting the Reset bit (bit 2) executes software reset. Starting software reset clears bit 2. The other bits do not affect software resets. The MAC Control Register is used to display total control and status information of MAC. The MissRoll bit is the status bit. All other bits are control bits. After the Reset bit is set, 4 MII transmission or reception clock cycles pass, then software reset is executed for several cycles. Therefore, after writing to the Reset bit, do not access the Ethernet Controller until 320 ns pass for 100 Mbps transfer or until 3,200 ns pass for 10 Mbps transfer. Before performing reset, you can use the MAC Transmission Control Register (Tx_Ctl) or MAC Reception Control Register (Rx_Ctl) to issue a Halt Request to end the current network transaction. The MissRoll bit is set when the counter rolls over from 0x7FFF to 0x8000, and is reset when the software reads the Missing Error Count Register. See 16.4.5.7 Missing Error Count Register for an explanation. Some PHYs do not support full duplex transfer. The MacLoop bit has higher priority than the FullDup bit. 16-71 Chapter 16 Ethernet Controller 16.4.5.2 ARC Control Register 31 Reserved : Type : Default 15 Reserved 5 4 Com pEn 0x44 16 3 NegA RC 2 Broa dAcc 1 Grou pAcc 0 Statio nAcc R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 : Type : Default Bit(s) 31:5 4 Mnemonic CompEn Field Name Reserved Compare Enable CompEn (Default: 0, R/W) Enables the Compare mode. NegARC (Default: 0, R/W) Description 3 NegARC Negative ARC 0: Accepts packets the ARC recognized, but refuses all other packets. 1: Refuses packets the ARC recognized, but accepts all other packets. BroadAcc (Default: 0, R/W) Accepts all packets that have a broadcast address. GroupAcc (Default: 0, R/W) Accepts all packets that have a multicast group address. StationAcc (Default: 0, R/W) Accepts all packets that have a unicast station address. 2 1 0 BroadAcc GroupAcc StationAcc Broadcast Accept Group Accept Station Accept Figure 16.4.33 ARC Control Register Hardware resets initialize the ARC Control Register to 0x0000. Software resets do not change the register contents. • • • The ARC recognizes the three following Ethernet address types. Station addresses: The first byte is even such as in 00-00-00-00-00-00. Broadcast addresses: Defined as FF-FF-FF-FF-FF-FF. Multicast group address: The first byte is odd such as in 01-00-00-00-00-00. However, not FFFF-FF-FF-FF-FF. When the CompEn bit is set and the ARC’s Compare mode is validated, the recipient address of the reception packet is compared with the address stored in ARC memory. For information on the structure of ARC memory, see 16.3.8.6 Address Recognition Circuit (ARC) operation. When the CompEn bit is cleared, the ARC unconditionally halts address comparisons. When an Accept bit (StationAcc, GroupAcc, or BroadAcc) is set, packets the ARC refused are also accepted. To refuse all packets, clear all bits of the ARC Control Register. To put MAC in the Promiscuous mode and accept all normal packets, set the ARC to accept all three of the above address types. You can also put MAC in the Promiscuous mode by setting the Negative ARC bit and clearing the CompEn bit. When the ARC Compare mode is enabled, addresses for filtering reception messages are read from ARC memory. ARC memory has a 6-Byte structure for each entry. You can set it to Valid or Invalid for each entry as described in ARC Enable Register on page 86. 16-72 Chapter 16 Ethernet Controller 16.4.5.3 Transmission Control, Status Registers Transmission Control Register (Tx_Ctl) 31 Reserved : Type : Default 15 14 EnC omp 0x48 16 13 EnTx Par 12 EnLat eColl 11 EnEx Coll 10 EnLC arr 9 EnEx Defer 8 EnUn der 7 MII1 0 6 SdPa use 5 NoEx Def 4 FBac k 3 NoC RC 2 NoPa d 1 TxHal t 0 TxEn R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W : Type 0 : Default Bit(s) 31:15 14 13 12 Mnemonic EnComp EnTxPar EnLateColl Field Name Reserved Enable Complete Enable Transmission Parity Enable Late Collisions Enable Excessive Collisions Enable Lost Carrier EnComp (Default: 0, R/W) Description Issues an interrupt either when MAC transmits or destroys 1 packet. EnTxPar (Default: 0, R/W) Issues an interrupt when a parity error occurs in MAC Transmission FIFO. EnLateColl (Default: 0, R/W) Issues an interrupt if a collision occurs after more than 512-bit late time (64Byte) time passes. EnExColl (Default: 0, R/W) Issues an interrupt if collisions occur in the same packet 16 times. EnLCarr (Default: 0, R/W) Issues an interrupt if either Carrier Sense could be not detected or was lost while transmitting a packet. EnExDefer (Default: 0, R/W) Issues interrupts when MAC causes a MAX_DEFERRAL time delay. MAX_DEFERRAL = 0.24288 ms for 100 Mbps = 2.4288 ms for 10 Mbps 8 EnUnder Underline Enable EnUnder (Default: 0, R/W) Issues an interrupt when the MAC Transmission FIFO becomes empty during transmission. MII10 (Default: 0, R/W) Setting this bit to "1" enables SQE checking. 6 5 4 3 2 1 0 SdPause NoExDef FBack NoCRC NoPad TxHalt TxEn PAUSE Transmission No Excessive Deferrals Fast Back Off No Suppress No Padding Transmission Halt Request Transmission Enable SdPause (Default: 0, R/W) Transmits either the Pause command or another MAC control frame. NoExDef (Default: 0, R/W) Suppresses excessive deferral checking. Fback (Default: 0, R/W) Uses a fast back-off timer during testing. NoCRC (Default: 0, R/W) Does not add CRC to the end of a packet. NoPad (Default: 0, R/W) Does not generate Pad Bytes even for packets with less than 64 Bytes. TxHalt (Default: 0, R/W) Halts transmission if the current packet ends regardless of the packet type. TxEn (Default: 0, R/W) Immediately halts transmission when cleared to "0". 11 10 EnExColl EnLCarr 9 EnExDefer Enable Excessive Defer 7 MII10 MII 10 Mbps Mode Figure 16.4.34 Transmission Control Register 16-73 Chapter 16 Ethernet Controller A hardware reset initializes the Transmission Control register to 0000h. A software reset clears the TxEn and SdPause bits, but does not affect the other bits. Do not set the FBack (Fast Back-off) bit to "1" when in the normal operation mode. The SdPause (Pause Transmission) bit is automatically cleared when transmission of the MAC control frame ends. Any writing of "0" to this bit is ignored. To issue an interrupt for each packet, set the EnComp bit or all MAC Error Enable bits. You can also set interrupts to occur when a specific state occurs. 16-74 Chapter 16 Ethernet Controller Transmission Status Register (Tx_Stat) 31 Reserved 0x4C 23 22 21 TxPAUSE 20 TxMACC 19 TxVLAN 18 TxBCast 17 TxMCast 16 SQErr R 0 15 TxHalted R 0 4 ExColl R 0 3 R 0 R 0 R 0 0 : Type : Default 14 Comp 13 TxPar 12 LateColl 11 Reserved 10 LCarr 9 ExDefer 8 Under 7 IntTx 6 Paused 5 TxDefer TxColl R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 : Type : Default Bit(s) 31:22 21 20 19 18 17 16 Mneminc TxPAUSE TxMACC TxVLAN TxBCast TxMCast SQErr Field Name Reserved Pause Packet Communication MAC Control Packet Transmission VLAN Tag Packet Transmission Broadcast Transmission Multicast Transmission Signal Quality Error TxPAUSE (Default: 0, R) Description This bit is set when MAC transmits a MAC control Pause packet. TxMACC (Default: 0, R) This bit is set when MAC transmits a MAC control packet. TxVLAN (Default: 0, R) This bit is set when MAC transmits a VLAN tag packet. TxBCast (Default: 0, R) This bit is set when MAC transmits a broadcast packet. TxMCast (Default: 0, R) This bit is set when MAC transmits a multicast packet. SQErr (Default: 0, R) Indicates that the Heartbeat signal could not be monitored at the end of a transmission. TxHalted (Default: 0, R) Halts transmission by either clearing the TxEn bit of the Transmission Control Register or setting the HaltImm bit of the MAC Control Register. Comp (Default: 0, R) Indicates that MAC either transmitted or destroyed one packet. TxPar (Default: 0, R) Indicates that a parity error was detected in MAC Transmission FIFO. LateColl (Default: 0, R) Indicates that 512-bit late time (64-Byte time) or more elapsed before a collision occurred. LCarr (Default: 0, R) Indicates that, during transmission, either Carrier Sense could not be detected or it was lost. ExDefer (Default: 0, R) Indicates that MAC deferred transmission for more than MAX_DEFERRAL. Under (Default: 0 ,R) Indicates that MAC Transmission FIFO became empty during transmission. 15 TxHalted Transmission Halted 14 13 12 Comp TxPar LateColl Complete Transmission Parity Error Late Collision 11 10 LCarr Reserved Lost Carrier 9 8 ExDefer Under Excessive Deferral Underrun Figure 16.4.35 Transmission Status Register (1/2) 16-75 Chapter 16 Ethernet Controller Bit(s) 7 Mnemonic IntTx Field Name Transmission Interrupt Transmitter Paused Transmission Deferred Excessive Collisions Description IntTx (Default: 0, R) This bit is set when interrupt conditions specified by the Transmission Control Register are met in a packet transmission. Paused (Default: 0, R) This bit is set if transmission is paused after the current packet ends. TxDefer (Default: 0, R) Indicates that a packet was kept waiting due to transmission delay. ExColl (Default: 0, R) This bit is set if collisions occur 16 times in the same packet. Instead of transmitting that packet, processing of the next packet transmission starts. TxColl (Default: 0, R) Number of collisions that occurred when transmitting one packet. 6 5 4 Paused TxDefer ExColl 3:0 TxColl Transmission Collision Count Figure 16.4.35 Transmission Status Register (2/2) Software resets initialize the Transmission Status Register to 0x00_0000. Also, this register is cleared at the beginning of each transmission packet. The Transmission Status flag is set each time the applicable event occurs. Also, an interrupt occurs if the corresponding bit of the Transmission Control Register is set. The lower 5 bits of the Transmission Status Register indicate the collision count of the packet. In other words, when ExColl=1, TxColl becomes 0. If TxColl is not 0, then ExColl=0. The MAX_DEFERRAL time is 0.24288 ms for 100 Mbps and 2.42880 ms for 10 Mbps. If the TxMCast bit (bit 17) and the TxBCast bit (bit 18) are both "0", they indicate that a unicast packet was transmitted. 16-76 Chapter 16 Ethernet Controller 16.4.5.4 Reception Control, Status Register Reception Control Register (Rx_Ctl) 31 Reserved : Type : Default 15 Reserved 0x50 16 14 EnGood 13 EnRxPar 12 EnLenErr 11 EnLong Err 10 EnOver 9 EnCRC Err 8 EnAlign 7 IgnoreLen 6 Ignore CRC 5 PassCtl 4 Strip CRC 3 ShortEn 2 LongEn 1 RxHalt 0 RxEn R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W : Type 0 : Default Bit(s) 31:15 14 13 12 11 Mnemonic EnGood EnRxPar EnLenErr EnLongErr Field Name Reserved Transmission Enable Enable Reception Parity Enable Frame Length Errors Enable Long Errors EnGood (Default: 0, R/W) Description Issues an interrupt if a packet is received without any error. EnRxPar (Default: 0, R/W) Issues an interrupt if a parity error is detected in the MAC Reception FIFO. EnLenErr(Default: 0, R/W) Issues an interrupt if a Frame Length error is detected. EnLongErr (Default: 0, R/W) If the LongEn bit is not set, an interrupt is issued when a frame longer than 1518 Bytes (1522 Bytes for VLAN) is received. EnOver (Default: 0, R/W) Issues an interrupt if the MAC Reception FIFO becomes full when receiving a packet. EnCRCErr (Default: 0, R/W) Issues an interrupt either when CRC receives an invalid packet or PHY asserts Rx_er while receiving a packet. EnAlign (Default: 0, R/W) Issues an interrupt if CRC receives an invalid packet with a length that is not a multiple of 8. IgnoreLen (Default: 0, R/W) Does not check the frame length. 6 5 4 3 IgnoreCRC PassCtl StripCRC ShortEn Ignore CRC Value Pass MAC Control Frame Strip CRC Value Enable Short IgnoreCRC (Default: 0, R/W) Does not check CRC. PassCtl (Default: 0, R/W) Passes a received MAC control frame to the system. StripCRC (Default: 0, R/W) Checks CRC, but removes it from the message. ShortEn (Default: 0, R/W) Enables the reception of frames shorter than 64 Bytes.1 10 EnOver Enable Overflows 9 EnCRCErr Enable CRC Errors 8 EnAlign Enable Alignment 7 IgnoreLen Ignore Frame Length Figure 16.4.36 Reception Control Register (1/2) 1 The above frame length does not include a preamble and a Start Frame Delimiter (SFD). For details, see 16.3.8.1 Format of MAC frames and packets. 16-77 Chapter 16 Ethernet Controller Bit(s) 2 Mnemonic LongEn Field Name Long Enable Reception Halt Request Description LongEn (Default: 0, R/W) Enables the reception of frames longer than 1518 Bytes (1522 Bytes in the case of VLAN).1 RxHalt (Default: 0, R/W) Halts reception after the current packet ends regardless of the packet type. RxEn (Default: 0, R/W) This bit halts reception when cleared to "0". If this bit is cleared after MAC starts processing the recipient address, reception operation for the current packet continues and data is transferred to the system memory. At this time, the TxHalted bit of the Reception Status Register is set and indicates that the system issued a Reception Halt Request while receiving a packet. If this bit is cleared before processing of the recipient address starts, reception operation immediately halts. At this time, the RxHalted bit is set. 1 RxHalt 0 RxEn Reception Enable Figure 16.4.36 Reception Control Register (2/2) Hardware resets initialize the Reception Control Register to 0x0000. Software resets clear the RxEn bit, but no other bits are changed. To issue an interrupt for each packet, set the EnGood bit or all Error Enable bits. You can also set the Reception Control Register to only issue interrupts when a particular state occurs. 1 The above frame length does not include a preamble and a Start Frame Delimiter (SFD). For details, see 16.3.8.1 Format of MAC frames and packets. 16-78 Chapter 16 Ethernet Controller Reception Status Register (Rx_Stat) 31 30 29 ARCEnt R 0x1f 15 RxHalted 0x54 24 ARCStatus R 0x0 21 20 RxPause 25 19 RxVLAN 18 RxBCast 17 RxMCast 16 Reserved Reserved R 0 6 5 CtlRecd R 0 3 R 0 R 0 R 0 0 : Type : Default 14 13 12 TypePkt 11 LongErr 10 Overflow 9 CRCErr 8 AlignErr 7 Reserved 4 InLenErr Good RxPar R 0 R 0 IntRx Reserved : Type : Default R 1 R 0 R 0 R 0 R 0 R 0 R 0 R 0 R 0 Bit(s) 31:30 29:25 Mnemonic ARCEnt Field Name Reserved ARC Entry Description ARCEnt (Default: 0x1F, R) This field stores the ARC entry index if the address matches. If the address does not match, all bits become "1". ARCStatus (Default: 0, R) Denotes ARC operation (see the following encoding). RxPause (Default: 0, R) This bit is set when the reception packet is a MAC control PAUSE packet. RxVLAN (Default: 0, R) This bit is set when the reception packet is a VLAN tagged packet. RxBCast (Default: 0, R) This bit is set when the reception packet is a broadcast packet. RxMCast (Default: 0, R) This bit is set when the reception packet is a multicast packet. 24:21 20 19 18 17 16 15 ARCStatus RxPause RxVLAN RxBCast RxMCast ARC Status PAUSE Packet Reception VLAN Tagged Packet Reception Broadcast Reception Multicast Reception Reserved RxHalted Reception Halted RxHalted (Default: 1, R) This bit indicates that reception was halted either when the RxEn bit of the Reception Control Register was cleared or the HaltImm bit of the MAC Control Register was set. Good (Default: 0, R) Indicates that a packet was received without any errors occurring. RxPar (Default: 0, R) Indicates that a parity error was detected in the MAC Reception FIFO. TypePkt (Default: 0, R) The value of the Frame Length field is greater than 1500 (no frame length check is performed). The software can use this bit to check the Protocol Type field. LongErr (Default: 0, R) Indicates that a frame longer than 1518 Bytes (1522 Bytes for VLAN)1 was received. However, if the LongEn bit of the Reception Control Register is set, this bit is not set. Overflow (Default: 0, R) Indicates that the MAC Reception FIFO is full and a reception byte is missing. CRCErr (Default: 0, R) Indicates that either the CRC value at the end of the packet does not match the calculated value or PHY asserted Rx_er while receiving a packet. 14 13 12 Good RxPar TypePkt Normal Reception Reception Parity Error Type Packet 11 LongErr Long Error 10 9 Overflow CRCErr Overflow CRC Error Figure 16.4.37 Reception Status Register (1/2) 1 The above frame length does not include a preamble and a Start Frame Delimiter (SFD). For details, see 16.3.8.1 Format of MAC frames and packets. 16-79 Chapter 16 Ethernet Controller Bit(s) 8 7 6 Mnemonic AlignErr Field Name Alignment Error Reserved AlignErr (Default: 0, R) Description Indicates that the frame length is not an 8-bit multiple and that CRC is invalid. IntRx Reception Interrupt IntRx (Default: 0, R) This bit is set when interrupt conditions are met due to the reception of a packet. If the EnGood bit of the Reception Control Register is set, notification is also sent for packets received without any errors. Note: If the Address Recognition Circuit (ARC) destroys a received packet when the EnGood bit or EnCRCErr bit of the Reception Control Register is set, this IntRx bit is also set if the Good or CRCErr bit of the Reception Status Register is set. In this case however, no interrupt notification is sent and the IntMacRx bit of the Int_Src Register is not set. 5 CtlRecd Control Frame Received In Range Frame Length Error CtlRecd (Default: 0, R) This bit is set if the ARC recognizes an address when the received packet is the MAC control frame (type=0x8808). InLenErr (Default: 0, R) If the value of the Frame Length field is 46 or less, this bit is set when the reception packet size is not 64 Bytes. Also, if the value of the Frame Length field is between 47 and 1500, this bit is set when the reception packet size is not the value of the Frame Length field + 18 (14 when in the Strip CRC mode). 4 InLenErr 3:0 Reserved Figure 16.4.37 Reception Status Register (2/2) Software resets initialize the Reception Status Register to 0x3E00_8000. This register is also cleared at the beginning of each reception packet. The Reception Status flag is set each time the applicable event occurs. Once the Reception Status flag is set, it remains set until the next packet is reached. When the corresponding bit of the Reception Control Register is set, an interrupt is issued. The CtlRecd bit is set when the packet type is 0x8808 and the ARC recognizes an address. If both the RxMCast bit (bit 17) and the RxBCast bit (bit 18) are "0", they indicate that a unicast packet was received. The ARCStatus field is encoded as follows below. 0000: 0001: 0010: 0011: 0100: 0101: 0110: 0111: 1000: 1xx1: 1010: Toss. MAC control frame received. PassCtl=0. Toss. The packet length is less than the minimum packet length, but is 6 Bytes or more. Keep if that is not the case. Toss. Matches ARC. NOT filtering. Reserved Toss. External CAM bit. NOT filtering. Reserved Toss. Address does filtering. not match. No external CAM. Compare disable. AND Toss. State in which the packet length is too short, the ARC result is Invalid, and the ShortEn bit is not set. Keep. Broadcast, multicast, or unicast accepting is enabled and the address matches. Reserved Keep. ARC matches. AND filtering. 16-80 Chapter 16 Ethernet Controller 1100: 1110: Keep. External CAM bit. AND filtering. Keep. ARC does not match. AND filtering. Note: The minimum packet length is 64 Bytes if ShortEn is not asserted, or is 14 Bytes if ShortEn is asserted. Racing occurs between the internal ARC and external CAM. There are cases where the first signal to notify a hit blocks the other signal that notifies a hit and the ARC's Entry Status bit changes. 16-81 Chapter 16 Ethernet Controller 16.4.5.5 Station Management Registers Station Management Data Register (MD_Data) 31 30 29 28 27 26 25 24 23 Reserved 22 0x58 21 20 19 18 17 16 : Type : Default 15 Station Management Data R/W 0x0000 : Type : Default 0 Bits 31:16 15:0 Mnemonic Field Name Reserved Station Management Data Description (Default: 0x0000, R/W ) The MII item of the IEEE802.3 specification that relates the 100Base-T or 100 Mbps Ethernet defines the format of the Stage Management Data Register. For information on other hardware-dependent registers, see the separate PHY data sheet. Figure 16.4.38 Station Management Data Register Software resets initialize the Station Management Data Register to 0x0000. 16-82 Chapter 16 Ethernet Controller Station Management Control, Address Register (MD_CA) 31 30 29 28 27 26 25 24 23 22 21 0x5C 20 19 18 17 16 Reserved : Type : Default 15 13 Reserved 12 11 Busy R/W 0 10 Wr R/W 0 9 PHY R/W 0x00 5 4 Addr R/W 0x00 : Type : Default 0 Bit(s) 31:12 11 Mnemonic Field Name Reserved Description Busy (Default: 0, R/W) This bit is set when operation starts. The Ethernet Controller clears this bit when the operation ends. Wr (Default: 0, R/W) This bit is set to "1" during writes and is cleared to "0" during reads. PHY (Default: 0, R/W) Address of all PHY to be read or written Addr (Default: 0, R/W) Address of PHY-internal register to be read or written. Busy Busy Bit 10 9:5 4:0 Wr PHY Addr Write PHY Address Address Figure 16.4.39 Station Management Control Address Register Before accessing the PHY Control Register, use the software to check the Busy bit of the Station Management Control, Address Register and confirm that it is not set. The Ethernet Controller supports reading or writing of Station Management data to PHY. The setting of the Station Management Control, Address Register does not affect the operation of the Ethernet Controller. 16-83 Chapter 16 Ethernet Controller 16.4.5.6 Address Recognition Circuit (ARC) Access Register ARC Address Register (ARC_Adr) 31 30 29 28 27 26 25 24 0x60 23 22 21 20 19 18 17 16 Reserved : Type : Default 15 14 Reserved 12 11 ARC_Loc R/W 0x000 2 1 0 Reserved : Type : Default Bits 31:12 11:2 1:0 Mnemonic ARC_Loc Field Name Reserved ARC Address Reserved ARC_Loc (Default: 0x00, R/W) ARC address: 4 bytes Description Figure 16.4.40 ARC Address Register Software resets initialize the ARC Address Register to 0x0000. During normal operation, the ARC Address Register and ARC Data Register can perform read or write operation to all ARC areas including two double-word positions immediately after flow control ARC. (See Figure 16.3.12.) During normal operation, writes to all other memory positions are invalid. When the TestMode bit of the DMA Control Register is set, you can use the ARC Address Register and perform read or write operation on all RAM areas in the DMA Block. 16-84 Chapter 16 Ethernet Controller ARC Data Register (ARC_Data) 0x64 31 ARC_Data[0] R/W 15 ARC_Data[2] R/W 8 7 ARC_Data[3] R/W : Type : Default 24 23 ARC_Data[1] R/W 0 : Type : Default 16 Bits 31:24 Mnemonic ARC_Data[0] Field Name ARC Data Register [0] Description ARC_Data[0] (Default -, R/W) 4-Byte data of ARC memory is accessed each time the ARC Data Register is read or written to. ARC_Data[1] (Default -, R/W) 4-Byte data of ARC memory is accessed each time the ARC Data Register is read or written to. ARC_Data[2] (Default: -, R/W) 4-Byte data of ARC memory is accessed each time the ARC Data Register is read or written to. 23:16 ARC_Data[1] ARC Data Register [1] 15:8 ARC_Data[2] ARC Data Register [2] 7:0 ARC_Data[3] ARC Data Register [3] ARC_Data[3] (Default: -, R/W) 4-Byte data of ARC memory is accessed each time the ARC Data Register is read or written to. Figure 16.4.41 ARC Data Register 4-Byte data of ARC memory is accessed each time the ARC Data Register is read or written to. In other words, the PCI Byte Enable signal is ignored. When changing only 2 Bytes of a 4-Byte word, the system software must perform a Read/Modify/Write. The ARC Data Register stores copies of data in ARC at the address specified by the ARC Address Register. You can read the content of the ARC Data Register as many times as you require. Writing data to this register changes the selected ARC data. Note: In contrast to transmission/reception data in the Master mode, data transferred via the ARC Interface is interpreted in Big Endian. 16-85 Chapter 16 Ethernet Controller ARC Enable Register (ARC _Ena) 31 Reserved 0x68 21 20 ARC_Ena R/W 0x00 : Type : Default 0 ARC_Ena R/W 0x0000 : Type : Default 16 15 Bits 31:21 20: 0 Mnemonic ARC_Ena Field Name Reserved ARC Enable Description ARC_Ena (Default: 0x0_0000, R/W) Sets the bits corresponding to an entry valid as address filtering. Figure 16.4.42 ARC Enable Register Hardware resets initialize the ARC Enable Register to 0x00_0000. Software resets do not change the contents of this register. This register indicates which entry to validate as address filtering. This register can validate up to 21 entries numbered from 0 to 20. 16-86 Chapter 16 Ethernet Controller 16.4.5.7 Missed Error Count Register (Miss_Cnt) 31 Reserved : Type : Default 15 Miss_Cnt R/W 0x0000 : Type : Default 0 0x7C 16 Bits 31:16 15:0 Mnemonic Miss_Cnt Field Name Reserved Missed Error Count Description Miss_Cnt (Default: 0x0000, R/W) This register counts the number of valid packets MAC refused due to MAC Reception FIFO overflow, parity error, or the clearing of the Reception Enable bit (RxEn). This count does not include the packets refused by ARC. Figure 16.4.43 Missed Error Count Register Hardware resets initialize the Missed Error Count Register to 0x0000_0000. Software resets do not change the contents of this register. The Missed Error Count Register displays the number of packets destroyed by various error types. This register provides the information required for station management along with the status information of the transmission/reception packet. Performing read access to the Missed Error Count Register clears it. Therefore, the software is responsible for increasing the bit count and retaining the precise total error count. The MissRoll bit of the MAC Control Register is set when the Missed Error Count Register rolls over from 0x7FFF to 0x8000. Also, in this case an interrupt occurs if the EnMissRoll bit is set. To generate interrupts more frequently from the Station Management software, you can set the Missed Error Count Register to a value that is close to the final count value of 0x7FFF. For example, if you set this register to 0x7F00, an interrupt occurs when errors have occurred 256 times. 0x74 through 0x78 is reserved to maintain compatibility with previous Toshiba products. 16-87 Chapter 16 Ethernet Controller 16-88 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17. SPI (Serial Peripheral Interface) Module (SPI) 17.1 Characteristics The SPI is a serial interface that consists of clock, data output, and data input. The SPI is used to interface with serial power, serial A/D converters, other devices including simple serial clocks and data interfaces. The TX4938 only operates as a Master. It generates SPI clocks to Slaves. Multi-slave devices can share the SPI by using a unique Chip Select for each Slave device. Chip Select uses one general-purpose I/O port of the TX4938, or can generate other output ports that the system can use. If the Chip Select of a device is asserted and the device is selected, that device uses the SPICLK and SPIOUT signals to shift data in, and then uses the SPIIN signal to shift data out. If the device is not selected, the data output connected to SPIIN must be put into the tri-state and other devices must be able to share the SPIIN signal. The SPI module contains registers that can program the SPI CLK rate, MSB first or LSB first, clock polarity, data phase polarity, and Byte mode or Word mode operation. The SPI module has the following characteristics: • • • • • • Selectable clock phase and polarity Transfer Size: 8-bit or 16-bit 4-frame Transmitter Buffer and 4-frame Receiver Buffer Master Operation Interframe Delay Time Counter MSB/LSB First 17-1 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17.2 Block diagram The SPI Module mainly consists of a 16-bit SPI Data Register (SPDR), a 16-bit Transmitter Buffer, a 16bit Receiver Buffer, a 16-bit Shift Register, a Baud Rate Generator, an Interframe Delay Time counter, and interrupt logic. Figure 17.2.1 is a block diagram of the SPI Module. IM-Bus Bus I/F Baud Rate Generator Interframe Delay Time Counter Interrupt Logic SPDR Read Write Receiver Buffer (FIFO) Transmitter Buffer (FIFO) Shift Register SPIIN SPICLK SPIOUT Figure 17.2.1 SPI Block Diagram 17-2 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17.3 Operational description 17.3.1 Operation modes The SPI Module has the two following operation modes: • Configuration Mode (OPMODE = “01”): You can only rewrite the lower byte (bits[7:0]) of SPI Control Register 0 (SPCR0) and all bits of SPI Control Register 1 (SPCR1) when in this mode. Also, the SPSTP bit, Receiver FIFO and Transmitter FIFO are cleared and the SPI Module is reset when in this mode. Setting this mode forcibly terminates even the transfer of a frame that is currently in progress. • Active Mode (OPMODE = “10”) The module operates in this mode during normal operation. You can execute transfers when in this mode. 17.3.2 Transmitter/Receiver The SPI Module is in the Reset state when it is in the Configuration Mode. When in this mode, set the lower byte (bits[7:0]) of SPI Control Register 0 (SPCR0) and SPI Control Register 1 (SPCR1) to the desired value before changing the operation mode to the Active Mode. The SPI Module can start transferring data once it is in the Active Mode. Transfer starts when data is written to the SPI Data Register (SPDR). The data written to the SPI Data Register (SPDR) is sent to the Shift Register, which then outputs the data to the Slave device. When the data is outputted from the SPIOUT pin, it is simultaneously fetched from the SPIIN pin. When fetching of the data is complete, the content of the Shift Register is loaded into the Receiver Buffer, the SRRDY bit of the SPI Status Register (SPSR) becomes “1”, then the Reception Buffer is notified that there is reception data. When the RBSI bit of the SPI Status Register (SPSR) is set to “1”, an interrupt occurs when the accumulated reception data reaches the level set by the RXIFL bit of SPI Control Register 0 (SPCR0). When the content of the Transmitter Buffer is transferred to the Shift Register, the STRDY bit of the SPI Status Register (SPSR) becomes “1” and notification is sent that the Transmitter Buffer is available for use again. If the TBSI bit in the SPI Status Register (SPSR) is set to “1”, an interrupt is generated when the Transmitter Buffer has 1 to 4 locations emptied, as programmed in the TXIFL field in SPI Control Register 0 (SPCR0). Therefore, the software executes the following steps each time it writes data to the Transmitter Buffer. (1) Check whether the STRDY bit or the TBSI bit is “1”. If neither bit is “1”, wait until one of them becomes “1”. (2) Write data to the SPI Data Register (SPDR). In this way, depending on the software used, the SPI Module can continue to seamlessly transmit data as long as the Transmitter Buffer is in the Run state until the data is shifted out from the Shift Register. If the software cannot keep up with the transfer rate, the SPI Module waits until the next data is written to the SPI Data Register (SPDR). 17-3 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) When one series of transmission is complete, the software deasserts the Chip Select signal of the Target device according to the following procedure. (1) Check whether the SRRDY bit or the RBSI bit is “1”. If neither bit is “1”, wait until one of them is asserted. (2) Check whether SIDLE is “1”. If it is not “1”, wait until it is asserted. (3) Deassert the Chip Select signal. The SPI Module supports either 8-bit or 16-bit per character operation as defined by the SSZ bit of SPI Control Register 1 (SPCR1). Also, the software can use the SBOS bit of SPI Control Register 0 (SPCR0) to select whether to shift MSB or LSB first. The other combination of control bits (SPHA and SPOL) determines the transfer format. See 17.3.4 for the transfer format. 17.3.3 Baud Rate Generator The SPI Module operates IMBUSCLK as the Master Clock (SPI Master Clock). This module divides IMBUSCLK to generate (using the Baud Rate Generator) the SPICLK used for SPI transmission/reception. You can set this divide rate and can change the SPICLK to any frequency. Use SER[7:0] of SPI Control Register 1 (SPCR1) to set the divide rate. The following table shows the divide rate (SER[7:0]) and SPICLK frequency for when IMBUSCLK is 66 MHz or 60 MHz. Table 17.3.1 SPICLK Frequency SPI Clock Rate SER[7:0] 00000001b 00000010b 00000011b 00000100b 00000101b … 00001001b … 00010011b … 11111111b 128.91 KHz 117.19 KHz 1.65 MHz 1.5 MHz 3.3 MHz 3 MHz SPI Clock Rate (IMBUSCLK: 60 MHz) (TMPR4938XBG-300) 15 MHz 10 MHz 7.5 MHz 6 MHz 5 MHz (IMBUSCLK: 66MHz) (TMPR4938XBG-333) 16.5 MHz 11 MHz 8.25 MHz 6.6 MHz 5.5 MHz 17-4 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17.3.4 Transfer format During SPI transfer, serial data transmission (shift out) and reception (shift in) is executed simultaneously. At this time, serial data is shifted or sampled synchronous to the serial clock. The SPHA bit and SPOL bit of SPI Control Register 0 (SPCR0) determine the transfer format. The setting of the SPHA bit broadly classifies the protocol that is used. Each protocol is described below in items 17.3.4.1 and 17.3.4.2. 17.3.4.1 SPHA =0 format Figure 17.3.1 shows the transfer format when SPHA is “0”. idle 1 2 3 4 5 6 7 8 idle SPICLK (SPOL=0) SPICLK (SPOL=1) SPIIN MSB B6 B5 B4 B3 B2 B1 LSB SPIOUT MSB B6 B5 B4 B3 B2 B1 LSB Sample point Figure 17.3.1 Transfer Format when SPHA is “0” When in this format, data is sequentially fetched from the first clock edge after the Idle state. When the SPOL bit is “0”, data is fetched at the rising edge. When this bit is “1”, data is fetched at the falling edge. The SPIIN or SPIOUT signal is switched at the second clock edge of SPICLK. The signal is switched at the SPICLK falling edge when the SPOL bit is “0”, or is switched at the SPICLK rising edge when the SPOL bit is “1”. When the SPOL bit is “0”, SPICLK is at the Low level during the Idle state. When the SPOL bit is “1”, SPICLK is at the High level during the Idle state. 17-5 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17.3.4.2 SPHA = 1 format Figure 17.3.2 shows the transfer format when SPHA is “1”. idle 1 2 3 4 5 6 7 8 idle SPICLK (SPOL=0) SPICLK (SPOL=1) SPIIN MSB B6 B5 B4 B3 B2 B1 LSB SPIOUT MSB B6 B5 B4 B3 B2 B1 LSB Sample point Figure 17.3.2 Transfer Format when SPHA is “1” When in this format, data is sequentially fetched from the second clock edge after the Idle state. When the SPOL bit is “0”, the data is fetched from the second falling edge. When the SPOL bit is “1”, the data is fetched from the second rising edge. When the SPOL bit is “0”, SPICLK is at the Low level during the Idle state. When the SPOL bit is “1”, SPICLK is at the High level during the Idle state. 17.3.5 Interframe Delay Time Counter There are cases where it is preferable to shorten the time between data groups. In such cases, the Interframe Delay Time Counter is used to specify the delay time between data groups. When 16 bits is selected as the data size by SPI Control Register 1, the delay time is inserted after 16-bit data is shifted. When 8 bits is selected, the delay time is inserted after 8-bit data is shifted. When IFS bits [9:0] are set to a value other than “0”, a delay is inserted between the characters. The length of the delay inserted between characters is also changed by the IFSPSE bit of SPI Control Register 0 (SPCR0) as shown below. When SPCR0.IFSPSE=1: SPI Master Clock Cycle × IFS[9:0] × 32 When SPCR0.IFSPSE=0: SPI Master Clock Cycle × IFS[9:0] If the IFS value is “0”, seamless operation is performed. The SPI Module continues to shift data and supply a clock as long as the software does not fall behind the transfer rate of the transmitter. 17-6 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17.3.6 Buffer configuration The SPI Module has a Transmitter Buffer and a Receiver Buffer. The buffers use FIFOs to store data. Each FIFO can store 4-frame data. The Transmitter Buffer stores the value written to the SPI Data Register. Either when in the Idle state or when the current transmission is complete, the first data written to the Transmitter Buffer is transferred to the Shift Register. On the other hand, data received in the Shift Register is stored in the Receiver Buffer each time transfer ends. You can issue interrupts each time data equal in size to the data in the buffer accumulates. 17.3.7 SPI system errors The SPI Module signals the following system errors during transfer. 17.3.7.1 Overrun error (SPOE) An overrun error is issued when an attempt is made to write the next data to the Transmitter Buffer regardless of whether the Transmitter Buffer is full. The data to be newly written at this time is not written to the Transmitter Buffer. Also, the SPOE bit of the SPSR Register becomes “1”. 17.3.8 Interrupts The SPI Module has three types of interrupt sources. The result of OR operation performed on three interrupt sources is inputted to the Interrupt Controller (IRC) as SPI interrupts. Check the SPI Status Register (SPSR) to see which interrupts occurred. Type System error or idle Receive Buffer Fill Transmit Buffer Fill RBSI TBSI Status bits SPOE, SIDLE RBSIE TBSIE Mask-able bit SOEIE, SILIE Use System errors or Idle interrupts for error detection or Idle state interrupts. Use Receiver Buffer Fill interrupts and Transmitter Buffer Fill interrupts when setting new transmission data to the buffer or when reading receiver data from the buffer. 17-7 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17.4 Registers Access SPI Module registers using 32-bit access. Operation is not guaranteed when accessing these registers using any other access size. Do not write “0” to any undefined bits. Table 17.4.1 SPI Module Registers Offset Address 0xF800 0xF804 0xF808 0xF80C 0xF810 0xF814 0xF818 0xF81C Bit Width 32 32 32 32 32 32 32 32 Register Symbol SPMCR SPCR0 SPCR1 SPFS ⎯ SPSR SPDR ⎯ Register Name SPI Master Control Register SPI Control Register 0 SPI Control Register 1 SPI Interframe Delay Time Register (Reserved) SPI Status Register SPI Data Register (Reserved) 17.4.1 31 SPI Master Control Register (SPMCR) 0xF800 16 0 : Type : Default 15 0 8 7 6 OPMODE R/W 0 R/W 1 5 0 3 2 ⎯ R/W 0 1 0 SPSTP BCLR R/W 0 R/W1C : Type 0 : Default Bit(s) 31:8 7:6 Mnemonic ⎯ OPMODE Field Name Reserved Operation Mode Operation Mode (Default: 00) Sets the operation mode. 00: Don’t care. 01: Configuration Mode 10: Active Mode 11: Reserved Description ⎯ 5:3 2 1 ⎯ ⎯ SPSTP Reserved Reserved SPI Stop Do not write “1” to this bit. ⎯ SPI Stop (Default: 0) When “1” is written to this bit, the SPI Module does not transfer any more data after the current frame is complete. You can only set this bit when in the Active Mode. Entering the Configuration Mode clears this bit. 0: Normal operation 1: Halt after the current transfer ends. SPI Buffer Clear (Default: 0) Use this bit to clear the Transmitter FIFO and Receiver FIFO. Writing “1” to this bit initializes the FIFO. Write “1” to this bit after the SPI Module enters the Idle state (SIDLE=1). Always outputs “0” when read. Write: 0: Don’t care 1:Clear the FIFO 0 BCLR SPI Buffer Clear Figure 17.4.1 SPI Master Control Register (SPMCR) 17-8 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17.4.2 31 0 : Type : Default 15 14 TXIFL R/W 0 13 12 RXIFL R/W 0 11 10 9 8 SILIE SOEIE RBSIE TBSIE R/W 0 R/W 0 R/W 0 R/W 0 7 0 6 0 5 0 4 IFSPSE SPI Control Register 0 (SPCR0) 0xF804 16 3 1 2 1 0 SBOS SPHA SPOL R/W 0 R/W 0 R/W : Type 0 : Default R/W 0 Bit(s) 31:16 15:14 Mnemonic ⎯ TXIFL Field Name Reserved Transmit Interrupt Fill Level Description ⎯ Transmit Interrupt Fill Level (Default: 00) You can issue interrupts according to the number of free data in the Transmitter FIFO. This field sets the free data count of the Transmitter FIFO at which interrupts are issued. 00: Issue an interrupt when there is 1 or more free data in the Transmitter FIFO. 01: Issue an interrupt when there are 2 or more free data in the Transmitter FIFO. 10: Issue an interrupt when there are 3 or more free data in the Transmitter FIFO. 11: Issue an interrupt when there are 4 free data in the Transmitter FIFO. Receive Interrupt Fill Level (Default: 00) You can issue interrupts according to the number of data in the Receiver FIFO. This field sets the number of Receiver FIFO data at which to issue an interrupt. 00: Issue an interrupt when there is 1 or more free data in the Receiver FIFO. 01: Issue an interrupt when there are 2 or more free data in the Receiver FIFO. 10: Issue an interrupt when there are 3 or more free data in the Receiver FIFO. 11: Issue an interrupt when there are 4 free data in the Receiver FIFO. SPI IDLE Interrupt Enable (Default: 0) Enables SPI Idle interrupts. 0: Disable 1: Enable SPI IDLE Overrun Enable (Default: 0) Enables SPI Overrun interrupts. 0: Disable 1: Enable Receive Buffer Fill Interrupt Enable (Default: 0) This bit specifies whether to signal an interrupt to the Interrupt Controller based on the number of data actually in the Receiver FIFO or to only display it as a status. 0: Disable (mask) 1: Enable Transmit Buffer Fill Interrupt Enable (Default: 0) This bit specifies whether to signal an interrupt to the Interrupt Controller based on the number of free data actually in the Transmitter FIFO or to only display it as a status. 0: Disable (mask) 1: Enable ⎯ 13:12 RXIFL Receive Interrupt Fill Level 11 SILIE SPI IDLE Interrupt Enable 10 SOEIE SPI Overrun Interrupt Enable 9 RBSIE Receive Buffer Fill Interrupt Enable 8 TBSIE Transmit Buffer Fill Interrupt Enable 7:5 ⎯ Reserved Figure 17.4.2 SPI Control Register 0 (SPCR0) (1/2) 17-9 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) Bit(s) 4 Mnemonic IFSPSE Field Name Inter Frame Space prescaler enable Reserved SPI Bit Order Select Description Inter Frame Space prescaler Enable (Default: 0) Enables prescaler of the Interframe Delay Time Counter. 0: Disable (× 1) 1: Enable (× 32) ⎯ SPI Bit Order Select (Default: 0) This bit specifies the bit order of the transfer data. 0: LSB first (transfer starting from the least significant bit) 1: MSB first (transfer starting from the most significant bit) SPI Clock Phase (Default: 0) Selects the clock phase. 0: Samples at the first clock edge, then shifts at the second edge. 1: Shifts at the first clock edge, then samples at the second edge. SPI Clock Polarity (Default: 0) Selects the SPICLK polarity. 0: High Active (SPICLK is Low when idle) 1: Low Active (SPICLK is High when idle) 3 2 ⎯ SBOS 1 SPHA SPI Phase 0 SPOL SPI Polarity Note 1: You can only write to bits 4, 2, 1, or 0 when the SPI Module is in the Configuration Mode. Note 2: The SPOL and SPHA bits select the SPICLK phase and the clock edge at which to sample data. For details, see 17.3.4 Transfer format. Note 3: The value of the SPOL bit must be changed, with the device's chip select signal deasserted. (For example, the chip select signal can be controlled, using a general-purpose port of the TX4938.) Figure 17.4.2 SPI Control Register 0 (SPCR0) (2/2) 17-10 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17.4.3 31 0 : Type : Default 15 14 13 12 SER R/W 0x00 11 10 9 8 7 0 6 0 5 0 4 3 2 SSZ R/W 00000 1 0 SPI Control Register 1 (SPCR1) 0xF808 16 : Type : Default Bits 31:16 15:8 Mnemonic ⎯ SER Field Name Reserved SPI Data Rate Description ⎯ SPI Data Rate (Default: 000000b) This field sets the transfer bit rate. The transfer bit rate is calculated according to the following equation. fBR = fSPI/2 (n + 1) fBR : SPICLK Frequency fSPI : SPI Master Clock Frequency n : SER (Setting “0” is not permitted) (See 17.3.3 for SER and clock frequency examples.) 7:5 4:0 ⎯ SSZ Reserved SPI Transfer Size ⎯ SPI Transfer Size (Default: 00000b) Selects the transfer size. 0x08: 8 bits 0x10: 16 bits Other values: Reserved (not settings are permitted) Note 1: You can only write to this register when the SPI Module is in the Configuration Mode. Figure 17.4.3 SPI Control Register 1 (SPCR1) 17-11 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17.4.4 31 0 : Type : Default 15 0 10 9 IFS R/W 0000000000 : Type : Default 0 SPI Interframe Delay Time Counter (SPFS) 0xF80C 16 Bits 31:10 9:0 Mnemonic ⎯ IFS Field Name Reserved Inter Frame Space Description ⎯ Inter Frame Space (Default: 0x00) This register sets the delay time to insert between two consecutive frames. When this register is set to "0", transfer ends, the next transmission data is loaded from the Transmitter FIFO to the Transmitter Buffer, and then the next transfer is performed. (Since the time data is loaded into the buffer is not "0", the delay time from the last clock until the first clock of the next transfer is not actually "0".) When setting the IFSPSE bit of the SPCR0 Register to "0" and not using prescaler, the Interframe delay time is the value calculated using the formula in 17.3.5. (16.7 ns - 17.05 µs when SPI Master Clock Frequency is 60 MHz) When setting the IFSPSE bit of the SPCR0 Register to "1" and using prescalar, the Interframe delay time is the value calculated using the formula in 17.3.5. (533 ns - 545.6 µs when SPI Master Clock Frequency is 60 MHz) Only write to this register when the SIDLE bit is "0". Figure 17.4.4 SPI Interframe Delay Time Counter (SPFS) 17-12 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) 17.4.5 31 0 : Type : Default 15 TBSI R 1 14 RBSI R 0 13 TBS R 000 11 10 RBS R 000 8 7 SPOE R/C 0 6 0 5 0 4 0 3 2 1 0 IFSD SIDLE STRDY SRRDY R 0 R 1 R 1 R 0 : Type : Default SPI Status Register (SPSR) 0xF814 16 Bit(s) 31:16 15 Mnemonic ⎯ TBSI Field Name Reserved Transmit Buffer Status Indicator Description ⎯ Transmit Buffer Status Indicator (Default: 1) Indicates the status of interrupts according to the number of free data in the Transmitter FIFO. 0: No interrupt 1: Interrupt Receive Buffer Status Indicator (Default: 0) Indicates the status of interrupts according to the number of free data in the Receiver FIFO. 0: No interrupts 1: Interrupts Transmit Buffer Status (Default: 000) Indicates how many data are in the Transmit FIFO. 000: No data 001: 1 010: 2 011: 3 100: 4 (FIFO is full) 101 – 111: NA Receive Buffer Status (Default: 000) Indicates how many data are in the Receiver FIFO. 000: No data 001: 1 010: 2 011: 3 100: 4 (FIFO is full) 101 – 111: NA SPI Overrun Error (Default: 0) Indicates that an overrun occurred in the Transmitter FIFO. You can clear this bit by writing "1" to it. You can also clear this flag by putting the SPI Module in the Configuration Mode. Read: 0: No errors 1: Generate overrun errors Write: 0: Don’t care 1: Clear ⎯ 14 RBSI Receive Buffer Status Indicator 13:11 TBS Transmit Buffer Status 10:8 RBS Receive Buffer Status 7 SPOE SPI Overrun Error 6:4 ⎯ Reserved Figure 17.4.5 SPI Status Register (SPSR) (1/2) 17-13 Chapter 17 SPI (Serial Peripheral Interface) Module (SPI) Bit(s) 3 Mnemonic IFSD Field Name SPI Inter Frame Space Delay Indicator Description SPI Inter Frame Space Delay Indicator (Default: 0) This bit becomes "1" when transfer of a frame ends and transfer of the next frame is deferred by the Interframe Delay Time Counter. 0: No interframe cycle 1: Interframe cycle SPI Idle Indicator (Default: 0) This bit becomes "1" either when the Transmitter FIFO is empty or the SPSTP bit is "1" and there is no transfer in progress. 0: Run 1: Idle SPI Transmit Ready (Default: 0) Indicates that there is space in the Transmitter FIFO. 0: Transmitter FIFO is full. 1: Transmitter FIFO has space. SPI Receive Ready (Default: 0) Indicates that there is reception data in the Receiver FIFO. This bit is cleared when the SPDR Register is read and there is no longer any valid data in the Receiver FIFO. 0: Receiver FIFO is empty. 1:There is data in the Receiver FIFO. 2 SIDLE SPI Idle Indicator 1 STRDY SPI Transmit Ready 0 SRRDY SPI Receive Ready Figure 17.4.5 SPI Status Register (SPSR) (2/2) 17.4.6 31 SPI Data Register (SPDR) 0xF818 16 0 : Type : Default 15 DR R/W 0x00 0 : Type : Default Bits 31:16 15:0 Mnemonic ⎯ DR Field Name Reserved SPI Data Register Description ⎯ SPI Data Register (Default: 0x00) The data written to this register is stored in the Transfer Buffer. When the Shift Register is empty, data is written to the Shift Register and transmission begins. You can read the Receiver FIFO data when you read this register. When the transfer data size is 8 bits, use the lower 8 bits of this register. When reading, the upper side (bits[15:8]) are "0". Figure 17.4.6 SPI Data Register (SPDR) 17-14 Chapter 18 NAND Flash Memory IPL 18. NAND Flash Memory IPL 18.1 Features NAND Flash Memory Initial Program Loader (NAND IPL), which is coded in the TX4938 on-chip ROM, enables to boot TX4938 from the NAND flash memory. The user writes NAND IPL control information and a user boot program to the NAND flash memory in the prescribed format. NAND IPL loads the user boot program from the NAND flash memory into RAM and continues the standard boot process. • • Specifying NAND IPL in the boot configuration boot memory starts up NAND IPL. The IPL control information includes the memory controller initialization sequence, the address or the size of the user boot program to be loaded. NAND IPL operates based on NAND IPL control information. NAND IPL supports rewriteable NAND flash memory to be connected to the NAND Flash Memory Controller, Mask ROM type NAND flash memory, and SmartMedia™, but not support the NAND flash memory with partially different configurations. NAND IPL requires a 4 Kbyte stack (work area). Since RAM performs initialization using the NAND IPL control information, you can use various types of RAM. The user may use any memory area in the NAND flash memory except the zone used with NAND IPL, and the area used with NAND IPL when it does not affect operation of NAND IPL. For details on the data specification, see 18.3.5. NAND IPL operates in either Big-endian or Little-endian mode. It also operates in Cache On or Write Through mode. NAND IPL uses PIO [0] bit 1, General Purpose Register ($4) or the lower address of External Bus Controller Channel 0 to signal the NAND IPL operation results. NAND IPL can not be modified since it is written into on-chip ROM. • • • • • • External System Bus RAM TX4938 d) User Boot Program a) NAND IPL NAND Flash Memory b) IPL Control Information c) User Boot Program a) b) c) d) NAND IPL starts up. Read the IPL control information from NAND flash memory. Read the user boot program from the NAND flash memory, then load it into RAM. Start up the user boot program in RAM. Figure 18.1.1 Image Diagram of Booting from NAND Flash Memory 18-1 Chapter 18 NAND Flash Memory IPL 18.2 Block Diagram 18.2.1 System Block Diagram TX4938 TX49/H3 Core Configuration Register SDRAM Control Signal SDRAMC Memory Device such as SDRAM DATA[63:0] On-chip ROM (NAND IPL) EBIF External System Bus DATA[7:0] Command/Data Address Signal NDFMC NAND Flash Memory G-Bus Figure 18.2.1 Block Diagram of System with NAND Flash Memory Connected to SDRAM 18.2.2 Function Block Diagram On-Chip ROM G-Bus G-Bus I/F NAND IPL (8 Kbyte) Figure 18.2.2 Function Block Diagram of NAND IPL 18-2 Chapter 18 NAND Flash Memory IPL 18.3 Detailed Explanation 18.3.1 NAND IPL Operation Conditions (1) NAND IPL supports the Bi-endian (Big- and Little-endian) format. When the TX4938 operates in the Big-endian mode, the Big-endian user boot program may be loaded. When operating in the Little-endian mode, the Little-endian user boot programs may be loaded. (2) The NAND flash memory to be used with NAND IPL is shown below. For the format of the user data to be written in NAND flash memory and data configuration of NAND flash memory, see 18.3.4 and 18.3.5. NAND flash memory must be readable on power up. Table 18.3.1 Usable NAND Flash Memory Device ID Size (MB) 8 16 32 64 128 Flash ROM 0xE6 0x73 0x75 0x76 0x79 Mask ROM 0xD6 0x57 0x58 0xD9 0xDA Bytes/Page Pages/Block 16 Physical Block Count 1024 2048 4096 8192 Zone Count 1 2 4 8 512 + 16 32 (3) NAND IPL uses PIO [0] and General Purpose Register $4 ($a0) to signal the NAND IPL operation results, and external bus controller channel for unusual conditions. (4) Operating NAND IPL requires the 4 Kbyte stack for work area, and RAM having the same size as the user program in which the user boot program is stored. For the address map, see 18.3.3. For initial setting of RAM access and address setting of the work area and user boot program, see 18.3.4. As in the case of booting from the NOR flash memory, the user program requires the work area after jumping to the user boot program. 18-3 Chapter 18 NAND Flash Memory IPL 18.3.2 NAND IPL Operation NAND IPL operates according to the following flow. BEV = 0 or 1 Interrupt to 0xBFC0_0000 Cold/Soft reset, NMI exception (see 18.3.3.2) 1) NAND IPL starts up. 2) Is this a cold reset (≠NMI)? Yes No. NMI Interrupt 3) Is interrupt issued after completion of NAND IPL operation? No BEV = 0 CPU example for BEV=0 Yes Jump to JMPADR specified address. No. Check sum error 1 4) Set PIO[0] Low. CPU interrupt Processing (See 18.3.3.2) 5) Is NAND IPL checksum correct? Yes 6) Is NAND Flash memory ID correct? Yes 7) Is IPL control information is processed correctly? No. NAND Flash memory ID error Yes 8) Hardware initialization No. NAND Flash Memory internal data error 9) Create NAND Flash Memory logical-physical address translation table. No. 1-bit ECC error ECC error correction 10) Was user boot program read correctly? No. 2- or more-bit ECC error Read correctly 11) Load the user boot program. No. Move to the next page 12) Is this the last page of the user boot program? Yes No. Move to the next zone 13) Is this the last zone of the user boot program? Yes 14) Set PIO[0] High. BEV = 1 Except 0xBFC0_0000 (See 18.3.3.2) 1 *1: Jump to the address in the user boot program. End (*1) 15) Set JMPADR. 16) User boot program starts up. 17) Abnormal termination Figure 18.3.1 NAND IPL Program Flow 18-4 Chapter 18 NAND Flash Memory IPL 18.3.2.1 NAND IPL Startup To boot the TX4938, operation usually starts from the 0xBFC0_0000 program (user boot program) connected to External Bus Controller Channel 0. When you specify NAND IPL using Boot Configuration (see section 3.2 Boot Configuration for details), the on-chip ROM is allocated to 0xBFC0_0000 to operate NAND IPL. For details on the NAND IPL address map, see subsection 18.3.3. 18.3.2.2 Cold Reset When cold reset or NMI interrupt occurs, TX49/H3 core transfers the control to 0xBFC0_0000 in NAND IPL. NAND IPL checks whether it is NMI interrupt by referring the SR bit in the Status register. When it is not the NMI interrupt, NAND IPL jumps to kseg0 and goes to the stage 4) Set PIO[0] Low in Figure 18.3.1. Note: NAND IPL refers only the SR bit. 18.3.2.3 MNI Exception When NAND IPL processing is completed, the NAND IPL interrupt handler jumps to the address set in the Jump Address register (JMPADR). When NAND IPL processing is not completed, it jumps to the abnormal processing routine in NAND IPL. For abnormal processing, see 18.3.6. The JMPADR value is used to check whether NAND IPL processing is completed. The initial value 0xBFC0_0000 indicates that NAND IPL processing is not completed, and other values indicate the completion of NAND IPL processing. Note: NAND IPL reads the JMPADR value, which is defined in the IPL control information defined by the user, and sets it in JMPADR. The user must not operate JMPADR. 18.3.2.4 Setting PIO[0] Low NAND IPL uses bit 1 of PIO [0] to signal the program operation status to an external device. When NAND IPL operates, bit 1 of PIO [0] becomes Low. 18.3.2.5 NAND IPL Checksum NAND IPL checks whether the NAND IPL code in on-chip ROM is correct. 18.3.2.6 NAND Flash Memory ID Check NAND IPL checks whether the NAND flash memory being used can respond properly to NAND IPL by reading the NAND flash memory ID. 18-5 Chapter 18 NAND Flash Memory IPL 18.3.2.7 NAND IPL Control Information Processing NAND IPL reads the data defined in compliance with the prescribed format from NAND flash memory. Since NAND IPL can not use RAM at this stage, access to the NAND flash memory by specifying a physical address. You can not use Error Check and Correct (ECC). Therefore, NAND IPL judges the correctness of the IPL control information using the following method. For more information on the prescribed format, see 18.3.4. • The IPL control information consists of the same data set written three times consecutively. NAND IPL compares these three data sets on read of them, and regards as a correct one when at least two of the three data sets are identical. NAND IPL performs the following operation to search the IPL control information. • Performs normal block check of the NAND flash memory only with the data contained in the top page of the block “Block Status Area” (redundant area). NAND IPL does not perform this check on the applicable data in other pages. Since the NAND flash memory may contain bad blocks, you can not fix the IPL control information to a specific physical address. NAND IPL sequentially reads physical blocks 0 through 23, and searches each page within a block to find the IPL control information start ID on the top of the page when the block is good one. • 18.3.2.8 Hardware Initialization NAND IPL secures a stack (work area) which is used for RAM access setup (initialization) or NAND IPL in accordance to the IPL control information defined in the NAND flash memory. Note: The external bus controller channel can be set by writing IPL control information, but that is not recommended due to processing speed. We recommend to perform the minimum hardware setting in NAND IPL such as NAND flash memory and RAM access required to operate IPL, and to use the boot program for other settings. 18.3.2.9 NAND Flash Memory Logical-physical Address Translation Table Creation NAND IPL creates a logical-physical address translation table since NAND flash memory after RAM is secured is accessed using logical addresses. For the logical address, see 18.3.5.1. NAND IPL creates the address translation table for every zone, and recreates it (*1) if the zone is changed. (*1): NAND IPL has the information for only one zone, which indicates relationship between the logical-physical address translation table (translation table) and the target zone. Upon load of the user boot program (program), NAND IPL creates the translation table of the zone which resides in the top block of the program, and remembers the zone number before load of the program in this zone. If a program spans multiple zones, NAND IPL recreates the translation table of the new target zone when the block to be loaded by NAND IPL exits from the target zone, and loads the program of the new zone. 18-6 Chapter 18 NAND Flash Memory IPL 18.3.2.10 Checking Read of the User Boot Program NAND IPL reads the user boot program from NAND flash memory in accordance to the information such as the address defined in the IPL control information. If a 1-bit error is detected upon read of data for one page, NAND IPL performs 1-bit ECC correction (see 18.3.5.1), when 2or more-bit error is detected, NAND IPL jumps to abnormal termination processing. Note that you can not write this data back to the NAND flash memory after correcting 1-bit error on it. 18.3.2.11 Loading the User Boot Program NAND IPL loads the user boot program for one page, which is read from the NAND flash memory, into RAM. As described in 18.3.2.10, NAND IPL corrects the user boot program if 1-bit error is detected, and loads it into RAM. 18.3.2.12 Checking the Last Page of the User Boot Program NAND IPL checks whether the page being loaded is the last page in which the user boot program resides. If it is not the last page, NAND IPL returns to processing of 18.3.2.10 and continues load of the user boot program. 18.3.2.13 Checking the Last Zone of the User Boot Program NAND IPL checks whether the zone being loaded with NAND IPL is the last zone in which the user boot program resides. If it is not the last zone, NAND IPL returns to processing of 18.3.2.9 and recreates the logical-physical address translation table before load of the user boot program. 18.3.2.14 Setting PIO[0] High After loading is terminated normally, NAND IPL sets bit 1 of PIO [0] to High. PIO [0] which remains Low indicates that an error occurred and loading of the user boot program was not completed. For details, see 18.3.6 NAND Flash Memory IPL Error Handling. 18.3.2.15 Setting Jump Address Register (JMPADR) Before transferring the control to the user boot program, NAND IPL rewrites the initial Jumper Address Register (JMPADR) value of 0xBFC0_0000 to the top address of the user boot program. For information on this register, see 5.2.8 Jump Address Register. 18.3.2.16 User Boot Program Startup NAND IPL jumps to the value set with the jump address register (JMPADR), then starts up the user boot program and transfers the control to it. The user needs to write processing for occurrence of CPU exception on the top address of the user boot program. For details, see 18.3.3.2. 18.3.2.17 Abnormal Termination NAND IPL can detect multiple errors. For more information, see 18.3.6 NAND Flash Memory IPL Error Handling. 18-7 Chapter 18 NAND Flash Memory IPL 18.3.3 NAND Flash Memory IPL Address Map 18.3.3.1 Address Information When NAND IPL Starts up When NAND IPL is specified by boot memory setting of Boot Configuration, NAND IPL is allocated to 0xBFC0_0000 which is the reset vector. The area of the user boot program to be loaded by NAND IPL is either kseg0 or kseg1. You can set the load destination address to any address within this range. The user boot program is usually allocated to 0xBFC0_0000 in the TX49/H3 core mounted products. When NAND IPL is used, NAND IPL creates (loads) the user boot program at a RAM address. 18.3.3.2 Address Information When CPU Exception Is Issued (1) Cold Reset/NMI Exception If an exception occurs after startup of the user boot program and BEV=0 or BEV=1 is set to the TX49/H3 core Status Register, TX49/H3 core transfers the control to address 0xBFC0_0000. NAND IPL checks whether an exception is an NMI exception. When it is an NMI exception, NAND IPL refers to the Jump Address Register (JPMADR) and transfers the control to the (JMPADR) address (*1), which is the top address of the user boot program. When it is not an NMI exception, execution starts from address 0xBFC0_0000. Therefore, you need to describe the exception vector for an NMI exception in the JMPADR address of the user boot program. (*1): The jump destination address set in the Jump Address Register (JMPADR) (2) TLB Refill Exception If an exception occurs after startup of the user boot program and BEV=0 is set to the TX49/H3 core Status Register, the TX49/H3 core transfers the control to address 0x8000_0000. When BEV=1, NAND IPL Exception Handler refers to the Jump Address Register (JMPADR) from exception vector address 0xBFC0_0200 and transfers the control to the (JMPADR) + 0x0200 address of the user boot program. Therefore, you need to describe an exception vector to the (JMPADR) + 0x0200 address of the user boot program when this exception occurs. (3) XTLB Refill Exception If an exception occurs after startup of the user boot program and BEV=0 is set to the TX49/H3 core Status Register, the TX49/H3 core transfers the control to address 0x8000_0080. When BEV=1, NAND IPL Exception Handler refers to the Jump Address Register (JMPADR) from exception vector address 0xBFC0_0280 and transfers the control to the (JMPADR) + 0x0280 address of the user boot program. Therefore, you need to describe an exception vector to the (JMPADR) + 0x0280 address of the user boot program when this exception occurs. 18-8 Chapter 18 NAND Flash Memory IPL (4) Other Exceptions (Common Exceptions) If an exception occurs after startup of the user boot program and BEV=0 is set to the TX49/H3 core Status Register, the TX49/H3 core transfers the control to address 0x8000_0180. When BEV=1, NAND IPL Exception Handler refers to the Jump Address Register (JMPADR) from exception vector address 0xBFC0_0380 and transfers the control to the (JMPADR) + 0x0380 address of the user boot program. Therefore, you have to describe an exception vector to the (JMPADR) + 0x0380 address of the user boot program when this exception occurs. For details on interrupts, see the document "64-bit TX System RISC TX49/H3 Core Architecture" provided by Toshiba. 18-9 Chapter 18 NAND Flash Memory IPL 0xBFFF_FFFF Physical Address Space 0xFFFF FFFF 0xFF1F _FFFF 0xFF1F _0000 TX4938 On-chip Register 0xC000 _0000 kseg1 Unmapped Uncached kseg0 (*1) Unmapped Cacheable BEV=1 0xBFC0_0380 0xBFC0_0280 0xBFC0_0200 0xBFC0_0000 Virtual Address Space 0xFFFF _FFFF 0xBFD0_0080 0xBFD0_0000 0xBFC0_1FFF Area Used to Signal Errors NAND IPL 8 Kbyte (Other Exception Vector) (XTLB Exception Vector) (TLB Exception Vector) (Reset, NMI Exception Vector) 0xA000 0000 0x8000 0000 0xA000_0000 Stack Top (*2) Stack (Work Area) 4 Kbyte User Boot Program 0x1FFF _FFFF 0x0000 _0000 BEV=0 (JMPADR)+0x380 (JMPADR)+0x280 (JMPADR)+0x200 (JMPADR) (*3) (Other Exception Vector) (XTLB Exception Vector) (TLB Exception Vector) (NMI Exception Vector) 0x0000 _0000 *1) NAND IPL uses 0x9FC0_0000 through 0x9FC0_1FFF in kseg0. Exception Vector when BEV=1 0x8000_0180 0x8000_0080 0x8000_0000 Other Exception Vector XTLB Exception Vector TLB Exception Vector *2) The stack top address is the value defined in the NAND IPL control information. *3) The user boot program address is the value defined in the NAND IPL control information. This address is stored in the JMPADR Register. Figure 18.3.2 NAND IPL Address Map 18-10 Chapter 18 NAND Flash Memory IPL 18.3.4 NAND Flash Memory IPL Control Information 18.3.4.1 IPL Control Information Configuration To start up NAND IPL, you need to save the IPL control information in the NAND flash memory in advance. Describe the IPL control information using multiple control information commands in compliance with the prescribed format. You need to describe it in the order given below. (1) IPL Control Information Start ID Write the “TX49” ASCII code as the start information. (2) NAND Flash Memory Access Setup Set up the strobe pulse width (SPW) of the NAND Flash Memory Strobe Pulse Width Register (NDFSPR). Note: The NAND flash memory operates at the slowest speed value with the initial NAND IPL setting. If you want to accelerate NAND IPL, set a value appropriate for the speed of the NAND flash memory being used. (3) RAM Access Setup RAM is connected to either the External Bus Controller or the SDRAM Controller, which depends on the type of RAM to be used. You will perform initial setting of memory access required for RAM to be connected. The following shows examples when RAM is connected to the SDRAM Controller. For details, see subsection 9.3.3 Initialization of SDRAM. – SDRAM Channel Control Register (SDCCRn) – SDRAM Timing Register (SDCTR) – SDRAM Command Register (SDCCMD) – Refresh Counter Setup – SDRAM Intialization (4) Stack (Work Area) Setup Set the address of the 4-Kbyte stack (work area) used by NAND IPL. (5) Page Crossing Setup “Page crossing” refers to a situation where the IPL control information can not be contained within a single page (512 bytes) and spans across multiple pages. When performing page crossing, the “page crossing command” indicates that the subsequent command resides on the next page. Write a “IPL control information continuation ID” on the top of the next page. When the IPL control information is contained in a single page, this command is not required. (6) User Boot Program Setup Specify the logical address and program size (bytes) of the NAND flash memory that saves the user boot program, and the load destination address of RAM. Note: To use RAM with memory parity or ECC, initialize the user boot program area of the load destination because reading RAM having no data results in an error. 18-11 Chapter 18 NAND Flash Memory IPL 18.3.4.2 Describing the IPL Control Information Describe the IPL control information in NAND flash memory in the following format. • • • • Describe it in the format of the command or the parameters that the command takes. For details, see Table 18.3.2. Commands and parameters are in units of 32 bits/data. Write the same command or parameter three times in a row. In other words, write the same 32-bit data three times in a row. Always describe it in the Big-endian format regardless of endian during operation. Table 18.3.2 IPL Control Information Command No. 1 2 3 4 5 6 7 8 9 10 11 Command Name STARTID W RITE32 W RITE64 W AITSDRAM W AITTIME MEMORY W ORK NEXTINF NEXTID BOOTLA NOP Command Value 0x5458_3439 0x0000_0001 0x0000_0002 0x0000_0003 0x0000_0004 0x0000_0005 0x0000_0006 0x0000_0007 0x5458_346E 0x0000_0008 0x0000_0009 Function IPL Control Information Start ID 32-bit Write 64-bit Write SDRAM Initialization Completion Wait Wait Time Memory Initialization Specify Stack Page Crossing IPL Control Information Continuation ID User Boot Program Specification No Operation No. 1 Parameter Address Address 0x0000_0000 Loop Count Start Address Stack Top 0xEEEE_EEEE NAND Flash Memory Logical Address 0x0000_0000 No. 2 Parameter Data High Data Size (Bytes) Program Size (Bytes) - No. 3 Parameter Low Data Load Destination RAM Address - (1) IPL Control Information Start ID (STARTID) This command indicates start of the IPL control information. Describe “TX49” (0x5458_3439) in ASCII code. NAND IPL recognizes data from this command to the BOOTLA command, which is written in NAND flash memory, as the IPL control information. (2) 32-bit Write (WRITE32) Use this command to perform operations such as SDRAM initialization using register settings. Write 32-bit data to the specified 32-bit address. (3) 64-bit Write (WRITE64) Use this command to perform operations such as SDRAM initialization for register setting. Combine 32-bit high-order data and 32-bit low-order data into one 64-bit data, and write the 64-bit data to the specified 32-bit addresses. Note: You can use the 32-bit Write command to initialize a 64-bit register, but we recommend to use the 64-bit write command. 18-12 Chapter 18 NAND Flash Memory IPL (4) SDRAM Initialization Completion Wait (WAITSDRAM) This command waits until the count value set in the Refresh Counter (RC) of the SDRAM Timing Register (SDCTR) becomes 0. Before invoking this command, set the refresh counter value required for initialization in accordance with the specifications of the SDRAM being used. (5) Wait Time (WAITTIME) NAND IPL executes the loop among three instructions the number of times specified with this command (operation with the Instruction cache On), and waits. Note that wait time changes depending on the CPU clock. (6) Memory Initialization (MEMORY) This command initializes memory to 0 by specifying the address and size (in bytes) of the target memory. Use this command to initialize RAM with memory parity or ECC. (7) Stack (Work Area) Specifications (WORK) After enabling RAM operation, this command specifies the top address of the 4-Kbyte stack used by NAND IPL. Refer to Figure 18.3.2 NAND IPL Address Map. (8) Page Crossing (NEXTINF) This command is used when the IPL control information spans across multiple pages (exceeds 512 bytes in size). Describing this command indicates that the IPL control information described on this page ends. To use the NEXTINF command, the IPL Control Information Continuation command (NEXTID) is required. (9) IPL Control Information Continuation ID (NEXTID) This command is used when the IPL control information spans across multiple pages (exceeds 512 bytes in size). Describing ASCII code “TX4n” (0x5458_346E), that is the NEXTID command, at the top of the applicable page, indicates that this page is a continuation of the IPL control information. To use the NEXTID command, the Page Crossing command (NEXTINF) is required. (10) User Boot Program Specification (BOOTLA) This command specifies the logical start address of the NAND flash memory containing the user boot program (see 18.3.5.1), the size of the program (in bytes), and the load destination address of RAM to be loaded by NAND IPL. Since NAND IPL recognizes this command as the end of the IPL control information, subsequent commands are not executed. (11) No Operation (NO) This command performs no operation. 18-13 Chapter 18 NAND Flash Memory IPL 18.3.4.3 Example Definition of the IPL Control Information Table 18.3.3 Page Configuration Example of the IPL Control Information Offset Address 0x000 0x004 0x008 0x00c 0x010 0x014 0x018 0x01c 0x020 0x024 0x028 0x02c 0x030 0x034 0x038 0x03c 0x040 0x044 0x048 0x04c 0x050 0x054 0x058 0x05c 0x060 0x064 0x068 0x06c 0x070 0x074 0x078 0x07c 0x080 0x084 0x088 0x08c 0x090 0x094 0x098 0x09c 0x0a0 0x0a4 0x0a8 0x0ac 0x0b0 0x0b4 0x0b8 0x0bc 0x0c0 Command STARTINF ↓ ↓ WRITE64 ↓ ↓ No. 1 Parameter ↓ ↓ No. 2 Parameter ↓ ↓ No. 3 Parameter ↓ ↓ WRITE64 ↓ ↓ No. 1 Parameter ↓ ↓ No. 2 Parameter ↓ ↓ No. 3 Parameter ↓ ↓ WRITE64 ↓ ↓ No. 1 Parameter ↓ ↓ No. 2 Parameter ↓ ↓ No. 3 Parameter ↓ ↓ WRITE64 ↓ ↓ No. 1 Parameter ↓ ↓ No. 2 Parameter ↓ ↓ No. 3 Parameter Content Indicates “IPL Control Information Start ID” ↓ ↓ Indicates “64-bit Write Command” ↓ ↓ NDFSPR Register Address ↓ ↓ Pulse Width Setting (High Data) of NAND Flash Memory Write Data (Example) 0x5458_3439 ↓ ↓ 0x0000_0002 ↓ ↓ 0xFF1F_5028 ↓ ↓ 0x0000_0000 ↓ ↓ 0x0000_0045 ↓ ↓ 0x0000_0002 ↓ ↓ 0xFF1F_8000 ↓ ↓ 0x0000_000E ↓ ↓ 0x0000_0404 ↓ ↓ 0x0000_0002 ↓ ↓ 0xFF1F_8040 ↓ ↓ 0x0000_0003 ↓ ↓ 0xBE02_0400 ↓ ↓ 0x0000_0002 ↓ ↓ 0xFF1F_8058 ↓ ↓ 0x0000_0000 ↓ ↓ 0x0000_0013 ↓ ↓ Pulse Width Setting (Low Data) of NAND Flash Memory ↓ ↓ Indicates “64-bit Write Command” ↓ ↓ SDCCR0 Register Address ↓ ↓ SDCCR0 Register Setting (High Data) ↓ ↓ SDCCR0 Register Setting (Low Data) ↓ ↓ Indicates “64-bit Write Command” ↓ ↓ SDCTR Register Address ↓ ↓ SDCTR Register Setting (High Data) ↓ ↓ SDCTR Register Setting (Low Data) ↓ ↓ Indicates “64-bit Write Command” ↓ ↓ SDCCMD Register Address ↓ ↓ SDCCMD Register Setting (High Data) ↓ ↓ SDCCMD Register Setting (Low Data) 18-14 Chapter 18 NAND Flash Memory IPL Command 0x0c4 0x0c8 0x0cc 0x0d0 0x0d4 0x0d8 0x0dc 0x0e0 0x0e4 0x0e8 0x0ec 0x0f0 0x0f4 0x0f8 0x0fc 0x100 0x104 0x108 0x10c 0x110 0x114 0x118 0x11c 0x120 0x124 0x128 0x12c 0x130 0x134 0x138 0x13c 0x140 0x144 0x148 0x14c 0x150 0x154 0x158 0x15c 0x160 0x164 0x1f0 0x000 0x004 Next Page 0x008 0x00c 0x010 0x014 0x018 0x01c 0x020 0x024 0x028 ↓ ↓ WRITE64 ↓ ↓ No. 1 Parameter ↓ ↓ No. 2 Parameter ↓ ↓ No. 3 Parameter ↓ ↓ WAITSDRAM ↓ ↓ No. 1 Parameter ↓ ↓ MEMORY ↓ ↓ No. 1 Parameter ↓ ↓ No. 2 Parameter ↓ ↓ WORK ↓ ↓ No. 1 Parameter ↓ ↓ NEXTINF ↓ ↓ No. 1 Parameter ↓ ↓ Omitted None NEXTID ↓ ↓ BOOTLA ↓ ↓ No. 1 Parameter ↓ ↓ No. 2 Parameter ↓ None Indicates “IPL Control Information Continuation ID” Content ↓ ↓ Indicates “64-bit Write Command” ↓ ↓ SDCCMD Register Address ↓ ↓ SDCCMD Register Setting (High Data) ↓ ↓ SDCCMD Register Setting (Low Data) ↓ ↓ Indicates “SDRAM Initialization Completion Wait Command” Write Data (Example) ↓ ↓ 0x0000_0002 ↓ ↓ 0xFF1F_8058 ↓ ↓ 0x0000_0000 ↓ ↓ 0x0000_0011 ↓ ↓ 0x0000_0003 ↓ ↓ 0x0000_0000 ↓ ↓ 0x0000_0005 ↓ ↓ 0xA001_0000 ↓ ↓ 0x0000_8000 ↓ ↓ 0x0000_0006 ↓ ↓ 0xA000_8000 ↓ ↓ 0x0000_0007 ↓ ↓ 0xEEEE_EEEE ↓ ↓ 0x0000_0000 0x5458_346E ↓ ↓ 0x0000_0008 ↓ ↓ 0x0000_0001 ↓ ↓ 0x0000_8000 ↓ ↓ ↓ Counter Value 0 ↓ ↓ Indicates “Memory Initialization Command” ↓ ↓ Start Address ↓ ↓ Size (Bytes) ↓ ↓ Indicates “Stack Specification Command” ↓ ↓ Stack Top Address ↓ ↓ Indicates “Page Crossing Command” ↓ ↓ Page Crossing End ID ↓ ↓ ↓ ↓ Indicates “User Boot Program Specification Command” ↓ ↓ NAND Flash Memory Logical Address ↓ ↓ Size of User Boot Program (Bytes) ↓ 18-15 Chapter 18 NAND Flash Memory IPL Command 0x02c 0x030 0x034 0x038 ↓ No. 3 Parameter ↓ ↓ Content ↓ Load Destination SDRAM Address ↓ ↓ Write Data (Example) ↓ 0xA001_0000 ↓ ↓ 18-16 Chapter 18 NAND Flash Memory IPL 18.3.5 Data configuration of NAND Flash Memory This section describes how to use the NAND flash memory of NAND IPL. Subsection 18.3.5.1 describes the standard physical format of the NAND flash memory prescribed in SmartMedia™ Standard 2000, and 18.3.5.2 describes how to used the NAND flash memory referred by NAND IPL. Note: NAND IPL is designed by referring the physical format of SmartMedia™ Standard 2000, but all memory area of the NAND flash memory used by NAND IPL need not satisfy this specification. The data configuration referred by NAND IPL is described 18.3.5.2 or later subsections. 18.3.5.1 Data Configuration of the NAND Flash Memory The standard data format (physical format) of the NAND flash memory is shown in Table 18.3.4. Since the number of zones and blocks depends on the capacitance of the NAND flash memory, use Table 18.3.4 together with Table 18.3.1. Table 18.3.5 and 18.3.6 show Card Information Structure (CIS)/Identify Drive Information (IDI) area, data area and data configuration of each redundant area. This chapter refers to “SmartMedia™ Physical Format Specification”. Table 18.3.4 NAND Flash Memory Physical Format Specification Page 0 Block 0 Page 1 : Page end Page 0 Zone 0 Block 1 Page 1 : Page end : : Page 0 Block end Page 1 : Page end : : : Page 0 Block 0 Page 1 : Page end Page 0 Zone end Block 1 Page 1 : Page end : : Page 0 Block end Page 1 : Page end Data Area (512 bytes) (*1) ↓ : ↓ : ↓ ↓ : ↓ : ↓ ↓ : ↓ ↓ ↓ : ↓ : ↓ ↓ : ↓ Redundant Area (16 bytes) ↓ : ↓ : ↓ ↓ : ↓ : ↓ ↓ : ↓ ↓ ↓ : ↓ : ↓ ↓ : ↓ CIS/ IDI Area (*1) Redundant Area (16 bytes) 18-17 Chapter 18 NAND Flash Memory IPL (*1) Supplemental Remarks In the case of the flash memory type, the CIS/IDI area is allocated to the physical block 0. If the physical block 0 is a bad one, the CIS/IDI area is allocated to the physical block 1 or the first subsequent block that is found good. Only one block is allocated to the physical block 0, and the other blocks are used as the data areas. For the relationship between logical and physical blocks, see Table 18.3.5. When the Mask ROM type is used, the CIS/IDI area is allocated to the physical block 0. The relationship between logical and physical blocks is “( logical block address) = (physical block address) - 1”. The area of the physical block 1 through the data end block address becomes the data area, and the others are the reserved areas. Table 18.3.5 Data Specification of the CIS/IDI Area in NAND Flash Memory Flash Memory Type Byte 0 - 127 Data Area 128 - 255 256 - 383 384 - 511 512 513 514 515 516 517 518 Redundant Area 519 520 521 522 523 524 525 526 527 ECC Area-1 0x0000 (Fixed) ECC Area-2 Invalid Data Flag Area (Information Validity) 0xFF (Fixed) 0x0000 (Fixed) Functional Select Information Area CIS Area-1 IDI Area-1 CIS Area-2 IDI Area-2 Mask ROM Type Description CIS Area-1 IDI Area-1 CIS Area-2 IDI Area-2 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) Description (1) CIS Area (Field) This area contains the data required to check whether the format is based on the physical format specification of SmartMedia™ Standard 2000. The first 10 bytes are fixed to 0x01_03_D9_01_FF_18_02_DF_01_20. The same data is stored in the CIS Area-1 and CIS Area-2 to ensure reliability. Note: We recommend to store the data in the CIS area, though NAND IPL does not use the data in it. (2) IDI Area (Field) This is the area to store the data used with the system having ATA interface. The same data, of which default value is 0x00, is stored in the CIS Area-1 and CIS Area-2 to ensure reliability. Note: NAND IPL does not use the data in the IDI area. 18-18 Chapter 18 NAND Flash Memory IPL (3) Data Stored in the Redundant Area General information on the redundant area is shown below. • • • Functional Select Information Area: The area reserved for function expansion Invalid Data Flag Area: ECC Area-1, ECC Area-2: The area which indicates the validity of the data in the CIS/IDI area 3-byte ECC code of the page data (256 bytes) Note: NAND IPL does not use the data stored in the redundant area of the CIS/IDI area. Table 18.3.6 Data Specification of the Data Area in NAND Flash Memory Flash Memory Type Byte Data Area 0 - 255 256 - 511 512 513 514 515 516 517 518 Redundant Area 519 520 521 522 523 524 525 526 527 ECC Area-1 Block Address Area-2 ECC Area-2 Data Status Area Block Status Area Block Address Area-1 Reserved Area Data Area-1 Data Area-2 Mask ROM Type Description Data Area-1 Data Area-2 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) 0xFF (Fixed) Description Note: For the data in the redundant area of the data area used by NAND IPL, see Table 18.3.10. (1) Data Area (Field)-1 Contains the data of 0 to 255th bytes, that is the first half of the 512-byte data. (2) Data Area (Field)-2 Contains the data of 256th to 512th bytes, that is the last half of the 512-byte data. (3) Reserved Area (Field) This is the area reserved for function expansion, and contains the fixed value 0xFFFF_FFFF. (4) Data Status Area (Field) This area indicates that Data Area-1 and Data Area-2 store incorrect data. 0xFF is set typically. When incorrect data is written, 0x00 is set to this area. 18-19 Chapter 18 NAND Flash Memory IPL (5) Block Status Area (Field) This area indicates whether the block is good or not. 0xFF (good block) is set typically. In the case of the bad block, 0x00 (initial bad block) or 0xF0 (subsequent bad block) is set to this area. Specify the same value in the same block. (6) Block Address Area (Field)-1 This area indicates translation information from physical block address into the logical block address. Table 18.3.7 shows the data specification. Specify the same value in the same block. For details on the logical-physical address translation, see “logical-physical address translation table” described later. Table 18.3.7 Data Specification in Block Address Area D7 0 BA6 D6 0 BA5 D5 0 BA4 D4 1 BA3 D3 0 BA2 D2 BA9 BA1 D1 BA8 BA0 D0 BA7 P 512 + 16 Byte/Page 518,523 Byte 519,524 Byte BA9 ∼ BAO: Block Address (Value = 0 ∼ ‘Max Logical Blocks 1’) P: Even-parity Bit Note: Block Address indicates the logical address partitioned in erase block units, that is 8 bytes. (7) Block Address Area (Field)-2 This area contains the data same as Block Address Area-1. The SmartMedia™ Standard 2000 physical format specification defines that the logical block in NAND flash memory is not assigned to a specific physical block. The Block Address Area in each block contains logical block addresses assigned to physical blocks. Logical-physical address translation is available by searching these addresses. A physical and logical blocks are paired. Since all logical blocks are not assigned to physical blocks, logical blocks reside to which physical blocks are not assigned. Figure 18.3.3 shows an example of a logical-physical address translation table. This subsection refers to “SmartMedia™ Interface library (SMIL) -Software Version-”. 18-20 Chapter 18 NAND Flash Memory IPL Physical Block Address 0 1 2 3 4 5 6 7 8 . . . Block Data block0(Data) block1(Data) block2(Data) block3(Data) block4(Data) block5(Data) block6(Data) block7(Data) block8(Data) . . . NAND Flash Memory Logical Block Address 8 3 4 7 0 6 1 Unused 2 Logical Block Address 0 1 2 3 4 5 6 7 8 . . . Physical Block Address 4 6 8 1 2 Unassigned 5 3 0 . . . Logical-Physical Address Translation Table Figure 18.3.3 Logical-Physical Address Translation Table • • • • The number of physical blocks in one zone is 1024, and that of logical blocks is 1000. The value described in the Block Address Area is 0 to 999. The logical block addresses can not be assigned to the physical block containing the CIS/IDI area. The logical block address is a unique address, which is the sequential number from the logical block 0 in an entire NAND flash memory. The address is obtained with the following equation. Logical block address = (Zone_number × 1000) + (Block_number_described_in_Block_Address_Area) • The logical page address is the sequential page address which starts from the page 0 in the logic block 0 and ends with the last page in the last logic block. The address is obtained with the following equation. Logical page address = (Logical_block_address × the_number_of_pages_in_each_block) + (Page_number_described_in_the_block) (8) ECC AREA (Field)-1 This area presents the 3-byte ECC code for the page data which is assigned to 0 through 255th byte (256 bytes). For details on ECC code, see “ECC Method” described below. (9) ECC AREA (Field)-2 This area presents the 3-byte ECC code of the page data which is assigned to 256th through 511th byte (256 bytes). For details on ECC code, see “ECC Method” described below. 18-21 Chapter 18 NAND Flash Memory IPL 256-byte data area is added with 22-bit ECC code by the physical format specification of SmartMedia™ Standard 2000. Data Area-1 and Data Area-2 are added with ECC Area-1 and ECC Area-2, respectively. The EEC code provides correction capability of 1-bit random error, and detection capability of 2-bit random error. EEC code is generated for the data area, and not for the data in the page redundant area including ECC code. The data in the page redundant area is duplicate to ensure reliability, which enables you to check the correctness of the data. 256-byte data is handled as 2048-bit serial data by ECC equation. When an error occurs, the error occurrence bit is detected with the parity data information, and data can be corrected. • Defining Address of 2048-bit Serial Data 256 bytes are aligned to 2048-bit serial data as shown in Table 18.3.8. Table 18.3.8 2048-bit Serial Data Address bit 7 1 Byte 2nd Byte 255th Byte 256th Byte st bit 6 00000000 110 00000001 110 11111110 110 11111111 110 bit 1 00000000 001 00000001 001 11111110 001 11111111 001 bit 0 00000000 000 00000001 000 11111110 000 11111111 000 00000000 111 00000001 111 11111110 111 11111111 111 The top-line in the above table indicates input of the first byte, and the bottom-line is input of the 256th byte. The bit 0 of the first bite becomes the first bit of 2048 bits (address 00000000 000), and the bit 7 of 256th byte becomes the 2048th bit of 2048 bits (address 11111111 111). 18-22 Chapter 18 NAND Flash Memory IPL • Generating Parity Data Parity data consists of 22 bits; CP0, CP1, CP2, CP3, CP4, CP5, LP00, LP01, LP02, LP03, LP04 through LP14 and LP15. The Column parity (CP) consists of 6 bits and Line Parity (LP) consists of 16 bits. The parity data to be generated is aligned as shown below and stored in the page redundant area data. Table 18.3.9 ECC Data Alignment bit 7 LP07 LP15 CP5 bit 6 LP06 LP14 CP4 bit 5 LP05 LP13 CP3 bit 4 LP04 LP12 CP2 bit 3 LP03 LP11 CP1 bit 2 LP02 LP10 CP0 bit 1 LP01 LP09 “1” bit 0 LP00 LP08 “1” 512 + 16 Byte/Page 520,525 Byte 521,526 Byte 522,527 Byte Line Parity (LP) and Column Parity (CP) are odd-parity of 1024 bits which satisfy the following conditions. LP00 = D (*******0 , ***) LP01 = D (*******1 , ***) LP02 = D (******0* , ***) LP03 = D (******1* , ***) LP04 = D (*****0** , ***) LP05 = D (*****1** , ***) LP06 = D (****0*** , ***) LP07 = D (****1*** , ***) LP08 = D (***0**** , ***) LP09 = D (***1**** , ***) LP10 = D (**0***** , ***) LP11 = D (**1***** , ***) LP12 = D (*0****** , ***) LP13 = D (*1****** , ***) LP14 = D (0******* , ***) LP15 = D (1******* , ***) CP0 = D (******** , **0) CP1 = D (******** , **1) CP2 = D (******** , *0*) CP3 = D (******** , *1*) CP4 = D (******** , 0**) CP5 = D (******** , 1**) where, an asterisk (*) indicates 0 or 1. 18.3.5.2 Writing IPL Control Information • Write IPL control information in the block containing the CIS area, which is assigned to the physical address 0 through 23rd block, or subsequent block. We recommend to write it in the block containing the CIS area, and in the page next to the page containing the CIS area.When IPL control information is not written since there is not good one until the physical address 23, the NAND flash memory can not be used because NAND IPL does not operate correctly. The redundant block data containing the IPL control information must satisfy the following conditions. See Table 18.3.10. − Block Status Area is correct. (0 is not set or set to 1 bit) − The same data is stored in Block Address Area-1 and Block Address Area-2. • 18-23 Chapter 18 NAND Flash Memory IPL 18.3.5.3 Writing the User Boot Program • The user boot program can be written in any logical address of the NAND flash memory, and span across multiple blocks and zones. The user boot program is handled as a single object assigned to continuous space with the logical address in the NAND flash memory. NAND IPL can load only a single object into the continuous space in RAM. The data in the redundant area containing the user boot program must satisfy the following conditions. See Table 18.3.10. Note: NAND IPL neither registers the block which does not satisfy the following conditions in the logical-physical address translation table, nor issues an error of this block because it is not loaded into RAM. See Table 18.3.10. • • − Block Status Area and Data Status Area are good ones (0 is not set or set to 1 bit) − The same data is stored in Block Address Area-1 and Block Address Area-2. − The value in Block Address Area-1 does not match to the value 0x000 in Block Address Field-s fro CIS/IDI. − The value in Block Address Area-1 is not a valid logical address (high-order 4 bits do not match 0001B.) − The even-parity bit in Block Address Area-1 is correct. • When the same address appears multiple times in the logic block address which indicates the user boot program, NAND IPL is not guaranteed to behave correctly. 18-24 Chapter 18 NAND Flash Memory IPL 18.3.5.4 IPL Control Information and Areas Except the User Boot Program • Any data description is allowed in the zone which is not used with NAND IPL, that is the area in which the IPL control information and the user boot program are not stored. Note: NAND IPL creates a logical-physical address translation table based on the data in the redundant area upon accessing to NAND flash memory. The redundant area of the zone containing the IPL control information and user boot program must be written in compliant with the specification shown in 18.3.5.1. Table 18.3.10 Data in the Redundant Area Used with NAND IPL Redundant Block 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 ECC Area-1 − − Used Block Address Area-2 Used Used − ECC Area-2 − − Used Data Status Area Block Status Area Block Address Area-1 − Used Used Used Used Used − − − Reserved Area − − − Area Searching IPL Control Information (*1) Creating the LogicalPhysical Translation Table (*2) Loading the User Boot Program into RAM (*3) (*1) (*2) (*3) Used to search the IPL control information written in the NAND flash memory at the stage “7) Is IPL Control Information processed correctly?” in Figure 18.3.1. Used to create the translation table at the stage “9) Create NAND Flash Memory Logical-Physical address Translation Table.” in Figure 18.3.1. Used to load the user boot program into RAM at the stage “11) Load the User Boot Program.” in Figure 18.3.1. 18-25 Chapter 18 NAND Flash Memory IPL 18.3.6 NAND Flash Memory IPL Error Handling NAND IPL signals the program operation to an external device using 1 bit of PIO[0]. PIO[0] becomes Low upon startup of NAND IPL, and High to transfer the control to the user boot program after it is loaded into RAM correctly. If PIO[0] remains Low, abnormal condition occurs. When NAND IPL detects the abnormal condition, it sets the error ID shown in Table 18.3.4 to $4($a0) in the general register, and continues issuing the EROR ID to the low-order bit of virtual address 0xBFD0_0000 by setting the external bus controller channel 0 of 32-bit bus width (EBCCR0=0x01FD_0000_0013_E008). To signal this error, the area 0xBFD_0000 through 0xBFD0_0080 is used. This information is recognized by connection to the logic analyzer. Even in the case the error is detected, the user boot program is invoked in the following cases. • • When detecting a 1-bit error in the ECC code, NAND-IPL corrects the 1-bit error and loads the user boot program into RAM. When the size of the user boot program is smaller than that written in the IPL control information, the same amount of data as that being written (user boot program + &) is loaded into RAM. PIO[0] remains Low to signal the error condition. When the size of the user boot program is larger than that written in the IPL control information, NAND IPL does not operate correctly since it loads the same amount of data as that being written in the IPL control information. Table 18.3.11 Errors (Address Bit) Error ID 0x010 0x020 0x040 0x080 0x100 0x200 Address [7:0] 0x04 0x08 0x10 0x20 0x40 0x80 Error Type NAND flash memory ID error IPL control information error ECC 2- or more-bit error ECC 1-bit Error User boot program error NAND IPL checksum error Cause of Error Undefined NAND flash memory is used. The IPL control information is incorrect. The NAND flash memory data is corrupted. (ECC code indicates 2- or more-bit error.) The NAND flash memory data is corrupted. (ECC code indicates 1-bit error.) The user boot program is not written in NAND flash memory. NAND IPL is not written to on-chip ROM correctly. A reset or NMI exception which occurs during NAND IPL operation results in abnormal termination since the jump address register (JMPADR) addresses NAND IPL (0xBFC0_0000). When the error detailed information is not generated, NMI exception may occur. When PIO[0] is used for the purpose other than a signal which indicates NAND IPL operation on the system, NAND IPL does not operate as intended. That must be avoided on the system. PIO[0] is multiplexed with SPICLK on TX4938. To use SPICLK, you need to establish connection of PIO[0] so that no electrical problem occurs when NAND IPL outputs PIO[0] upon startup of system. 18-26 Chapter 19 On-Chip SRAM 19. On-Chip SRAM 19.1 Characteristics The TX4938 has 1-channel of on-chip, fast 2-KB SRAM. You can map it to any address space by setting the Base Address Register. You can access SRAM from each G-Bus Master: the TX49/H3 core, DMAC0, DMAC1, PCI0, and PCI1. (1) 2 KB × 1 channel (2) Specifiable base address (3) Accessible in Byte, half-word, word, or double-word units (4) Supports Burst access1 (5) Supports the critical word first function of the TX49/H3 core 19.2 Block diagram On-chip SRAM G-Bus Memory G-Bus I/F 2 KB × 1 Figure 19.2.1 On-chip SRAM Block Diagram 1 On-chip SRAM does not support special Burst access (address decrementing/fixed) of DMAC0, DMAC1. 19-1 Chapter 19 On-Chip SRAM 19.3 Detailed explanation 19.3.1 Base address Specify the base address of the on-chip SRAM in 2-KB boundary units (specify the upper 25 bits of the physical address). Operation is not guaranteed if the address overlaps with an address space set by SDRAMC, EBUSC, etc. Physical Address Space 0x F_FFFF_FFFF SRBA SRAM Area 2 KB 0x 0_0000_0000 Figure 19.3.1 Base Address Specification 19.3.2 Access cycle count The following table shows the GBUSCLK cycle count required to access on-chip SRAM. Table 19.3.1 Access Cycle Count Access Type Single Read Single Write Burst Read Burst Write GBUSCLK Cycle Count (n= Burst Size (1-8)) 3 3 2+n 2+n 19-2 Chapter 19 On-Chip SRAM 19.4 Register 19.4.1 63 SRBA[35:20] R/W 0x0000 47 SRBA[19:11] R/W 000000000 31 SRSIZ[23:8] R 0x0008 15 SRSIZ[7:0] R 0x00 8 7 Reserved 1 0 CE R/W 0 : Type : Default : Type : Default 16 39 38 Reserved : Type : Default 32 : Type : Default On-chip SRAM Control Register (SRAMCR : 0x6000) 48 Bit(s) 63:39 Mnemonic SRBA [35:11] Field Name On-chip SRAM Base Address Description SRAM Base Address (Default: 0, R/W) This field specifies the base address of on-chip SRAM. The upper 25 bits [35:11] of the physical address are compared with the value of this field. A 2-KB physical address space with the base address SRBA0[35:11] is mapped to on-chip SRAM. SRAM Size (Default: 0x00_0800, R) Displays the on-chip SRAM size (2 Bytes). Channel enable (0 , R/W) This bit specifies whether to enable a channel. When using on-chip SRAM, set "1". 0: Disable 1: Enable 38:32 31:8 7:1 0 CE SRSIZ [23:0] Reserved On-chip SRAM Size Reserved Channel Enable Figure 19.4.1 On-Chip SRAM Control Register 19-3 Chapter 19 On-Chip SRAM 19-4 Chapter 20 NAND Flash Memory Controller 20. NAND Flash Memory Controller 20.1 Features The TX4938 has a built-in NAND Flash Controller (NDFMC). The NDFMC generates the control signals required to interface with NAND flash memory. Also, the NDFMC performs ECC calculation. The NAND Flash Controller has the following features. • • Indirect register access to NAND flash memory On-chip ECC calculation circuit 20.2 Block diagram G-Bus NAND Flash Controller (NDFMC) G-Bus I/F Register Register Address Decoder Host I/F timing Control NAND Flash Memory I/F Timing Control ND_CLE ND_ALE ND_CE* ND_RE* ND_WE* ND_RB* EBIF CONTROL EBIF DATA[7:0] BUSSPRT* Figure 20.2.1 NAND Flash Memory Controller Block Diagram 20-1 Chapter 20 NAND Flash Memory Controller 20.3 Detailed operation 20.3.1 Accessing NAND flash memory With the NDFMC, you can access NAND flash memory by controlling registers. The NDFMC also has an ECC calculation function. See 20.3.2 for more information on ECC. This subsection describes the procedure for accessing NAND flash memory. Basically, first set a command in the NDFMCR, then either read or write NDFDTR to access NAND flash memory. Reading NDFDTR executes a read cycle to external NAND flash memory. The read cycle to NDFDTR also ends when the read cycle to external NAND flash memory ends. Similarly, writing NDFDTR executes a write cycle to external NAND flash memory. The write cycle to NDFDTR also ends when the write cycle to external NAND flash memory ends. Note: When reading or writing NDFDTR, the ND_RE* or ND_WE* signal is asserted. The low pulse width and high-level time after the ND_RE* or ND_WE* signal is deasserted can be set in NDFSPR. Other signals are controlled by software to meet AC specifications of NAND flash memory to be used. Be aware of the following AC specifications. Time from ND_WE* High to assertion of ND_RB* Low. (After writing NDFDTR, wait tWB time before reading NDFSR.BUSY, then detect timing of ND_RB* assertion and deassertion. When NDFIMR.MRDY = 1 is set, NDFISR.RDY is set to 1 if ND_RB* changes from Low to High. You can detect deassertion of ND_RB* by checking this register.) tWB: tAR1: Time from ND_ALE Low to ND_RE* Low (ID read) (After writing NDFMCR.ALE to 0, wait tAR1 time and read NDFDTR.) tAR2: Time from ND_ALE Low to ND_RE* Low (Read cycle) (After writing NDFMCR.ALE to 0, wait tAR2 time and read NDFDTR.) 20.3.1.1 Initialization Following is the initialization sequence. 1. 2. NDFSPR (0x5028): Set the low pulse width. NDFIMR (0x5020): Set 0x81 to enable interrupts. 20-2 Chapter 20 NAND Flash Memory Controller 20.3.1.2 Write Following is the write sequence. 1. 2. 3. NDFMCR(0x5008): Set to 0x70 and initialize the ECC data of NDFMC. The NDFMC does not have a WP* signal. Use either PIO or an external circuit to set the WP* signal to “H”. 512-Byte write • • • • • • NDFMCR (0x5008 ): Set to 0x91, assert the ND_CLE* signal, then enter the Command mode. NDFDTR (0x5000): Write 0x80 (Serial Data Input command). NDFMCR (0x5008): Set to 0x92, assert the ND_ALE* signal, then enter the Address mode. NDFDTR (0x5000): NDFDTR (0x5000): Set A[7:0], A[16:9], A[24:17] (and A[25] if necessary) in order. Set 512-Byte data in order. NDFMCR (0x5008): Set to 0xb0 and enter the Data mode. 4. Read ECC data • • NDFMCR (0x5008): Set to 0xd0, and enter the ECC Data Read mode. NDFDTR (0x5000): Read the 6-Byte ECC data the NDFMC calculated. First data: Second data: Third data: Fourth data: Fifth data: Sixth data: LPR[7:0] LPR[15:8] CPR[5:0], 2’b11 LPR[23:16] LPR[31:24] CPR[11:6], 2’b11 5. Write 16-Byte redundant data • • NDFMCR (0x5008): Set to 0x90 and enter a Data mode that does not calculate ECC. NDFDTR (0x5000): Write 16-Byte redundant data. D520: LPR[23:16] D521: LPR[31:24] D522: CPR[11:6], 2’b11 D525: LPR[7:0] D526: LPR[15:8] D527: CPR[5:0], 2’b11 6. Execute a page program • • • • NDFMCR (0x5008): Set 0x91, assert the ND_CLE* signal, and enter the Command mode. NDFDTR (0x5000): Write 0x10 (Page Program command). NDFMCR (0x5008): Set 0x10 and deassert the ND_CLE* signal. NDFSR (0x5010): Check the BUSY flag. Proceed to the next step if “0”. Wait until the flag becomes “0” if it is “1”. 20-3 Chapter 20 NAND Flash Memory Controller 7. Read status • • • • 8. NDFMCR (0x5008): Set 0x11, assert the ND_CLE* signal, and enter the Command mode. NDFDTR (0x5000): Write 0x70 (Read Status command). NDFMCR (0x5008): Set 0x10 and deassert the ND_CLE* signal. NDFDTR (0x5000): Read the status data from NAND flash memory. Repeat steps 1-7 on the other pages. 20.3.1.3 Read Following is the read sequence. 1. 2. NDFMCR (0x5008): Set 0x70 and initialize the NDFMC ECC data. Read 512 bytes • • • • • • • • • • 3. • • NDFMCR (0x5008): Set 0x11, assert the ND_CLE* signal, and enter the Command mode. NDFDTR (0x5000): Write 0x00 (Read command). NDFMCR (0x5008): Set 0x12, assert the ND_ALE* signal, then enter the Address mode. NDFDTR (0x5000): Set A[7:0], A[16:9], A[24:17] (and if necessary A[25]) in order. NDFMCR (0x5008): Set 0x10, and deassert the ND_ALE* signal. NDFSR (0x5010): Check the BUSY flag. Proceed to the next step if it is “0”. Wait until it becomes “0” if it is “1”. NDFMCR (0x5008): Set 0x30, and enter a Data mode that performs ECC calculation. NDFDTR (0x5000): Read 512-Byte data. NDFMCR (0x5008): Set 0x10, and enter a Data mode that does not perform ECC calculation. NDFDTR (0x5000): Read 16-Byte redundant data. NDFMCR (0x5008): Set 0x50, and enter the ECC Data Read mode. NDFDTR (0x5000): First data: Second data: Third data: Fourth data: Fifth data: Sixth data: 4. 5. Read another page. • • • NDFMCR (0x5008): Set 0x10. NDFSR (0x5010): Check the BUSY flag. Proceed to the next step if “0”. Wait until it becomes “0” if it is “1”. Read the 6-Byte ECC data the NDFMC calculated. LPR[7:0] LPR[15:8] CPR[5:0], 2’b11 LPR[23:16] LPR[31:24] CPR[11:6], 2’b11 Read ECC data Compare the ECC data. If the data do not match, invoke the necessary error process. Repeat steps 1-4. However, when performing a sequential read, skip 2-1 through 2-5. 20-4 Chapter 20 NAND Flash Memory Controller 20.3.1.4 Read ID Following is the ID read sequence. 1. 2. 3. 4. 5. 6. 7. NDFMCR (0x5008): NDFDTR (0x5000): NDFMCR (0x5008): NDFDTR (0x5000): NDFMCR (0x5008): NDFDTR (0x5000): NDFDTR (0x5000): Set 0x11, assert the ND_CLE* signal, and enter the Command mode. Write 0x90 (ID Read command). Set 0x12, assert the ND_ALE* signal, and enter the Address mode. Write 0x00. Set 0x10, and enter a Data mode that does not calculate ECC. Read the maker code. Read the device code. 20.3.2 ECC control The NDFMC only performs ECC calculation. Use a program to check ECC for errors and correct any errors that occur. You can read from the NDFDTR Register the ECC data calculated by NDFMC by setting the NDFMCR to either 0xD0 (Write mode) or 0x50 (Read mode). The ECC data you can read is 6-Byte data. Read NDFDTR six times. Data is read in the following order. First data: Third data: Fourth data: Fifth data: Sixth data: LPR[7:0] CPR[5:0], 2’b11 LPR[23:16] LPR[31:24] CPR[11:6], 2’b11 Second data: LPR[15:8] 20-5 Chapter 20 NAND Flash Memory Controller 20.4 Registers Table 20.4.1 NDFMC Registers Offset Address 0x5000 0x5008 0x5010 0x5018 0x5020 0x5028 0x5030 Bit Width 64 64 64 64 64 64 64 Register Symbol NDFDTR NDFMCR NDFSR NDFISR NDFIMR NDFSPR NDFRSTR Register Name NAND Flash Memory Data Transfer Register NAND Flash Memory Mode Control Register NAND Flash Memory Status Register NAND Flash Memory Interrupt Status Register NAND Flash Memory Interrupt Mask Register NAND Flash Memory Strobe Pulse Width Register NAND Flash Memory Reset Register 20.4.1 63 NAND Flash Memory Data Transfer Register (NDFDTR) 0x5000 48 Reserved : Type : Default 47 Reserved 32 : Type : Default 31 Reserved : Type : Default 15 Reserved 8 7 DATA R/W ⎯ : Type : Default 0 16 Bits 63:8 7:0 Mnemonic ⎯ DATA Field Name Reserved DATA Description ⎯ Interrupt Detection Enable (Default: Undefined) NAND Flash memory data Read: Reads NAND flash data when in the Data mode. Write: Writes transmission data in NAND flash memory in each mode. Figure 20.4.1 NAND Flash Memory Data Transfer Register (NDFDTR) 20-6 Chapter 20 NAND Flash Memory Controller 20.4.2 63 Reserved : Type : Default 47 Reserved : Type : Default 31 Reserved : Type : Default 15 Reserved 8 7 WE R/W 0 6 ECC R/W 0 R/W 0 5 4 CE R/W 0 3 2 Reserved 1 ALE R/W 0 0 CLE R/W 0 : Type : Default 16 32 NAND Flash Memory Mode Control Register (NDFMCR) 0x5008 48 Bit(s) 63:8 7 Mnemonic ⎯ WE Field Name Reserved Write Enable Description ⎯ Write Enable (Default: 0) Enables data write operation. Set this bit when writing data to NAND flash memory. 0: Prohibit Write operation. 1: Enable Write operation. ECC Control (Default: 00) This field specifies the operation of the ECC calculation circuit. 11: Reset the ECC circuit. 00: Disable the ECC circuit. 01: Enable the ECC circuit. 10: Read the ECC circuit the NDFMC calculated. 6:5 ECC ECC Control 4 CE Chip Enable Chip Enable Default: 0) Enables access to NAND flash memory. Set this bit when accessing NAND flash memory. 0: Disable (ND_CE* high.) 1: Enable (ND_CE* low.) ⎯ Address Latch Enable (Default: 0) Specifies the ND_ALE* signal. 0: Low 1: High Command Latch Enable (Default: 0) Specifies the value of the NC_CLE signal. 0: Low 1: High 3:2 1 ⎯ ALE Reserved Address Latch Enable 0 CLE Command Latch Enable Figure 20.4.2 NAND Flash Memory Mode Control Register (NDFMCR) 20-7 Chapter 20 NAND Flash Memory Controller 20.4.3 63 Reserved : Type : Default 47 Reserved : Type : Default 31 Reserved : Type : Default 15 Reserved 8 7 BUSY R ⎯ 6 Reserved : Type : Default 0 16 32 NAND Flash Memory Status Register (NDFSR) 0x5010 48 Bit(s) 63:8 7 Mnemonic ⎯ BUSY Field Name Reserved BUSY Description ⎯ BUSY (Default: Undefined) Indicates the status of NAND flash memory. 0: Ready 1: Busy ⎯ 6:0 ⎯ Reserved Figure 20.4.3 NAND Flash Memory Status Register (NDFSR) 20-8 Chapter 20 NAND Flash Memory Controller 20.4.4 63 Reserved : Type : Default 47 Reserved : Type : Default 31 Reserved : Type : Default 15 Reserved 1 0 RDY R/W1C : Type NAND Flash Memory Interrupt Status Register (NDFISR) 0x5018 48 32 16 0 : Default Bit(s) 63:1 0 Mnemonic ⎯ RDY Field Name Reserved Ready Description ⎯ Ready (Default: 0) When the MRDY bit of the NDFIMR Register is "1", this bit is set to "1" when the ND_RB* signal changes from Low to High. Write "1" to clear this bit to "0". Read: 0: No change 1: ND_RB* signal changed from the Busy state to the Ready state. Write: 0: Don’t care 1: Clear to "0". Figure 20.4.4 NAND Flash Memory Interrupt Status Register (NDFISR) 20-9 Chapter 20 NAND Flash Memory Controller 20.4.5 63 Reserved : Type : Default 47 Reserved : Type : Default 31 Reserved : Type : Default 15 Reserved 8 7 INTEN R/W 0 6 Reserved 1 0 MRDY R/W : Type 0 : Default 16 32 NAND Flash Memory Interrupt Mask Register (NDFIMR) 0x5020 48 Bit(s) 63:8 7 Mnemonic ⎯ INTEN Field Name Reserved Interrupt Enable Description ⎯ Interrupt Enable (Default: 0) This bit enables interrupts. If both the MRDY bit of this register and this INTEN bit are set to "1", an interrupt occurs when the RDY bit of the NDFISR Register becomes "1". 0: Disable 1: Enable ⎯ Mask Ready Interrupt (Default: 0) This bit masks the RDY bit of the NDFISR Register. If this bit is "1", the RDY bit of the NDFISR Register is set when the ND_RB* signal changes from "0" to "1". 0: Disable the NDFISR RDY bit. 1: Enable the NDFISR RDY bit. 6:1 0 ⎯ MRDY Reserved Mask RDY interrupt Figure 20.4.5 NAND Flash Memory Interrupt Mask Register (NDFIMR) 20-10 Chapter 20 NAND Flash Memory Controller 20.4.6 63 Reserved : Type : Default 47 Reserved : Type : Default 31 Reserved : Type : Default 15 Reserved 8 7 HOLD R/W 1111 4 3 SPW R/W 1111 : Type : Default 0 16 32 NAND Flash Memory Strobe Pulse Width Register (NDFSPR) 0x5028 48 Bits 63:8 7:4 Mnemonic ⎯ HOLD Field Name Reserved Hold Time Description ⎯ Hold Time (Default: 1111) The DATA[7:0], ND_CLE, ND_ALE and ND_CE* outputs of the NAND Flash Controller are held constant for HOLDxGBUSCLK cycles from the deassertion of the ND_WE* signal. Note: This field affects the read timing. The BUSSPRT* signal is deasserted after HOLDxGBUSCLK cycles from the deassertion of the ND_RE* signal. 0000: Reserved 0001: 1xGBUSCLK 0010: 2xGBUSCLK 0011: 3xGBUSCLK 0100: 4xGBUSCLK 0101: 5xGBUSCLK 0110: 6xGBUSCLK 0111: 7xGBUSCLK 1000: 8xGBUSCLK 1001: 9xGBUSCLK 1010: 10xGBUSCLK 1011: 11xGBUSCLK 1100: 12xGBUSCLK 1101: 13xGBUSCLK 1110: 14xGBUSCLK 1111: 15xGBUSCLK Strobe Pulse Width (Default: 1111) Specifies the low pulse width of the ND_RE* signal and the ND_WE* signal. 0000: 1xGBUSCLK 0001: 2xGBUSCLK 0010: 3xGBUSCLK 0011: 4xGBUSCLK 0100: 5xGBUSCLK 0101: 6xGBUSCLK 0110: 7xGBUSCLK 0111: 8xGBUSCLK 1000: 9xGBUSCLK 1001: 10xGBUSCLK 1010: 11xGBUSCLK 1011: 12xGBUSCLK 1100: 13xGBUSCLK 1101: 14xGBUSCLK 1110: 15xGBUSCLK 1111: 16xGBUSCLK 3:0 SPW Strobe Pulse Width Figure 20.4.6 NAND Flash Memory Strobe Pulse Width Register (NDFSR) 20-11 Chapter 20 NAND Flash Memory Controller 20.4.7 63 Reserved : Type : Default 47 Reserved : Type : Default 31 Reserved : Type : Default 15 Reserved 1 0 RST R/W1C : Type NAND Flash Memory Reset Register (NDFRSTR) 0x5030 48 32 16 0 : Default Bit(s) 63:1 0 Mnemonic ⎯ RST Field Name Reserved Reset Description ⎯ Reset (Default: 0) Setting "1" to this bit resets NDFMC. After the reset (2 GBUSCLK cycles later), this bit is automatically cleared to "0". 0: Don’t care 1: Reset Figure 20.4.7 NAND Flash Memory Reset Register (NDFRSTR) 20-12 Chapter 20 NAND Flash Memory Controller 20.5 Timing diagram 20.5.1 Command cycles and address cycles NDFMCR.ALE = 0 ND_WE* remains deasserted for at least 6 GBUSCLK cycles. NDFSPR.HOLD NDFSPR.SPW NDFMCR.CLE = 0 NDFMCR.ALE = 1 NDFMCR.CLE = 1 NDFMCR.CE = 1 ND_CLE ND_ALE Figure 20.5.1 Command Cycles and Address Cycles 20-13 BUSSPRT* DATA[7:0] ND_CE* ND_RE* ND_WE* ND_RB* Chapter 20 NAND Flash Memory Controller 20.5.2 Data read cycles GBUSCLK ND_CLE ND_ALE ND_CE* ND_RE* NDFSPR.SPW=0x4 NDFSPR.HOLD=0x2 ND_WE* ND_RB* BUSSPRT* DATA[7:0] At least 6 GBUSCLK cycles TX4938 latches data from NAND flash. Figure 20.5.2 Data Read Cycles 20-14 Chapter 20 NAND Flash Memory Controller 20.5.3 Data write cycles GBUSCLK ND_CLE ND_ALE ND_CE* ND_WE* NDFSPR.SPW=0x3 NDFSPR.HOLD=0x2 ND_RE* ND_RB* BUSSPRT* DATA[7:0] At least 6 GBUSCLK cycles TX4938 places data on the bus. Figure 20.5.3 Data Write Cycles 20-15 Chapter 20 NAND Flash Memory Controller 20.6 NAND flash memory connection example Figure 20.6.1 shows an example connection of NAND flash memory. BUSSPRT* is asserted when you read NAND flash memory. When connecting NAND flash memory to a Data Bus that performs bidirectional control using BUSSPRT*, connect to the TX4938's DATA via a buffer as shown below. When not performing bidirectional control using BUSSPRT*, directly connect to the TX4938's DATA. TX4938 NAND Flash Memory ND_CLE ND_ALE ND_CE* ND_RE* ND_WE* ND_RB* CLE ALE CE* RE* W E* R/B* Flash ROM I/O[7:0] D[15:0] BUSSPRT* DATA[63:0] SDRAM DQ[63:0] Figure 20.6.1 Connection Example of NAND Flash Memory 20-16 Chapter 21 Extended EJTAG Interface 21. Extended EJTAG Interface 21.1 Extended EJTAG Interface The TX4938 Extended EJTAG (Enhanced Joint Test Action Group) Interface provides two real-time debugging functions. One is the IEEE1149.1 standard compliant JTAG Boundary Scan Test, and the other is the Debugging Support Unit (DSU) that is built into the TX49/H3 core. JTAG Boundary Scan Test • • IEEE1149.1 compatible TAP Controller Supports the following five instructions: EXTEST, SAMPLE/PRELOAD, IDCODE, BYPASS, HIGHZ Real-time Debugging • • • Real-time debugging using an emulation probe (made by Corelis or YDC) Execution control (run, break, step, register/memory access) Real-time PC tracing Please contact your local Toshiba Sales representative for more information regarding how to connect the emulation probe. The two functions of the Extended EJTAG Interface operate in one of two modes. PC Trace Mode • • Execution control (fun, pause, access single steps, access internal register/system memory) JTAG Boundary Scan Test Real-time Mode • Real-time PC tracing Refer to Section 3.1.11 for more information regarding signals used with the Extended EJTAG Interface. Table 21.1.1 EJTAG Interface Function and Operation Code PC Tracing Mode JTAG Boundary Scan Real-time Debugging Off Boundary Scan Test Execution Control On ⎯ Real-time PC Tracing 21-1 Chapter 21 Extended EJTAG Interface 21.2 JTAG Boundary Scan Test 21.2.1 JTAG Controller and Register The Extended EJTAG Interface contains a JTAG Controller (TAP Controller) and a Control Register. This section explains only those portions that are unique to the TX4938. Please refer to the “64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture” for all other portion not covered here. Please contact your local Toshiba Sales representative for more information regarding the required BSDL files when performing the JTAG Boundary Scan Test. • • Instruction Register (Refer to 21.2.2) Data Register • • • • • • • • Boundary Scan Register (Refer to 21.2.3) Bypass Register Device ID Register (Refer to 21.2.4) JTAG Address Register JTAG Data Register JTAG Control Register EJTAG Mount Register Test Access Port Controller (TAP Controller) (Refer to 21.3) 21-2 Chapter 21 Extended EJTAG Interface 21.2.2 Instruction Register The JTAG Instruction Register consists of an 8-bit shift register. This register is used for selecting either one or both of the test to be performed and the Test Data Register to be accessed. The Data Register is selected according to the instruction code in Table 21.2.1. Refer to the “64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture” for more information regarding each instruction. Table 21.2.1 Bit Configuration of JTAG Instruction Register Instruction Code MSB → LSB 00000000 (0x00) 00000001 (0x01) 00000010 (0x02) 00000011 (0x03) 00000100 - 00001111 00010000 (0x10) 00010001 - 01111111 10000000 - 11111110 11111111 (0xFF) Instruction EXTEST SAMPLE/PRELOAD Reserved IDCODE Reserved HIGHZ Reserved BYPASS Selected Data Register Boundary Scan Register Boundary Scan Register Reserved Device ID Register Reserved Bypass Register Reserved Bypass Register Refer to the “64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture” Figure 21.2.1 shows the format of the Instruction Register. 7 MSB 6 5 4 3 2 1 0 LSB Figure 21.2.1 Instruction Register The instruction code is shifted to the Instruction Register starting from the Least Significant Bit. MSB TDI LSB TDO Figure 21.2.2 Shift Direction of the Instruction Register 21.2.3 Boundary Scan Register The Boundary Scan Register contains a single 391-bit shift register to which all TX4938 I/O signals except for power supply, TDI, TCK, TDO, TMS, TRST*, and TEST[4]* are connected. Figure 21.2.3 shows the bits of the Boundary Scan Register. 390 Refer to TX4938 BSDL file 0 Figure 21.2.3 Boundary Scan Register TDI input is fetched to the Most Significant Bit (MSB) of the Boundary Scan Register and the Least Significant Bit (LSB) of the Boundary Scan Register is sent from the TDO output. Table 21.2.2 shows the boundary scan sequence relative to the processor signals. 21-3 Chapter 21 Extended EJTAG Interface Table 21.2.2 TX4938 Processor JTAG Scan Sequence (1/2) JTAG Scan Sequence 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 Signal Name TDI PIO[2] PIO[1] BYPASSPLL* SD[1] ACK* BUSSPRT* PIO[0] SWE* ACE* CE[6]* CE[7]* CE[0]* CE[2]* CE[5]* CE[1]* CE[3]* DMADONE* DMAREQ[3] CE[4]* DMAACK[3] DMAACK[2] DMAREQ[2] DMAACK[1] DMAREQ[1] DMAREQ[0] DMAACK[0] BWE[3]* BWE[0]* BWE[2]* BWE[1]* EEPROM_DI DCLK TPC[1] TPC[2] TPC[3] EEPROM_DO EEPROM_SK PCST[6] PCST[7] PCST[8] PCST[5] PCST[4] JTAG Scan Sequence 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 Signal Name EEPROM_CS PCST[3] PCST[2] PCST[1] PCST[0] PCIAD[0] PCIAD[2] PCIAD[1] PCIAD[3] PCIAD[5] PCIAD[6] PCIAD[4] PCIAD[7] C_BE[0] PCIAD[8] PCIAD[9] PCIAD[11] PCIAD[12] PCIAD[15] M66EN PCIAD[13] PCIAD[10] C_BE[1] PAR PERR* PCIAD[14] SERR* LOCK* STOP* IRDY* DEVSEL* FRAME* C_BE[2] PCIAD[22] TRDY* PCIAD[17] PCIAD[16] C_BE[3] PCIAD[28] PCIAD[21] PCIAD[18] PCIAD[27] ID_SEL JTAG Scan Sequence 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 Signal Name PCIAD[20] PCIAD[19] PCIAD[26] PCIAD[31] PCIAD[29] PCIAD[23] PCIAD[25] PCIAD[24] PCIAD[30] PCICLK[0] GNT[0]* REQ[1]* GNT[1]* PCICLK[1] REQ[0]* PCICLK[2] REQ[2]* GNT[2]* PCICLK[3] REQ[3]* GNT[3]* PME* PCICLK[4] DATA[63] PCICLK[5] PCICLKIN CGRESET* MASTERCLK DATA[31] DATA[62] DATA[30] DATA[61] DATA[29] DATA[60] DATA[59] DATA[27] DATA[28] DATA[58] DATA[26] DATA[57] DATA[56] DATA[24] DATA[25] 21-4 Chapter 21 Extended EJTAG Interface Table 21.2.2 TX4938 Processor JTAG Scan Sequence (2/2) JTAG Scan Sequence 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 Signal Name DATA[55] DATA[54] DATA[22] DATA[53] DATA[23] DATA[21] DATA[52] DATA[50] DATA[20] DATA[48] CB[3] DATA[51] DATA[19] DQM[7] DATA[17] CB[2] CB[7] DATA[49] DATA[18] SDCS[3]* DQM[2] DATA[16] CB[6] DQM[6] DQM[3] SDCLK[1] ADDR[17] CKE SDCS[2]* SDCLK[3] ADDR[18] ADDR[19] ADDR[15] ADDR[16] ADDR[14] SDCLKIN SDCLK[0] SDCLK[2] ADDR[12] ADDR[13] ADDR[10] ADDR[11] ADDR[9] JTAG Scan Sequence 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 Signal Name ADDR[8] ADDR[7] ADDR[6] ADDR[5] ADDR[4] ADDR[2] ADDR[1] ADDR[3] ADDR[0] RAS* SDCS[1]* DQM[5] DQM[1] SDCS[0]* DQM[4] WE* CAS* CB[5] DQM[0] CB[1] CB[4] DATA[47] CB[0] DATA[12] DATA[42] DATA[46] DATA[15] DATA[40] DATA[44] DATA[14] DATA[9] DATA[13] DATA[45] DATA[11] DATA[7] DATA[43] DATA[41] DATA[10] DATA[39] DATA[8] DATA[4] DATA[37] DATA[6] JTAG Scan Sequence 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 Signal Name DATA[38] DATA[36] DATA[5] DATA[34] DATA[3] DATA[33] DATA[35] DATA[2] DATA[1] DATA[0] DATA[32] WDRST* OE* SYSCLK TEST[1]* RESET* TEST[0]* SCLK HALTDOZE TXD[1] TXD[0] RTS[1]* RTS[0]* CTS[1]* RXD[1] CTS[0]* INT[5] INT[4] INT[3] INT[2] INT[1] TCLK RXD[0] INT[0] NMI* TIMER[0] PIO[7] TIMER[1] PIO[6] PIO[5] PIO[4] PIO[3] TDO 21-5 Chapter 21 Extended EJTAG Interface 21.2.4 Device ID Register The Device ID Register is a 32-bit shift register. This register is used for reading the ID code that expresses the IC manufacturer, part number, and version from the IC and sending it to a serial device. The following figure shows the configuration of the Device ID Register. 31 28 27 0 0 0 0 0 Product Number 000001 16 bits 0 0 1 1 12 11 1 0 0 Manufacturer ID Code 0000110 11 bits 0 1 0 0 1 1 Version 0001 4 bits Figure 21.2.4 Device ID Register The device ID code for the TX4938 is 0x10027031. However, the four top bits of the Version field may be changed. The device ID code is shifted out from the Least Significant Bit. MSB …… LSB TDO Figure 21.2.5 Shift Direction of the Device ID Register 21-6 Chapter 21 Extended EJTAG Interface 21.3 Initializing the Extended EJTAG Interface The Extended EJTAG Interface is not reset by asserting the RESET* signal. Operation of the TX49/H3 core is not guaranteed if the Extended EJTAG Interface is not reset. This interface is initialized by either of the following methods. • • Assert the TRST* signal. (TRST* signal is pulled down (by ex. 10 kΩ)) After clearing the processor reset, set the TMS input to High for five consecutive rising edges of the TCK input. The reset state is maintained if TMS is able to maintain the High state. The above methods must be performed while the MASTERCLK signal is being input. The G-Bus Time Out Detection function is disabled when the TRST* signal is deasserted. (Refer to Section 5.1.1.) 21-7 Chapter 21 Extended EJTAG Interface 21-8 Chapter 22 Electrical Characteristics 22. Electrical Characteristics 22.1 Absolute maximum rating (*1) Item Supply Voltage (for I/O pins) Supply Voltage (for internal circuits) Input Voltage (*2) Storage Temperature Symbol VCCIOMax VCCIntMax VIN TSTG −0.3 - 3.9 −0.3 - 3.0 Rating Unit V V V °C −0.3 - VCCIO + 0.3V −40 - +125 (*1) The absolute maximum rating is a rating that must not be exceeded even for an instant even by a single item. Exceeding the absolute maximum rating may cause component damage or degradation, and may result in damage or combustion that causes bodily harm. When designing application devices, be absolutely sure that this absolute maximum rating is never exceeded. (*2) Even with VCCIO + 0.3 V, be sure to never exceed the VCCIOMax maximum rating. 22.2 Recommended operating conditions Item Supply Voltage I/O Internal Circuit Symbol VCCIO VCCInt TC Condition Min. 3.1 1.4 0 Max. 3.5 1.6 70 Unit V V °C Operating Temperature (Package Temperature) (*3) A recommended operating condition is a usage condition that Toshiba recommends for a product to function properly and maintain a uniform level of quality. Using a product such that even one item is not under the recommended operating conditions may cause a malfunction to occur. When designing application devices, be sure that these recommended operating conditions ranges are never exceeded. 22-1 Chapter 22 Electrical Characteristics 22.3 DC characteristics 22.3.1 DC characteristics of pins other than PCI Interface pins (Tc = 0 - 70°C, VddIO = 3.3V ± 0.2V, VCCInt = 1.5V ± 0.1V, VSS = 0V) Item Low-level Input Voltage High-level Input Voltage Low-level Output Current Low-level Output Current High-level Output Current High-level Output Current Low-level Input Leak Current High-level Input Leak Current Hi-Z Output Leak Current Operating Current (Internal) Symbol VIL1 VIH1 IOL1 IOL2 IOL3 IOL4 IOH1 IOH2 IOH3 IOH4 IIL1 IIL2 IIH1 IOZ ICCInt (1) (1) Condition Min. −0.3 2.0 8 4 16 8 ⎯ ⎯ ⎯ ⎯ −10 −200 −10 −10 ⎯ Max. 0.8 VCCIO + 0.3 ⎯ ⎯ ⎯ ⎯ −8 −4 −16 −8 10 −10 10 10 500 Unit V V mA mA mA mA mA mA mA mA µA µA µA µA mA (2)VOL = 0.4 V (3)VOL = 0.4 V (4)VOL = 0.4 V (5)VOL = 0.4 V (2)VOH = 2.4 V (3)VOH = 2.4 V (4)VOH = 2.4 V (5)VOH = 2.4 V (6)VIN=VSS (7)VIN=VSS (8)VIN=VCCIO (9) VddIN = 1.6 V, Internal core frequency = 300 MHz VddIO = 3.5 V, External bus frequency = 100 MHz Pin capacitance load = 25 pF Operating Current (I/O Pin) ICCIO ⎯ 400 mA (1) : All input pins except for the PCI interface signal pins, and all bidirectional pins (during input) (2) : ACE*, ACK*, BUSSPRT*, BWE[3:0]*, CE[7:0]*, DMAACK[3:0], DMADONE*, WDRST*, HALTDOZE, PIO[7:0], RTS[1:0], SWE*, SYSCLK, TIMER[1:0] and TXD[1:0] (3) : DCLK, PCST[8:0], TDO and TPC[3:1] (4) : ADDR[19:0], CAS*, CB[7:0], CKE, DATA[63:0], DQM[7:0], OE*, RAS*, SDCLK[3:0], SDCLKIN, SDCS[3:0]*, and WE* when drive capacity is set to 16 mA. (5) : ADDR[19:0], CAS*, CB[7:0], CKE, DATA[63:0], DQM[7:0], OE*, RAS*, SDCLK[3:0], SDCLKIN, SDCS[3:0]*, and WE* when drive capacity is set to 8 mA. (6) : CGRESET*, RESET*, TRST*, BYPASSPLL*, MASTERCLK, SDCLKIN and SDIN[1] (7) : CTS[1:0]*, DMAREQ[3:0], DMADONE*, RXD[1:0], SCLK, TCLK, INT[5:0], TCK, TDI, TEST[4:0]*, TMS, ACK*, CB[7:0], DATA[63:0], ADDR[19:0], NMI* and PIO[7:0] (8) : Signal in (6) and (7) above (9) : DCLK, TDO 22-2 Chapter 22 Electrical Characteristics 22.3.2 DC characteristics of PCI Interface pins (Tc = 0 – 70°C, VddIO = 3.3 V ± 0.2 V, VddIN = 1.5 V ± 0.1 V, VSS = 0 V) Item Low-level Input Voltage High-level Input Voltage High-level Output Voltage Low-level Output Voltage High-level Output Current Low-level Output Current Input Leak Current High-level Input Leak Current Low-level Input Leak Current Hi-Z Output Leak Current Symbol VILPCI VIHPCI VOHPCI VOLPCI IOH1 IOL1 IIHPCI IILPCI IIL1 IIL2 IOZPCI (1) (1) Conditions Min. −0.5 1.8 VddIO × 0.9 ⎯ ⎯ 8 −10 −10 −10 −200 −10 Max. 0.9 VddIO + 0.3 ⎯ VddIO × 0.1 -8 ⎯ 10 10 10 −10 10 Unit V V V V mA mA µA µA µA µA µA (2) IOUT = −500 µA (2) IOUT = 1500 µA (4) VOH = 2.4 V (4) VOL = 0.4 V 0 < VIN < VddIO (5) VIN = VddIO (5) VIN = VSS (3) (1) : ID_SEL, PCICLKIN, C_BE[3:0], DEVSEL*, FRAME*, GNT[3:0]*, IRDY*, LOCK*, M66EN, PAR, PCIAD[31:0], PERR*, PME*, REQ[3:0], SERR*, STOP*, TRDY* (2) : All PCI interface signals except for ID_SEL, LOCK*, PCICLKIN (3) : PME*, REQ[1], SERR* (4) : EEPROM_CS, EEPROM_DO, EEPROM_SK (5) : EEPROM_DI 22-3 Chapter 22 Electrical Characteristics 22.4 PLL power 22.4.1 PLL power connection example Place C1, C2, C3, R, and L as close to the TX4938 as possible. TX4938 VddInt L R VddPLL2_A VddPLL1_A C1 C2 C3 VddInt R L C3 C2 C1 VssPLL2_A L R VSS VssPLL1_A R VSS L Item Resistance Inductance Condensor (capacitance) Symbol R L C1 C2 C3 Recommended Value 5.6 2.2 1 82 10 1.5 ± 0.1 Unit Ω µH NF NF µF V VddInt / VddPLL Note that the above values are recommended values. Figure 22.4.1 Oscillation Circuit 22-4 Chapter 22 Electrical Characteristics 22.5 AC characteristics 22.5.1 MASTERCLK AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item MASTERCLK Cycle Symbol tMCP Conditions Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L Min. 7.5 30 12.5 3.125 2 2 Max. 80 320 133.3 33.3 ⎯ ⎯ Unit ns ns MHz MHz ns ns MHz ns ns MASTERCLK Frequency *1) fMCK Boot configuration ADDR[2]=H Boot Configuration ADDR[2]=L MASTERCLK High Time MASTERCLK Low Time CPUCLK Frequency MASTERCLK Rise Time MASTERCLK Fall Time tMCH tMCL fCPU tMCR tMCF TMPR4938XBG-300 TMPR4938XBG-333 50 50 ⎯ ⎯ 300 333 1.5 1.5 *1) TX4938 operation is only guaranteed when the power is stable, PLL secures the PLL oscillation stability time tMCP_PLL and is in the Enable state. tMCP MASTERCLK 0.8 VCC 0.2 VCC tMCR tMCF tMCL tMCH Figure 22.5.1 Timing Diagram: MASTERCLK 22.5.2 Power on AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item Symbol tMCP_PLL fMCK_PLL tMCH_PLL Conditions Min. 10 1 1 Max. Unit ms ms PLL Oscillation Stability Time CGRESET* W idth Time RESET* W idth Time VCCInt, VCCIO *1) PLL_Vdd1_A, PLL_Vdd2_A MASTERCLK ⎯ ms MASTERCLK Oscillation Stability Time tMCP_PLL CGRESET* tMCK_PLL tMCH_PLL RESET* *1) VCCInt and VCCIO must start up simultaneously, or VCCInt must be first. The difference of the stand up time of a power supply within in 100 m seconds. Figure 22.5.2 Timing Diagram: Power On Reset 22-5 Chapter 22 Electrical Characteristics 22.5.3 SDRAM Interface AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V, CL = 150 pF) Item SDCLK[3:0] Cycle Time SDCLK[3:0] High Time SDCLK[3:0] Low Time SDCLKIN Input Skew ADDR[19:5] Output Delay SDCS[3:0]* Output Delay RAS* Output Delay CAS* Output Delay W E* Output Delay CKE Output Delay DQM[7:0] Output Delay DATA[63:0] Output Delay (H→L, L→H) Symbol tCYC_SDCLK tHIGH_SDCLK tLOW_SDCLK tBP tVAL_ADDR1 tVAL_SDCS tVAL_RAS tVAL_CAS tVAL_WE tVAL_CKE tVAL_DQM tVAL_DATA1 Conditions CL=50 pF, 16 mA buffer time CL=50 pF, 16 mA buffer time CL=50 pF, 16 mA buffer time W hen in the Non-bypass mode *4) CL=150 pF, 16 mA buffer, *1) CL= 80 pF, 16 mA buffer, *1) CL= 80 pF, 16 mA buffer CL=150 pF, 16 mA buffer, *1) CL= 80 pF, 16 mA buffer, *1) CL=150 pF, 16 mA buffer, *3) CL= 80 pF, 16 mA buffer, *3) CL=150 pF, 16 mA buffer, *3) CL= 80 pF, 16 mA buffer, *3) CL=150 pF, 16 mA buffer CL= 80 pF, 16 mA buffer CL= 50 pF, 16 mA buffer, *2) CL= 30 pF, 16 mA buffer, *2) CL= 50 pF, 16 mA buffer, *2) CL= 30 pF, 16 mA buffer, *2) CL= 50 pF, 16 mA buffer, *2) CL= 30 pF, 16 mA buffer, *2) CL= 50 pF, 16 mA buffer, *2) CL= 30 pF, 16 mA buffer, *2) W hen in the Bypass mode W hen in the Bypass mode W hen in the Non-bypass mode W hen in the Non bypass mode Min. 7.5 2.5 2.5 0 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 4.0 0.5 1.0 1.0 Max. ⎯ ⎯ ⎯ Unit ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns tCYC_SDCLK – 5.5 6.5 5.2 5.2 6.5 5.2 6.5 5.2 6.5 5.2 6.5 5.2 6.5 5.2 6.5 5.2 6.5 5.2 6.5 5.2 ⎯ ⎯ ⎯ ⎯ DATA[63:0] Output Delay (Valid → Hi-Z) tVAL_DATA1ZV DATA[63:0] Output Delay (Valid→Hi-Z) tVAL_DATA1VZ DATA[63:0] Input Setup Time DATA[63:0] Input Hold Time DATA[63:0] Input Setup Time DATA[63:0] Input Hold Time tSU_DATA1B tHO_DATA1B tSU_DATA1NB tHO_DATA1NB *1) Becomes a 2-cycle signal when tDACT of SDCTR1 is “1”. *2) Becomes a 2-cycle signal when tSWB of SDCTR1 is “1”. *3) 2-cycle signal For information on 2-cycle operation, see the description in Chapter 9 SDRAM Controller. *4) The MAX value is is tCYC_SDCLK – 5.5 ns. SDCLK[n] tVAL_* OUTPUT tSU_* INPUT tHO_* inputs valid outputs valid Figure 22.5.3 Timing Diagram: Output Signal and Input Signal when in the Bypass Mode (SDCLK Reference) 22-6 Chapter 22 Electrical Characteristics SDCLK[n] tBP SDCLKIN tSU_* INPUT inputs valid tHO_* Figure 22.5.4 Timing Diagram: Input Signal when in the Non-bypass Mode (SDCLK Reference) 22-7 Chapter 22 Electrical Characteristics 22.5.4 External Bus Interface AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item SYSCLK Cycle Time SYSCLK High Time SYSCLK Low Time ADDR[19:5] Output Delay CE[7:0]* Output Delay OE* Output Delay SWE* Output Delay BWE[3:0]* Output Delay ACE Output Delay BUSSPRT* Output Delay DATA[63:0] Output Delay (H→L, L→H) DATA[31:0] Output Delay (Hi-Z→Valid) DATA[31:0] Ouput Delay (Valid→Hi-Z) DATA[31:0] Input Setup Time DATA[31:0] Input Hold Time ACK* Output Delay (H→L, L→H) ACK* Output Delay (Hi-Z→Valid) ACK* Output Delay (Valid→Hi-Z) ACK* Input Setup Time ACK* Input Hold Time Symbol tCYC_SYSCLK tLOW_SYSCLK tVAL_ADDR2 tVAL_CE tVAL_OE tVAL_SWE tVAL_BWE tVAL_ACE tVAL_DQM tVAL_BUS tVAL_DATA2ZV tVAL_DATA2VZ tSU_DATA2 tHO_DATA2 tVAL_ACK tVAL_ACKZV tVAL_ACKVZ tSU_ACK tHO_ACK Condition Buffer fixed: CL=50 pF, 8 mA Buffer fixed: CL=50 pF, 8 mA For CL=150 pF, 16 mA buffer Buffer fixed: CL=50 pF, 8 mA Buffer fixed: CL=50 pF, 8 mA Buffer fixed: CL=50 pF, 8 mA Buffer fixed: CL=50 pF, 8 mA Buffer fixed: CL=50 pF, 8 mA Buffer fixed: CL=50 pF, 8 mA For CL=50 pF, 16 mA buffer For CL=50 pF, 16 mA buffer For CL=50 pF, 16 mA buffer Min. 7.5 4 4 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 6.0 0.5 Max. ⎯ ⎯ ⎯ Unit ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns tHIGH_SYSCLK Buffer fixed: CL=50 pF, 8 mA 6.5 8.5 8.5 8.5 8.5 8.5 8.5 6.5 *1) 8.5 8.5 ⎯ ⎯ Buffer fixed: CL=50 pF, 8 mA Buffer fixed: CL=50 pF, 8 mA Buffer fixed: CL=50 pF, 8 mA 1.5 1.5 1.5 6.0 0.5 8.5 8.5 8.5 ⎯ ⎯ *1) When the speed of the External Bus is set to 1/3 speed, the delay becomes the GBUSCLK cycle + 6.5 ns. EBCCRn.SP of the External Bus Controller sets the speed of the External Bus. tCYC_SYSCLK tHIGH_SYSCL SYSCLK tVAL_* OUTPUT tSU_* INPUT inputs valid tHO_* outputs valid tLOW_SYSCL Figure 22.5.5 Timing Diagram: External Bus Interface 22-8 Chapter 22 Electrical Characteristics 22.5.5 PCI Interface AC characteristics (66 MHz) (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item PCICLKIN Cycle Time (66 MHz) PCICLKIN High Time (66 MHz) PCICLKIN Low Time (66 MHz) PCICLKIN Slew Rate (66 MHz) PCICLK[5:0] Cycle Time (66 MHz) PCICLK[5:0] High Time (66 MHz) PCICLK[5:0] Low Time (66 MHz) PCICLK[5:0] Skew (66 MHz) PCI Output Signal*1) Output Delay PCI Input Signal*2) Input Setup Time PCI Input Signal*2) Input Hold Time ID_SEL, REQ[0]*, GNT[3:0]* Output Delay ID_SEL, REQ[3:0]*, GNT[0]* Input Setup Time ID_SEL, REQ[3:0]*, GNT[0]* Input Hold Time Symbol tCYC66 tHIGH66 tLOW66 tSLEW66 tCYCO66 tHIGHO66 tLOWO66 tSKEW tVAL66 tSU66 tHO66 tVALPP66 tSUPP66 tHOPP66 Conditions Min. 15 6 6 1.5 Max. 30 ⎯ ⎯ Unit ns ns ns V/ns ns ns ns ns ns ns ns ns ns ns 4 30 ⎯ ⎯ CL=50 pF CL=50 pF CL=50 pF CL=50 pF, point to point connect CL=30 pF 15 6 6 0 2 3 0.5 1 8 ⎯ ⎯ CL=30 pF, point-to-point connect Point-to-point connection Point-to-point connection 2 5 0 8 ⎯ ⎯ *1) PCIAD[31:0], C_BE[3:0], PAR, FRAME*, IRDY*, TRDY*, STOP*, DEVSEL*, PERR*, SERR*, M66EN, and PME* *2) PCIAD[31:0] , C_BE[3:0] , PAR, FRAME*, IRDY*, TRDY*, STOP*, DEVSEL*, PERR*, SERR*, M66EN, PME*, LOCK*, and ID_SEL 22.5.6 PCI Interface AC characteristics (33 MHz) (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item Symbol tCYC33 tHIGH33 tLOW33 tSLEW33 tCYC33 tHIGH33 tLOW33 tSKEW tVAL33 tSU33 tHO33 tVALPP33 tSUPP33 tHOPP33 CL=70 pF, point to point connect point to point connct point to point connect CL=70 pF CL=70 pF CL=70 pF CL=70 pF, point to point connect CL=70 pF Condition Min. 30 11 11 1 30 11 11 0 2 7 0.5 2 10 0 Max. 40 ⎯ ⎯ Unit ns ns ns V/ns ns ns ns ns ns ns ns ns ns ns PCICLKIN Cycle Time (33 MHz) PCICLKIN High Time (33 MHz) PCICLKIN Low Time (33 MHz) PCICLKIN Slew Rate (33 MHz) PCICLK[5:0] Cycle Time (33 MHz) PCICLK[5:0] High Time (33 MHz) PCICLK[5:0] Low Time (33 MHz) PCICLK[5:0] Skew (33 MHz) PCI Output Signal*1) Output Delay PCI Input Signal*2) Input Setup Time PCI Input Signal*2) Input Hold Time ID_SEL, REQ[0]*, GNT[3:0]* Output Delay ID_SEL, REQ[3:0]*, GNT[0]* Input Setup Time ID_SEL, REQ[3:0]*, GNT[0]* Input Hold Time 4 40 ⎯ ⎯ 2 11 ⎯ ⎯ 12 ⎯ ⎯ *1) PCIAD[31:0], C_BE[3:0] , PAR, FRAME*, IRDY*, TRDY*, STOP*, DEVSEL*, PERR*, SERR*, M66EN, and PME* *2) PCIAD[31:0] , C_BE[3:0] , PAR, FRAME*, IRDY*, TRDY*, STOP*, DEVSEL*, PERR*, SERR*, M66EN, PME*, LOCK*, and ID_SEL 22-9 Chapter 22 Electrical Characteristics tCYC66 / tCYC33 tHIGH66 / tHIGH33 0.6 Vcc 0.5 Vcc 0.4 Vcc 0.3 Vcc 0.2 Vcc (Vcc=3.3V) tLOW66 / tLOW33 tSLEW66 / tSLEW33 0.4 Vcc p-to-p (minimum) PCICLKIN tsu66 / tsu33 / tSUPP66/tSUPP33 tHO66 / tHO33 / tHOPP66 / tHOPP33 INPUT inputs valid tVAL66 / tVAL33 / tVALPP66 / tVALPP33 OUTPUT outputs valid Figure 22.5.6 Timing Diagram: PCI Interface (3.3 V) tCYCO66 / tCYCO33 tHIGHO66 / tHIGHO33 tLOWO66 / tLOWO33 PCICLK[n] tSKEW PCICLK[except n] n=0∼5 Figure 22.5.7 Timing Diagram: PCI Clock Skew 22-10 Chapter 22 Electrical Characteristics 22.5.7 PCI EEPROM Interface AC characteristics (Tc = 0 ~ 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item EEPROM_SK High Time EEPROM_SK Low Time EEPROM_DO Output Delay Time EEPROM_DI Input Setup Time EEPROM_DI Input Hold Time EEPROM_CS Output Delay Time *1) Symbol tHIGH_EPSK tLOW_EPSK tVAL_EPDO tSU_EPDI tHO_EPDI tVAL_CS Conditions CL=50 pF CL=50 pF CL=50 pF Min. 500 500 ⎯ 100 100 Max. ⎯ ⎯ 100 ⎯ ⎯ ⎯ Unit ns ns ns ns ns ns CL=50 pF 100 *1) The TX4938 controls EEPROM and its control signal synchronous to the falling edge of EEPROM_SK. Since the EEPROM operates at the rising edge of EEPROM_SK, you do not have to take the MIN side of EEPROM_DO into account. tHIGH_EPSK tLOW_EPSK EEPROM_SK EEPROM_DO tVAL_EPDO EEPROM_DI tSU_EPDI EEPROM_CS tHO_EPDI tVAL_EPCS Figure 22.5.8 Timing Diagram: PCI EEPROM Interface 22.5.8 DMA Interface AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item Symbol tVAL_DONE tPW_DONE Conditions CL=50 pF SYSCLK (CL=50 pF) reference Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L tPW_DONE Min. ⎯ tMCP × 1.1 1/4 × tMCP × 1.1 Max. 12 ⎯ ⎯ Unit ns ns ns DMADONE* Delay DMADONE* Input Pulse Width Time DMADONE* SYSCLK tVAL_DONE DMADONE* Figure 22.5.9 Timing Diagram: DMA Interface 22-11 Chapter 22 Electrical Characteristics Notes: (1) DMAREQ[n] Edge Detection: Set the pulse width to 1.1× the GBUSCLK cycle or higher. Level Detection: There is no AC characteristic definition. Continue asserting DMAREQ[3:0] until DMAACK[3:0] is received. (2) DMAACK[n] The DMAACK[n] signal is synchronous to SDCLK. (It is driven by GUBSCLK inside the chip. See Chapter 6 for more information.) The DMAACK[n] signal is asserted by SYSCLK or SDCLK for 3 cycles or more. However, this is changed by the conditions [1] and [2] below. [1] [2] DMAC transfer mode (Single Address transfer, Dual Address transfer) Access time of the device DMAC accesses SDCLK[n] DMAACK[n] Assertion Time • • W hen driving an external device with SYSCLK Is asserted by SYSCLK for at least 3 cycles even in the shortest assertion case. W hen driving an external device with SDCLK Is asserted by SDCLK for at least 3 cycles even in the shortest assertion case. The AC characteristics for Single Address transfer with SDRAM are tight, so we do not recommend Single Address transfer. (3) DMADONE* Is asserted for only 1 SYSCLK cycle synchronous to SYSCLK. 22.5.9 Interrupt Interface AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item Symbol tPW_INT Conditions Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L Min. 2 × tMCP × 1.1 1/2 × tMCP × 1.1 tMCP × 1.1 1/4 × tMCP × 1.1 Max. ⎯ ⎯ ⎯ ⎯ Unit ns ns ns ns INT Input Pulse Width Time NMI Input Pulse Width Time tPW_NMI Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L tPW_INT/tPW_NMI Figure 22.5.10 Timing Diagram: INT/NMI Interface 22-12 Chapter 22 Electrical Characteristics 22.5.10 SIO Interface AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item SCLK Cycle time Symbol fCYC_SCLK Conditions Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L Min. 4 × tMCP × 1.1 tMCP × 1.1 ⎯ ⎯ 2 × tMCP × 1.1 1/2 × tMCP × 1.1 2 × tMCP × 1.1 1/2 × tMCP × 1.1 Max. ⎯ ⎯ 1/2 × fMCK × 0.45 2 × fMCK × 0.45 ⎯ ⎯ ⎯ ⎯ Unit ns ns MHz MHz ns ns ns ns SCLK Frequency fSCLK Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L SCLK High Time tHIGH_SCLK Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L SCLK Low Time tLOW_SCLK Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L tHIGH_SCLK SCLK tLOW_SCLK tCYC_SCLK/fSCLK Figure 22.5.11 Timing Diagram: SIO Interface 22.5.11 Timer Interface AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item TCLK Cycle Time Symbol fCYC_TCLK Conditions Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L Min. 4 × tMCP × 1.1 tMCP × 1.1 ⎯ ⎯ 2 × tMCP × 1.1 1/2 × tMCP × 1.1 2 × tMCP × 1.1 1/2 × tMCP × 1.1 Max. ⎯ ⎯ 1/2 × fMCK × 0.45 2 × fMCK × 0.45 ⎯ ⎯ ⎯ ⎯ Unit ns ns MHz MHz ns ns ns ns TCLK Frequency fTCLK Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L TCLK High Time tHIGH_TCLK Boot configuration ADDR[2]=H Boot configuration ADDR[2]=L TCLK Low Time tLOW_TCLK Boot Configuration ADDR[2]=H Boot configuration ADDR[2]=L tHIGH_TCLK TCLK tLOW_TCLK tCYC_TCLK/fTCLK Figure 22.5.12 Timing Diagram: Timer Interface 22-13 Chapter 22 Electrical Characteristics 22.5.12 PIO Interface AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item PIO[15:0] Output Delay Time PIO[15:0] Input Setup Time PIO[15:0] Input Hold Time Symbol tVAL_PIO tSU_PIO tHO_PIO Conditions IMBUSCLK reference (CL=50 pF) IMBUSCLK reference IMBUSCLK Reference Min. ⎯ 12 0 Max. 10 ⎯ ⎯ Unit ns ns ns *1) IMBUSCLK is an internal signal. For more details, see Chapter 6 Clocks. MASTERCLK IMBUSCLK (output) tVAL_PIO (input) tSU_PIO tHO_PIO Figure 22.5.13 Timing Diagram: PIO Interface 22.5.13 AC-link Interface AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item BITCLK High Time BITCLK Low Time SYNC Output Delay Time SDOUT Output Delay Time SDIN[1:0] Input Setup Time SDIN[1:0] Input Hold Time Symbol tHIGH_BCLK tLOW_BCLK tVAL_SYNC tVAL_SDOUT tSU_DSIN tHO_DSIN Condition Min. 36 36 Max. 45 45 15 15 ⎯ ⎯ Unit ns ns ns ns ns ns BITCLK reference, CL = 55 pF BITCLK reference, CL = 55 pF BITCLK reference BITCLK reference ⎯ ⎯ 10 10 BITCLK tHIGH_BCLK SYNC tVAL_SYNC SDOUT tVAL_SDOUT SDIN tSU_SDIN tHO_SDIN tVAL_SYNC tLOW_BCLK Figure 22.5.14 Timing Diagram: AC-link Interface 22-14 Chapter 22 Electrical Characteristics 22.5.14 NAND Flash Memory Interface AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item ND_ALE Output Delay Time ND_CLE Output Delay Time ND_CE* Output Delay Time DATA[7:0] Read Setup Time DATA[7:0] Read Hold Time ND_WE* Low Pulse Width DATA[7:0] Output Delay Symbol tVAL_NDALE tVAL_NDCLE tVAL_NDCE tSU_RDATA tHO_RDATA tPW_NDWE tVAL_DATA Condition GBUSCLK reference GBUSCLK reference GBUSCLK reference ND_RE* rising edge ND_RE* rising edge ⎯ ND_RE* rising edge Min. ⎯ ⎯ ⎯ 12 0 Max. 15 15 15 ⎯ ⎯ ⎯ ⎯ Unit ns ns ns ns ns ns ns *1) *2) *1) *2) tVAL_NDWE = (NDFSPR.SPW + 1) × GBUSCLK cycle tVAL_DATA = NDFSPR.HOLD × GBUSCLK cycle – 3 MASTERCLK (Note 1) GBUSCLK tVAL_ND* ND_ALE, ND_CLE ND_CE* ND_RE* tSU_RDAT DATA[7:0] inputs valid tHO_RDATA tPW_NDWE ND_WE* tVAL_DATA DATA[7:0] Note 1: This figure shows the timing diagram when the boot configuration setting is ADDR[2]=H. The NAND Flash Memory Controller operates synchronously to the internal GBUSCLK. GBUSCLK is an internal signal. When ADDR[2]=H, MASTERCLK and GBUSCLK become clocks with the same phase. When ADDR[2]=L, GBUSCLK has a frequency 4 times that of MASTERCLK. The timings of the rising edges match between both clocks. 22-15 Chapter 22 Electrical Characteristics 22.5.15 SPI AC characteristics (Tc = 0 - 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item SPICLK Cycle Time Symbol fCYC_SPICLK Conditions Boot Configuration ADDR[2]=H Boot Configuration ADDR[2]=L Min. 8 × tMCP 2 × tMCP ⎯ ⎯ tMCP × 0.9 tMCP × 0.9 ⎯ 16 0 Max. ⎯ ⎯ 1/8 × fMCK 1/2 × fMCK ⎯ ⎯ 6 ⎯ ⎯ Unit ns ns MHz MHz ns ns ns ns ns SPICLK Frequency fSPICLK Boot Configuration ADDR[2]=H Boot Configuration ADDR[2]=L SPICLK High Time SPICLK Low Time SPIOUT Output Delay Time SPIIN Input Setup Time SPIIN Input Hold Time tHIGH_SPICLK tLOW_SPICLK tVAL_SPIOUT tSU_SPIIN tHO_SPIIN tHIGH_SPICLK SPICLK tLOW_SPICLK tCYC_SPICLK/fSPICLK SPICLK SPIOUT (SPOL = 0) tVAL_SPIOUT SPIIN (SPOL = 0) tSU_SPIIN tHO_SPIIN SPICLK SPIOUT (SPOL = 1) tVAL_SPIOUT SPIIN (SPOL = 1) tSU_SPIIN tHO_SPIIN 22-16 Chapter 22 Electrical Characteristics 22.5.16 Ethernet Interface (MII) AC characteristics (Tc = 0 – 70°C, VCCIO = 3.3 V ± 0.2 V, VCCInt = 1.5 V ± 0.1 V, VSS = 0 V) Item Reception Data Setup Time Reception Data Set Hold Time Transmission Data Output Delay Time E*MDC Cycle Time Symbol tSU_RX tHO_RX tval_TX tCYC_MDC Conditions E*RXCLK reference E*RXCLK reference E*TXCLK reference CLK = 50 pF W hen on-chip PCI bus is clocked at 1/4 of GBUS clock, (GBUSCLK=120 MHz, 120÷4÷14=2.14 MHz) W hen on-chip PCI bus is clocked at 1/2 of GBUS clock, (GBUSCLK=120 MHz, 120÷2÷30=2 MHz) Min. 10 10 0 Max. ⎯ ⎯ 25 Unit ns ns ns 467 ⎯ ns 500 ⎯ ns E*MDIO Input Setup Time E*MDIO Input Hold Time E*MDI Output Delay Time (PHY Setup) E*MDI Output Delay Time (PHY Hold) tSU_MDIO tHO_MDIO tVAL_SU_MDIO tVAL_HO_MDIO E*MDC reference E*MDC reference E*MDC reference E*MDC CL = 30 pF E*MDIO CL = 50 pF 40 0 10 10 ⎯ ⎯ ⎯ ⎯ ns ns ns ns (1) Reception signals E*RXCLK (10 Mbps: 2.5 MHz) (100 Mbps: 25 MHz) E*RXD[3:0] E*RXDV tSU_RX tHO_RX (2) Transmission signals E*TXCLK (10 Mbps: 2.5 MHz) (100 Mbps: 25 MHz) E*TXD[3:0] E*TXEN tval_TX Valid 22-17 Chapter 22 Electrical Characteristics (3) Management signals tCYC_MDC E*MDC E*MDIO (input) Valid tSU_MDIO When TX4938 receives E*MDIO tHO_MDIO E*MDC E*MDIO (output) tVAL_SU_MDIO W hen TX4938 outputs E*MDIO tVAL_HO_MDI 22-18 Chapter 23 Pinout and Package Information 23. Pinout and Package Information 23.1 Pinout Diagram Figure 23.1.1 shows the TX4938 pinout. Table 23.1.1 provides a pin cross reference by pin number. provides a pin cross reference by pin name. Table 23.1.3 provides a pin cross reference for thermal balls. 23-1 Chapter 23 Pinout and Package Information A 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 C_BE[2] IRDY* VddIO VSS PCIAD [15] PCIAD [11] C_BE[0] PCIAD[5] PCIAD[2] PCST[0] PCST[3] B VSS FRAME* STOP* PERR* C_BE[1] PCIAD [12] PCIAD[8] PCIAD[6] PCIAD[3] PCIAD[0] PCST[2] C PCIAD [16] PCIAD [17] DEVSEL* LOCK* PAR PCIAD [13] PCIAD[9] PCIAD[7] VddIO PCIAD[1] PCST[1] PCST[4] PCST[7] TPC[3] TMS TDI BWE[3]* VddIO DMAREQ [3] CE[1]* CE[2]* ACE* ACK* D PCIAD [18] VddIO TRDY* VddIN SERR* VddIO M66EN VddIO PCIAD[4] VddIN VddIO VddIN VddIO TPC[2] VddIO DMAACK [0] VddIN VSS VddIN CE[0]* VSS BYPASSP LL* VddIN PIO[6] VSS PIO[7] E PCIAD [19] PCIAD [20] PCIAD [21] PCIAD [22] VSS PCIAD [14] PCIAD [10] VSS VSS VSS TRST* VSS PCST[6] TPC[1] VSS DMAREQ [0] VSS DMADON E* VSS VddIO SDIN[1] VSS VddIO TIMER[1] TIMER[0] TCLK F PCIAD [23] VddIO ID_SEL C_BE[3] VddIO G PCIAD [24] PCIAD [25] PCIAD [26] PCIAD [27] PCIAD [28] H PCICLK [0] VddIO PCIAD [29] VddIN VSS J PCICLK [1] GNT[0]* PCIAD [30] VSS PCIAD [31] K PCICLK [2] REQ[0]* GNT[1]* VddIN VSS L PCICLK [3] GNT[2]* REQ[2]* VSS REQ[1]* M PCICLK [4] GNT[3]* REQ[3]* VddIO VSS N PCICLK [5] DATA[63] VSS VddIO PME* VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS EEPROM_ PCST[5] CS EEPROM_ PCST[8] SK VSS TDO EEPROM_ DCLK DO EEPROM_ TCK DI BWE[1]* BWE[0]* DMAACK [1] DMAACK [2] CE[4]* CE[5]* CE[7]* SWE* PIO[0] PIO[1] BWE[2]* DMAREQ [1] DMAREQ [2] DMAACK [3] CE[3]* VddIO CE[6]* TOP View VddIN NMI* INT[0] INT[1] INT[2] VddIN RXD[0] INT[3] INT[4] INT[5] VSS VddIO CTS[0]* RTS[0]* TXD[0] RXD[1] CTS[1]* RTS[1]* TXD[1] SCLK VSS VddIN TEST[1]* TEST[2]* VSS VddIN VddIO W DRST* OE* VddIO VSS DATA[0] DATA[32] DATA[1] BUSSPRT VddIO * PIO[2] PIO[3] PIO[4] PIO[5] HALTDOZE TEST[3]* TEST[0]* RESET* TEST[4]* SYSCLK Figure 23.1.1 Pinout Diagram (1/2) 23-2 Chapter 23 Pinout and Package Information P PCICLKIN R T U VSS DATA[61] VddIO VddIN VSS V DATA[29] DATA[60] VSS DATA[28] VddIO W DATA[59] DATA[27] VSS VddIO VSS Y DATA[58] DATA[26] DATA[57] DATA[25] VddIO AA DATA[56] DATA[24] DATA[55] VSS DATA[23] AB VSS DATA[54] VSS VddIO VSS CB[3] DQM[7] VSS SDCS[3]* AC DATA[22] DATA[53] VSS VddIN DATA[48] VSS CB[2] VddIN DQM[2] VddIN VddIO VddIO VddIO VddIO VddIN ADDR[8] VddIN VddIO VddIO SDCS[0]* VSS VddIO VddIN VSS VSS DATA[14] AD DATA[21] DATA[52] DATA[50] VSS DATA[17] CB[7] VSS VSS DQM[6] CKE ADDR[18] ADDR[15] ADDR[14] ADDR[12] ADDR[10] VSS ADDR[5] VSS VSS SDCS[1]* DQM[4] VSS VSS CB[0] DATA[46] VddIO AE VddIO DATA[20] VddIO VSS DATA[49] VddIO CB[6] DQM[3] VSS SDCS[2]* ADDR[19] ADDR[16] VSS ADDR[13] VSS ADDR[9] ADDR[6] ADDR[4] ADDR[1] RAS* DQM[1] WE* CB[5] CB[4] VddIO DATA[15] AF VSS DATA[51] DATA[19] VddIO DATA[18] DATA[16] VddIO SDCLK[1] VSS SDCLK[3] VSS SDCLKIN SDCLK[0] SDCLK[2] ADDR[11] VddIO VSS VddIO ADDR[2] ADDR[0] DQM[5] VSS CAS* CB[1] DATA[47] VSS MASTERC VSS LK 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 PLL2VSS_ PLL1VSS_ DATA[31] A A PLL2VDD_ PLL1VDD_ VddIO A A CGRESET VddIN * VddIN VSS DATA[62] DATA[30] VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS ADDR[17] VSS VSS VSS VSS ADDR[7] VSS ADDR[3] VSS VddIO TOP View VddIO VSS DATA[33] VSS DATA[2] VSS VddIO DATA[34] DATA[3] DATA[35] DATA[4] VddIO DATA[36] DATA[5] VSS VSS VddIN DATA[37] DATA[6] DATA[38] DATA[7] VddIO VddIO VSS VSS VSS VddIN VSS DATA[39] DATA[8] DATA[40] DATA[9] VSS DATA[41] DATA[10] DATA[42] VSS VddIO DATA[11] DATA[43] DQM[0] VSS DATA[12] DATA[44] DATA[13] DATA[45] Figure 23.1.1 Pinout Diagram (2/2) 23-3 Chapter 23 Pinout and Package Information Table 23.1.1 Pin Cross Reference by Pin Number (1/2) Pin Number A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 Pin Name PIO[1] PIO[0] SWE* CE[7]* CE[5]* CE[4]* DMAACK[2] DMAACK[1] BWE[0]* BWE[1]* EEPROM_DI EEPROM_DO VSS EEPROM_SK EEPROM_CS PCST[3] PCST[0] PCIAD[2] PCIAD[5] C_BE[0] PCIAD[11] PCIAD[15] VSS VddIO IRDY* C_BE[2] PIO[3] PIO[2] BUSSPRT* CE[6]* VddIO CE[3]* DMAACK[3] DMAREQ[2] DMAREQ[1] BWE[2]* TCK DCLK TDO PCST[8] PCST[5] PCST[2] Pin Number B17 B18 B19 B20 B21 B22 B23 B24 B25 B26 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C25 C26 D1 D2 D3 D4 D5 D6 Pin Name PCIAD[0] PCIAD[3] PCIAD[6] PCIAD[8] PCIAD[12] C_BE[1] PERR* STOP* FRAME* VSS PIO[5] PIO[4] VddIO ACK* ACE* CE[2]* CE[1]* DMAREQ[3] VddIO BWE[3]* TDI TMS TPC[3] PCST[7] PCST[4] PCST[1] PCIAD[1] VddIO PCIAD[7] PCIAD[9] PCIAD[13] PAR LOCK* DEVSEL* PCIAD[17] PCIAD[16] PIO[7] VSS PIO[6] VddIN BYPASSPLL* VSS Pin Number D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 D25 D26 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 E21 E22 Pin Name CE[0]* VddIN VSS VddIN DMAACK[0] VddIO TPC[2] VddIO VddIN VddIO VddIN PCIAD[4] VddIO M66EN VddIO SERR* VddIN TRDY* VddIO PCIAD[18] TCLK TIMER[0] TIMER[1] VddIO VSS SDIN[1] VddIO VSS DMADONE* VSS DMAREQ[0] VSS TPC[1] PCST[6] VSS TRST* VSS VSS VSS PCIAD[10] PCIAD[14] VSS Pin Number E23 E24 E25 E26 F1 F2 F3 F4 F5 F22 F23 F24 F25 F26 G1 G2 G3 G4 G5 G22 G23 G24 G25 G26 H1 H2 H3 H4 H5 H22 H23 H24 H25 H26 J1 J2 J3 J4 J5 J22 J23 J24 Pin Name PCIAD[22] PCIAD[21] PCIAD[20] PCIAD[19] INT[2] INT[1] INT[0] NMI* VddIN VddIO C_BE[3] ID_SEL VddIO PCIAD[23] INT[5] INT[4] INT[3] RXD[0] VddIN PCIAD[28] PCIAD[27] PCIAD[26] PCIAD[25] PCIAD[24] TXD[0] RTS[0]* CTS[0]* VddIO VSS VSS VddIN PCIAD[29] VddIO PCICLK[0] SCLK TXD[1] RTS[1]* CTS[1]* RXD[1] PCIAD[31] VSS PCIAD[30] Pin Number J25 J26 K1 K2 K3 K4 K5 K22 K23 K24 K25 K26 L1 L2 L3 L4 L5 L22 L23 L24 L25 L26 M1 M2 M3 M4 M5 M22 M23 M24 M25 M26 N1 N2 N3 N4 N5 N22 N23 N24 N25 N26 Pin Name GNT[0]* PCICLK[1] RESET* TEST[0]* HALTDOZE VddIN VSS VSS VddIN GNT[1]* REQ[0]* PCICLK[2] SYSCLK TEST[4]* TEST[3]* TEST[2]* TEST[1]* REQ[1]* VSS REQ[2]* GNT[2]* PCICLK[3] OE* WDRST* VddIO VddIN VSS VSS VddIO REQ[3]* GNT[3]* PCICLK[4] DATA[1] DATA[32] DATA[0] VSS VddIO PME* VddIO VSS DATA[63] PCICLK[5] 23-4 Chapter 23 Pinout and Package Information Table 23.1.1 Pin Cross Reference by Pin Number (2/2) Pin Number P1 P2 P3 P4 P5 P22 P23 P24 P25 P26 R1 R2 R3 R4 R5 R22 R23 R24 R25 R26 T1 T2 T3 T4 T5 T22 T23 T24 T25 T26 U1 U2 U3 U4 U5 U22 U23 U24 U25 U26 V1 V2 Pin Name DATA[2] VSS DATA[33] VSS VddIO VddIN CGRESET* PLL2VDD_A PLL2VSS_A PCICLKIN DATA[35] DATA[3] DATA[34] VddIO VSS VSS VddIN PLL1VDD_A PLL1VSS_A MASTERCLK VSS DATA[5] DATA[36] VddIO DATA[4] DATA[30] DATA[62] VddIO DATA[31] VSS DATA[38] DATA[6] DATA[37] VddIN VSS VSS VddIN VddIO DATA[61] VSS VSS VSS Pin Number V3 V4 V5 V22 V23 V24 V25 V26 W1 W2 W3 W4 W5 W22 W23 W24 W25 W26 Y1 Y2 Y3 Y4 Y5 Y22 Y23 Y24 Y25 Y26 AA1 AA2 AA3 AA4 AA5 AA22 AA23 AA24 AA25 AA26 AB1 AB2 AB3 AB4 Pin Name VddIO VddIO DATA[7] VddIO DATA[28] VSS DATA[60] DATA[29] DATA[8] DATA[39] VSS VddIN VSS VSS VddIO VSS DATA[27] DATA[59] DATA[10] DATA[41] VSS DATA[9] DATA[40] VddIO DATA[25] DATA[57] DATA[26] DATA[58] DATA[43] DATA[11] VddIO VSS DATA[42] DATA[23] VSS DATA[55] DATA[24] DATA[56] DATA[45] DATA[13] DATA[44] DATA[12] Pin Number AB5 AB6 AB7 AB8 AB9 AB10 AB11 AB12 AB13 AB14 AB15 AB16 AB17 AB18 AB19 AB20 AB21 AB22 AB23 AB24 AB25 AB26 AC1 AC2 AC3 AC4 AC5 AC6 AC7 AC8 AC9 AC10 AC11 AC12 AC13 AC14 AC15 AC16 AC17 AC18 AC19 AC20 Pin Name VSS DQM[0] VddIO VSS ADDR[3] VSS ADDR[7] VSS VSS VSS VSS ADDR[17] VSS SDCS[3]* VSS DQM[7] CB[3] VSS VddIO VSS DATA[54] VSS DATA[14] VSS VSS VddIN VddIO VSS SDCS[0]* VddIO VddIO VddIN ADDR[8] VddIN VddIO VddIO VddIO VddIO VddIN DQM[2] VddIN CB[2] Pin Number AC21 AC22 AC23 AC24 AC25 AC26 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD8 AD9 AD10 AD11 AD12 AD13 AD14 AD15 AD16 AD17 AD18 AD19 AD20 AD21 AD22 AD23 AD24 AD25 AD26 AE1 AE2 AE3 AE4 AE5 AE6 AE7 AE8 AE9 AE10 Pin Name VSS DATA[48] VddIN VSS DATA[53] DATA[22] VddIO DATA[46] CB[0] VSS VSS DQM[4] SDCS[1]* VSS VSS ADDR[5] VSS ADDR[10] ADDR[12] ADDR[14] ADDR[15] ADDR[18] CKE DQM[6] VSS VSS CB[7] DATA[17] VSS DATA[50] DATA[52] DATA[21] DATA[15] VddIO CB[4] CB[5] WE* DQM[1] RAS* ADDR[1] ADDR[4] ADDR[6] Pin Number Pin Name AE11 ADDR[9] AE12 VSS AE13 ADDR[13] AE14 VSS AE15 ADDR[16] AE16 ADDR[19] AE17 SDCS[2]* AE18 VSS AE19 DQM[3] AE20 CB[6] AE21 VddIO AE22 DATA[49] AE23 VSS AE24 VddIO AE25 DATA[20] AE26 VddIO AF1 AF2 AF3 AF4 AF5 AF6 AF7 AF8 AF9 VSS DATA[47] CB[1] CAS* VSS DQM[5] ADDR[0] ADDR[2] VddIO AF10 VSS AF11 VddIO AF12 ADDR[11] AF13 SDCLK[2] AF14 SDCLK[0] AF15 SDCLKIN AF16 VSS AF17 SDCLK[3] AF18 VSS AF19 SDCLK[1] AF20 VddIO AF21 DATA[16] AF22 DATA[18] AF23 VddIO AF24 DATA[19] AF25 DATA[51] AF26 VSS 23-5 Chapter 23 Pinout and Package Information Table 23.1.2 Pin Cross Reference by Pin Name (1/2) Pin Number C5 C4 AF7 AE8 AF8 AB9 AE9 AD10 AE10 AB11 AC11 AE11 AD12 AF12 AD13 AE13 AD14 AD15 AE15 AB16 AD16 AE16 B3 A9 A10 B10 C10 D5 AF4 AD3 AF3 AC20 AB21 AE3 AE4 AE20 AD21 D7 C7 C6 B6 A6 Pin Name ACE* ACK* ADDR[0] ADDR[1] ADDR[2] ADDR[3] ADDR[4] ADDR[5] ADDR[6] ADDR[7] ADDR[8] ADDR[9] ADDR[10] ADDR[11] ADDR[12] ADDR[13] ADDR[14] ADDR[15] ADDR[16] ADDR[17] ADDR[18] ADDR[19] BUSSPRT* BWE[0]* BWE[1]* BWE[2]* BWE[3]* BYPASSPLL* CAS* CB[0] CB[1] CB[2] CB[3] CB[4] CB[5] CB[6] CB[7] CE[0]* CE[1]* CE[2]* CE[3]* CE[4]* Pin Number A5 B4 A4 P23 AD17 K1 H3 J4 A20 B22 A26 F23 N3 N1 P1 R2 T5 T2 U2 V5 W1 Y4 Y1 AA2 AB4 AB2 AC1 AE1 AF21 AD22 AF22 AF24 AE25 AD26 AC26 AA22 AA25 Y23 Y25 W 25 V23 V26 Pin Name CE[5]* CE[6]* CE[7]* CGRESET* CKE RESET* CTS[0]* CTS[1]* C_BE[0] C_BE[1] C_BE[2] C_BE[3] DATA[0] DATA[1] DATA[2] DATA[3] DATA[4] DATA[5] DATA[6] DATA[7] DATA[8] DATA[9] DATA[10] DATA[11] DATA[12] DATA[13] DATA[14] DATA[15] DATA[16] DATA[17] DATA[18] DATA[19] DATA[20] DATA[21] DATA[22] DATA[23] DATA[24] DATA[25] DATA[26] DATA[27] DATA[28] DATA[29] Pin Number T22 T25 N2 P3 R3 R1 T3 U3 U1 W2 Y5 Y2 AA5 AA1 AB3 AB1 AD2 AF2 AC22 AE22 AD24 AF25 AD25 AC25 AB25 AA24 AA26 Y24 Y26 W26 V25 U25 T23 N25 B12 C24 D11 A8 A7 B7 E9 E11 Pin Name DATA[30] DATA[31] DATA[32] DATA[33] DATA[34] DATA[35] DATA[36] DATA[37] DATA[38] DATA[39] DATA[40] DATA[41] DATA[42] DATA[43] DATA[44] DATA[45] DATA[46] DATA[47] DATA[48] DATA[49] DATA[50] DATA[51] DATA[52] DATA[53] DATA[54] DATA[55] DATA[56] DATA[57] DATA[58] DATA[59] DATA[60] DATA[61] DATA[62] DATA[63] DCLK DEVSEL* DMAACK[0] DMAACK[1] DMAACK[2] DMAACK[3] DMADONE* DMAREQ[0] Pin Number B9 B8 C8 AB6 AE6 AC18 AE19 AD6 AF6 AD18 AB20 A15 A11 A12 A14 B25 J25 K24 L25 M25 K3 F24 F3 F2 F1 G3 G2 G1 A25 C23 D20 R26 F4 M1 C22 B17 C17 A18 B18 D18 A19 B19 Pin Name DMAREQ[1] DMAREQ[2] DMAREQ[3] DQM[0] DQM[1] DQM[2] DQM[3] DQM[4] DQM[5] DQM[6] DQM[7] EEPROM_CS EEPROM_DI EEPROM_DO EEPROM_SK FRAME* GNT[0]* GNT[1]* GNT[2]* GNT[3]* HALTDOZE ID_SEL INT[0] INT[1] INT[2] INT[3] INT[4] INT[5] IRDY* LOCK* M66EN MASTERCLK NMI* OE* PAR PCIAD[0] PCIAD[1] PCIAD[2] PCIAD[3] PCIAD[4] PCIAD[5] PCIAD[6] Pin Number C19 B20 C20 E20 A21 B21 C21 E21 A22 C26 C25 D26 E26 E25 E24 E23 F26 G26 G25 G24 G23 G22 H24 J24 J22 P26 H26 J26 K26 L26 M26 N26 A17 C16 B16 A16 C15 B15 E14 C14 B14 B23 Pin Name PCIAD[7] PCIAD[8] PCIAD[9] PCIAD[10] PCIAD[11] PCIAD[12] PCIAD[13] PCIAD[14] PCIAD[15] PCIAD[16] PCIAD[17] PCIAD[18] PCIAD[19] PCIAD[20] PCIAD[21] PCIAD[22] PCIAD[23] PCIAD[24] PCIAD[25] PCIAD[26] PCIAD[27] PCIAD[28] PCIAD[29] PCIAD[30] PCIAD[31] PCICLKIN PCICLK[0] PCICLK[1] PCICLK[2] PCICLK[3] PCICLK[4] PCICLK[5] PCST[0] PCST[1] PCST[2] PCST[3] PCST[4] PCST[5] PCST[6] PCST[7] PCST[8] PERR* 23-6 Chapter 23 Pinout and Package Information Table 23.1.2 Pin Cross Reference by Pin Name (2/2) Pin Number A2 A1 B2 B1 C2 C1 D3 D1 R24 R25 P24 P25 N22 AE7 K25 L22 L24 M24 H2 J3 G4 J5 J1 E6 Pin Name PIO[0] PIO[1] PIO[2] PIO[3] PIO[4] PIO[5] PIO[6] PIO[7] PLL1VDD_A PLL1VSS_A PLL2VDD_A PLL2VSS_A PME* RAS* REQ[0]* REQ[1]* REQ[2]* REQ[3]* RTS[0]* RTS[1]* RXD[0] RXD[1] SCLK SDIN[1] Pin Number L5 L4 L3 L2 E2 E3 C12 E13 D13 C13 D24 E16 H1 J2 A13 A23 B26 D2 D6 D9 E10 E12 E15 E17 E18 E19 E22 E5 E8 H22 H5 J23 K22 K5 L23 M22 M5 N24 N4 P2 P4 R22 Pin Name TEST[1]* TEST[2]* TEST[3]* TEST[4]* TIMER[0] TIMER[1] TMS TPC[1] TPC[2] TPC[3] TRDY* TRST* TXD[0] TXD[1] VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS Pin Number R5 T1 T26 U22 U26 U5 V1 V2 V24 W22 W 24 W3 W5 Y3 Pin Name VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS Pin Number Pin Name Pin Number D25 E4 E7 F22 F25 H25 H4 M23 M3 N23 N5 P5 R4 T24 T4 U24 V22 V3 V4 W23 Y22 AA3 Pin Name VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO AE14 VSS AE18 VSS AE23 VSS AF1 VSS AF10 VSS AF16 VSS AF18 VSS AF26 VSS AF5 D10 D15 D17 D23 D4 D8 F5 G5 H23 K23 K4 M4 P22 R23 U23 U4 W4 VSS VddIN VddIN VddIN VddIN VddIN VddIN VddIN VddIN VddIN VddIN VddIN VddIN VddIN VddIN VddIN VddIN VddIN AA23 VSS AA4 VSS AB10 VSS AB12 VSS AB13 VSS AB14 VSS AB15 VSS AB17 VSS AB19 VSS AB22 VSS AB24 VSS AB26 VSS AB5 AB8 AC2 VSS VSS VSS AB23 VddIO AB7 VddIO AF15 SDCLKIN AF14 SDCLK[0] AF19 SDCLK[1] AF13 SDCLK[2] AF17 SDCLK[3] AC7 AD7 SDCS[0]* SDCS[1]* AC13 VddIO AC14 VddIO AC15 VddIO AC16 VddIO AC5 AC8 AC9 AD1 AE2 VddIO VddIO VddIO VddIO VddIO AC10 VddIN AC12 VddIN AC17 VddIN AC19 VddIN AC23 VddIN AC4 A24 B5 C18 C3 C9 D12 D14 D16 D19 D21 VddIN VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO VddIO AC21 VSS AC24 VSS AC3 AC6 VSS VSS AE17 SDCS[2]* AB18 SDCS[3]* D22 B24 A3 L1 B11 E1 C11 B13 K2 SERR* STOP* SWE* SYSCLK TCK TCLK TDI TDO TEST[0]* AD11 VSS AD19 VSS AD20 VSS AD23 VSS AD4 AD5 AD8 AD9 VSS VSS VSS VSS AE21 VddIO AE24 VddIO AE26 VddIO AF11 VddIO AF20 VddIO AF23 VddIO AF9 M2 AE5 VddIO WDRST* WE* AE12 VSS 23-7 Chapter 23 Pinout and Package Information Table 23.1.3 Pin Cross Reference for Thermal Balls Pin Number K10 K11 K12 K13 K14 K15 K16 K17 L10 L11 L12 L13 L14 Pin Name VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS Pin Number L15 L16 L17 M10 M11 M12 M13 M14 M15 M16 M17 N10 N11 Pin Name VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS Pin Number N12 N13 N14 N15 N16 N17 P10 P11 P12 P13 P14 P15 P16 Pin Name VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS Pin Number P17 R10 R11 R12 R13 R14 R15 R16 R17 T10 T11 T12 T13 Pin Name VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS Pin Number T14 T15 T16 T17 U10 U11 U12 U13 U14 U15 U16 U17 Pin Name VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS VSS 23-8 Chapter 23 Pinout and Package Information 23.2 Package Dimensions P-BGA484-3535-1.27B9 Unit: mm 23-9 Chapter 23 Pinout and Package Information 23-10 Chapter 24 Notes on Use of TMPR4938 24. Notes on Use of TMPR4938 24.1 Notes on TX49/H3 Core • Restriction on detect of the Bus errors when a data cycle generated by load instruction. [Restriction] Error notification to the TX49/H3 Core using Bus errors is not enabled or Executing a SYNC instruction immediately after the preceding load instruction. [Violation] When a Bus error exception (DBE) occurs during a data Read cycle generated by a preceding load instruction and an exception with a higher priority than the Bus error exception (DBE) occurs in a subsequently executed instruction, the exception of the subsequent instruction is processed first and Bus error exceptions (DBE) are no longer detected. The TX49/H3 Core has a non-blocking load function. With this function, the instruction that follows the preceding load instruction is executed without stalling if it is not dependent on the preceding load instruction. When reading the data from the preceding load instruction and a Bus Error exception (DBE) occurs and an exception (see the following table for the priority order when consecutive instructions issue multiple exceptions at the same timing) with a higher priority than the Bus Error exception (DBE) of the subsequently executed instruction occurs, the exception that the subsequent instruction issued is processed before the Bus Error exception (DBE) and Bus Error exceptions (DBE) can no longer be detected. Priority Order for Exceptions Issued at the Same Timing Priority Sequence (High) Cold Reset Soft Reset NMI Bus Error (IBE) Ov,Tr,Sys,Bp,RI,CpU,FPE Address Error (AdEL/AdES) TLB Refill (TLBL/TLBS) TLB Invalid (TLBL/TLBS) TLB Modify (TLBL/TLBS) Bus Error (DBE) Interrupt Address Error (AdEL) TLB Refill (TLBL) TLB Invalid (TLBL) Instruction Fetch Instruction Fetch Instruction Fetch Data Access Data Access Data Access Data Access Data Access Instruction Fetch Detected PipeStage M M M M M M M M M M M E E E Instruction synchronous or asynchronous Async Async Async Async Sync Sync Sync Sync Sync Async Async Sync Sync Sync Note: The table above differs from Table 11-3 (Priority Order when the Same Instruction Issues Multiple Exceptions at the Same Timing) on page 11-2 of the “TX49/H2, H3, H4 Core Architecture”. 24-1 Chapter 24 Notes on Use of TMPR4938 Bus errors occur the following three conditions. (1) When CCFG.TOE of the Chip Configuration Register is set to “1” (Default: 0), G-Bus timeout error detection is enabled, and the following situation results: • • A Bus timeout occurs when a G-Bus Bus Master (TX49/H3 Core, DMAC, or PCIC) is reading the G-Bus A Bus timeout occurs when a G-Bus Bus Master (other than the TX49/H3 Core) is writing to the G-Bus (2) When ECCCR.MEB of the ECCCR Register in the SDRAM Controller is set to “1” (Default: 0), Parity errors are enabled during a multi-bit error, and the following situation results: • • A 2-bit ECC error or Parity error is detected during SDRAM Read operation by the TX49/H3 Core A 2-bit ECC error or Parity error is detected during Read/Write operation by a G-Bus Bus Master other than the TX49/H3 Core (3) When PCICCFG.IRBER of the PCICCFG Register in the PCI Controller is set to “1” (Default: 1), and the following situation results during initiator Read operation: • • • • • A Parity error is detected A Master ABORT is received A Target ABORT is received A TRDY timeout is detected A Retry timeout is detected There is no problem for ColdReset or SoftReset exceptions because initialization processing is performed after the exception occurs. Also, there is no problem for NMI exceptions if the process after the exception occurs is similar to the above reset process. [Workaround] • • There is no problem if error notification to the TX49/H3 Core using Bus errors is not enabled in the above Conditions. Executing a SYNC instruction immediately after the preceding load instruction allows you to avoid this condition because the next instruction will not be executed until the Load data arrives. 24-2 Chapter 24 Notes on Use of TMPR4938 24.2 Notes on External Bus Controller • Output delay of DATA[63:0] depends on the external bus speed set with EBCCRn.SP. For details on it, see 22.5.4 External Bus Interface AC Characteristics. 24.3 Notes on DMA Controller • • When burst transfer is performed during DMA transfer, the increment value setting for address is restricted. For details, see 8.3.7 Single Address Transfer and 8.3.8 Dual Address Transfer. Restrictions in dual address transfer by the DMA controller [Restriction] Setting the DMA master control register (DMMCRn) is restricted in the dual address transfer mode. [Violation] When a bus error occurs on a channel contained in DMAC, “all 0” may be written repeatedly to the address (DMSARn), that should be read, in all channels including it. In this case, the address value (DMSARn) and count register value (DMCNTRn) are not changed, and write is continued to the same address until CPU terminates DMA transfer (0 is set to DMCCRn.XFACT). This violation occurs in the following conditions. (1) FIFO is disabled. 0 is set to either one channel or more of FIFUM[n] (n=3 to 0) in DMMCR. (2) The channel shown above (1) is set to dual address transfer. 0 is set to SNGAD in DMCCRn (n=3 to 0). (3) A bus error occurs during access to the destination address in the channel which satisfies both (1) and (2). 1 is set to DESERR in DMCSRn (n=3 to 0). (4) When (3) is satisfied, single transfer (non-burst transfer) in dual address transfer mode (see Supplemental Remarks for details) performed in any channel causes the violation shown above. When DMMCR.FIFUM[n]=0 is set in dual address transfer mode, single transfer (non-burst transfer) is performed regardless of the value set to DMCCRn.XFSZ. 24-3 Chapter 24 Notes on Use of TMPR4938 In the case only one channel is used, restarting DMS transfer without a reset of FIFO results in a malfunction when the conditions (1) to (3) are satisfied. When two channels are used in a system, the following table shows settings to cause malfunctions. Ch. A of a bus error FIFO Disable Disable Disable Ch. B FIFO Disable Enable Enable XFSZ Any value Any value Any value Transfer Single Single Single XFSZ Any value 24-8 Chapter 24 Notes on Use of TMPR4938 • Restriction when Initiator Write by PDMAC and Target Read conflict. [Restriction] Don’t perform Target Read from a register on the G-Bus when the condition is the following . [Violation] When an Initiator Write transaction using PDMAC (PCI Dedicated DMA Controller) mounted in the PCI Controller of the target product and a Target Read transaction to the target product by the a device on the PCI Bus conflict, there are cases when the Target Read data is corrupted. (1) In the PCI Controller of the above target product: A. PDMAC performs an Initiator Write transaction to a device on the PCI Bus. B. Device on the PCI Bus becomes the Bus Master and performs a Target Read on the target product. When the two above accesses conflict, (2) The internal bus (G-Bus) of the target product is accessed continuously in the following order. (a) PDMAC reads the Initiator Write data on the G-Bus. (b) TC (Target Controller) reads data from the G-Bus because of a Target Read request. (3) The target of the Target Read in (2) is a register on the G-Bus However, there is no corresponding register on the Internal Bus (IM-Bus). G-Bus SDRAMC SDRAM etc TX49 (CP0) EBIF Data Memory Bus (a) G-Bus Module Reg. (b) TC Device 1 on PCI Bus TX4938 Device 2 on PCI Bus A. PDMAC Initiator Write PCI Bus B. Target Read PDMAC [Workarounds] Do not perform Target Read access from a register on the G-bus or Internal SRAM area under the above conditions. The register on the G-Bus is a register with the 0x5000 to 0x5FFF, 0x6000 to 0x67FF and 0x7000 to 0xEFFF. 24-9 Chapter 24 Notes on Use of TMPR4938 24.5 Notes on Serial I/O Port • Restrictions on use of the break function in SIO [Restriction] To transmit breaks to TX4938, synchronize breaks to the start bit. Set consecutively the transmit data to Low immediately after the start bit. [Violation] When the transmitting end transmits breaks to TX4938 in the middle of a transmission, TX4938 detects the first flame error only, but not breaks. When the break reception is synchronized to the start bit (the receive data is consecutively set to Low immediately after the start bit), breaks can be detected correctly. (Malfunction) Status SIN ↑ Start ↑ Flame Error S12345678PS * Since the start bit is not recognized after a flame error, the receiving status is stopped in idle state. (Correct operation) Status SIN ↑ Start ↑ 1st Break ↑ 2nd Break S12345678PSS12345678PS * W hen the receiving data is consecutively set to Low immediately after the start bit is recognized, breaks can be detected. When breaks are transmitted to TX4938, it may not receive breaks. This malfunction may occur when the transmitting end transmits breaks to TX4938 in the middle of a transmission. [Workarounds] To transmit breaks to TX4938, synchronize breaks to the start bit (set the transmitting data consecutively to Low immediately after the start bit). 24-10 Chapter 24 Notes on Use of TMPR4938 24.6 Notes on Ether Controller • Initializing SRAM containing Ether controller Note: If you use SRAM without initialization, parity errors may be detected incorrectly during packet receiving. To prevent this malfunction, perform the following initialization. (1) Preparation Set TestMode (bit13) of the DMA_Ctl (0x00) register. (Write 1) (2) Initialization of on-chip memory Perform the following for all addresses (0x000 to 0x3ff) of on-chip SRAM. (i) Set the address of on-chip SRAM to ARC_Adr (0x60). (ARC_Loc field: 0x000 to 3ff) (ii) Write 0x00000000 to ARC_Data (0x64) (32-bit write) You can check the data which was written. Read ARC_Data (0x64) (32-bit read) (3) Release test mode Reset TestMode (bit 13) of the DMA_Ctl (0x00) register. (Write 0) 24-11 Chapter 24 Notes on Use of TMPR4938 24-12 Chapter 25 Parts Number when Ordering 25. Parts Number when Ordering Maximum Operating Frequency 300 MHz 333 MHz Parts Number TX4938 TMPR4938XBG-300 TMPR4938XBG-333 Package 484-pin PBGA 484-pin PBGA 25-1 Chapter 25 Parts Number when Ordering 25-2 Appendix A TX49/H3 Core Supplement Appendix A TX49/H3 Core Supplement This section explains items that are unique to the TX4938 of the TX49/H3 Core. Please refer to the “64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture” for more information regarding the TX49/H3 Core. A.1 Processor ID PRId Register values of the TX4938 TX49/H3 Core are as follows. Processor Revision Identifier Register: 0x0000 2D30 FPU Implementation/Revision Register (FCR0): 0x0000 2D30 These values may be changed at a later date. Please contact the Toshiba Engineering Department for the most recent information. A.2 Interrupts Interrupt signalling of the on-chip interrupt controller is reflected in bit IP[2] of the Cause Register in the TX49/H3 Core. In addition, interrupt causes are reflected in other bits of the IP field. Please refer to Section “15.3.5 Interrupt notification” for more information. A.3 Bus Snoop The Bus Snoop function is not used with the TX4938 due to restrictions of the Bus Snoop specification. A.4 Halt/Doze mode The Doze mode is not necessary when the Bus Snoop function is not used. Please use the Halt mode, which further reduces power consumption. Clearing the HALT bit of the Config Register makes it possible to shift to the Halt mode by executing the WAIT instruction. A.5 Memory access order The TX49/H3 Core has a 4-stage Write buffer, the PCI Bus Bridge (PCI Controller) has 4 stages for initiator access, and has a 2-stage Post Write buffer (Write buffer) for target access. When data enters the Write buffer of the TX49/H3 Core, Cache Refill Read operations that do not match the address of that data after the Write is issued may be issued to the internal bus (G-Bus) before the Write. Other accesses are issued in order. Executing the SYNC instruction guarantees that bus access invoked by a load/store instruction previously executed will be complete on the internal bus. The PCI Bus Bridge is issued by the issue destination bus in the order all bus accesses are issued on the issue source bus. Please refer to “10.3.6 Post Write Function” for more information regarding methods for guaranteeing the completion of Write transactions of the Post Write Buffer. A-1 Appendix A TX49/H3 Core Supplement A-2 TMPR4938 Revision History TMPR4938 Revision History Page References 2 64-bit TX System RISC TX49/H3 Core Architecture User’s 64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Manual Architecture Modified line 5 of the body text in Section 1.1, Overview 1-1 For details of the TX49/H3 core such as instruction sets, see For details of the TX49/H3 core such as instruction sets, “64-bit TX System RISC TX49/H3 Core Architecture”. see “64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture”. Table 3.2.2 Boot Configuration Specified with the ADDR[19:0] Signals (1/2) Modified the description of the ADDR[17] and ADDR[15]. 3-14 Reserved Reserved Used for testing. This signal will not be set to 0 upon booting. Rev 1.2 Manual Changes and Additions to Rev 1.2 Modified line 5 of the introduction in Chapter 4, Address Mapping 4-1 Please refer to "64 bit TX System RISC TX49/H3 Core Architecture" about the details of mapping to a physical address from the virtual address of TX49/H3 core. Figure 5.2.1 Chip Configuration Register (1/3) 42 5-3 41 WDRST Please refer to "64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture" about the details of mapping to a physical address from the virtual address of TX49/H3 core. 40 WDREXEN 42 41 WDRST 40 WDREXEN RW1C 0 R/W 0 R/W1C R/W 0 0 Figure 5.2.1 Chip Configuration Register (1/3) 17 5-3 16 BEOW RW1C : Type 0 : Initial value Figure 5.2.1 Chip Configuration Register (1/3) Read/write attribute of the WDRST (Watchdog Reset Status) bit RW1C Figure 5.2.1 Chip Configuration Register (2/3) Read/write attribute of theBEOW (Write-Access Bus Error) bit RW1C R/W1C R/W1C 17 16 BEOW R/W1C : Type 0 : Initial value 5-3 5-4 1 TMPR4938 Revision History Page Rev 1.2 Manual Figure 5.2.3 Pin Configuration Register (1/3) 63 62 61 60 59 58 57 56 55 DRVCB D Changes and Additions to Rev 1.2 63 62 61 60 59 58 57 56 55 DRVCB D ETH0_SEL ETH1_SEL ATA_SEL ISA_SEL SPI_SEL NDF_SEL Reserved DRVDATA ETH0_SEL ETH1_SEL ATA_SEL ISA_SEL SPI_SEL NDF_SEL Reserved DRVDATA R R DATA[3] DATA[6] R/W 0 45 R/W 0 44 R/W 0 R/W 0 41 R/W R/W ADDR[4] ADDR[4] A ~DATA[3] ~DATA[6] R R R/W 0 45 R/W 0 44 R/W 0 R/W 0 41 R/W R/W ADDR[4] ADDR[4] A 47 40 DRVCKIN 39 47 DRVCS[2:0] R/W ADDR[5] 40 DRVCKIN 39 5-7 DRVCS R/W ADDR[5] 31 30 29 28 DRVCK[3:0] R/W ADDR[5] 27 SYSCLKEN DRVCK[3:0] R/W ADDR[5] 29 28 27 SYSCLKEN R/W ADDR[5] R/W ADDR[5] 26 SDCLKEN R/W 1111 23 S 31 30 26 SDCLKEN[3:0] R/W 1111 23 S Reserved SDCLKDLY R/W 00 Reserved SDCLKDLY R/W 00 R/W 1 R/W 1 Figure 5.2.3 Pin Configuration Register (1/3) 21 5-7 PCICLKEN R/W 111111 Figure 5.2.3 Pin Configuration Register (1/3) Initial value of the ETH0_SEL (Status of shared pin) bit DATA[3] Figure 5.2.3 Pin Configuration Register (1/3) Initial value of the ETH1_SEL (Status of shared pin) bit DATA[6] ~DATA[6] Figure 5.2.3 Pin Configuration Register (2/3) Added a note to the description of the DRVCB (CB Signal Control) bit 5-8 Note: CB[7:0]* share pins with PIO[15:8], E0TXD[3:0], E0RXD[3:0]. The driving capability of these pins are below. CB[7:0], E0TXD[3:0], E0RXD[3:0]: 8 mA or 16 mA PIO[15:8]: 8 mA only Figure 5.2.6 G-Bus Arbiter Control Register 15 Reserved 5-14 7 6 5 PRIORITY R/W 00_01_10 10 9 ⎯ R/W 1 8 ARBMD 16 21 PCICLKEN[5:0] R/W 111111 16 5-7 ~DATA[3] 5-7 15 Reserved 14 PRIORITY R/W 000_001_010_011_100 0 PRIORITY R/W 000_001_010_011_100 R/W 1 0 Reserved 2 TMPR4938 Revision History Page Rev 1.2 Manual Figure 6.3.1 Power-On Sequence At least 100 ms (T.B.D) (T.B.D) Changes and Additions to Rev 1.2 PLL settling time (T.B.D) PLL settling time 6-6 ed back) PLL settling time (T.B.D) ed back) PLL settling time Added the following text to line 8 to Section 7.3.6.3, Ready Mode 7-11 W hen the number of wait cycles is 0, READY check is started in 1 cycle after asserting the CE* signal. When the number of wait cycles is other than zero, after waiting only for the specified number of cycles, READY check is started. Figure 7.3.3 Ready Mode 7-11 EBCCRn.PWT:WT=2 Start Ready Check EBCCRn.PWT:WT=2 Start Ready Check Figure 7.3.13 Ready Input Timing (Read Cycle) 7-18 2 clock Acknowledge Ready 2 clocks Acknowledge Ready Latch D E 3 TMPR4938 Revision History Page Rev 1.2 Manual Figure 7.3.13 Ready Input Timing (Read Cycle) Changes and Additions to Rev 1.2 7-18 Start Ready Check Acknowledge Re Start Ready Check Acknowledge Re Figure 7.3.14 Ready Input Timing (Write Cycle) 7-19 3 clock 3 clocks 4 4 clocks Acknowledge Ready Figure 7.3.14 Ready Input Timing (Write Cycle) Acknowledge Ready 7-19 Start Ready Check Acknowledge Read Start Ready Check Acknowledge Ready Modified line 2 of Section 7.3.9, ISA /ATA Mode Since the pins used in ISA/ATA mode are multiplexed pins, Since the pins used in ISA/ATA mode are multiplexed pins, select ISA/ATA before use of these pins. (Refer to “5.2.3 Pin select ISA/ATA before use of these pins. Since the signal of Configuration Register”.) CE* is not used in this mode, when ETHER1 is chosen, this mode can be used by channels 5, 6 and 7. (Refer to “5.2.3 Pin Configuration Register”.) Modified line 3 of the body text in Section 7.3.9.1, Address space 7-20 When access to the ISA I/O space is performed, IOR* and When access to the ISA I/O space is performed, IOR* and IOW * control signals are valid, and OE* and SWE* are IOW * control signals are valid, and OE*, SWE* and CE* invalid. are invalid. Figure 7.5.3 Double-word Single Write (PWT: WT=1, Figure 7.5.3 Double-word Single Write (PWT: WT=0, SHWT=0, Normal, 32-bit Bus) SHWT=0, Normal, 32-bit Bus) Table 8.3.3 Channel Register Setting Restrictions During Dual Address Transfer 8/0/-8 8/0/-8 7-20 7-31 8-13 4 TMPR4938 Revision History Page Rev 1.2 Manual Changes and Additions to Rev 1.2 Table 8.3.3 Channel Register Setting Restrictions During Dual Address Transfer Added the following note. 8-13 : When DMSAIRn is set to 0, read access from source device is performed only one time per transmission specified by DMCCRn.XFSZ. For this reason, transfer can not be performed burst transfer to the I/O device which performs FIFO operation. Figure 9.4.4 ECC Control Register (1/2) 63 0x10 R Figure 9.4.4 ECC Control Register (1/2) 55 9-23 0x10 R Figure 9.4.4 ECC Control Register (1/2) Modified the description of the DEEC (Diagnostic ECC) field. The value set by this field is output from CB[7:0] as the check code when the ECCDM bit is set to “Enable.” Figure 9.4.5 ECC Status Register 15 FRRS R — — — — — — — — — Figure 9.6.2 168-pin DIMM Connection Example 128MB un 9-42 ADDR[16:5] A[11:0] ADDR[18] BA0 ADDR[17] BA1 DQMB[7:0] Figure 10.4.1 ID Registers 31 10-26 DID R/L 0x0180 Figure 10.4.1 ID Registers Modified the description of the DID (Device ID) field. Device ID (Default: 0x0180) Device ID (Default: 0x0183) 16 31 DID R/L 0x0183 16 ADDR[16:5] A[11:0] ADDR[19] BA0 ADDR[18] BA1 DQMB[7:0] 128MB un 8 15 ERRS R — — — 8 The value set by this field is output from CB[7:0] as the check code when the DM bit is set to “Enable.” 48 55 VERNO 0x10 48 56 63 MDLNO 0x10 56 9-23 9-23 9-25 10-26 5 TMPR4938 Revision History Page Rev 1.2 Manual Figure 11.4.7 Baud Rate Control Register Modified the description of the BCLK (Baud Rate Generator Clock) field. 11-22 00: Select prescalar output T0 (IMBUSCLK/2) 01: Select prescalar output T2 (IMBUSCLK/8) 10: Select prescalar output T4 (IMBUSCLK/32) 11: Select prescalar output T6 (IMBUSCLK/128) Table 14.3.7 Mic DMA Buffer Format in Big-endian Mode 00: Select prescalar output T0 (fc/2) 01: Select prescalar output T2 (fc/8) 10: Select prescalar output T4 (fc/32) 11: Select prescalar output T6 (fc/128) Changes and Additions to Rev 1.2 Address offset 14-11 +0 #0H #1H #2H : +1 #0L #1L #2L : Address offset +0 +4 +8 : +0 #0H #1H #2H : +1 #0L #1L #2L : z +4 +8 : Deleted the following text from Section16.3.8.5, Frame reception procedure 16-26 Usually, before setting the above code, the DMA Controller Usually, before programming the above registers, the DMA is initialized by storing a valid address in the Buffer List Controller is initialized. Form Pointer Register or initializing a Free Descriptor Area Register and a Free Descriptor Size Register for example. Modified line 20 of Section16.3.9.2, Initial setup of DMA and MAC 16-33 • DMA Transmission Control Register: To customize the Burst sizeC Modified line 9 of Section, 16.3.9.3.2, Initializing the buffer list 16-34 You can use the Reception Buffer Fragment Size Register to globally pack a buffer. Modified line 6 of Section16.3.9.5, Receiving frames 16-35 • DMA Control Register: To customize the Burst size You can use the Reception Fragment Size Register to globally pack a buffer. • Initialize the Reception Frame Pointer Register to the address of the dummy frame descriptor in the free descriptor area. Modified line 4 of Section, 16.3.9.5.2, Releasing buffers • Initialize Free Descriptor Area Base Register to the address of the dummy frame descriptor in the free descriptor area. 16-36 The Control field of the Buffer Fragment Size Register or Frame Descriptor controls the method of mapping the buffer. Modified line 2 of Section 21.2.1, JTAG Controller and Register The Control field of the Reception Fragment Size Register or Frame Descriptor controls the method of mapping the buffer. 21-2 Please refer to the TX49/H3 Core Architecture Manual for Please refer to the “64-bit TX System RISC TX49/H2, all other portion not covered here. TX49/H3, TX49/H4 Core Architecture” for all other portion not covered here. Modified line 3 of 21.2.2, Instruction Register 21-3 Refer to the TX49/H3 Core Architecture Manual for more information regarding each instruction. Refer to the “64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture” for more information regarding each instruction. 6 TMPR4938 Revision History Page Rev 1.2 Manual Table 21.2.1 Bit Configuration of JTAG Instruction Register 21-3 Refer to the TX49/H3 Core Architecture Manual Figure 22.5.1 Timing Diagram: MASTERCLK Refer to the “64-bit TX System RISC TX49/H2, TX49/H3, TX49/H4 Core Architecture” Changes and Additions to Rev 1.2 tMCP 22-5 tMCP MASTERCLK 0.8 VCC 0.2 VCC MASTERCL 0.8 VCC 0.2 VCC Figure 22.5.2 Timing Diagram: Power On Reset VCCInt, VCCIO PLL_Vdd1_A, PLL_Vdd2_A MASTERCLK MASTERCLK Oscillation S VCCInt, VCCIO * PLL_Vdd1_A, PLL_Vdd2_A MASTERCLK tMCP_PL CGRESET* CGRESET* tMCP_PL 1) MASTERCLK Oscillation S 22-5 RESET* Note 1: VCCInt and VCCIO must start up simaltaneously, or VCCInt must be first. Note 2: The difference of the stand up time of a power supply within in 100 m seconds. Figure 23.1.1 Pinout Diagram (1/2) *1) RESET* VCCInt and VCCIO must start up simultaneously, or VCCInt must be first. The difference of the stand up time of a power supply within in 100 m seconds. 7 23-2 DMAACK [2] CE[4]* CE[5]* DMAACK [3] CE[3]* VddIO CE[1]* CE[2]* ACE* CE[0]* VSS BYPASSP LL* VddIO SD[1] VSS 7 T OP VddIN DMAACK [2] CE[4]* CE[5]* DMAACK [3] CE[3]* VddIO CE[1]* CE[2]* ACE* CE[0]* VSS BYPASSP LL* VddIO SDIN[1] VSS 6 5 6 5 T OP VddIN 23-4 Table 23.1.1 Pin Cross Reference by Pin Number (1/2) Modified the pin name of the E6 pin. SD[1] Table 23.1.2 Pin Cross Reference by Pin Name (2/2) Modified the pin name of the E6 pin. SD[1] 24. Notes on Use of TMPR4938 24.1 Notes on External Bus Controller 24.2 Notes on DMA Controller 24.3 Note on PCI Controller 24.4 Notes on Serial I/O Port 24.5 Notes on Ether Controller SDIN[1] 24.1 24.2 24.3 24.4 24.5 24.6 Notes on TX49/H3 Core Notes on External Bus Controller Notes on DMA Controller Note on PCI Controller Notes on Serial I/O Port Notes on Ether Controller SDIN[1] 23-7 24-1 24-9 24.4 Note on PCI Controller The section “Restriction when Initiator Write by PDMAC and Target Read conflict” is added. 7 TMPR4938 Revision History Page Rev 1.2 Manual Modified line 2 of the introduction of Appendix A, TX49/H3 Core Supplement A-1 Please refer to the “64-bit TX System RISC TX49/H3 Core Please refer to the “64-bit TX System RISC TX49/H2, Architecture User’s Manual” for more information regarding TX49/H3, TX49/H4 Core Architecture” for more information regarding the TX49/H3 Core. the TX49/H3 Core. Changes and Additions to Rev 1.2 8
TMPR4938XBG-300 价格&库存

很抱歉,暂时无法提供与“TMPR4938XBG-300”相匹配的价格&库存,您可以联系我们找货

免费人工找货